2012-01-11 2 views
1

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

省略記号 を理解していない空の文字列を任意の位置にマッチし、何も入力を消費しない以下の説明を提供します。 1つのシンボルをシーケンスの一部として扱いたい場合、たとえば別のルールが共有コードを使用して処理される場合などに便利です。

ALTのルール(FOOバー/バズ '') { DEF値 elements.map {| E | e.text_value} 端} 端

シーケンスの一部として記号を治療するのに有用ですか?誰かがそれの意味のある例を提供できますか?

答えて

0

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

省略記号を削除すると、['foo', 'bar']または'baz'(シーケンス/リスト/配列なし)のいずれかになります。

+0

これは、ただ1つのことがあっても配列を生成するようにしているようです。入力を常に配列として期待するジェネリックコードを使用したい場合。今私はそれを得る。 – ecerulm

関連する問題