Treetop(PEG)文法で使用される省略記号(空の文字列)は何ですか?
質問
Treetop Webサイトには、私には理解できない次の説明があります。
省略記号 空の文字列はどの位置でも一致し、入力を消費しません。単一のシンボルをシーケンスの一部として扱いたい場合、たとえば、代替ルールが共有コードを使用して処理される場合に役立ちます。
ルールの代替 (foo bar / baz '') {{ def値 elements.map {| e |e.text_value} 終わり } 終了
シンボルをシーケンスの一部として扱うのに役立つのはいつですか?誰かがその意味のある例を提供できますか?
解決
私はTreetopに精通していません。この例から、( foo bar / baz '' )
は['foo', 'bar']
または['baz', '']
のいずれかを生成するように思われます。
省略記号を削除すると、['foo', 'bar']
または'baz'
のみ(シーケンス/リスト/配列なし)が取得されます。
所属していません StackOverflow