¿Para qué se utilizan los puntos suspensivos (cadena vacía) en una gramática Treetop (PEG)?

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

  •  27-10-2019
  •  | 
  •  

Pregunta

El sitio web de Treetop ofrece la siguiente explicación que no entiendo

Elipsis Una cadena vacía coincide en cualquier posición y no consume entrada.Es útil cuando desea tratar un solo símbolo como parte de una secuencia, por ejemplo, cuando se procesará una regla alternativa utilizando código compartido.

reglas alternativas (foo bar / baz '') { valor def elements.map {| e |e.text_value} fin } final

¿Cuándo es útil tratar un símbolo como parte de una secuencia?¿Alguien puede dar un ejemplo significativo de eso?

¿Fue útil?

Solución

No estoy familiarizado con Treetop.A partir del ejemplo, parecería que ( foo bar / baz '' ) produciría ['foo', 'bar'] o ['baz', ''].

Si elimina los puntos suspensivos, obtendría ['foo', 'bar'] o simplemente 'baz' (sin secuencia / lista / matriz).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top