2016-11-04 1 views
-1

.. 오류 동안 내 유증 MAC OS에서 렉스와 Yacc에 프로그램에서 일하고 있어요

나는 다음을 수행하려고

:

gcc sample.tab.c lex.yy.c -ly -ll 

을 에러 appea 일부 이제 정지 출사 너무 많은 오류 [-ferror 제한 =]

: 저 오류 및 끝에 많은 ..

치명적인 오류를 나타낸다 rs :

./sample.tab.h:44:6: error: expected identifier 
    if = 260, 
    ^
./sample.tab.h:46:6: error: expected identifier 
    else = 262, 
    ^
./sample.tab.h:48:6: error: expected identifier 
    while = 264, 
    ^
./sample.tab.h:53:6: error: expected identifier 
    return = 269, 

아무도 도와 줄 수 있습니까 ??

감사합니다 ..

+0

[mcve] 바랍니다. 여기서 충분한 정보가 없습니다. – rici

답변

0

비 단말기 용 이름으로 C 키워드를 사용할 수 없습니다. 그렇기 때문에 ALL-CAPS를 비 터미널 이름으로 사용하는 것이 일반적입니다. 그래서 당신은 플렉스 파일

while { return WHILE; } 
return { return RETURN; } 

를 포함 할 수 있습니다 당신이 들소하는 경우에는 별칭을 선언 할 수

%token WHILE "while" 
%token RETURN "return" 

이 같은 규칙을 작성하도록 허용 :

whileStatement: "while" '(' expression ')' statement 
+0

감사합니다 !!!! 그것은 잘 알고있다. –

관련 문제