Package spoon.reflect.visitor
package spoon.reflect.visitor
This package defines visitor, scanner, and scanner-based query API for Java programs reified in the meta-model.
Related Documentation
-
ClassDescriptionFind local variables catch, parameters, fields, super fieldsCaches some field and nested type namesThis annotation defines a method that contains children of an element of the meta model.Computes source code representation of the Comment literalDefines the core bi-scan responsibility.Provides an empty implementation of
CtImportVisitor
.Provides an empty implementation of CtVisitor.A class to be able to iterate over the children elements in the tree of a given node, in breadth-first order.This visitor implements a deep-search scan on the model for 2 elements.This class defines a scanner that maintains a scanning stack for contextual awareness.This interface defines the visitor for the different types of CtImportThis class provides an abstract implementation of the visitor that allows its subclasses to scan the metamodel elements by recursively using their (abstract) supertype scanning methods.A class to be able to iterate over the children elements in the tree of a given node, in depth-first order.This visitor implements a deep-search scan on the model.Define a visitable element in spoon.This interface defines the visitor for the Spoon metamodel, as defined inspoon.reflect.declaration
,spoon.reflect.code
, andspoon.reflect.reference
.Defines order of imports: 1) imports are ordered alphabetically 2) static imports are lastA visitor for generating Java code from the program compile-time model.Implementation ofTokenWriter
, which writes all tokens toPrinterHelper
ExtendsCtScanner
, to support early termination of scanning process and scan listeners.Whether to print generic types for references.This interface defines a filter for program elements.Forces fully qualified identifiers by making many elements explicit (by calling setImplicit(false)).Marks all types references as implicit so all types will get imported.Updates list of import statements of compilation unit followingCtElement.isImplicit()
.Detects conflicts needed to be required be a fully-qualified name. 1) Example: conflict of field name with an variable name and fixes it by making field target explicit.Used to compute the imports required to write readable code with no fully qualified names.A scanner that calculates the imports for a given model.This enum defines the Java keywords and some helper method to determine if some strings are Java identifiers.Represents that a lexical scope in the language Note that scopes are changing after variable declaration.ACtScanner
which provides current lexical scope of currently scanned AST node.Helper which assures consistent printing of lists prefixed with `start`, separated by `separator` and suffixed by `end`.
If there is no item in the list then it prints `start` and then `end`
If there is one item in the list then it prints `start`, item and then `end`
If there is more then one items in the list then it prints `start`, items separated by `separator` and then `end`This scanner checks that a program model is consistent with regards to the parent elements (children must have the right parent).Computes source code representation of the operatorThis annotation defines a method that returns the parent of an element of the meta model.This interface defines the pretty printers.Supports configurable printing of text with indentations and line and column countingThis class provides some useful methods to retrieve program elements and reference through aCtScanner
-based deep search.This annotation defines an element as Root of the meta model.Responsible for writing a token while pretty-printing.