Treetop(PEG)文法で使用される省略記号(空の文字列)は何ですか?

StackOverflow https://stackoverflow.com/questions/8828211

  •  27-10-2019
  •  | 
  •  

質問

Treetop Webサイトには、私には理解できない次の説明があります

省略記号 空の文字列はどの位置でも一致し、入力を消費しません。単一のシンボルをシーケンスの一部として扱いたい場合、たとえば、代替ルールが共有コードを使用して処理される場合に役立ちます。

ルールの代替 (foo bar / baz '') {{ def値 elements.map {| e |e.text_value} 終わり } 終了

シンボルをシーケンスの一部として扱うのに役立つのはいつですか?誰かがその意味のある例を提供できますか?

役に立ちましたか?

解決

私はTreetopに精通していません。この例から、( foo bar / baz '' )['foo', 'bar']または['baz', '']のいずれかを生成するように思われます。

省略記号を削除すると、['foo', 'bar']または'baz'のみ(シーケンス/リスト/配列なし)が取得されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top