Parsekit から: 個々の引用文字を一致させる方法は?
パーサーを定義する場合:
@start = int;
int = /[+-]?[0-9]+/
残念ながら、以下を含めない限り、「+」で始まる整数は解析されません。
@numberState = "+" // at the top.
上記の数値解析では、"Symbol" デフォルト パーサーは言及されていませんが、まだアクティブであり、ユーザー定義のパーサーをオーバーライドします。
ディレクティブを追加することで数字を修正できます。「++」のパーサーを作成しようとしている場合はどうなりますか? 次のパーサーを機能させるディレクティブは見つかりませんでした。
@start = plusplus;
plusplus = "++";
ユーザーパーサーに対するデフォルトパーサーの影響は、非常に恣意的なようです。「++」を解析できないのはなぜですか?
デフォルトのパーサーを完全にオフにすることは可能ですか? ありふれたことをしていないと邪魔になりそうです。
または多分私はそれをすべて間違っています。
編集:
plus plus を解析するパーサーを見つけました。
@start = plusplus;
plusplus = plus plus;
plus = "+";
答えは次のとおりだと思います。パーサーで定義されたリテラル記号は、デフォルトのパーサー間で重複することはできません。少なくとも 1 回は完全に封じ込める必要があります。