# Package org.codehaus.groovy.ast

package org.codehaus.groovy.ast

Groovy AST nodes for the syntax of the language

- Related Packages
  Package
  Description
  org.codehaus.groovy
  Groovy Language for the JVM
  org.codehaus.groovy.ast.builder
  DSL builders for programmatic AST construction.
  org.codehaus.groovy.ast.decompiled
  Tools for converting decompiled Java bytecode back into AST representation.
  org.codehaus.groovy.ast.expr
  AST nodes for Groovy expressions
  org.codehaus.groovy.ast.query
  A small, read-only fluent query API over the Groovy AST, intended as a declarative alternative to hand-written `ClassCodeVisitorSupport` subclasses for the common "find / collect / detect" cases that arise in AST transformations and compiler checks.
  org.codehaus.groovy.ast.stmt
  AST nodes for Groovy statements
  org.codehaus.groovy.ast.tools
  AST manipulation and analysis utilities.
- 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
  Abstract base class for visitors that process class nodes and their members, extending the default visitor traversal with class-specific and annotation processing.
  ClassHelper
  Helper for `ClassNode` creation and type management.
  ClassNode
  Represents a class in the AST.
  CodeVisitorSupport
  Abstract base class for implementing the `GroovyCodeVisitor` interface, providing default implementations for all visit methods that perform depth-first traversal of the AST.
  CompileUnit
  Represents a complete compilation step involving one or more `ModuleNode` instances.
  ConstructorNode
  Represents a constructor declaration
  DynamicVariable
  EnumConstantClassNode
  Represents the anonymous inner class for an enum constant.
  FieldNode
  Represents a field (member variable)
  GenericsType
  Represents generic type information for parameterized types in Groovy/Java, including type variables, wildcard types, and type bounds.
  GenericsType.GenericsTypeName
  Represents the name of a `GenericsType` for use as a map key or in generic type comparisons.
  GroovyClassVisitor
  A special visitor for working with the structure of a class.
  GroovyCodeVisitor
  Defines the visitor interface for traversing and processing Groovy AST nodes using the visitor pattern.
  GroovyCodeVisitorAdapter
  Adapter class providing default no-op implementations of all methods in the `GroovyCodeVisitor` interface.
  ImportNode
  Represents an import statement in Groovy source code, supporting single-type imports, wildcard imports, and static imports.
  InnerClassNode
  Represents a nested (inner) class definition within an outer class.
  InterfaceHelperClassNode
  Represents an inner class defined as helper for an interface.
  IntersectionTypeClassNode
  Represents a user-written intersection type used as the target of a cast expression or `as` coercion, e.g.
  MethodCallTransformation
  MethodInvocationTrap
  Abstract base class for AST visitors that trap and intercept specific method invocations.
  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 keyword or annotation in Groovy source code.
  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
  MultipleAssignmentMetadata
  AST node metadata keys used by the multi-assignment destructuring pipeline introduced in GEP-20.
  NodeMetaDataHandler
  An interface to mark a node being able to handle metadata.
  PackageNode
  Represents a package in the AST.
  Parameter
  Represents a parameter in a method or constructor declaration.
  PropertyNode
  Represents a property (member variable, a getter and setter)
  RecordComponentNode
  Represents a component (field) of a record class definition introduced in Java 16.
  TransformingCodeVisitor
  Code visitor that combines depth-first traversal with expression transformation, delegating both to an underlying `ClassCodeExpressionTransformer`.
  Variable
  Interface marking an AST node as representing a variable in Groovy/Java scope.
  VariableScope
  Manages variable scope tracking for a given code block, tracking declared and referenced variables to determine variable sharing patterns across closure and method boundaries.