Class SimpleNode

java.lang.Object
com.singularsys.jep.parser.SimpleNode
All Implemented Interfaces:
Node
Direct Known Subclasses:
ASTConstant, ASTFunNode, ASTStart, ASTVarNode

public abstract class SimpleNode extends Object implements Node
The base class for all AST node classes. Contains basic tree node methods for traversal, adding and removing children and parent nodes, and other methods.
  • Field Details

    • parent

      protected Node parent
    • children

      protected Node[] children
    • id

      protected final int id
    • keys

      protected Node.HookKey[] keys
    • vals

      protected Object[] vals
  • Constructor Details

    • SimpleNode

      public SimpleNode(int i)
  • Method Details

    • jjtOpen

      public void jjtOpen()
      Description copied from interface: Node
      This method is called after the node has been made the current node. It indicates that child nodes can now be added to it.
      Specified by:
      jjtOpen in interface Node
    • jjtClose

      public void jjtClose()
      Description copied from interface: Node
      This method is called after all the child nodes have been added.
      Specified by:
      jjtClose in interface Node
    • jjtSetParent

      public void jjtSetParent(Node n)
      Description copied from interface: Node
      Sets the parent node.
      Specified by:
      jjtSetParent in interface Node
    • jjtGetParent

      public Node jjtGetParent()
      Description copied from interface: Node
      Gets the parent node
      Specified by:
      jjtGetParent in interface Node
    • jjtAddChild

      public void jjtAddChild(Node n, int i)
      Description copied from interface: Node
      This method tells the node to add its argument to the node's list of children.
      Specified by:
      jjtAddChild in interface Node
    • jjtGetChild

      public Node jjtGetChild(int i)
      Description copied from interface: Node
      This method returns a child node. The children are numbered from zero, left to right.
      Specified by:
      jjtGetChild in interface Node
    • jjtGetNumChildren

      public int jjtGetNumChildren()
      Description copied from interface: Node
      Return the number of children the node has.
      Specified by:
      jjtGetNumChildren in interface Node
      Returns:
      the number of child nodes
    • jjtAccept

      public Object jjtAccept(ParserVisitor visitor, Object data) throws JepException
      Accept the visitor.
      Specified by:
      jjtAccept in interface Node
      Throws:
      ParseException
      JepException
    • childrenAccept

      public Object childrenAccept(ParserVisitor visitor, Object data) throws JepException
      Accept the visitor.
      Throws:
      JepException
    • toString

      public String toString(String prefix)
    • dump

      public void dump(String prefix)
    • getId

      public int getId()
      Returns the id of the node (for simpler identification).
      Specified by:
      getId in interface Node
      See Also:
    • getHook

      public Object getHook(Node.HookKey key)
      Get the value associated with a key.
      Specified by:
      getHook in interface Node
      Parameters:
      key - the key to look up
      Returns:
      the value or null if no key exists
    • setHook

      public Object setHook(Node.HookKey key, Object value)
      Sets the value associated with a key.
      Specified by:
      setHook in interface Node
      Parameters:
      key - the key
      value - the value
      Returns:
      the old object associated with this key, may be null
    • hookKeys

      public Collection<Node.HookKey> hookKeys()
      Description copied from interface: Node
      Get all the keys defined for this node.
      Specified by:
      hookKeys in interface Node
      Returns:
      all the keys
    • removeHook

      public Object removeHook(Node.HookKey key)
      Description copied from interface: Node
      Remove the key
      Specified by:
      removeHook in interface Node
      Returns:
      the object which was associated with the key
    • childIterator

      public Iterator<Node> childIterator()
      Returns an Iterator which iterates over the children of the Node. The remove method is unsupported.
      Specified by:
      childIterator in interface Node
      Returns:
      a new Iterator
    • children

      public Iterable<Node> children()
      Returns an Iterable object which can be used in a for/in loop.
       for(Node child:node.children()) {
        ...
       }
       
      Specified by:
      children in interface Node