0

私はnetbeans7とANTLR4でエディターを書いて
います.g4ファイルに行があります

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

これは静的ファイルではうまく機能しますが、編集中に getCharPositionInLine() が他の場所で 0 を返すことがよくあります。
レクサーで実際の位置を取得するにはどうすればよいですか?

更新
この問題で例を作成しました
https://github.com/daimor/SimpleANTLR

4

1 に答える 1

1

エラーは、レクサーおよび/または入力ストリーム (つまり、ここに示していないコード) を作成する方法にある可能性があります。上記の述語は、ANTLR 4 lexer で期待どおりに機能します。

また、 の場合getCharPositionInLine()==0、次の条件のいずれか 1 つも当てはまります。

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