です: S -> if E then S
| if E then S else S
| a
E -> b
私は私の解決策よりも複雑である解決策を見つけたが、私は私の解決策が正しいかどうかはわからない。 S -> if E then T else S
| if E then S
| a
T -> if E then T else T
| a
私は、LL構文解析(語彙解析)を作成するための命題論理の文法を書こうとしています。 私は、次の文法試してみました: F = F and F
F = F or F
F = F => F
F = F <=> F
F = not F
F = (F)
D = a
を私はそれがあいまいであることを発見しました。私はあいまいさを取り除くために以下を試みました: F = F and A
F =
あいまいな文法: E - > UV | EBE | V | [E] V - > a | b U - > < | > B - >? | ! | @ 一部の情報: 優先順序:? <! < @、単項演算子(<、>)が最高である バイナリ演算子?、!、@は正しい結合です。 私の試み: E - > UV | EBT | V | [E] T - > E V - > | b U - > < | > B - >?