All Downloads are FREE. Search and download functionalities are using the official Maven repository.

templates.cpp.SimpleNodeInterface.template Maven / Gradle / Ivy

There is a newer version: 4.1.5
Show newest version
#if NODE_EXTENDS
class SimpleNode : public ${NODE_EXTENDS}, public Node {
#else
class SimpleNode : public Node {
#fi

  protected: Node *parent;
  protected: std::vector children;
  protected: int id;
  protected: void * value;
  protected: ${PARSER_NAME} *parser;
  //protected: int numChildren;
#if TRACK_TOKENS
  protected: Token *firstToken;
  protected: Token *lastToken;
#fi

  public: SimpleNode(int i);
  public: SimpleNode(${PARSER_NAME} *p, int i);

//#if !NODE_FACTORY
//\#define jjtCreate(id) new SimpleNode(id)
//\#define jjtCreate(p, id) new SimpleNode(p, id)
//#fi

  public: virtual void jjtOpen() const;
  public: virtual void jjtClose() const;
  public: virtual void jjtSetParent(Node *n);
  public: virtual Node *jjtGetParent() const;
  public: virtual void jjtAddChild(Node *n, int i);
  public: virtual Node *jjtGetChild(int i) const;
  public: virtual int jjtGetNumChildren() const;
  public: virtual void jjtSetValue(void * value);
  public: virtual void * jjtGetValue() const;

#if TRACK_TOKENS
  public: virtual Token *jjtGetFirstToken() const;
  public: virtual void jjtSetFirstToken(Token token);
  public: virtual Token *jjtGetLastToken() const;
  public: virtual void jjtSetLastToken(Token token);

#fi
#if VISITOR
  /** Accept the visitor. **/
  public: virtual ${VISITOR_RETURN_TYPE:-void} jjtAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const;

  /** Accept the visitor. **/
  public: virtual void childrenAccept(${PARSER_NAME}Visitor *visitor, ${VISITOR_DATA_TYPE:-void *} data) const;
#fi
  /* You can override these two methods in subclasses of SimpleNode to
     customize the way the node appears when the tree is dumped.  If
     your output uses more than one line you should override
     toString(string), otherwise overriding toString() is probably all
     you need to do. */

  public: virtual JAVACC_STRING_TYPE toString() const;
  public: virtual JAVACC_STRING_TYPE toString(JAVACC_STRING_TYPE prefix) const;

  /* Override this method if you want to customize how the node dumps
     out its children. */

  public: virtual void dump(JAVACC_STRING_TYPE prefix) const;
  public: virtual void dumpToBuffer(JAVACC_STRING_TYPE prefix, JAVACC_STRING_TYPE separator, JAVACC_STRING_TYPE *sb) const;
  public: virtual ~SimpleNode();
  public: virtual int getId() const {
    return id;
  }
};




© 2015 - 2024 Weber Informatics LLC | Privacy Policy