これが私の bnf グラマーの一部です。
//this works
<ter-stmnt> ::= <rval> '?' <rval> ':' <rval>
//this gets an error
<ter-stmnt> ::= <bool-val> '?' <rval> ':' <rval>
<bool-val> ::= <rval>
これは非常識に思えますが、2 番目は 1 番目とまったく同じであるべきではありませんか? 読むときは2番目のbcを好みます。何でも意味する一般的なrvalとは対照的に、bool値を期待していることがわかります。
Gold Parser 3.4.4 を使用しています