問題タブ [irony]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
61 参照

c# - 任意の順序で使用できるさまざまな非端末を生成する皮肉な BnfExpression

私は、プロダクションが任意の順序で来ることを可能にする文法を作成しようとしています. 例えば:

両方とも受け入れられるべきです。

これまでは、次のように各プロダクションの順列を使用するだけで済みました。

次のコードは、+ が連結を意味する皮肉な BnfExpresion を使用して記述されています。

しかし、このアプローチは、6 つの異なる非端末でプロダクションを並べ替えようとしたときに問題になりました。6 階乗は 720 であり、コンパイラ エラー (式が長すぎるか、コンパイルするには複雑すぎるため) が発生するため、C# で処理するには多すぎます。

さまざまな可能性をすべて並べ替えることなく、「任意の順序」を達成する方法はありますか?