Wofür wird die Ellipse (leere Zeichenfolge) in einer Treetop-Grammatik (PEG) verwendet?

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

  •  27-10-2019
  •  | 
  •  

Frage

Die Treetop-Website enthält die folgende Erklärung, die ich nicht verstehe

Ellipse Eine leere Zeichenfolge stimmt an jeder Position überein und verbraucht keine Eingabe.Dies ist nützlich, wenn Sie ein einzelnes Symbol als Teil einer Sequenz behandeln möchten, z. B. wenn eine alternative Regel mit gemeinsam genutztem Code verarbeitet wird.

Regel Alts (foo bar / baz '') { def Wert elements.map {| e |e.text_value} Ende }} Ende

Wann ist es sinnvoll, ein Symbol als Teil einer Sequenz zu behandeln?Kann jemand ein aussagekräftiges Beispiel dafür liefern?

War es hilfreich?

Lösung

Ich kenne Treetop nicht.Aus dem Beispiel geht hervor, dass ( foo bar / baz '' ) entweder ['foo', 'bar'] oder ['baz', ''] erzeugen würde.

Wenn Sie die Auslassungspunkte entfernen, erhalten Sie entweder ['foo', 'bar'] oder nur 'baz' (keine Sequenz / Liste / Array).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top