/* before anything */ #ifdef c_plusplus #ifndef __cplusplus #define __cplusplus #endif #endif $ /* If we generate a class #define YY_USE_CLASS goes here*/ #ifndef __cplusplus #ifdef YY_USE_CLASS #error "This is a C++ header generated by bison++, use a C++ compiler!" #endif #else #ifndef YY_USE_CLASS /* #warning "For C++ its recomended to use bison++, otherwise classes won't be generated"*/ #endif #endif #include $ /* %{ and %header{ and %union, during decl */ #ifndef YY_@_COMPATIBILITY #ifndef YY_USE_CLASS #define YY_@_COMPATIBILITY 1 #else #define YY_@_COMPATIBILITY 0 #endif #endif #if YY_@_COMPATIBILITY != 0 /* backward compatibility */ #ifdef YYLTYPE #ifndef YY_@_LTYPE #define YY_@_LTYPE YYLTYPE /* WARNING obsolete !!! user defined YYLTYPE not reported into generated header */ /* use %define LTYPE */ #endif #endif /*#ifdef YYSTYPE*/ #ifndef YY_@_STYPE #define YY_@_STYPE YYSTYPE /* WARNING obsolete !!! user defined YYSTYPE not reported into generated header */ /* use %define STYPE */ #endif /*#endif*/ #ifdef YYDEBUG #ifndef YY_@_DEBUG #define YY_@_DEBUG YYDEBUG /* WARNING obsolete !!! user defined YYDEBUG not reported into generated header */ /* use %define DEBUG */ #endif #endif /* use goto to be compatible */ #ifndef YY_@_USE_GOTO #define YY_@_USE_GOTO 1 #endif #endif /* use no goto to be clean in C++ */ #ifndef YY_@_USE_GOTO #define YY_@_USE_GOTO 0 #endif #ifndef YY_@_PURE $/* YY_@_PURE */ #endif $/* prefix */ #ifndef YY_@_DEBUG $/* YY_@_DEBUG */ #endif #ifndef YY_@_LSP_NEEDED $ /* YY_@_LSP_NEEDED*/ #endif /* DEFAULT LTYPE*/ #ifdef YY_@_LSP_NEEDED #ifndef YY_@_LTYPE #ifndef BISON_YYLTYPE_ISDECLARED #define BISON_YYLTYPE_ISDECLARED typedef struct yyltype { int timestamp; int first_line; int first_column; int last_line; int last_column; char *text; } yyltype; #endif #define YY_@_LTYPE yyltype #endif #endif /* DEFAULT STYPE*/ #ifndef YY_@_STYPE #define YY_@_STYPE int #endif /* DEFAULT MISCELANEOUS */ #ifndef YY_@_PARSE #define YY_@_PARSE yyparse #endif #ifndef YY_@_LEX #define YY_@_LEX yylex #endif #ifndef YY_@_LVAL #define YY_@_LVAL yylval #endif #ifndef YY_@_LLOC #define YY_@_LLOC yylloc #endif #ifndef YY_@_CHAR #define YY_@_CHAR yychar #endif #ifndef YY_@_NERRS #define YY_@_NERRS yynerrs #endif #ifndef YY_@_DEBUG_FLAG #define YY_@_DEBUG_FLAG yydebug #endif #ifndef YY_@_ERROR #define YY_@_ERROR yyerror #endif #ifndef YY_@_PARSE_PARAM #ifndef __STDC__ #ifndef __cplusplus #ifndef YY_USE_CLASS #define YY_@_PARSE_PARAM #ifndef YY_@_PARSE_PARAM_DEF #define YY_@_PARSE_PARAM_DEF #endif #endif #endif #endif #ifndef YY_@_PARSE_PARAM #define YY_@_PARSE_PARAM void #endif #endif /* TOKEN C */ #ifndef YY_USE_CLASS #ifndef YY_@_PURE #ifndef yylval extern YY_@_STYPE YY_@_LVAL; #else #if yylval != YY_@_LVAL extern YY_@_STYPE YY_@_LVAL; #else #warning "Namespace conflict, disabling some functionality (bison++ only)" #endif #endif #endif $ /* #defines token */ /* after #define tokens, before const tokens S5*/ #else #ifndef YY_@_CLASS #define YY_@_CLASS @ #endif #ifndef YY_@_INHERIT #define YY_@_INHERIT #endif #ifndef YY_@_MEMBERS #define YY_@_MEMBERS #endif #ifndef YY_@_LEX_BODY #define YY_@_LEX_BODY #endif #ifndef YY_@_ERROR_BODY #define YY_@_ERROR_BODY #endif #ifndef YY_@_CONSTRUCTOR_PARAM #define YY_@_CONSTRUCTOR_PARAM #endif /* choose between enum and const */ #ifndef YY_@_USE_CONST_TOKEN #define YY_@_USE_CONST_TOKEN 0 /* yes enum is more compatible with flex, */ /* so by default we use it */ #endif #if YY_@_USE_CONST_TOKEN != 0 #ifndef YY_@_ENUM_TOKEN #define YY_@_ENUM_TOKEN yy_@_enum_token #endif #endif class YY_@_CLASS YY_@_INHERIT { public: #if YY_@_USE_CONST_TOKEN != 0 /* static const int token ... */ $ /* decl const */ #else enum YY_@_ENUM_TOKEN { YY_@_NULL_TOKEN=0 $ /* enum token */ }; /* end of enum declaration */ #endif public: int YY_@_PARSE(YY_@_PARSE_PARAM); virtual void YY_@_ERROR(char *msg) YY_@_ERROR_BODY; #ifdef YY_@_PURE #ifdef YY_@_LSP_NEEDED virtual int YY_@_LEX(YY_@_STYPE *YY_@_LVAL,YY_@_LTYPE *YY_@_LLOC) YY_@_LEX_BODY; #else virtual int YY_@_LEX(YY_@_STYPE *YY_@_LVAL) YY_@_LEX_BODY; #endif #else virtual int YY_@_LEX() YY_@_LEX_BODY; YY_@_STYPE YY_@_LVAL; #ifdef YY_@_LSP_NEEDED YY_@_LTYPE YY_@_LLOC; #endif int YY_@_NERRS; int YY_@_CHAR; #endif #if YY_@_DEBUG != 0 public: int YY_@_DEBUG_FLAG; /* nonzero means print parse trace */ #endif public: YY_@_CLASS(YY_@_CONSTRUCTOR_PARAM); public: YY_@_MEMBERS }; /* other declare folow */ #endif #if YY_@_COMPATIBILITY != 0 /* backward compatibility */ /* Removed due to bison problems /#ifndef YYSTYPE / #define YYSTYPE YY_@_STYPE /#endif*/ #ifndef YYLTYPE #define YYLTYPE YY_@_LTYPE #endif #ifndef YYDEBUG #ifdef YY_@_DEBUG #define YYDEBUG YY_@_DEBUG #endif #endif #endif /* END */ $ /* section 3 %header{ */ /* AFTER END , NEVER READ !!! */