content: /* Generated By:JJTree: Do not edit this line. Node.java Version 7.0 */
  /* JavaCCOptions:MULTI=true,NODE_USES_PARSER=false,VISITOR=true,TRACK_TOKENS=false,NODE_PREFIX=Exp,NODE_EXTENDS=,NODE_FACTORY=,SUPPORT_CLASS_VISIBILITY_PUBLIC=true */
  package io.agrest.exp.parser;
  
  /* All AST nodes must implement this interface.  It provides basic
     machinery for constructing the parent and child relationships
     between nodes. */
  
  import io.agrest.protocol.Exp;
  
  public interface Node extends Exp {
  
    /** This method is called after the node has been made the current
      node.  It indicates that child nodes can now be added to it. */
    void jjtOpen();
  
    /** This method is called after all the child nodes have been
      added. */
    void jjtClose();
  
    /** This pair of methods are used to inform the node of its
      parent. */
    void jjtSetParent(Node n);
    Node jjtGetParent();
  
    /** This method tells the node to add its argument to the node's
      list of children.  */
    void jjtAddChild(Node n, int i);
  
    /** This method returns a child node.  The children are numbered
       from zero, left to right. */
    Node jjtGetChild(int i);
  
    /** Return the number of children the node has. */
    int jjtGetNumChildren();
  
    int getId();
  
    /** Accept the visitor. **/
    <T> T jjtAccept(AgExpressionParserVisitor<T> visitor, T data);
  
    @Override
    default <T> T accept(AgExpressionParserVisitor<T> visitor, T data) {
        return jjtAccept(visitor, data);
    }
  
    void jjtSetValue(Object value);
  
    Object jjtGetValue();
  }
  /* JavaCC - OriginalChecksum=c392dda0e9c3574290aef880c29495b8 (do not edit this line) */
  