Class TreeDebug

  extended by javax.annotation.processing.AbstractProcessor
      extended by checkers.util.debug.TreeDebug
All Implemented Interfaces:

public class TreeDebug
extends AbstractProcessor

A utility class for displaying the structure of the AST of a program.

The class is actually an annotation processor; in order to use it, invoke the compiler on the source file(s) for which you wish to view the structure of the program. You may also wish to use the -proc:only javac option to stop compilation after annotation processing. (But, in general -proc:only causes type annotation processors not te be run.)

The utility will display the Tree.Kind of each node it encounters while scanning the AST, indented according to its depth in the tree. Additionally, the names of identifiers and member selection trees are displayed (since these names are not tree nodes and therefore not directly visited during AST traversal).

Nested Class Summary
Modifier and Type Class and Description
static class TreeDebug.Visitor
Field Summary
Modifier and Type Field and Description
Fields inherited from class javax.annotation.processing.AbstractProcessor
Constructor Summary
Constructor and Description
Method Summary
Modifier and Type Method and Description
protected  TreeDebug.Visitor createSourceVisitor(CompilationUnitTree root)
 boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv)
Methods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, init, isInitialized
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public TreeDebug()
Method Detail


protected TreeDebug.Visitor createSourceVisitor(CompilationUnitTree root)


public boolean process(Set<? extends TypeElement> annotations,
                       RoundEnvironment roundEnv)
Specified by:
process in interface Processor
Specified by:
process in class AbstractProcessor