この質問に基づいて、このBisonコードのシフト/削減の競合はどこから来ていますか? 次のような構文の文法を作成しようとしています。
-10 + 3 - 2
または+4 - 2 + 1
。最初の整数には明らかに符号があります。
これは私がすでに持っているものです:
%token INT
...
Term: INT;
TermOps: "+" | "-";
SignedTerm: TermOps Term | Term;
reminder: /* EPS */ | TermOps TermList;
TermList: SignedTerm reminder;
あいまいさを生み出すため、 のルールSignedTerm
が明らかに間違っていることはわかっていますが、どうすればそれを解決できますか?