Package antlr

Class BaseAST

java.lang.Object
antlr.BaseAST
All Implemented Interfaces:
AST, Serializable
Direct Known Subclasses:
CommonAST, ParseTree

public abstract class BaseAST extends Object implements AST, Serializable
A Child-Sibling Tree. A tree with PLUS at the root and with two children 3 and 4 is structured as: PLUS | 3 -- 4 and can be specified easily in LISP notation as (PLUS 3 4) where every '(' starts a new subtree. These trees are particular useful for translators because of the flexibility of the children lists. They are also very easy to walk automatically, whereas trees with specific children reference fields can't easily be walked automatically. This class contains the basic support for an AST. Most people will create ASTs that are subclasses of BaseAST or of CommonAST.
See Also:
  • Field Details

  • Constructor Details

    • BaseAST

      public BaseAST()
  • Method Details

    • addChild

      public void addChild(AST node)
      Add a node to the end of the child list for this node
      Specified by:
      addChild in interface AST
    • getNumberOfChildren

      public int getNumberOfChildren()
      How many children does this node have?
      Specified by:
      getNumberOfChildren in interface AST
    • equals

      public boolean equals(AST t)
      Is node t equal to this in terms of token type and text?
      Specified by:
      equals in interface AST
    • equalsList

      public boolean equalsList(AST t)
      Is t an exact structural and equals() match of this tree. The 'this' reference is considered the start of a sibling list.
      Specified by:
      equalsList in interface AST
    • equalsListPartial

      public boolean equalsListPartial(AST sub)
      Is 'sub' a subtree of this list? The siblings of the root are NOT ignored.
      Specified by:
      equalsListPartial in interface AST
    • equalsTree

      public boolean equalsTree(AST t)
      Is tree rooted at 'this' equal to 't'? The siblings of 'this' are ignored.
      Specified by:
      equalsTree in interface AST
    • equalsTreePartial

      public boolean equalsTreePartial(AST sub)
      Is 't' a subtree of the tree rooted at 'this'? The siblings of 'this' are ignored.
      Specified by:
      equalsTreePartial in interface AST
    • findAll

      public ASTEnumeration findAll(AST target)
      Walk the tree looking for all exact subtree matches. Return an ASTEnumerator that lets the caller walk the list of subtree roots found herein.
      Specified by:
      findAll in interface AST
    • findAllPartial

      public ASTEnumeration findAllPartial(AST sub)
      Walk the tree looking for all subtrees. Return an ASTEnumerator that lets the caller walk the list of subtree roots found herein.
      Specified by:
      findAllPartial in interface AST
    • getFirstChild

      public AST getFirstChild()
      Get the first child of this node; null if not children
      Specified by:
      getFirstChild in interface AST
    • getNextSibling

      public AST getNextSibling()
      Get the next sibling in line after this one
      Specified by:
      getNextSibling in interface AST
    • getText

      public String getText()
      Get the token text for this node
      Specified by:
      getText in interface AST
    • getType

      public int getType()
      Get the token type for this node
      Specified by:
      getType in interface AST
    • getLine

      public int getLine()
      Specified by:
      getLine in interface AST
    • getColumn

      public int getColumn()
      Specified by:
      getColumn in interface AST
    • initialize

      public abstract void initialize(int t, String txt)
      Specified by:
      initialize in interface AST
    • initialize

      public abstract void initialize(AST t)
      Specified by:
      initialize in interface AST
    • initialize

      public abstract void initialize(Token t)
      Specified by:
      initialize in interface AST
    • removeChildren

      public void removeChildren()
      Remove all children
    • setFirstChild

      public void setFirstChild(AST c)
      Description copied from interface: AST
      Set the first child of a node.
      Specified by:
      setFirstChild in interface AST
    • setNextSibling

      public void setNextSibling(AST n)
      Description copied from interface: AST
      Set the next sibling after this one.
      Specified by:
      setNextSibling in interface AST
    • setText

      public void setText(String text)
      Set the token text for this node
      Specified by:
      setText in interface AST
    • setType

      public void setType(int ttype)
      Set the token type for this node
      Specified by:
      setType in interface AST
    • setVerboseStringConversion

      public static void setVerboseStringConversion(boolean verbose, String[] names)
    • getTokenNames

      public static String[] getTokenNames()
      Return an array of strings that maps token ID to it's text. @since 2.7.3
    • toString

      public String toString()
      Specified by:
      toString in interface AST
      Overrides:
      toString in class Object
    • toStringList

      public String toStringList()
      Print out a child-sibling tree in LISP notation
      Specified by:
      toStringList in interface AST
    • toStringTree

      public String toStringTree()
      Specified by:
      toStringTree in interface AST
    • decode

      public static String decode(String text)
    • encode

      public static String encode(String text)
    • xmlSerializeNode

      public void xmlSerializeNode(Writer out) throws IOException
      Throws:
      IOException
    • xmlSerializeRootOpen

      public void xmlSerializeRootOpen(Writer out) throws IOException
      Throws:
      IOException
    • xmlSerializeRootClose

      public void xmlSerializeRootClose(Writer out) throws IOException
      Throws:
      IOException
    • xmlSerialize

      public void xmlSerialize(Writer out) throws IOException
      Throws:
      IOException