나는 내 인생을 위해, 내 정규식의 잘못된 점을 파악할 수 없다. 토큰 화하고자하는 것은 한 줄에 두 개의 문자열을 포함하는 두 가지 유형의 문자열입니다. 한 문자열은 새 행 이외의 다른 문자 일 수 있고, 다른 하나는 영숫자 (ASCII) 문자 및 리터럴 '_', '/' '-'및 '.'일 수 있습니다. nl \n|\r\n|\r|\f|\n\r
...
%
책임의 한계와 법적 고지 MAIN.CPP합니다 : 이제 http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html , 나는이 프로젝트에 대한 비디오 게임을 짓고 있어요 : 나는이 자습서를 한 적이 있지만, 플렉스 들소 멍청한 놈이야 OPENGL-C++. main.cpp에는 모든 게임 그래픽, 로직 등 (상당히 관리 가능하므로 문제
flex/bison으로 읽고 계속 놀던 지난 몇 주 동안, 주요 목표는 중첩 된 그룹 및 목록으로 구조화 된 구성 파일을 구문 분석하는 것입니다. flex/bison은 매우 강력하지만 복잡합니다. 나는 오픈 소스 프로젝트를 거의 조사하지 않았고 Bison을 사용하여 구성 파싱을 수행 한 유일한 예는 ntpd였으며 다른 프로젝트는 자체 파서와 렉서를 구축했습
일부 입력을 받아 파서에 대한 토큰을 만드는 간단한 플렉스 프로그램을 작성했습니다. 내 코드 [ex4.l] 난을 lex.yy.c 파일을 생성 명령 flex ex4.l을 실행하고 내가 cc lex.yy.c -lfl를 사용하여이 작업을 실행하려고 할 때 내가 붙어있어 이후 %{
enum yytokentype{
NUMBER = 258,
ADD = 259,
나는 bison/flex에서 파서를하고 있습니다. 나는 식별자가 모두 boolean_expr 또는 EXPR이 될 수 있도록 할당 생산을 구현하려는 그 유형이 심볼 테이블에 의해 확인됩니다 이 내 코드의 일부입니다. int a = 1;
boolean b = true;
if(b) ...
그러나, 나는 용어와 boolean_expr 모두의 식별자를 포함하
내가 "치명적인 오류가 계속 어떤 문장을 유도하지 않습니다. N_START 어떤 문장을 유도하지 않는 기호가 나는 완전히이 코드를 잘못 될 수 있는지에 분실하고 시작을 내가 살펴 보았다. 이전 버전과 내가 다른 일을하고 아무것도 찾을 수 없습니다. 여기 코드입니다 (이 긴 D :) %error-verbose
%{
#include <iostream>
나는 lex 파일을 가지고 있으며, 코드를 파싱하려고하고있다. 그것은 일치하는 ")"하지만 그래서 등 comment: (^^^^^^^^^
this is a comment
^)
function(arg)
other: ;
sometext
예를 들어,이 같은 있습니다 ...
%%
COMMENT ("(^"|"/^")(.|\n)*("^)"|"^/")
저는 lex/flex에 익숙하지 않습니다. 레거시 플렉스 코드를 디버깅하려고합니다. 특정 규칙과 일치하는 텍스트를보고 싶습니다. 예 : [a-z]* {"some C code" "need to print the string that matched this rule"}
예 : [email protected]가 입력되면 , 내가 yytext 인쇄하려고 즉