Package polyglot.ast

Contains the AST node interfaces.

See:
          Description

Interface Summary
AmbAssign An Assign represents a Java assignment expression.
AmbExpr An AmbExpr is an ambiguous AST node composed of a single identifier that must resolve to an expression.
Ambiguous Ambiguous represents an ambiguous AST node.
AmbPrefix An AmbPrefix is an ambiguous AST node composed of dot-separated list of identifiers that must resolve to a prefix.
AmbQualifierNode An AmbQualifierNode is an ambiguous AST node composed of dot-separated list of identifiers that must resolve to a type qualifier.
AmbReceiver An AmbReceiver is an ambiguous AST node composed of dot-separated list of identifiers that must resolve to a receiver.
AmbTypeNode An AmbTypeNode is an ambiguous AST node composed of dot-separated list of identifiers that must resolve to a type.
ArrayAccess An ArrayAccess is an immutable representation of an access of an array member.
ArrayAccessAssign A ArrayAccessAssign represents a Java assignment expression to an array element.
ArrayInit An ArrayInit is an immutable representation of an array initializer, such as { 3, 1, { 4, 1, 5 } }.
ArrayTypeNode An ArrayTypeNode is a type node for a non-canonical array type.
Assert An immutable representation of a assert statement.
Assign An Assign represents a Java assignment expression.
Binary A Binary represents a Java binary expression, an immutable pair of expressions combined with an operator.
Block A Block represents a Java block statement -- an immutable sequence of statements.
BooleanLit A BooleanLit represents a boolean literal expression.
Branch A Branch is an immutable representation of a branch statment in Java (a break or continue).
Call A Call is an immutable representation of a Java method call.
CanonicalTypeNode A CanonicalTypeNode is a type node for a canonical type.
Case A Case is a representation of a Java case statement.
Cast A Cast is an immutable representation of a casting operation.
Catch A Catch represents one half of a try-catch statement.
CharLit An CharLit represents a literal in java of char type.
ClassBody A ClassBody represents the body of a class or interface declaration or the body of an anonymous class.
ClassDecl A ClassDecl represents a top-level, member, or local class declaration.
ClassLit A ClassLit represents a class literal expression.
ClassMember A ClassMember is a method, a constructor, a field, an initializer block, or another class declaration.
CodeDecl A code declaration.
CompoundStmt Any statement with sub-statements.
Conditional A Conditional is a representation of a Java ternary expression.
ConstructorCall A ConstructorCall represents a direct call to a constructor.
ConstructorDecl A ConstructorDecl is an immutable representation of a constructor declaration as part of a class body.
DelFactory A DelFactory constructs delegates.
Disamb Utility class which is used to disambiguate ambiguous AST nodes (Expr, Type, Receiver, Qualifier, Prefix).
Do A Java language do statement.
Empty Empty is the class for a empty statement (i.e., ;).
Eval An Eval is a statement that evaluates an expression then discards the result.
Expr An Expr represents any Java expression.
Ext Ext is the super type of all node extension objects.
ExtFactory An ExtFactory constructs extensions.
Field A Field is an immutable representation of a Java field access.
FieldAssign A FieldAssign represents a Java assignment expression to a field.
FieldDecl A FieldDecl is an immutable representation of the declaration of a field of a class.
FloatLit A FloatLit represents a literal in java of type float or double.
For An immutable representation of a Java language for statement.
ForInit A ForInit represents a statement that can be used as a initializer in a "for" statement.
Formal A Formal represents a formal parameter to a method or constructor or to a catch block.
ForUpdate A ForUpdate represents a statement that can be used as an iterator in a "for" statement.
If An immutable representation of a Java language if statement.
Import An Import is an immutable representation of a Java import statement.
Initializer An Initializer is an immutable representation of an initializer block in a Java class (which appears outside of any method).
Instanceof An Instanceof is an immutable representation of the use of the instanceof operator.
IntLit An IntLit represents a literal in Java of an integer type.
JL JL contains all methods implemented by an AST node.
Labeled Am immutable representation of a Java statement with a label.
Lit Lit represents any Java literal.
Local A local variable expression.
LocalAssign A LocalAssign represents a Java assignment expression to an array element.
LocalClassDecl A local class declaration statement.
LocalDecl A local variable declaration statement: a type, a name and an optional initializer.
Loop An immutable representation of a Java language for statement.
MethodDecl A method declaration.
New A New is an immutable representation of the use of the new operator to create a new instance of a class.
NewArray A NewArray represents a new array expression such as new File[8][] { null }.
Node A Node represents an AST node.
NodeFactory A NodeFactory constructs AST nodes.
NodeOps A Node represents an AST node.
NullLit The Java literal null.
NumLit An integer literal: longs, ints, shorts, bytes, and chars.
PackageNode A PackageNode is the syntactic representation of a Java package within the abstract syntax tree.
Prefix A Prefix represents any node that can be used as the prefix of a Receiver.
ProcedureCall A ProcedureCall is an interface representing a method or constructor call.
ProcedureDecl A procedure declaration.
QualifierNode A QualifierNode represents any node that can be used as a type qualifier (polyglot.types.Qualifier).
Receiver A Receiver represents any node that can be used as the receiver of a method or of a field access.
Return A Return represents a return statement in Java.
SourceCollection A SourceCollection represents a collection of source files.
SourceFile A SourceFile is an immutable representations of a Java language source file.
Special A Special is an immutable representation of a reference to this or super
Stmt A Stmt represents any Java statement.
StringLit A StringLit represents an immutable instance of a String which corresponds to a literal string in Java code.
Switch A Switch is an immutable representation of a Java switch statement.
SwitchBlock A SwitchBlock is a list of statements within a switch.
SwitchElement A SwitchElement is statement inside a switch.
Synchronized An immutable representation of a Java language synchronized block.
Term A Term represents any Java expression or statement on which dataflow can be performed.
Throw A Throw is an immutable representation of a throw statement.
TopLevelDecl A top-level declaration.
Try An immutable representation of a try block, one or more catch blocks, and an optional finally block.
Typed Typed represents any node that has a type associated with it.
TypeNode A TypeNode is the syntactic representation of a Type within the abstract syntax tree.
Unary A Unary represents a Java unary expression, an immutable pair of an expression and an an operator.
VarDecl A VarDecl represents a variable declaration, of either a formal or a local variable.
Variable An interface representing a variable.
While An immutable representation of a Java language while statement.
 

Class Summary
Assign.Operator Assignment operator.
Binary.Operator Binary expression operator.
Branch.Kind Branch kind: either break or continue.
ConstructorCall.Kind Constructor call kind: either "super" or "this".
FloatLit.Kind Integer literal kinds: float (e.g., 0.0F) or double (e.g., 0.0).
Import.Kind Import kinds: class (e.g., import java.util.Set) or package (e.g., import java.util.*).
IntLit.Kind Integer literal kinds: int (e.g., 0) or long (e.g., 0L).
Precedence Constants defining the precedence of an expression.
Special.Kind Special expression kind: either "super" or "this".
Unary.Operator Unary expression operator.
 

Package polyglot.ast Description

Contains the AST node interfaces.

The nodes all extend the interface Node. Each node has accessor methods and methods to implement passes over the node. The setter methods are non-destructive: they create a copy of the node and return the copy. The traversal interface is defined in NodeVisitor. Nodes are constructed using a NodeFactory.

See Also:
Node, NodeVisitor, NodeFactory