0
LACファイルに定義されていないすべての記号に対してYACCが構文エラーを報告する可能性があるかどうか疑問に思っていました。Yacc/Lex:拒否記号が定義されていません
例:
レックス
/*dummy.y*/
%token INT ID NUM
%%
var : INT ID "=" NUM ";"
%%
int main(void) {
yyparse();
}
とき
私のプログラムは、構文エラーを報告しますように私はそれを作るのですか、私はこれらの2つのファイルを持っていると言うファイル
/*dummy.l*/
%{
#include "dummy.tab.h"
%%
int return INT;
[a-z]+ return ID;
[0-9]+ return NUM;
%%
Yaccのファイル入力に$(ドル記号)が表示されます。
例:それでも入力時に受け入れます。
int a = 234; $
注:私は、あなたはトークンのいくつかの種類として、すべての入力テキストを認識するためのlexルールを追加する必要があります定義さ
Ahh私は –
'を使って試しました。 ;ルールは、私はあなたの答えに応じて、デフォルトのECHOアクションを引き起こした空のアクションを残しました。今は完璧に動作します。あなたの時間をありがとうございました。 –