我从Antlr4语法为Go语言生成了解析器。
语法在这里: https://raw.githubusercontent.com/antlr/grammars-v4/master/solidity/Solidity.g4
我生成解析器,如下所示: java -jar $ PWD / antlr-4.7.1-complete.jar -Dlanguage = Go -o解析器语法/Solidity.g4
无论solidity_parser.go
出现在哪里,生成的listener.(SolidityListener)
文件都会出现以下错误:
无效的类型断言:侦听器。(SolidityListener)(非接口类型antlr.ParseTreeListener在左侧)
代码段:
func (s *SourceUnitContext) EnterRule(listener antlr.ParseTreeListener) {
if listenerT, ok := listener.(SolidityListener); ok { // <-- here is the error
listenerT.EnterSourceUnit(s)
}
}
可能是什么问题?