\#ifndef JAVACC_${NODE_TYPE}_H
\#define JAVACC_${NODE_TYPE}_H

\#include "JavaCC.h"
\#include "SimpleNode.h"

#if NODE_FACTORY
\#define jjtCreate(id) new _${NODE_TYPE}(id)
\#define jjtCreate(parser, id) new _${NODE_TYPE}(parser, id);
#fi

typedef class _${NODE_TYPE} *${NODE_TYPE};
class _${NODE_TYPE} : public ${NODE_CLASS:-_SimpleNode} {
public: 
    _${NODE_TYPE}(int id);
    _${NODE_TYPE}(${PARSER_NAME} *parser, int id);
    virtual ~_${NODE_TYPE}();

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

\#endif
