我正在尝试使用antlr4在golang中创建一个javascript解析器。我使用的语法是这个(https://github.com/antlr/grammars-v4/tree/master/javascript/ecmascript),我正在遵循此自述文件中的说明 https://github.com/antlr/antlr4/blob/master/doc/go-target.md
所以我从语法中生成了词法分析器和解析器文件,并且我正在尝试测试解析程序。
func Parse(program string) {
is := antlr.NewInputStream(program)
lexer := parser.NewECMAScriptLexer(is)
stream := antlr.NewCommonTokenStream(lexer, antlr.TokenDefaultChannel)
p := parser.NewECMAScriptParser(stream)
antlr.ParseTreeWalkerDefault.Walk(&ParserListener{}, tree)
}
问题是需要一个解析器监听器和一棵树。但是 BaseParser 没有生成树类型对象的功能。https://godoc.org/github.com/antlr/antlr4/runtime/Go/antlr#BaseParserantlr.ParseTreeWalkerDefault.Walk
墨色风雨
LEATH
相关分类