我最近开始学习antlr和它在go中的工作,我在使用go中的库时遇到了一个导入问题,例如,在我的antlr文件的开头:
grammar Test;@header { import "strconv"}
grammar Test;
@header {
import "strconv"
}
然后用antlr4 -Dlanguage=Go Test.g4命令编译它,然后我有两个文件,parser,使用这个包,和lexer,包含一个没有使用的导入,这就是为什么我不能编译我的项目。我希望在一些标志的帮助下,我将能够编译我的项目。
antlr4 -Dlanguage=Go Test.g4
parser
lexer
du7egjpx1#
使用@parser::header将其仅包含在解析器中。
@parser::header
kmynzznz2#
你可以使用一个技巧来强制使用这个包,例如,写var _= strconv.Atoi,那么头文件看起来就像这样:
var _= strconv.Atoi
@header { import "strconv" var _ = strconv.Atoi}
var _ = strconv.Atoi
2条答案
按热度按时间du7egjpx1#
使用
@parser::header
将其仅包含在解析器中。kmynzznz2#
你可以使用一个技巧来强制使用这个包,例如,写
var _= strconv.Atoi
,那么头文件看起来就像这样: