A cosa servono i puntini di sospensione (stringa vuota) in una grammatica Treetop (PEG)?

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

  •  27-10-2019
  •  | 
  •  

Domanda

Il sito web di Treetop fornisce la seguente spiegazione che non capisco

Ellissi Una stringa vuota corrisponde in qualsiasi posizione e non consuma input.È utile quando desideri trattare un singolo simbolo come parte di una sequenza, ad esempio quando una regola alternativa verrà elaborata utilizzando codice condiviso.

regola alts (foo bar / baz '') { valore def elements.map {| e |e.text_value} fine } fine

quando è utile trattare un simbolo come parte di una sequenza?Qualcuno può fornire un esempio significativo di ciò?

È stato utile?

Soluzione

Non conosco Treetop.Dall'esempio sembrerebbe che ( foo bar / baz '' ) produca ['foo', 'bar'] o ['baz', ''].

Se rimuovi i puntini di sospensione, otterrai ['foo', 'bar'] o semplicemente 'baz' (nessuna sequenza / elenco / matrice).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top