¿Cómo combino los tokens comenzando con "?" En Pegjs
-
21-12-2019 - |
Pregunta
Tengo que unir tokens como este usando pegjs:
?xxx ?yyy
Pensé que esto funcionaría:
variable
= str:?[a-z]+ { console.log('---->>>',str); return str.join(""); }
Cuando analizo la fuente, aparece un error:
Objeto ?no tiene método 'unirse'
Esto se debe a que el str
la variable no es una matriz de los tokens coincidentes...¿Alguna idea de cómo debería hacerse esto?
Solución
Puede agrupar literales:
variable
= str:("?"[a-z]+)
en ese caso str
será ["?",["a","b","c"]]
para ?abc
, o si ?
no es necesariamente el primer carácter, simplemente inclúyelo en la clase:
variable
= str:[?a-z]+
entonces obtendrás una matriz normal ["?","a","b","c"]
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow