#if SUPPORT_CLASS_VISIBILITY_PUBLIC
public
#fi
class ${NODE_TYPE} extends ${NODE_CLASS:-SimpleNode} {
  public ${NODE_TYPE}(int id) {
    super(id);
  }

  public ${NODE_TYPE}(${PARSER_NAME} p, int id) {
    super(p, id);
  }

#if NODE_FACTORY
  public static Node jjtCreate(int id) {
    return new ${NODE_TYPE}(id);
  }

  public static Node jjtCreate(${PARSER_NAME} p, int id) {
    return new ${NODE_TYPE}(p, id);
  }
#fi
#if VISITOR

  /** Accept the visitor. **/
#if VISITOR_EXCEPTION
  public ${VISITOR_RETURN_TYPE} jjtAccept(${PARSER_NAME}Visitor visitor, ${VISITOR_DATA_TYPE:-Object} data) throws ${VISITOR_EXCEPTION} {
#else
  public ${VISITOR_RETURN_TYPE} jjtAccept(${PARSER_NAME}Visitor visitor, ${VISITOR_DATA_TYPE:-Object} data) {
#fi

#if VISITOR_RETURN_TYPE_VOID
#else
    return
#fi
#if VISITOR_METHOD_NAME_INCLUDES_TYPE_NAME
    visitor.visit${NODE_TYPE}(this, data);
#else
    visitor.visit(this, data);
#fi
  }
#fi
}