私はANTLR3C v3.4を使用しています。文法のスニペットは次のとおりです。
include_cmd
: Include Double_Quote file_name Double_Quote
{
my_model->add_include($file_name.text, LT(0)->getLine(LT(0)));
}
;
しかし、LT(0)->getLine(LT(0)) が間違った行番号を返すことがわかりました。最初の行の場合、LT() は 3 を返します。3 行目の場合は 5 を返します。常にオフセットがあるようです。
これは ANTLR3c のバグですか、それとも LT() の使用が間違っていますか? LT(0) がトークン「インクルード」を返し、そこから行番号を取得すると仮定します。
ありがとう!