Quiero analizar una cadena que se genera dentro de una instancia de clase llamando a un analizador generado por peggy. Una de las acciones de análisis necesita invocar una función definida dentro de la instancia de la clase, para que tenga acceso al entorno de esa instancia, incluido esto. ¿Cómo puedo hacer que eso suceda?
Puede configurar un "inicializador global" al comienzo de su gramática. Debería poder configurar su entorno allí. De los documentos :
const parser = peggy.generate(` { // options are available in the per-parse initializer console.log(options.validWords); // outputs "[ 'boo', 'baz', 'boop' ]" } validWord = @word:$[az]+ &{ return options.validWords.includes(word) } `); const result = parser.parse("boo", { validWords: [ "boo", "baz", "boop" ] }); console.log(result); // outputs "boo"