看来这可以通过提供 CharStream 的自定义实现来完成。但是,我们遇到了一个问题,因为调用了 substring 方法。它是从生成的解析器调用的 CommonToken.getText 调用的。我想也许我们可以缓冲回最新的标记调用,但它根本没有被调用。
那么,有没有一种直接的方法来确定一个人必须缓冲多远来处理未来的子字符串调用,或者有没有一种方法可以修改我们的词法分析器/解析器语法以某种方式获取字符串数据,而不涉及getText 调用,还是使用采用 String 而不是开始/结束对的构造函数构造 CommonToken?