我有以下的定義在我的lex文件:萊克斯正則表達式得到了一些額外的字符
L [a-zA-Z_]
A [a-zA-Z_0-9]
%%
{L}{A}* { yylval.id = yytext; return IDENTIFIER; }
而且我在我的YACC文件中的以下內容:
primary_expression
: IDENTIFIER { puts("IDENTIFIER: "); printf("%s", $1); }
我的源代碼(一個我「米分析)被分配如下:
ab= 10;
出於某種原因,即printf("%s", $1);
部分是印刷ab=
而不僅僅是ab
。
我很確定這是打印ab=
的部分,因爲當我刪除printf("%s", $1);
標識符根本不打印。
我真的跑出了想法。我究竟做錯了什麼?
讓我知道我是否可以更清楚。