来自 Peggy 生成的解析器的回调

Callback from Peggy generated parser

我想通过调用 peggy 生成的解析器来解析 class 实例中生成的字符串。其中一个解析操作需要调用 class 实例中定义的函数,以便我可以访问该实例的环境,包括这个。我怎样才能做到这一点?

您可以在语法的开头设置“全局初始化器”。您应该能够在那里设置您的环境。来自 the docs:

const parser = peggy.generate(`
{
  // options are available in the per-parse initializer
  console.log(options.validWords);  // outputs "[ 'boo', 'baz', 'boop' ]"
}

validWord = @word:$[a-z]+ &{ return options.validWords.includes(word) }
`);

const result = parser.parse("boo", {
  validWords: [ "boo", "baz", "boop" ]
});

console.log(result);  // outputs "boo"