## Package org.mozilla.javascript.ast

Interface Summary
DestructuringForm: Common interface for `ArrayLiteral` and `ObjectLiteral` node types, both of which may appear in "destructuring" expressions or contexts.
IdeErrorReporter: This is interface defines a protocol for the reporting of errors during JavaScript translation in IDE-mode.
NodeVisitor: Simple visitor interface for traversing the AST.

Class Summary
ArrayComprehension: AST node for a JavaScript 1.7 Array comprehension.
ArrayComprehensionLoop: AST node for a single 'for (foo in bar)' loop construct in a JavaScript 1.7 Array comprehension.
ArrayLiteral: AST node for an Array literal.
Assignment: AST node representing the set of assignment operators such as `=`, `*=` and `+=`.
AstNode: Base class for AST node types.
AstNode.DebugPrintVisitor
AstNode.PositionComparator
AstRoot: Node for the root of a parse tree.
Block: A block statement delimited by curly braces.
BreakStatement: A break statement.
CatchClause: Node representing a catch-clause of a try-statement.
Comment: Node representing comments.
ConditionalExpression: AST node representing the ternary operator.
ContinueStatement: A continue statement.
DoLoop: Do statement.
ElementGet: AST node for an indexed property reference, such as `foo['bar']` or `foo[2]`.
EmptyExpression: AST node for an empty expression.
ErrorCollector: An error reporter that gathers the errors and warnings for later display.
ErrorNode: AST node representing a parse error or a warning.
ExpressionStatement: AST node representing an expression in a statement context.
ForInLoop: For-in or for-each-in statement.
ForLoop: C-style for-loop statement.
FunctionCall: AST node for a function call.
FunctionNode: A JavaScript function declaration or expression.
IfStatement: If-else statement.
InfixExpression: AST node representing an infix (binary operator) expression.
Jump: Used for code generation.
KeywordLiteral: AST node for keyword literals: currently, `this`, `null`, `true`, `false`, and `debugger`.
Label: AST node representing a label.
LabeledStatement: A labeled statement.
LetNode: AST node for let statements and expressions.
Loop: Abstract base type for loops.
Name: AST node for a simple name.
NewExpression: New expression.
NumberLiteral: AST node for a Number literal.
ObjectLiteral: AST node for an Object literal (also called an Object initialiser in Ecma-262).
ObjectProperty: AST node for a single name:value entry in an Object literal.
ParenthesizedExpression: AST node for a parenthesized expression.
ParseProblem: Encapsulates information for a JavaScript parse error or warning.
PropertyGet: AST node for the '.' operator.
RegExpLiteral: AST node for a RegExp literal.
ReturnStatement: Return statement.
Scope: Represents a scope in the lexical scope chain.
ScriptNode: Base type for `AstRoot` and `FunctionNode` nodes, which need to collect much of the same information.
StringLiteral: AST node for a single- or double-quoted string literal.
SwitchCase: Switch-case AST node type.
SwitchStatement: Switch statement AST node type.
Symbol: Represents a symbol-table entry.
ThrowStatement: Throw statement.
TryStatement: Try/catch/finally statement.
UnaryExpression: AST node representing unary operators such as `++`, `~`, `typeof` and `delete`.
VariableDeclaration: A list of one or more var, const or let declarations.
VariableInitializer: A variable declaration or initializer, part of a `VariableDeclaration` expression.
WhileLoop: While statement.
WithStatement: With statement.
XmlDotQuery: AST node representing an E4X `foo.(bar)` query expression.
XmlElemRef: AST node for an E4X XML `[expr]` member-ref expression.
XmlExpression: AST node for an embedded JavaScript expression within an E4X XML literal.
XmlFragment: Abstract base type for components that comprise an `XmlLiteral` object.
XmlLiteral: AST node for an E4X (Ecma-357) embedded XML literal.
XmlMemberGet: AST node for E4X ".@" and ".." expressions, such as `foo..bar`, `foo..@bar`, `@foo.@bar`, and `foo..@ns::*`.
XmlPropRef: AST node for an E4X XML `[expr]` property-ref expression.
XmlRef: Base class for E4X XML attribute-access or property-get expressions.
XmlString: AST node for an XML-text-only component of an XML literal expression.
Yield: AST node for JavaScript 1.7 `yield` expression or statement.

Enum Summary
FunctionNode.Form
ParseProblem.Type