1
lex와 yacc를 사용하여 다음과 같은 정규식을 수락하도록 automata를 만들고 싶습니다. 정규 표현식은 R = (ab + a) *입니다.이것을 위해 LEX를 만드는 방법은 무엇입니까?
누구나 lex 및 yacc를 사용하여이 자동 생성 기능을 구성 할 수 있습니까?
감사합니다.
lex와 yacc를 사용하여 다음과 같은 정규식을 수락하도록 automata를 만들고 싶습니다. 정규 표현식은 R = (ab + a) *입니다.이것을 위해 LEX를 만드는 방법은 무엇입니까?
누구나 lex 및 yacc를 사용하여이 자동 생성 기능을 구성 할 수 있습니까?
감사합니다.
마음에 오는 첫 번째 일은 이와 비슷한 것입니다. 완료되지 프로그램,하지만 뭔가 당신이 시작하려면 :
스캐너 (렉스) :
%%
a return TOKENA; /* for an a in the input */
b return TOKENB; /* for a b in the input */
\n /* ignore end of line */;
[ \t]+ /* ignore whitespace */;
%%
파서 (Yacc에) :
commands: /* empty */
| commands command
{ printf("found a (ab + a)* pattern"); }
command:
ab
|
a
;
ab: TOKENA TOKENB
;
a: TOKENA
;
을 나는 문법이 경우 완전히 확실하지 않다 작동하거나 감소 충돌이 있습니다.