0

我用 netbeans7 和 ANTLR4 编写编辑器
我在 my.g4 文件中有一行

Label       : {(getCharPositionInLine()==0)}? ID; 

这适用于静态文件,但在编辑 getCharPositionInLine() 时,在其他地方经常返回 0。
如何在词法分析器中获得真实位置?

更新
我创建了这个问题的例子
https://github.com/daimor/SimpleANTLR

4

1 回答 1

1

您的错误可能在于您构建词法分析器和/或输入流的方式(即您未在此处显示的代码)。您上面描述的谓词对于 ANTLR 4 词法分析器将按预期工作。

此外,如果getCharPositionInLine()==0,则以下条件之一也为真:

  1. _input.index()==0
  2. _input.LA(-1)=='\n'
于 2013-06-26T21:09:45.000 回答