私の文法の私のいくつかの規則には問題があります。GPPG-Grammar - 規則が使用されない
文法は次のようなものです:
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」と生産の二番目のルールを使用する必要があります。
なぜですか? 3番目のルールは、常に確実に少なくとも一つのシフト/生産attrbt: /* nothing */
があることを警告とともに競合を減らすを生成文法の助けを
Unexpected 'carRet', '[' expected.
どうもありがとう、 アレックス
ありがとう、あなたの大きな助けをありがとう!私はセマンティックアクションの問題を解決し、attrbtを許可することにしました。ありがとう... =) – Alex