# Package org.codehaus.groovy.ast

Groovy AST nodes for the syntax of the language

- Interface Summary
  Interface | Description
  --- | ---
  GroovyClassVisitor | A special visitor for working with the structure of a class.
  GroovyCodeVisitor | An implementation of the visitor pattern for working with ASTNodes.
  NodeMetaDataHandler | An interface to mark a node being able to handle metadata.
  Variable | interface to mark a AstNode as Variable.

- Class Summary
  Class | Description
  --- | ---
  AnnotatedNode | Base class for any AST node which is capable of being annotated
  AnnotationNode | Represents an annotation which can be attached to interfaces, classes, methods, fields, parameters, and other places.
  ASTNode | Base class for any AST node.
  AstToTextHelper | Helper class for converting AST into text.
  ClassCodeExpressionTransformer | Transforms expressions in a whole class.
  ClassCodeVisitorSupport |
  ClassHelper | Helper for `ClassNode` and classes handling them.
  ClassNode | Represents a class in the AST.
  CodeVisitorSupport | Abstract base class for any GroovyCodeVisitor which by default just walks the code and expression tree
  CompileUnit | Represents the entire contents of a compilation step which consists of one or more `ModuleNode` instances.
  CompileUnit.ConstructedOuterNestedClassNode | Represents a resolved type as a placeholder.
  ConstructorNode | Represents a constructor declaration
  DynamicVariable |
  EnumConstantClassNode | Represents the anonymous inner class for an enum constant This subtype is needed so that EnumVisitor can differentiate between the scenarios when a InnerClassNode represents anonymous inner class for an enu constant and when it represents an enum class defined inside another class
  FieldNode | Represents a field (member variable)
  GenericsType | This class is used to describe generic type signatures for ClassNodes.
  GenericsType.GenericsTypeName | Represents GenericsType name TODO In order to distinguish GenericsType with same name(See GROOVY-8409), we should add a property to keep the declaring class.
  ImportNode | Represents an import statement.
  InnerClassNode | Represents an inner class declaration
  InterfaceHelperClassNode | Represents an inner class defined as helper for an interface
  MethodCallTransformation |
  MethodInvocationTrap |
  MethodNode | Represents a method declaration.
  MixinASTTransformation | Deprecated. static mixins have been deprecated in favour of traits (trait keyword).
  MixinNode | Represents a mixin which can be applied to any ClassNode to implement mixins
  ModifierNode | Represents a modifier
  ModuleNode | Represents a module, which consists typically of a class declaration but could include some imports, some statements and multiple classes intermixed with statements like scripts in Python or Ruby
  PackageNode | Represents a package in the AST.
  Parameter | Represents a parameter on a constructor or method call.
  PropertyNode | Represents a property (member variable, a getter and setter)
  TransformingCodeVisitor |
  VariableScope | Records declared and referenced variabes for a given scope.