1

SLRパーサー自体での私の理解が、ハンドルや実行可能なプレフィックスなどを使用してシフト削減の競合を解決する限り。では、なぜシフト削減の競合が私を悩ませる必要があるのでしょうか?

4

2 に答える 2

2

競合とは、生成されたパーサーが、文法によって記述された言語全体ではなく、その言語のサブセットを受け入れる可能性があることを意味します。文法に従って正当であるいくつかの構成を解析しないことを気にしない場合は、shift/reduce および reduce/reduce の競合を無視できます。

現在、競合は文法のあいまいさが原因である場合があります。つまり、同じものを解析する方法が複数あることを意味します。その場合、パーサーは言語全体を解析するため、競合を無視できる場合があります。ただし、常にそうとは限りません (実際には、ルールではなく例外です)。そのため、一般的には、文法が競合する理由と、それがパーサーに与える影響を調べる必要があります。

于 2012-10-17T17:02:13.017 に答える
0

それがelse/ifの競合であれば、心配する必要はありませんあなたが確かに心配しなければならない他のことはすべて、実際にデバッグするのが非常に難しい場合があります。幸いなことに、あなたは単純な文法を学んでおり、比較対照するだけで十分な実用的な単純な例がたくさんあります。

于 2012-10-19T05:55:36.287 に答える