2016-11-04 9 views
-1

エラー、私は次の操作を実行しようとする..私は私の工夫MAC OS上で、lexとyaccのプログラムに取り組んでいますMAC OSの

をlexと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

ありがとうございます!!!!それは知っている –

関連する問題