基本的な クラスのASTNodeでこのメソッドを実装すると、別のASTNode行番号を簡単に取得できますか? exampelについては 、私はコードソースコード内で一般的なASTNodeの行番号を取得する方法は?
@Override
public boolean visit(MethodDeclaration node) {
int lineNum = ((CompilationUnit) node.getRoot()).getLineNumber(node.getStartPosition());
return super.visit(node);
}
を記述する必要がMethodDeclarationの位置を取得したい場合しかし、私はこの
@Override
public boolean visit(MethodDeclaration node) {
int lineNum = node.getLineNumber();
return super.visit(node);
}
CompilationUnit
のような位置情報はlineEndTable
でgetLineNumber
が実装と呼ばれる方法を提供し、取得したいと一般ASTNode
はstartPosition
という名前のフィールドしか持たないので、抽象クラスASTNode
でlineEntTable
を取得することは可能でしょうか?
あなたの提案に感謝します。私は 'jdt'を使っていくつかの文法チェッカーを完成させるプロジェクトを持っていますので、' CompilationUnit'とjavaソースファイルの間のマッピング関係を にする必要があります。マッピング関係を得るために書いた余分なコードをコメントできますか? –
そして、 'lineEndTable'を' ASTNode'レベルでコピーする方法を本当に知りたいです。@ Stephan Herrmann –
'lineEndTable'は' CompilationUnit'でプライベートなので、外部での使用は意図していません。 JDTはオープンソースなので、ソースを自由に変更することができますが、その場合は自分が何をしているかを知っていると想定します。さらに、私はあなたの訪問方法に1行のコードを保存するだけで、なぜ苦労しているのか分かりません。 –