0

アクティブな %glr-parser ディレクティブと組み合わせて、アクションから bison-rule を受け入れることは可能ですか?

次のようなもの:

aRule : 'a' 'b' 'c' { /* いくつかの計算を行い、それらに応じてこのルールを許可/禁止し、yyparse 関数から戻らずに解析を続行します。*/};

4

1 に答える 1

1

AFAICSグラマーの一部を動的に有効または無効にする方法はありません。ハックとして、特別なトークンをブランチのガードとして追加し、何らかの条件が満たされたときにトークナイザーがこの追加のトークンを生成できるようにすることができます (私は時々、解析エラーを強制するために追加の FORCE_ERROR トークンを使用します)。はい、これは醜いです。

于 2010-04-15T13:42:45.217 に答える