2009-12-24 2 views

답변

1

마음에 오는 첫 번째 일은 이와 비슷한 것입니다. 완료되지 프로그램,하지만 뭔가 당신이 시작하려면 :

스캐너 (렉스) :

%% 
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 
    ; 

을 나는 문법이 경우 완전히 확실하지 않다 작동하거나 감소 충돌이 있습니다.

관련 문제