|
Compiler Tree API | ||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
java.lang.Objectcom.sun.source.util.TreeScanner<R,P>
public class TreeScanner<R,P>
すべての子ツリーノードを巡回する TreeVisitor です。特定の型のノードを巡回するには、対応する visitXYZ メソッドを単にオーバーライドします。独自のメソッド内では、super.visitXYZ を呼び出して、下位ノードを巡回します。
visitXYZ メソッドのデフォルトの実装では、次の結果になります。
scan を呼び出した結果と同じになります。子は、単一のノードでも、ノードのリストでもかまいません。
scan を呼び出し、2 番目以降の各スキャンの結果を、それまでの累積的な結果と結合することで結果が得られます。これは、reduce(R, R) メソッドによる結果と同様です。それぞれの子は、単一のノードでも、ノードのリストでもかまいません。reduce メソッドのデフォルトの動作では、visitXYZ メソッドの結果は、最後にスキャンされた子の結果になります。
ツリー内の識別子ノードの数をカウントする例を次に示します。
class CountIdentifiers extends TreeScanner{ @Override public Integer visitIdentifier(IdentifierTree node, Void p) { return 1; } @Override public Integer reduce(Integer r1, Integer r2) { return (r1 == null ? 0 : r1) + (r2 == null ? 0 : r2); } }
| コンストラクタの概要 | |
|---|---|
TreeScanner()
|
|
| クラス java.lang.Object から継承されたメソッド |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| コンストラクタの詳細 |
|---|
public TreeScanner()
| メソッドの詳細 |
|---|
public R scan(Tree node,
P p)
public R scan(Iterable<? extends Tree> nodes,
P p)
public R reduce(R r1,
R r2)
public R visitCompilationUnit(CompilationUnitTree node,
P p)
TreeVisitor<R,P> 内の visitCompilationUnit
public R visitImport(ImportTree node,
P p)
TreeVisitor<R,P> 内の visitImport
public R visitClass(ClassTree node,
P p)
TreeVisitor<R,P> 内の visitClass
public R visitMethod(MethodTree node,
P p)
TreeVisitor<R,P> 内の visitMethod
public R visitVariable(VariableTree node,
P p)
TreeVisitor<R,P> 内の visitVariable
public R visitEmptyStatement(EmptyStatementTree node,
P p)
TreeVisitor<R,P> 内の visitEmptyStatement
public R visitBlock(BlockTree node,
P p)
TreeVisitor<R,P> 内の visitBlock
public R visitDoWhileLoop(DoWhileLoopTree node,
P p)
TreeVisitor<R,P> 内の visitDoWhileLoop
public R visitWhileLoop(WhileLoopTree node,
P p)
TreeVisitor<R,P> 内の visitWhileLoop
public R visitForLoop(ForLoopTree node,
P p)
TreeVisitor<R,P> 内の visitForLoop
public R visitEnhancedForLoop(EnhancedForLoopTree node,
P p)
TreeVisitor<R,P> 内の visitEnhancedForLoop
public R visitLabeledStatement(LabeledStatementTree node,
P p)
TreeVisitor<R,P> 内の visitLabeledStatement
public R visitSwitch(SwitchTree node,
P p)
TreeVisitor<R,P> 内の visitSwitch
public R visitCase(CaseTree node,
P p)
TreeVisitor<R,P> 内の visitCase
public R visitSynchronized(SynchronizedTree node,
P p)
TreeVisitor<R,P> 内の visitSynchronized
public R visitTry(TryTree node,
P p)
TreeVisitor<R,P> 内の visitTry
public R visitCatch(CatchTree node,
P p)
TreeVisitor<R,P> 内の visitCatch
public R visitConditionalExpression(ConditionalExpressionTree node,
P p)
TreeVisitor<R,P> 内の visitConditionalExpression
public R visitIf(IfTree node,
P p)
TreeVisitor<R,P> 内の visitIf
public R visitExpressionStatement(ExpressionStatementTree node,
P p)
TreeVisitor<R,P> 内の visitExpressionStatement
public R visitBreak(BreakTree node,
P p)
TreeVisitor<R,P> 内の visitBreak
public R visitContinue(ContinueTree node,
P p)
TreeVisitor<R,P> 内の visitContinue
public R visitReturn(ReturnTree node,
P p)
TreeVisitor<R,P> 内の visitReturn
public R visitThrow(ThrowTree node,
P p)
TreeVisitor<R,P> 内の visitThrow
public R visitAssert(AssertTree node,
P p)
TreeVisitor<R,P> 内の visitAssert
public R visitMethodInvocation(MethodInvocationTree node,
P p)
TreeVisitor<R,P> 内の visitMethodInvocation
public R visitNewClass(NewClassTree node,
P p)
TreeVisitor<R,P> 内の visitNewClass
public R visitNewArray(NewArrayTree node,
P p)
TreeVisitor<R,P> 内の visitNewArray
public R visitParenthesized(ParenthesizedTree node,
P p)
TreeVisitor<R,P> 内の visitParenthesized
public R visitAssignment(AssignmentTree node,
P p)
TreeVisitor<R,P> 内の visitAssignment
public R visitCompoundAssignment(CompoundAssignmentTree node,
P p)
TreeVisitor<R,P> 内の visitCompoundAssignment
public R visitUnary(UnaryTree node,
P p)
TreeVisitor<R,P> 内の visitUnary
public R visitBinary(BinaryTree node,
P p)
TreeVisitor<R,P> 内の visitBinary
public R visitTypeCast(TypeCastTree node,
P p)
TreeVisitor<R,P> 内の visitTypeCast
public R visitInstanceOf(InstanceOfTree node,
P p)
TreeVisitor<R,P> 内の visitInstanceOf
public R visitArrayAccess(ArrayAccessTree node,
P p)
TreeVisitor<R,P> 内の visitArrayAccess
public R visitMemberSelect(MemberSelectTree node,
P p)
TreeVisitor<R,P> 内の visitMemberSelect
public R visitIdentifier(IdentifierTree node,
P p)
TreeVisitor<R,P> 内の visitIdentifier
public R visitLiteral(LiteralTree node,
P p)
TreeVisitor<R,P> 内の visitLiteral
public R visitPrimitiveType(PrimitiveTypeTree node,
P p)
TreeVisitor<R,P> 内の visitPrimitiveType
public R visitArrayType(ArrayTypeTree node,
P p)
TreeVisitor<R,P> 内の visitArrayType
public R visitParameterizedType(ParameterizedTypeTree node,
P p)
TreeVisitor<R,P> 内の visitParameterizedType
public R visitTypeParameter(TypeParameterTree node,
P p)
TreeVisitor<R,P> 内の visitTypeParameter
public R visitWildcard(WildcardTree node,
P p)
TreeVisitor<R,P> 内の visitWildcard
public R visitModifiers(ModifiersTree node,
P p)
TreeVisitor<R,P> 内の visitModifiers
public R visitAnnotation(AnnotationTree node,
P p)
TreeVisitor<R,P> 内の visitAnnotation
public R visitOther(Tree node,
P p)
TreeVisitor<R,P> 内の visitOther
public R visitErroneous(ErroneousTree node,
P p)
TreeVisitor<R,P> 内の visitErroneous
|
Compiler Tree API | ||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||