A cosa servono i puntini di sospensione (stringa vuota) in una grammatica Treetop (PEG)?
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ò?
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).