0

CFGと一緒に仕事をしてからしばらく経ちました。とにかく、私はすべての操作を適切に実行する特定の文法を持っていますが、最後に (他の標準的な数学操作を除外しました)。

S ::= S+T | ST | T

T ::= 非終端 | ID | -S | (S)

私が持っているすべてのものごとに.. -Sは-Tであるべきだと知っています。しかし、さらに..それは優先順位に何をしますか。あいまいですか?数学的には、明らかに正しくないことがわかります..しかし、それはあいまいさの問題に違いをもたらすべきではありません.

それが -T だった場合、それは (S) と同じ優先順位を持つでしょうか?

Start 状態にループバックすることで、これがどのように発生するかを実際に理解しようとしています。

4

1 に答える 1

0

-S を -T に変更すると、あいまいさが解決されます。変更前のあいまいな文の例: -ab. -(ab) ですか、それとも (-a)-b ですか?

しかし、この変更により、あいまいさはなくなりました。

優先順位については、あなたの特定の例では、-T と (S) の間に規則がある必要はありません。これは、優先順位を持つのは常に内側の規則であるためです。これはまさに期待どおりの動作です。

于 2011-09-28T13:23:28.120 に答える