文法のルールのいくつかに問題があります。
文法は次のようなものです。
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」というヘッドを持つプロダクションの 2 番目のルールを使用する必要があります。
なぜそうしないのですか?3 番目のルールが常に使用され、エラーがスローされます
Unexpected 'carRet', '[' expected.
助けてくれてありがとう、アレックス