# Package org.mozilla.javascript.ast

- Interface Summary
  Interface | Description
  --- | ---
  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
  Class | Description
  --- | ---
  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.
  BigIntLiteral | AST node for a BigInt literal.
  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.
  EmptyStatement | AST node for an empty statement.
  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 or for-of statement.
  ForLoop | C-style for-loop statement.
  FunctionCall | AST node for a function call.
  FunctionNode | A JavaScript function declaration or expression.
  GeneratorExpression |
  GeneratorExpressionLoop |
  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.
  TaggedTemplateLiteral | AST node for a Tagged Template Literal.
  TemplateCharacters | AST node for Template Literal Characters.
  TemplateLiteral | AST node for a Template literal.
  ThrowStatement | Throw statement.
  TryStatement | Try/catch/finally statement.
  UnaryExpression | AST node representing unary operators such as `typeof` and `delete`.
  UpdateExpression | AST node representing update operators such as `++`.
  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
  Enum | Description
  --- | ---
  FunctionNode.Form |
  ParseProblem.Type |