0

例如对于规则:

%token TOKEN
%%
foo: TOKEN;

%%

考虑到 TOKEN 是词法标记,那么当我解析时:

tokken

它会显示Syntax error expected TOKEN recive tokken有一种方法可以改变它,所以它不会说 TOKEN name insted the lexem 所以:Syntax error expected token recive tokken

4

1 回答 1

0

好吧,经过一些深入的研究,我发现它是这样的:

关于令牌的声明:

解析器.y:

%token TOKEN "token"

%%

foo : TOKEN

这使得当您编写tokken错误消息时会显示在令牌声明 ( )token的字符串中找到的内容。%token TOKEN "token" 我会做一个更好的例子:

解析器.y:

%token TOKEN "token"   
%token PYC   ";"


%%

foo : TOKEN PYC

如果您的程序是token.那么错误将是unexpected "." expecting ";"。没有“;” 就行 %token PYC ";"那么错误将是unexpected "." expecting PYC哪个更难以理解。

于 2013-05-06T07:30:53.410 回答