Class TreePrinter
- All Implemented Interfaces:
Processor
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 AST 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 to be run.)
A simple main method is also provided. You can invoke this tool as:
java org.checkerframework.common.util.debug.TreePrinter *.java
The visitor simply uses the javac Pretty visitor to output a nicely formatted version of the AST.
TODO: I couldn't find a way to display the result of Pretty, therefore I wrote this simple class. If there already was a way, please let me know.
TODO: what I really want is something like SignaturePrinter, but for the whole source of the program, that is, for each type in the program use the factory to determine the defaulted annotations on the type.
- See Also:
-
Field Summary
Fields inherited from class javax.annotation.processing.AbstractProcessor
processingEnv
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic void
void
typeProcess
(TypeElement element, TreePath tree) Processes a fully-analyzed class that contains a supported annotation (seeAbstractProcessor.getSupportedAnnotationTypes()
).Methods inherited from class org.checkerframework.javacutil.AbstractTypeProcessor
getCompilerLog, init, process, typeProcessingOver, typeProcessingStart
Methods inherited from class javax.annotation.processing.AbstractProcessor
getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, isInitialized
-
Constructor Details
-
TreePrinter
public TreePrinter()
-
-
Method Details
-
typeProcess
Description copied from class:AbstractTypeProcessor
Processes a fully-analyzed class that contains a supported annotation (seeAbstractProcessor.getSupportedAnnotationTypes()
).The passed class is always valid type-checked Java code.
- Specified by:
typeProcess
in classAbstractTypeProcessor
- Parameters:
element
- element of the analyzed classtree
- the tree path to the element, with the leaf being aClassTree
-
main
- Throws:
Exception
-