我的一些语法规则有问题。
语法如下:
defLINES : carrRet
| defLine carrRet
| defLines defLine carrRet
;
defLine : error carrRet {yyerrok();}
| "DEF" kwType attrbt ID
| "DEF" kwType ID fieldSuff
;
kwType : "INT"
| "REAL"
;
fieldSuff: "[" expr "]"
| "[" expr "," expr "]"
;
attrbt : /* nothing */
| "PHU" intValue
;
使用输入检查:
DEF INT testvar1
DEF REAL testvar2
对于此输入,应使用以“defLine”为首的产生式的第二条规则。
为什么不呢?将始终使用第三条规则并引发错误
Unexpected 'carRet', '[' expected.
非常感谢您的帮助,亚历克斯