00001 #ifndef YACC_H
00002 #define YACC_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #include <stdio.h>
00013 #include <stddef.h>
00014 #include <assert.h>
00015
00016
00017 #include <yytdefs.h>
00018
00019
00020 #if defined(YYTUDEFS) || defined(YYUDEFS)
00021 #include <yytudefs.h>
00022 #endif
00023
00024 #ifdef __cplusplus
00025 extern "C" {
00026 #endif
00027
00028 #define YY_AYACC
00029
00030
00031 #ifndef YYCDECL
00032 #define YYCDECL
00033 #endif
00034 #ifndef YYDCDECL
00035 #define YYDCDECL
00036 #endif
00037 #ifndef YYNEAR
00038 #define YYNEAR
00039 #endif
00040 #ifndef YYFAR
00041 #define YYFAR
00042 #endif
00043 #ifndef YYNEARFAR
00044 #define YYNEARFAR
00045 #endif
00046 #ifndef YYBASED_CODE
00047 #define YYBASED_CODE
00048 #endif
00049
00050
00051 #ifndef YYPROTOTYPE
00052 #if defined(__STDC__) || defined(__cplusplus)
00053 #define YYPROTOTYPE
00054 #endif
00055 #endif
00056
00057
00058 #ifndef YYCONST
00059 #if defined(__STDC__) || defined(__cplusplus)
00060 #define YYCONST const
00061 #else
00062 #define YYCONST
00063 #endif
00064 #endif
00065
00066
00067 #ifdef YYNOPROTOTYPE
00068 #undef YYPROTOTYPE
00069 #endif
00070 #ifdef YYNOCONST
00071 #undef YYCONST
00072 #define YYCONST
00073 #endif
00074
00075 typedef short yystack_t;
00076
00077
00078 #define YYEXIT_SUCCESS 0
00079 #define YYEXIT_FAILURE 1
00080
00081
00082 #define YYTK_ALL (-1)
00083 #define YYTK_END 0
00084 #define YYTK_ERROR 256
00085
00086 #ifndef YYCSTATEGOTO_T
00087 #define YYCSTATEGOTO_T
00088 typedef short yycstategoto_t;
00089 #endif
00090
00091 #ifndef YYCNONTERMGOTO_T
00092 #define YYCNONTERMGOTO_T
00093 typedef struct yycnontermgoto {
00094 short nonterm;
00095 short next;
00096 } yycnontermgoto_t;
00097 #endif
00098
00099 #ifndef YYSTATEGOTO_T
00100 #define YYSTATEGOTO_T
00101 typedef struct yystategoto {
00102 short base;
00103 short def;
00104 } yystategoto_t;
00105 #endif
00106
00107 #ifndef YYNONTERMGOTO_T
00108 #define YYNONTERMGOTO_T
00109 typedef struct yynontermgoto {
00110 short check;
00111 short next;
00112 } yynontermgoto_t;
00113 #endif
00114
00115
00116 #define YYAT_SHIFT 0
00117 #define YYAT_REDUCE 1
00118 #define YYAT_ERROR 2
00119 #define YYAT_ACCEPT 3
00120 #define YYAT_DEFAULT 4
00121
00122 #ifndef YYCSTATEACTION_T
00123 #define YYCSTATEACTION_T
00124 typedef short yycstateaction_t;
00125 #endif
00126
00127 #ifndef YYCTOKENACTION_T
00128 #define YYCTOKENACTION_T
00129 typedef struct yyctokenaction {
00130 int token;
00131 unsigned char type;
00132 short sr;
00133 } yyctokenaction_t;
00134 #endif
00135
00136 #ifndef YYSTATEACTION_T
00137 #define YYSTATEACTION_T
00138 typedef struct yystateaction {
00139 short base;
00140 unsigned char lookahead;
00141 unsigned char type;
00142 short sr;
00143 } yystateaction_t;
00144 #endif
00145
00146 #ifndef YYTOKENACTION_T
00147 #define YYTOKENACTION_T
00148 typedef struct yytokenaction {
00149 short check;
00150 unsigned char type;
00151 short sr;
00152 } yytokenaction_t;
00153 #endif
00154
00155
00156 #define YYNT_ALL (-1)
00157
00158
00159 #define YYST_ERROR (-1)
00160
00161 #ifndef YYREDUCTION_T
00162 #define YYREDUCTION_T
00163 typedef struct yyreduction {
00164 short nonterm;
00165 short length;
00166 short action;
00167 } yyreduction_t;
00168 #endif
00169
00170 typedef short yydestructor_t;
00171
00172 typedef short yytokendest_t;
00173
00174 #ifndef YYCTOKENDEST_T
00175 #define YYCTOKENDEST_T
00176 typedef struct yyctokendest {
00177 int token;
00178 short action;
00179 } yyctokendest_t;
00180 #endif
00181
00182
00183 #ifdef YYDEBUG
00184 #ifndef YYSYMBOL_T
00185 #define YYSYMBOL_T
00186 typedef struct yysymbol {
00187 YYCONST char *name;
00188 int token;
00189 } yysymbol_t;
00190 #endif
00191 #endif
00192
00193
00194 #ifdef YYPROTOTYPE
00195 int YYCDECL yycparse(void);
00196 void YYCDECL yycwipe(void);
00197 int YYCDECL yycwork(void);
00198 void YYCDECL yydestructpop(int num);
00199 int YYCDECL yyparse(void);
00200 void YYCDECL yyparsecleanup(void);
00201 void YYCDECL yyparseinit(void);
00202 int YYCDECL yysetstacksize(int size);
00203 int YYCDECL yysetup(void);
00204 void YYCDECL yywipe(void);
00205 int YYCDECL yywork(void);
00206 #else
00207 int YYCDECL yycparse();
00208 void YYCDECL yycwipe();
00209 int YYCDECL yycwork();
00210 void YYCDECL yydestructpop();
00211 int YYCDECL yyparse();
00212 void YYCDECL yyparsecleanup();
00213 void YYCDECL yyparseinit();
00214 int YYCDECL yysetstacksize();
00215 int YYCDECL yysetup();
00216 void YYCDECL yywipe();
00217 int YYCDECL yywork();
00218 #endif
00219
00220
00221 #ifdef YYPROTOTYPE
00222 void YYCDECL yydiscard(int token);
00223 void YYCDECL yyerror(YYCONST char YYFAR *text);
00224 int YYCDECL yygettoken(void);
00225 void YYCDECL yystackoverflow(void);
00226 void YYCDECL yysyntaxerror(void);
00227 #else
00228 void YYCDECL yydiscard();
00229 void YYCDECL yyerror();
00230 int YYCDECL yygettoken();
00231 void YYCDECL yystackoverflow();
00232 void YYCDECL yysyntaxerror();
00233 #endif
00234
00235
00236 #ifdef YYPROTOTYPE
00237 void YYCDECL yycdestructclearin(void);
00238 void YYCDECL yydestructclearin(void);
00239 void YYCDECL yysetin(int token);
00240 int YYCDECL yyunclearin(void);
00241 #else
00242 void YYCDECL yycdestructclearin();
00243 void YYCDECL yydestructclearin();
00244 void YYCDECL yysetin();
00245 int YYCDECL yyunclearin();
00246 #endif
00247 #define yyabort() yyexit(1)
00248 #define yyaccept() yyexit(0)
00249 #define yyclearin() (yylookahead = 0)
00250 #define yyerrok() yysetskip(0)
00251 #define yyexit(exitcode) (yyexitflg = 1, yyexitcode = (exitcode))
00252 #define yyforceerror() yythrowerror(0)
00253 #define yypopping() yypopflg
00254 #define yyrecovering() (yyskip > 0)
00255 #define yyretire(retirecode) (yyretireflg = 1, yyretirecode = (retirecode))
00256 #define yythrowerror(pop) (yyerrorflg = 1, yyerrorpop = (pop))
00257
00258
00259 #ifdef YY_COMPATIBLE
00260 #undef yyclearin
00261 #define yyclearin (yylookahead = 0)
00262 #undef yyerrok
00263 #define yyerrok yysetskip(0)
00264 #endif
00265 #define YYABORT yyexit(1)
00266 #define YYACCEPT yyexit(0)
00267 #define YYERROR yyforceerror()
00268 #define YYRECOVERING yyrecovering()
00269
00270
00271 #ifdef YYPROTOTYPE
00272 #ifdef YYDEBUG
00273 void YYCDECL yypop(int num);
00274 void YYCDECL yysetskip(int skip);
00275 #endif
00276 int YYCDECL yypush(yystack_t state);
00277 #else
00278 #ifdef YYDEBUG
00279 void YYCDECL yypop();
00280 void YYCDECL yysetskip();
00281 #endif
00282 int YYCDECL yypush();
00283 #endif
00284 #ifndef yyassert
00285 #define yyassert(expr) assert(expr)
00286 #endif
00287 #define yypeek() (yystackptr[yytop])
00288 #ifndef YYDEBUG
00289 #define yypop(num) (yytop -= (num))
00290 #define yysetskip(skip) (yyskip = (skip))
00291 #endif
00292
00293
00294 extern unsigned char YYNEAR YYDCDECL yylookahead;
00295 extern unsigned char YYNEAR YYDCDECL yystackgrow;
00296 extern unsigned char YYNEAR YYDCDECL yyexitflg;
00297 extern unsigned char YYNEAR YYDCDECL yyretireflg;
00298 extern unsigned char YYNEAR YYDCDECL yyerrorflg;
00299 extern unsigned char YYNEAR YYDCDECL yypopflg;
00300 extern unsigned char YYNEAR YYDCDECL yywipeflg;
00301 extern int YYNEAR YYDCDECL yytop;
00302 extern int YYNEAR YYDCDECL yychar;
00303 extern int YYNEAR YYDCDECL yyskip;
00304 extern int YYNEAR YYDCDECL yyerrorcount;
00305 extern FILE YYFAR *YYNEAR YYDCDECL yyparseerr;
00306 extern int YYNEAR YYDCDECL yyexitcode;
00307 extern int YYNEAR YYDCDECL yyretirecode;
00308 extern int YYNEAR YYDCDECL yyerrorpop;
00309
00310
00311 #ifdef YYDEBUG
00312 #ifdef YYPROTOTYPE
00313 YYCONST char *YYCDECL yytokenstring(int token);
00314 void YYCDECL yydgettoken(int token);
00315 void YYCDECL yydshift(int token);
00316 void YYCDECL yydreduce(int rule);
00317 void YYCDECL yydsyntaxerror(void);
00318 void YYCDECL yydaccept(void);
00319 void YYCDECL yydabort(void);
00320 void YYCDECL yyddiscard(int token);
00321 void YYCDECL yydexit(int exitcode);
00322 void YYCDECL yydthrowerror(int errorpop);
00323 void YYCDECL yydretire(int retirecode);
00324 void YYCDECL yydattemptrecovery(void);
00325 void YYCDECL yyparsedebugoutput(YYCONST char *string);
00326 #else
00327 YYCONST char *YYCDECL yytokenstring();
00328 void YYCDECL yydgettoken();
00329 void YYCDECL yydshift();
00330 void YYCDECL yydreduce();
00331 void YYCDECL yydsyntaxerror();
00332 void YYCDECL yydaccept();
00333 void YYCDECL yydabort();
00334 void YYCDECL yyddiscard();
00335 void YYCDECL yydexit();
00336 void YYCDECL yydthrowerror();
00337 void YYCDECL yydretire();
00338 void YYCDECL yydattemptrecovery();
00339 void YYCDECL yyparsedebugoutput();
00340 #endif
00341 #endif
00342
00343
00344 #ifdef YYDEBUG
00345 extern int YYNEAR YYDCDECL yydebug;
00346 extern int YYNEAR YYDCDECL yydebugstack;
00347 extern int YYNEAR YYDCDECL yydebugflush;
00348 extern int YYNEAR YYDCDECL yyparsedebug;
00349 extern int YYNEAR YYDCDECL yyparsedebugstack;
00350 extern int YYNEAR YYDCDECL yyparsedebugflush;
00351 extern FILE YYFAR *YYNEAR YYDCDECL yyparsedebugout;
00352 extern YYCONST yysymbol_t YYNEARFAR YYDCDECL yysymbol[];
00353 extern YYCONST char *YYCONST YYNEARFAR YYDCDECL yyrule[];
00354 #endif
00355
00356
00357 #ifdef YYPROTOTYPE
00358 int YYCDECL yylex(void);
00359 void YYCDECL yyparseaction(int action);
00360 #else
00361 int YYCDECL yylex();
00362 void YYCDECL yyparseaction();
00363 #endif
00364
00365 extern yystack_t YYFAR *YYNEAR YYDCDECL yystackptr;
00366 extern yystack_t YYFAR *YYNEAR YYDCDECL yysstackptr;
00367 extern int YYNEAR YYDCDECL yystack_size;
00368 extern int YYNEAR YYDCDECL yysstack_size;
00369
00370 extern size_t YYNEAR YYDCDECL yyattribute_size;
00371
00372 #ifdef YYPROTOTYPE
00373 extern void YYFAR *YYNEAR YYDCDECL yyvalptr;
00374 extern void YYFAR *YYNEAR YYDCDECL yylvalptr;
00375 extern void YYFAR *YYNEAR YYDCDECL yyattributestackptr;
00376 extern void YYFAR *YYNEAR YYDCDECL yysattributestackptr;
00377 #else
00378 extern char YYFAR *YYNEAR YYDCDECL yyvalptr;
00379 extern char YYFAR *YYNEAR YYDCDECL yylvalptr;
00380 extern char YYFAR *YYNEAR YYDCDECL yyattributestackptr;
00381 extern char YYFAR *YYNEAR YYDCDECL yysattributestackptr;
00382 #endif
00383
00384
00385 extern YYCONST yycstateaction_t YYNEARFAR YYDCDECL yycstateaction[];
00386 extern YYCONST yyctokenaction_t YYNEARFAR YYDCDECL yyctokenaction[];
00387 extern YYCONST yycstategoto_t YYNEARFAR YYDCDECL yycstategoto[];
00388 extern YYCONST yycnontermgoto_t YYNEARFAR YYDCDECL yycnontermgoto[];
00389 extern YYCONST yyctokendest_t YYNEARFAR *YYNEAR YYDCDECL yyctokendestptr;
00390
00391
00392 extern YYCONST yystateaction_t YYNEARFAR YYDCDECL yystateaction[];
00393 extern YYCONST yytokenaction_t YYNEARFAR YYDCDECL yytokenaction[];
00394 extern int YYNEAR YYDCDECL yytokenaction_size;
00395 extern YYCONST yystategoto_t YYNEARFAR YYDCDECL yystategoto[];
00396 extern YYCONST yynontermgoto_t YYNEARFAR YYDCDECL yynontermgoto[];
00397 extern int YYNEAR YYDCDECL yynontermgoto_size;
00398 extern YYCONST yytokendest_t YYNEARFAR *YYNEAR YYDCDECL yytokendestptr;
00399 extern int YYNEAR YYDCDECL yytokendest_size;
00400 extern int YYNEAR YYDCDECL yytokendestbase;
00401
00402 extern YYCONST yyreduction_t YYNEARFAR YYDCDECL yyreduction[];
00403
00404 extern YYCONST yydestructor_t YYNEARFAR *YYNEAR YYDCDECL yydestructorptr;
00405
00406 #ifdef __cplusplus
00407 }
00408 #endif
00409
00410
00411 #if defined(YYBUDEFS) || defined(YYUDEFS)
00412 #include <yybudefs.h>
00413 #endif
00414
00415
00416 #include <yybdefs.h>
00417
00418 #endif
00419