antlr4 API是否有任何可靠的方法来获取相对于文件开头而不是行的令牌起始字符位置?在做了一些研究之后,我发现唯一的方法是使用 IntStream 的一些自定义实现,它不会将 '\n' 视为行终止符,但也许我错过了一些更简单的方法?如果重要,我正在使用访客 API。
我正在处理的应用程序解析源文件并为另一个使用提供的坐标插入附加代码的应用程序提供插入坐标。如果另一个应用程序在文件中获得符号位置,而不是 line:positionInLine 对,那会方便得多。
您可以使用以下任何一种,具体取决于您是否拥有 aToken
或TerminalNode
.
Token.getStartIndex()
TerminalNode.getSourceInterval()
.a
TerminalNode.getSymbol()
.getStartIndex()