cmdgram.cpp
Engine/source/console/cmdgram.cpp
Classes:
Public Defines
define
define
alloca()
define
CHRCONST() 289
define
const()
define
DOCBLOCK() 295
define
FLTCONST() 298
define
IDENT() 293
define
ILLEGAL_TOKEN() 288
define
INTCONST() 290
define
nil() 0
define
opAND() 321
define
opANDASN() 311
define
opCAT() 316
define
opCOLONCOLON() 324
define
opDVASN() 309
define
opEQ() 317
define
opGE() 319
define
opINTNAME() 299
define
opINTNAMER() 300
define
opLE() 320
define
opMDASN() 325
define
opMIASN() 307
define
opMINUSMINUS() 301
define
opMLASN() 308
define
opMODASN() 310
define
opNDASN() 326
define
opNE() 318
define
opNTASN() 327
define
opOR() 322
define
opORASN() 313
define
opPLASN() 306
define
opPLUSPLUS() 302
define
opSHL() 304
define
opSHR() 305
define
opSLASN() 314
define
opSRASN() 315
define
opSTREQ() 323
define
opSTRNE() 328
define
opXORASN() 312
define
rwASSERT() 287
define
rwBREAK() 262
define
rwCASE() 281
define
rwCASEOR() 283
define
rwCLASS() 286
define
rwCONTINUE() 264
define
rwDATABLOCK() 279
define
rwDECLARE() 260
define
rwDECLARESINGLETON() 261
define
rwDEFAULT() 274
define
rwDEFINE() 258
define
rwDO() 270
define
rwELSE() 263
define
rwENDDEF() 259
define
rwENDFOR() 273
define
rwENDIF() 271
define
rwENDWHILE() 272
define
rwFOR() 275
define
rwFOREACH() 276
define
rwFOREACHSTR() 277
define
rwGLOBAL() 265
define
rwIF() 266
define
rwIN() 278
define
rwNAMESPACE() 285
define
rwNIL() 267
define
rwPACKAGE() 284
define
rwRETURN() 268
define
rwSWITCH() 280
define
rwSWITCHSTR() 282
define
rwWHILE() 269
define
STMT_SEP() 303
define
STRATOM() 296
define
TAGATOM() 297
define
TTAG() 291
define
TYPEIDENT() 294
define
UNARY() 329
define
VAR() 292
define
YY_ARGS(x) x
define
YYABORT() return(1)
define
YYACCEPT() return(0)
define
YYBACKUP(token, value) do \ ( == && yylen == 1) \ { = (token), = (value); \ yychar1 = (); \ ; \ goto yybackup; \ } \ else \ { ("syntax error: cannot back up"); YYERROR; } \ (0)
define
YYBISON() 1 /* Identify Bison output. */
define
yychar() CMDchar
define
yyclearin() ( = )
define
yydebug() CMDdebug
define
YYDEBUG() 0
define
YYEMPTY() -2
define
YYEOF() 0
define
YYERRCODE() 256
define
yyerrok() (yyerrstatus = 0)
define
yyerror()
define
YYERROR() goto yyerrlab1
define
YYFAIL() goto yyerrlab
define
YYFINAL() 388
define
YYFLAG() -32768
define
YYINITDEPTH() 200
define
YYLAST() 3042
define
yylex()
define
YYLEX() ()
define
YYLTYPE()
define
yylval()
define
YYMAXDEPTH() 10000
define
yynerrs() CMDnerrs
define
YYNTBASE() 100
define
yyparse() CMDparse
define
define
define
YYPOPSTACK() (yyvsp--, yyssp--)
define
YYRECOVERING() (!!yyerrstatus)
define
YYSSIZE() 350
define
YYTERROR() 1
define
YYTRANSLATE(x) ((unsigned)(x) <= 329 ? yytranslate[x] : 140)
Public Variables
Public Functions
Detailed Description
Public Defines
_CMDGRAM_H_()
alloca()
CHRCONST() 289
const()
DOCBLOCK() 295
FLTCONST() 298
IDENT() 293
ILLEGAL_TOKEN() 288
INTCONST() 290
nil() 0
opAND() 321
opANDASN() 311
opCAT() 316
opCOLONCOLON() 324
opDVASN() 309
opEQ() 317
opGE() 319
opINTNAME() 299
opINTNAMER() 300
opLE() 320
opMDASN() 325
opMIASN() 307
opMINUSMINUS() 301
opMLASN() 308
opMODASN() 310
opNDASN() 326
opNE() 318
opNTASN() 327
opOR() 322
opORASN() 313
opPLASN() 306
opPLUSPLUS() 302
opSHL() 304
opSHR() 305
opSLASN() 314
opSRASN() 315
opSTREQ() 323
opSTRNE() 328
opXORASN() 312
rwASSERT() 287
rwBREAK() 262
rwCASE() 281
rwCASEOR() 283
rwCLASS() 286
rwCONTINUE() 264
rwDATABLOCK() 279
rwDECLARE() 260
rwDECLARESINGLETON() 261
rwDEFAULT() 274
rwDEFINE() 258
rwDO() 270
rwELSE() 263
rwENDDEF() 259
rwENDFOR() 273
rwENDIF() 271
rwENDWHILE() 272
rwFOR() 275
rwFOREACH() 276
rwFOREACHSTR() 277
rwGLOBAL() 265
rwIF() 266
rwIN() 278
rwNAMESPACE() 285
rwNIL() 267
rwPACKAGE() 284
rwRETURN() 268
rwSWITCH() 280
rwSWITCHSTR() 282
rwWHILE() 269
STMT_SEP() 303
STRATOM() 296
TAGATOM() 297
TTAG() 291
TYPEIDENT() 294
UNARY() 329
VAR() 292
YY_ARGS(x) x
YYABORT() return(1)
YYACCEPT() return(0)
YYBACKUP(token, value) do \ ( == && yylen == 1) \ { = (token), = (value); \ yychar1 = (); \ ; \ goto yybackup; \ } \ else \ { ("syntax error: cannot back up"); YYERROR; } \ (0)
YYBISON() 1 /* Identify Bison output. */
yychar() CMDchar
yyclearin() ( = )
yydebug() CMDdebug
YYDEBUG() 0
YYEMPTY() -2
YYEOF() 0
YYERRCODE() 256
yyerrok() (yyerrstatus = 0)
yyerror()
YYERROR() goto yyerrlab1
YYFAIL() goto yyerrlab
YYFINAL() 388
YYFLAG() -32768
YYINITDEPTH() 200
YYLAST() 3042
yylex()
YYLEX() ()
YYLTYPE()
yylval()
YYMAXDEPTH() 10000
yynerrs() CMDnerrs
YYNTBASE() 100
yyparse() CMDparse
YYPARSE_PARAM()
YYPARSE_PARAM_DECL()
YYPOPSTACK() (yyvsp--, yyssp--)
YYRECOVERING() (!!yyerrstatus)
YYSSIZE() 350
YYTERROR() 1
YYTRANSLATE(x) ((unsigned)(x) <= 329 ? yytranslate[x] : 140)
Public Variables
int count
register int i
int serrors
register char * t
char * to
int yychar
const short yycheck []
const short yydefact []
const short yydefgoto []
YYSTYPE yylval
int yynerrs
const short yypact []
const short yypgoto []
const short yyr1 []
const short yyr2 []
const short yytable []
const char yytranslate []
Public Functions
__yy_memcpy(from , to , count )
CMDerror(char * format, ... )
CMDlex()
outtext(char * fmt, ... )
while(i-- , 0 )
yyparse(YYPARSE_PARAM )
1 2 3/* A Bison parser, made from cmdgram.y with Bison version GNU Bison version 1.24 4 */ 5 6#define YYBISON 1 /* Identify Bison output. */ 7 8#define yyparse CMDparse 9#define yylex CMDlex 10#define yyerror CMDerror 11#define yylval CMDlval 12#define yychar CMDchar 13#define yydebug CMDdebug 14#define yynerrs CMDnerrs 15#define rwDEFINE 258 16#define rwENDDEF 259 17#define rwDECLARE 260 18#define rwDECLARESINGLETON 261 19#define rwBREAK 262 20#define rwELSE 263 21#define rwCONTINUE 264 22#define rwGLOBAL 265 23#define rwIF 266 24#define rwNIL 267 25#define rwRETURN 268 26#define rwWHILE 269 27#define rwDO 270 28#define rwENDIF 271 29#define rwENDWHILE 272 30#define rwENDFOR 273 31#define rwDEFAULT 274 32#define rwFOR 275 33#define rwFOREACH 276 34#define rwFOREACHSTR 277 35#define rwIN 278 36#define rwDATABLOCK 279 37#define rwSWITCH 280 38#define rwCASE 281 39#define rwSWITCHSTR 282 40#define rwCASEOR 283 41#define rwPACKAGE 284 42#define rwNAMESPACE 285 43#define rwCLASS 286 44#define rwASSERT 287 45#define ILLEGAL_TOKEN 288 46#define CHRCONST 289 47#define INTCONST 290 48#define TTAG 291 49#define VAR 292 50#define IDENT 293 51#define TYPEIDENT 294 52#define DOCBLOCK 295 53#define STRATOM 296 54#define TAGATOM 297 55#define FLTCONST 298 56#define opINTNAME 299 57#define opINTNAMER 300 58#define opMINUSMINUS 301 59#define opPLUSPLUS 302 60#define STMT_SEP 303 61#define opSHL 304 62#define opSHR 305 63#define opPLASN 306 64#define opMIASN 307 65#define opMLASN 308 66#define opDVASN 309 67#define opMODASN 310 68#define opANDASN 311 69#define opXORASN 312 70#define opORASN 313 71#define opSLASN 314 72#define opSRASN 315 73#define opCAT 316 74#define opEQ 317 75#define opNE 318 76#define opGE 319 77#define opLE 320 78#define opAND 321 79#define opOR 322 80#define opSTREQ 323 81#define opCOLONCOLON 324 82#define opMDASN 325 83#define opNDASN 326 84#define opNTASN 327 85#define opSTRNE 328 86#define UNARY 329 87 88#line 1 "cmdgram.y" 89 90 91// bison --defines=cmdgram.h --verbose -o cmdgram.cpp -p CMD CMDgram.y 92 93// Make sure we don't get gram.h twice. 94#define _CMDGRAM_H_ 95 96#include <stdlib.h> 97#include <stdio.h> 98#include "console/console.h" 99#include "console/compiler.h" 100#include "console/consoleInternal.h" 101#include "core/strings/stringFunctions.h" 102 103#ifndef YYDEBUG 104#define YYDEBUG 0 105#endif 106 107#define YYSSIZE 350 108 109int outtext(char *fmt, ...); 110extern int serrors; 111 112#define nil 0 113#undef YY_ARGS 114#define YY_ARGS(x) x 115 116int CMDlex(); 117void CMDerror(char *, ...); 118 119#ifdef alloca 120#undef alloca 121#endif 122#define alloca dMalloc 123 124template< typename T > 125struct Token 126{ 127 T value; 128 U32 lineNumber; 129}; 130 131#line 44 "cmdgram.y" 132 133 /* Reserved Word Definitions */ 134#line 55 "cmdgram.y" 135 136 /* Constants and Identifier Definitions */ 137#line 69 "cmdgram.y" 138 139 /* Operator Definitions */ 140 141#line 82 "cmdgram.y" 142typedef union { 143 Token< char> c; 144 Token< int> i; 145 Token< const char*> s; 146 Token< char*> str; 147 Token< double> f; 148 StmtNode* stmt; 149 ExprNode* expr; 150 SlotAssignNode* slist; 151 VarNode* var; 152 SlotDecl slot; 153 InternalSlotDecl intslot; 154 ObjectBlockDecl odcl; 155 ObjectDeclNode* od; 156 AssignDecl asn; 157 IfStmtNode* ifnode; 158} YYSTYPE; 159 160#ifndef YYLTYPE 161typedef 162 struct yyltype 163 { 164 int timestamp; 165 int first_line; 166 int first_column; 167 int last_line; 168 int last_column; 169 char *text; 170 } 171 yyltype; 172 173#define YYLTYPE yyltype 174#endif 175 176#include <stdio.h> 177 178#ifndef __cplusplus 179#ifndef __STDC__ 180#define const 181#endif 182#endif 183 184 185 186#define YYFINAL 388 187#define YYFLAG -32768 188#define YYNTBASE 100 189 190#define YYTRANSLATE(x) ((unsigned)(x) <= 329 ? yytranslate[x] : 140) 191 192static const char yytranslate[] = { 0, 193 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 194 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 196 2, 2, 64, 2, 2, 2, 54, 53, 2, 55, 197 56, 46, 44, 57, 45, 51, 47, 2, 2, 2, 198 2, 2, 2, 2, 2, 2, 2, 58, 59, 48, 199 50, 49, 96, 65, 2, 2, 2, 2, 2, 2, 200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 202 92, 2, 99, 62, 2, 2, 2, 2, 2, 2, 203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 205 2, 2, 60, 52, 61, 63, 2, 2, 2, 2, 206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 218 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 219 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 220 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 221 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 222 36, 37, 38, 39, 40, 41, 42, 43, 66, 67, 223 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 224 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 225 88, 89, 90, 91, 93, 94, 95, 97, 98 226}; 227 228#if YYDEBUG != 0 229static const short yyprhs[] = { 0, 230 0, 2, 3, 6, 8, 10, 12, 19, 21, 24, 231 25, 28, 30, 32, 34, 36, 38, 40, 43, 46, 232 49, 53, 56, 61, 68, 70, 79, 90, 91, 93, 233 95, 99, 110, 121, 129, 142, 152, 163, 171, 172, 234 175, 176, 178, 179, 182, 183, 185, 187, 190, 193, 235 197, 201, 203, 211, 219, 224, 232, 238, 240, 244, 236 250, 258, 264, 271, 281, 290, 299, 307, 316, 324, 237 332, 339, 347, 355, 357, 359, 363, 367, 371, 375, 238 379, 383, 387, 391, 395, 398, 401, 403, 409, 413, 239 417, 421, 425, 429, 433, 437, 441, 445, 449, 453, 240 457, 461, 464, 467, 469, 471, 473, 475, 477, 479, 241 481, 483, 485, 490, 498, 502, 509, 513, 517, 519, 242 523, 525, 527, 530, 533, 536, 539, 542, 545, 548, 243 551, 554, 557, 559, 561, 563, 567, 574, 577, 583, 244 586, 590, 596, 601, 608, 615, 620, 627, 628, 630, 245 632, 636, 637, 639, 641, 644, 649, 655, 660, 668, 246 677, 679 247}; 248 249static const short yyrhs[] = { 101, 250 0, 0, 101, 102, 0, 106, 0, 107, 0, 103, 251 0, 29, 38, 60, 104, 61, 59, 0, 107, 0, 252 104, 107, 0, 0, 105, 106, 0, 121, 0, 122, 253 0, 123, 0, 124, 0, 110, 0, 118, 0, 7, 254 59, 0, 9, 59, 0, 13, 59, 0, 13, 126, 255 59, 0, 125, 59, 0, 36, 50, 126, 59, 0, 256 36, 50, 126, 57, 126, 59, 0, 40, 0, 3, 257 38, 55, 108, 56, 60, 105, 61, 0, 3, 38, 258 91, 38, 55, 108, 56, 60, 105, 61, 0, 0, 259 109, 0, 37, 0, 109, 57, 37, 0, 24, 129, 260 55, 126, 112, 56, 60, 136, 61, 59, 0, 5, 261 129, 55, 113, 112, 114, 56, 60, 115, 61, 0, 262 5, 129, 55, 113, 112, 114, 56, 0, 5, 129, 263 55, 92, 113, 99, 112, 114, 56, 60, 115, 61, 264 0, 5, 129, 55, 92, 113, 99, 112, 114, 56, 265 0, 6, 129, 55, 113, 112, 114, 56, 60, 115, 266 61, 0, 6, 129, 55, 113, 112, 114, 56, 0, 267 0, 58, 38, 0, 0, 126, 0, 0, 57, 135, 268 0, 0, 137, 0, 116, 0, 137, 116, 0, 111, 269 59, 0, 116, 111, 59, 0, 60, 105, 61, 0, 270 106, 0, 25, 55, 126, 56, 60, 119, 61, 0, 271 27, 55, 126, 56, 60, 119, 61, 0, 26, 120, 272 58, 105, 0, 26, 120, 58, 105, 19, 58, 105, 273 0, 26, 120, 58, 105, 119, 0, 126, 0, 120, 274 28, 126, 0, 11, 55, 126, 56, 117, 0, 11, 275 55, 126, 56, 117, 8, 117, 0, 14, 55, 126, 276 56, 117, 0, 15, 117, 14, 55, 126, 56, 0, 277 20, 55, 126, 59, 126, 59, 126, 56, 117, 0, 278 20, 55, 126, 59, 126, 59, 56, 117, 0, 20, 279 55, 126, 59, 59, 126, 56, 117, 0, 20, 55, 280 126, 59, 59, 56, 117, 0, 20, 55, 59, 126, 281 59, 126, 56, 117, 0, 20, 55, 59, 126, 59, 282 56, 117, 0, 20, 55, 59, 59, 126, 56, 117, 283 0, 20, 55, 59, 59, 56, 117, 0, 21, 55, 284 37, 23, 126, 56, 117, 0, 22, 55, 37, 23, 285 126, 56, 117, 0, 131, 0, 131, 0, 55, 126, 286 56, 0, 126, 62, 126, 0, 126, 54, 126, 0, 287 126, 53, 126, 0, 126, 52, 126, 0, 126, 44, 288 126, 0, 126, 45, 126, 0, 126, 46, 126, 0, 289 126, 47, 126, 0, 45, 126, 0, 46, 126, 0, 290 36, 0, 126, 96, 126, 58, 126, 0, 126, 48, 291 126, 0, 126, 49, 126, 0, 126, 86, 126, 0, 292 126, 87, 126, 0, 126, 84, 126, 0, 126, 85, 293 126, 0, 126, 89, 126, 0, 126, 71, 126, 0, 294 126, 72, 126, 0, 126, 88, 126, 0, 126, 90, 295 126, 0, 126, 97, 126, 0, 126, 65, 126, 0, 296 64, 126, 0, 63, 126, 0, 42, 0, 43, 0, 297 35, 0, 7, 0, 127, 0, 128, 0, 38, 0, 298 41, 0, 37, 0, 37, 92, 139, 99, 0, 3, 299 55, 108, 56, 60, 105, 61, 0, 126, 51, 38, 300 0, 126, 51, 38, 92, 139, 99, 0, 126, 66, 301 129, 0, 126, 67, 129, 0, 38, 0, 55, 126, 302 56, 0, 69, 0, 68, 0, 73, 126, 0, 74, 303 126, 0, 75, 126, 0, 76, 126, 0, 77, 126, 304 0, 78, 126, 0, 79, 126, 0, 80, 126, 0, 305 81, 126, 0, 82, 126, 0, 132, 0, 133, 0, 306 111, 0, 37, 50, 126, 0, 37, 92, 139, 99, 307 50, 126, 0, 37, 130, 0, 37, 92, 139, 99, 308 130, 0, 127, 130, 0, 127, 50, 126, 0, 127, 309 50, 60, 135, 61, 0, 38, 55, 134, 56, 0, 310 38, 91, 38, 55, 134, 56, 0, 126, 51, 38, 311 55, 134, 56, 0, 32, 55, 126, 56, 0, 32, 312 55, 126, 57, 41, 56, 0, 0, 135, 0, 126, 313 0, 135, 57, 126, 0, 0, 137, 0, 138, 0, 314 137, 138, 0, 38, 50, 126, 59, 0, 39, 38, 315 50, 126, 59, 0, 24, 50, 126, 59, 0, 38, 316 92, 139, 99, 50, 126, 59, 0, 39, 38, 92, 317 139, 99, 50, 126, 59, 0, 126, 0, 139, 57, 318 126, 0 319}; 320 321#endif 322 323#if YYDEBUG != 0 324static const short yyrline[] = { 0, 325 161, 166, 168, 173, 175, 177, 182, 187, 189, 194, 326 196, 201, 202, 203, 204, 205, 206, 207, 209, 211, 327 213, 215, 217, 219, 221, 226, 228, 233, 235, 240, 328 242, 247, 252, 254, 256, 258, 260, 262, 267, 269, 329 274, 276, 281, 283, 288, 290, 292, 294, 299, 301, 330 306, 308, 313, 315, 320, 322, 324, 329, 331, 336, 331 338, 343, 345, 350, 352, 354, 356, 358, 360, 362, 332 364, 369, 371, 376, 381, 383, 385, 387, 389, 391, 333 393, 395, 397, 399, 401, 403, 405, 407, 409, 411, 334 413, 415, 417, 419, 421, 423, 425, 427, 429, 431, 335 433, 435, 437, 439, 441, 443, 445, 447, 449, 451, 336 453, 455, 457, 459, 477, 479, 484, 486, 491, 493, 337 498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 338 518, 520, 525, 527, 529, 531, 533, 535, 537, 539, 339 541, 543, 548, 550, 552, 557, 559, 564, 566, 571, 340 573, 578, 580, 585, 587, 592, 594, 596, 598, 600, 341 605, 607 342}; 343 344static const char * const yytname[] = { "$","error","$undefined.","rwDEFINE", 345"rwENDDEF","rwDECLARE","rwDECLARESINGLETON","rwBREAK","rwELSE","rwCONTINUE", 346"rwGLOBAL","rwIF","rwNIL","rwRETURN","rwWHILE","rwDO","rwENDIF","rwENDWHILE", 347"rwENDFOR","rwDEFAULT","rwFOR","rwFOREACH","rwFOREACHSTR","rwIN","rwDATABLOCK", 348"rwSWITCH","rwCASE","rwSWITCHSTR","rwCASEOR","rwPACKAGE","rwNAMESPACE","rwCLASS", 349"rwASSERT","ILLEGAL_TOKEN","CHRCONST","INTCONST","TTAG","VAR","IDENT","TYPEIDENT", 350"DOCBLOCK","STRATOM","TAGATOM","FLTCONST","'+'","'-'","'*'","'/'","'<'","'>'", 351"'='","'.'","'|'","'&'","'%'","'('","')'","','","':'","';'","'{'","'}'","'^'", 352"'~'","'!'","'@'","opINTNAME","opINTNAMER","opMINUSMINUS","opPLUSPLUS","STMT_SEP", 353"opSHL","opSHR","opPLASN","opMIASN","opMLASN","opDVASN","opMODASN","opANDASN", 354"opXORASN","opORASN","opSLASN","opSRASN","opCAT","opEQ","opNE","opGE","opLE", 355"opAND","opOR","opSTREQ","opCOLONCOLON","'['","opMDASN","opNDASN","opNTASN", 356"'?'","opSTRNE","UNARY","']'","start","decl_list","decl","package_decl","fn_decl_list", 357"statement_list","stmt","fn_decl_stmt","var_list_decl","var_list","datablock_decl", 358"object_decl","parent_block","object_name","object_args","object_declare_block", 359"object_decl_list","stmt_block","switch_stmt","case_block","case_expr","if_stmt", 360"while_stmt","for_stmt","foreach_stmt","expression_stmt","expr","slot_acc","intslot_acc", 361"class_name_expr","assign_op_struct","stmt_expr","funcall_expr","assert_expr", 362"expr_list_decl","expr_list","slot_assign_list_opt","slot_assign_list","slot_assign", 363"aidx_expr","" 364}; 365#endif 366 367static const short yyr1[] = { 0, 368 100, 101, 101, 102, 102, 102, 103, 104, 104, 105, 369 105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 370 106, 106, 106, 106, 106, 107, 107, 108, 108, 109, 371 109, 110, 111, 111, 111, 111, 111, 111, 112, 112, 372 113, 113, 114, 114, 115, 115, 115, 115, 116, 116, 373 117, 117, 118, 118, 119, 119, 119, 120, 120, 121, 374 121, 122, 122, 123, 123, 123, 123, 123, 123, 123, 375 123, 124, 124, 125, 126, 126, 126, 126, 126, 126, 376 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 377 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 378 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 379 126, 126, 126, 126, 127, 127, 128, 128, 129, 129, 380 130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 381 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 382 131, 131, 132, 132, 132, 133, 133, 134, 134, 135, 383 135, 136, 136, 137, 137, 138, 138, 138, 138, 138, 384 139, 139 385}; 386 387static const short yyr2[] = { 0, 388 1, 0, 2, 1, 1, 1, 6, 1, 2, 0, 389 2, 1, 1, 1, 1, 1, 1, 2, 2, 2, 390 3, 2, 4, 6, 1, 8, 10, 0, 1, 1, 391 3, 10, 10, 7, 12, 9, 10, 7, 0, 2, 392 0, 1, 0, 2, 0, 1, 1, 2, 2, 3, 393 3, 1, 7, 7, 4, 7, 5, 1, 3, 5, 394 7, 5, 6, 9, 8, 8, 7, 8, 7, 7, 395 6, 7, 7, 1, 1, 3, 3, 3, 3, 3, 396 3, 3, 3, 3, 2, 2, 1, 5, 3, 3, 397 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 398 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 399 1, 1, 4, 7, 3, 6, 3, 3, 1, 3, 400 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 401 2, 2, 1, 1, 1, 3, 6, 2, 5, 2, 402 3, 5, 4, 6, 6, 4, 6, 0, 1, 1, 403 3, 0, 1, 1, 2, 4, 5, 4, 7, 8, 404 1, 3 405}; 406 407static const short yydefact[] = { 2, 408 1, 0, 0, 0, 107, 0, 0, 0, 0, 0, 409 0, 0, 0, 0, 0, 0, 0, 0, 106, 87, 410 112, 110, 25, 111, 104, 105, 0, 0, 0, 0, 411 0, 3, 6, 4, 5, 16, 135, 17, 12, 13, 412 14, 15, 0, 0, 108, 109, 75, 133, 134, 0, 413 28, 119, 0, 0, 0, 18, 19, 0, 0, 107, 414 87, 20, 0, 75, 0, 10, 52, 0, 0, 0, 415 0, 0, 0, 0, 0, 0, 0, 0, 122, 121, 416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 417 0, 138, 148, 0, 85, 86, 0, 103, 102, 22, 418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 420 0, 0, 0, 0, 0, 0, 140, 28, 0, 30, 421 0, 29, 0, 41, 41, 0, 21, 0, 0, 0, 422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 423 136, 123, 124, 125, 126, 127, 128, 129, 130, 131, 424 132, 161, 0, 150, 0, 149, 0, 76, 81, 82, 425 83, 84, 89, 90, 115, 80, 79, 78, 77, 101, 426 117, 118, 96, 97, 93, 94, 91, 92, 98, 95, 427 99, 0, 100, 0, 141, 0, 0, 0, 0, 120, 428 41, 39, 42, 39, 0, 0, 51, 11, 0, 0, 429 0, 0, 0, 0, 39, 0, 0, 0, 0, 8, 430 146, 0, 0, 23, 0, 113, 143, 0, 148, 148, 431 0, 0, 0, 0, 28, 10, 31, 0, 0, 43, 432 43, 60, 62, 0, 0, 0, 0, 0, 0, 0, 433 0, 0, 0, 0, 0, 9, 0, 0, 162, 0, 434 139, 151, 0, 0, 0, 88, 142, 10, 0, 0, 435 39, 40, 0, 0, 0, 0, 63, 71, 0, 0, 436 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 437 7, 147, 24, 137, 144, 145, 116, 0, 0, 114, 438 43, 44, 34, 38, 61, 70, 69, 0, 67, 0, 439 0, 0, 72, 73, 152, 0, 58, 53, 54, 26, 440 10, 0, 45, 45, 68, 66, 65, 0, 0, 0, 441 0, 0, 153, 154, 0, 10, 0, 36, 0, 0, 442 47, 46, 0, 64, 0, 0, 0, 0, 0, 155, 443 59, 55, 27, 45, 49, 33, 0, 48, 37, 0, 444 0, 0, 0, 0, 32, 0, 57, 0, 50, 158, 445 156, 0, 0, 0, 10, 35, 0, 157, 0, 56, 446 0, 0, 159, 0, 160, 0, 0, 0 447}; 448 449static const short yydefgoto[] = { 386, 450 1, 32, 33, 219, 139, 67, 35, 131, 132, 36, 451 37, 240, 202, 274, 340, 341, 68, 38, 289, 316, 452 39, 40, 41, 42, 43, 44, 45, 46, 54, 92, 453 64, 48, 49, 165, 166, 332, 342, 334, 163 454}; 455 456static const short yypact[] = {-32768, 457 210, -14, -2, -2, -38, -28, -11, 829, 4, 418, 458 13, 64, 69, -2, 70, 71, 85, 72,-32768, 52, 459 462, -40,-32768,-32768,-32768,-32768, 1225, 1225, 1225, 1225, 460 1225,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 461-32768,-32768, 75, 2688, 560,-32768, 76,-32768,-32768, -22, 462 92,-32768, 1225, 81, 86,-32768,-32768, 1225, 88,-32768, 463-32768,-32768, 1338,-32768, 1225,-32768,-32768, 116, 873, 103, 464 107, 90, 1225, 1225, 96, 1225, 1225, 1225,-32768,-32768, 465 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 466 1225,-32768, 1225, 93, 30, 30, 1392, 30, 30,-32768, 467 1225, 1225, 1225, 1225, 1225, 1225, 108, 1225, 1225, 1225, 468 1225, 1225, -2, -2, 1225, 1225, 1225, 1225, 1225, 1225, 469 1225, 1225, 1225, 1225, 1225, 917,-32768, 92, 110,-32768, 470 98, 95, 1446, 20, 1225, 1500,-32768, 1554, 550, 105, 471 961, 1608, 138, 139, 1225, 1662, 1716, 164, 1230, 1284, 472 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 2688, 473 2688, 2688, -39, 2688, 117, 115, 119,-32768, 47, 47, 474 30, 30, 2945, 2945, -25, 2829, 2887, 30, 2858, 257, 475-32768,-32768, 421, 421, 2916, 2916, 2945, 2945, 2800, 2771, 476 257, 1770, 257, 1225, 2688, 121, 120, 118, 151,-32768, 477 1225, 133, 2688, 133, 418, 418,-32768,-32768, 1225, 1005, 478 1824, 1049, 1225, 1225, 1878, 132, 134, 155, 11,-32768, 479-32768, 154, 1225,-32768, 1225, 2950,-32768, 1225, 1225, 1225, 480 1225, 1225, -15, 136, 92,-32768,-32768, 101, 159, 141, 481 141, 193,-32768, 1932, 418, 1986, 1093, 1137, 2040, 2094, 482 2148, 146, 177, 177, 147,-32768, 153, 2202, 2688, 1225, 483-32768, 2688, 156, 158, -35, 2742,-32768,-32768, 162, 650, 484 133,-32768, 1225, 166, 170, 418,-32768,-32768, 418, 418, 485 2256, 418, 2310, 1181, 418, 418, 150, 1225, 167, 168, 486-32768,-32768,-32768, 2688,-32768,-32768,-32768, 695, 160,-32768, 487 141, 115, 173, 176,-32768,-32768,-32768, 418,-32768, 418, 488 418, 2364,-32768,-32768, 68, 12, 2688,-32768,-32768,-32768, 489-32768, 171, 94, 94,-32768,-32768,-32768, 418, 161, -21, 490 200, 179, 68,-32768, 1225,-32768, 740, 181, 184, 188, 491 99, 94, 196,-32768, 1225, 1225, 1225, -18, 195,-32768, 492 2688, 144,-32768, 94,-32768,-32768, 199, 99,-32768, 2418, 493 2472, -9, 1225, 1225,-32768, 201,-32768, 202,-32768,-32768, 494-32768, 211, 2526, -8,-32768,-32768, 1225,-32768, 212, 785, 495 2580, 1225,-32768, 2634,-32768, 260, 264,-32768 496}; 497 498static const short yypgoto[] = {-32768, 499-32768,-32768,-32768,-32768, -233, 0, -132, -120,-32768,-32768, 500 -304, -176, -123, -228, -277, -76, -200,-32768, -243,-32768, 501-32768,-32768,-32768,-32768,-32768, 285,-32768,-32768, 3, -43, 502 -1,-32768,-32768, -108, -184,-32768, -48, -299, -227 503}; 504 505 506#define YYLAST 3042 507 508 509static const short yytable[] = { 47, 510 34, 127, 270, 265, 242, 243, 55, 196, 47, 233, 511 290, 204, 275, 218, 93, 220, 72, 225, 339, 339, 512 56, 225, 59, 50, 3, 4, 60, 241, 346, 230, 513 57, 363, 128, 350, 298, 52, 357, 339, 252, 335, 514 51, 228, 350, 58, 278, 267, 343, 225, 225, 339, 515 94, 18, 53, 357, 19, 61, 21, 22, 65, 226, 516 24, 25, 26, 297, 27, 28, 231, 69, 129, 336, 517 347, 255, 322, 364, 29, 305, 368, 238, 306, 307, 518 107, 309, 30, 31, 313, 314, 256, 337, 302, 372, 519 379, 329, 103, 104, 301, 113, 114, 107, 3, 4, 520 110, 77, 352, 3, 4, 330, 331, 325, 367, 326, 521 327, 201, 113, 114, 269, 181, 182, 329, 70, 362, 522 263, 264, 75, 71, 73, 74, 76, 344, 130, 140, 523 167, 330, 331, 100, -74, 134, 374, 47, 208, 143, 524 135, 380, 51, 144, 145, 175, 59, 197, 3, 4, 525 5, 199, 6, 198, 7, 148, 8, 9, 10, 209, 526 213, 214, 366, 11, 12, 13, 218, 14, 15, 288, 527 16, 228, 227, 229, 235, 18, 234, 236, 19, 20, 528 21, 22, 261, 23, 24, 25, 26, 237, 27, 28, 529 239, 253, 50, 254, 257, 268, 272, 273, 29, 271, 530 276, 287, 288, 47, 47, 291, 30, 31, 292, 315, 531 345, 295, 2, 296, 3, 4, 5, 299, 6, 321, 532 7, 303, 8, 9, 10, 304, 338, 318, 319, 11, 533 12, 13, 323, 14, 15, 324, 16, 348, 17, 349, 534 354, 18, 355, 47, 19, 20, 21, 22, 356, 23, 535 24, 25, 26, 365, 27, 28, 359, 369, 375, 387, 536 377, 382, 376, 388, 29, 358, 333, 0, 47, 208, 537 0, 0, 30, 31, 47, 0, 0, 47, 47, 0, 538 47, 0, 0, 47, 47, 0, 0, 0, 0, 0, 539 0, 0, 63, 0, 0, 0, 47, 208, 0, 0, 540 101, 102, 103, 104, 0, 0, 47, 107, 47, 47, 541 110, 95, 96, 97, 98, 99, 0, 0, 0, 0, 542 0, 0, 113, 114, 0, 0, 47, 115, 116, 0, 543 0, 0, 0, 0, 0, 47, 208, 133, 0, 0, 544 0, 0, 136, 0, 0, 0, 0, 0, 0, 138, 545 47, 208, 0, 142, 0, 0, 0, 146, 147, 0, 546 149, 150, 151, 0, 0, 152, 153, 154, 155, 156, 547 157, 158, 159, 160, 161, 162, 0, 164, 47, 208, 548 0, 0, 0, 0, 0, 169, 170, 171, 172, 173, 549 174, 0, 176, 177, 178, 179, 180, 0, 0, 183, 550 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 551 195, 0, 0, 0, 0, 0, 0, 0, 203, 203, 552 59, 0, 3, 4, 5, 211, 6, 0, 7, 215, 553 8, 9, 10, 0, 0, 0, 0, 11, 12, 13, 554 0, 14, 15, 0, 16, 0, 0, 0, 0, 18, 555 0, 0, 19, 20, 21, 22, 0, 23, 24, 25, 556 26, 0, 27, 28, 101, 102, 103, 104, 0, 0, 557 0, 107, 29, 0, 110, 0, 0, 66, 164, 0, 558 30, 31, 0, 0, 0, 203, 113, 114, 0, 0, 559 0, 0, 0, 244, 246, 0, 249, 250, 251, 0, 560 0, 0, 0, 0, 0, 0, 0, 258, 0, 259, 561 0, 78, 262, 164, 164, 162, 266, 0, 0, 0, 562 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 563 80, 281, 283, 0, 81, 82, 83, 84, 85, 86, 564 87, 88, 89, 90, 294, 0, 0, 0, 0, 0, 565 0, 0, 59, 91, 3, 4, 5, 164, 6, 0, 566 7, 0, 8, 9, 10, 0, 0, 0, 312, 11, 567 12, 13, 317, 14, 15, 0, 16, 0, 0, 0, 568 0, 18, 0, 0, 19, 20, 21, 22, 0, 23, 569 24, 25, 26, 0, 27, 28, 0, 0, 0, 0, 570 0, 0, 0, 0, 29, 0, 0, 0, 0, 126, 571 207, 0, 30, 31, 0, 0, 0, 0, 0, 351, 572 0, 0, 0, 0, 0, 0, 0, 79, 80, 360, 573 361, 162, 81, 82, 83, 84, 85, 86, 87, 88, 574 89, 90, 0, 0, 0, 0, 0, 373, 162, 0, 575 0, 0, 59, 0, 3, 4, 5, 0, 6, 0, 576 7, 381, 8, 9, 10, 0, 384, 0, 0, 11, 577 12, 13, 0, 14, 15, 0, 16, 0, 0, 0, 578 0, 18, 0, 0, 19, 20, 21, 22, 0, 23, 579 24, 25, 26, 0, 27, 28, 0, 59, 0, 3, 580 4, 5, 0, 6, 29, 7, 0, 8, 9, 10, 581 300, 0, 30, 31, 11, 12, 13, 0, 14, 15, 582 0, 16, 0, 0, 0, 0, 18, 0, 0, 19, 583 20, 21, 22, 0, 23, 24, 25, 26, 0, 27, 584 28, 0, 59, 0, 3, 4, 5, 0, 6, 29, 585 7, 0, 8, 9, 10, 320, 0, 30, 31, 11, 586 12, 13, 0, 14, 15, 0, 16, 0, 0, 0, 587 0, 18, 0, 0, 19, 20, 21, 22, 0, 23, 588 24, 25, 26, 0, 27, 28, 0, 59, 0, 3, 589 4, 5, 0, 6, 29, 7, 0, 8, 9, 10, 590 353, 0, 30, 31, 11, 12, 13, 0, 14, 15, 591 0, 16, 0, 0, 0, 0, 18, 0, 0, 19, 592 20, 21, 22, 0, 23, 24, 25, 26, 0, 27, 593 28, 59, 0, 3, 4, 60, 0, 0, 0, 29, 594 0, 0, 0, 0, 0, 0, 0, 30, 31, 0, 595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 596 18, 0, 0, 19, 61, 21, 22, 0, 0, 24, 597 25, 26, 0, 27, 28, 59, 0, 3, 4, 60, 598 0, 0, 0, 29, 0, 0, 0, 62, 0, 0, 599 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 600 0, 0, 0, 0, 18, 0, 0, 19, 61, 21, 601 22, 0, 0, 24, 25, 26, 0, 27, 28, 59, 602 0, 3, 4, 60, 0, 0, 0, 29, 0, 0, 603 0, 141, 0, 0, 0, 30, 31, 0, 0, 0, 604 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 605 0, 19, 61, 21, 22, 0, 0, 24, 25, 26, 606 0, 27, 28, 59, 0, 3, 4, 60, 0, 0, 607 0, 29, 0, 0, 0, 0, 194, 0, 0, 30, 608 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 609 0, 0, 18, 0, 0, 19, 61, 21, 22, 0, 610 0, 24, 25, 26, 0, 27, 28, 59, 0, 3, 611 4, 60, 0, 0, 0, 29, 0, 0, 0, 210, 612 0, 0, 0, 30, 31, 0, 0, 0, 0, 0, 613 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, 614 61, 21, 22, 0, 0, 24, 25, 26, 0, 27, 615 28, 59, 0, 3, 4, 60, 0, 0, 0, 29, 616 245, 0, 0, 0, 0, 0, 0, 30, 31, 0, 617 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 618 18, 0, 0, 19, 61, 21, 22, 0, 0, 24, 619 25, 26, 0, 27, 28, 59, 0, 3, 4, 60, 620 0, 0, 0, 29, 0, 0, 0, 248, 0, 0, 621 0, 30, 31, 0, 0, 0, 0, 0, 0, 0, 622 0, 0, 0, 0, 18, 0, 0, 19, 61, 21, 623 22, 0, 0, 24, 25, 26, 0, 27, 28, 59, 624 0, 3, 4, 60, 0, 0, 0, 29, 280, 0, 625 0, 0, 0, 0, 0, 30, 31, 0, 0, 0, 626 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 627 0, 19, 61, 21, 22, 0, 0, 24, 25, 26, 628 0, 27, 28, 59, 0, 3, 4, 60, 0, 0, 629 0, 29, 282, 0, 0, 0, 0, 0, 0, 30, 630 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631 0, 0, 18, 0, 0, 19, 61, 21, 22, 0, 632 0, 24, 25, 26, 0, 27, 28, 59, 0, 3, 633 4, 60, 0, 0, 0, 29, 311, 0, 0, 0, 634 0, 0, 0, 30, 31, 0, 0, 0, 0, 0, 635 0, 0, 0, 0, 0, 0, 18, 0, 0, 19, 636 61, 21, 22, 0, 0, 24, 25, 26, 0, 27, 637 28, 0, 0, 101, 102, 103, 104, 105, 106, 29, 638 107, 108, 109, 110, 0, 221, 222, 30, 31, 0, 639 0, 111, 0, 0, 112, 113, 114, 0, 0, 0, 640 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 641 0, 0, 0, 117, 118, 119, 120, 121, 122, 123, 642 0, 0, 0, 0, 0, 124, 125, 101, 102, 103, 643 104, 105, 106, 0, 107, 108, 109, 110, 0, 0, 644 223, 0, 224, 0, 0, 111, 0, 0, 112, 113, 645 114, 0, 0, 0, 115, 116, 0, 0, 0, 0, 646 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 647 120, 121, 122, 123, 0, 0, 0, 0, 0, 124, 648 125, 101, 102, 103, 104, 105, 106, 0, 107, 108, 649 109, 110, 0, 0, 0, 0, 137, 0, 0, 111, 650 0, 0, 112, 113, 114, 0, 0, 0, 115, 116, 651 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 652 0, 117, 118, 119, 120, 121, 122, 123, 0, 0, 653 0, 0, 0, 124, 125, 101, 102, 103, 104, 105, 654 106, 0, 107, 108, 109, 110, 0, 168, 0, 0, 655 0, 0, 0, 111, 0, 0, 112, 113, 114, 0, 656 0, 0, 115, 116, 0, 0, 0, 0, 0, 0, 657 0, 0, 0, 0, 0, 117, 118, 119, 120, 121, 658 122, 123, 0, 0, 0, 0, 0, 124, 125, 101, 659 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 660 0, 200, 0, 0, 0, 0, 0, 111, 0, 0, 661 112, 113, 114, 0, 0, 0, 115, 116, 0, 0, 662 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 663 118, 119, 120, 121, 122, 123, 0, 0, 0, 0, 664 0, 124, 125, 101, 102, 103, 104, 105, 106, 0, 665 107, 108, 109, 110, 0, 205, 0, 0, 0, 0, 666 0, 111, 0, 0, 112, 113, 114, 0, 0, 0, 667 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 668 0, 0, 0, 117, 118, 119, 120, 121, 122, 123, 669 0, 0, 0, 0, 0, 124, 125, 101, 102, 103, 670 104, 105, 106, 0, 107, 108, 109, 110, 0, 206, 671 0, 0, 0, 0, 0, 111, 0, 0, 112, 113, 672 114, 0, 0, 0, 115, 116, 0, 0, 0, 0, 673 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 674 120, 121, 122, 123, 0, 0, 0, 0, 0, 124, 675 125, 101, 102, 103, 104, 105, 106, 0, 107, 108, 676 109, 110, 0, 0, 0, 0, 212, 0, 0, 111, 677 0, 0, 112, 113, 114, 0, 0, 0, 115, 116, 678 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 679 0, 117, 118, 119, 120, 121, 122, 123, 0, 0, 680 0, 0, 0, 124, 125, 101, 102, 103, 104, 105, 681 106, 0, 107, 108, 109, 110, 0, 216, 0, 0, 682 0, 0, 0, 111, 0, 0, 112, 113, 114, 0, 683 0, 0, 115, 116, 0, 0, 0, 0, 0, 0, 684 0, 0, 0, 0, 0, 117, 118, 119, 120, 121, 685 122, 123, 0, 0, 0, 0, 0, 124, 125, 101, 686 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 687 0, 217, 0, 0, 0, 0, 0, 111, 0, 0, 688 112, 113, 114, 0, 0, 0, 115, 116, 0, 0, 689 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 690 118, 119, 120, 121, 122, 123, 0, 0, 0, 0, 691 0, 124, 125, 101, 102, 103, 104, 105, 106, 0, 692 107, 108, 109, 110, 0, 0, 0, 232, 0, 0, 693 0, 111, 0, 0, 112, 113, 114, 0, 0, 0, 694 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 695 0, 0, 0, 117, 118, 119, 120, 121, 122, 123, 696 0, 0, 0, 0, 0, 124, 125, 101, 102, 103, 697 104, 105, 106, 0, 107, 108, 109, 110, 0, 0, 698 0, 0, 247, 0, 0, 111, 0, 0, 112, 113, 699 114, 0, 0, 0, 115, 116, 0, 0, 0, 0, 700 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 701 120, 121, 122, 123, 0, 0, 0, 0, 0, 124, 702 125, 101, 102, 103, 104, 105, 106, 0, 107, 108, 703 109, 110, 0, 0, 0, 239, 0, 0, 0, 111, 704 0, 0, 112, 113, 114, 0, 0, 0, 115, 116, 705 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 706 0, 117, 118, 119, 120, 121, 122, 123, 0, 0, 707 0, 0, 0, 124, 125, 101, 102, 103, 104, 105, 708 106, 0, 107, 108, 109, 110, 0, 277, 0, 0, 709 0, 0, 0, 111, 0, 0, 112, 113, 114, 0, 710 0, 0, 115, 116, 0, 0, 0, 0, 0, 0, 711 0, 0, 0, 0, 0, 117, 118, 119, 120, 121, 712 122, 123, 0, 0, 0, 0, 0, 124, 125, 101, 713 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 714 0, 279, 0, 0, 0, 0, 0, 111, 0, 0, 715 112, 113, 114, 0, 0, 0, 115, 116, 0, 0, 716 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 717 118, 119, 120, 121, 122, 123, 0, 0, 0, 0, 718 0, 124, 125, 101, 102, 103, 104, 105, 106, 0, 719 107, 108, 109, 110, 0, 0, 0, 0, 284, 0, 720 0, 111, 0, 0, 112, 113, 114, 0, 0, 0, 721 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 722 0, 0, 0, 117, 118, 119, 120, 121, 122, 123, 723 0, 0, 0, 0, 0, 124, 125, 101, 102, 103, 724 104, 105, 106, 0, 107, 108, 109, 110, 0, 285, 725 0, 0, 0, 0, 0, 111, 0, 0, 112, 113, 726 114, 0, 0, 0, 115, 116, 0, 0, 0, 0, 727 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 728 120, 121, 122, 123, 0, 0, 0, 0, 0, 124, 729 125, 101, 102, 103, 104, 105, 106, 0, 107, 108, 730 109, 110, 0, 286, 0, 0, 0, 0, 0, 111, 731 0, 0, 112, 113, 114, 0, 0, 0, 115, 116, 732 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 733 0, 117, 118, 119, 120, 121, 122, 123, 0, 0, 734 0, 0, 0, 124, 125, 101, 102, 103, 104, 105, 735 106, 0, 107, 108, 109, 110, 0, 0, 0, 0, 736 293, 0, 0, 111, 0, 0, 112, 113, 114, 0, 737 0, 0, 115, 116, 0, 0, 0, 0, 0, 0, 738 0, 0, 0, 0, 0, 117, 118, 119, 120, 121, 739 122, 123, 0, 0, 0, 0, 0, 124, 125, 101, 740 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 741 0, 308, 0, 0, 0, 0, 0, 111, 0, 0, 742 112, 113, 114, 0, 0, 0, 115, 116, 0, 0, 743 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 744 118, 119, 120, 121, 122, 123, 0, 0, 0, 0, 745 0, 124, 125, 101, 102, 103, 104, 105, 106, 0, 746 107, 108, 109, 110, 0, 310, 0, 0, 0, 0, 747 0, 111, 0, 0, 112, 113, 114, 0, 0, 0, 748 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 749 0, 0, 0, 117, 118, 119, 120, 121, 122, 123, 750 0, 0, 0, 0, 0, 124, 125, 101, 102, 103, 751 104, 105, 106, 0, 107, 108, 109, 110, 0, 328, 752 0, 0, 0, 0, 0, 111, 0, 0, 112, 113, 753 114, 0, 0, 0, 115, 116, 0, 0, 0, 0, 754 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 755 120, 121, 122, 123, 0, 0, 0, 0, 0, 124, 756 125, 101, 102, 103, 104, 105, 106, 0, 107, 108, 757 109, 110, 0, 0, 0, 0, 370, 0, 0, 111, 758 0, 0, 112, 113, 114, 0, 0, 0, 115, 116, 759 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 760 0, 117, 118, 119, 120, 121, 122, 123, 0, 0, 761 0, 0, 0, 124, 125, 101, 102, 103, 104, 105, 762 106, 0, 107, 108, 109, 110, 0, 0, 0, 0, 763 371, 0, 0, 111, 0, 0, 112, 113, 114, 0, 764 0, 0, 115, 116, 0, 0, 0, 0, 0, 0, 765 0, 0, 0, 0, 0, 117, 118, 119, 120, 121, 766 122, 123, 0, 0, 0, 0, 0, 124, 125, 101, 767 102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 768 0, 0, 0, 0, 378, 0, 0, 111, 0, 0, 769 112, 113, 114, 0, 0, 0, 115, 116, 0, 0, 770 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 771 118, 119, 120, 121, 122, 123, 0, 0, 0, 0, 772 0, 124, 125, 101, 102, 103, 104, 105, 106, 0, 773 107, 108, 109, 110, 0, 0, 0, 0, 383, 0, 774 0, 111, 0, 0, 112, 113, 114, 0, 0, 0, 775 115, 116, 0, 0, 0, 0, 0, 0, 0, 0, 776 0, 0, 0, 117, 118, 119, 120, 121, 122, 123, 777 0, 0, 0, 0, 0, 124, 125, 101, 102, 103, 778 104, 105, 106, 0, 107, 108, 109, 110, 0, 0, 779 0, 0, 385, 0, 0, 111, 0, 0, 112, 113, 780 114, 0, 0, 0, 115, 116, 0, 0, 0, 0, 781 0, 0, 0, 0, 0, 0, 0, 117, 118, 119, 782 120, 121, 122, 123, 0, 0, 0, 0, 0, 124, 783 125, 101, 102, 103, 104, 105, 106, 0, 107, 108, 784 109, 110, 0, 0, 0, 0, 0, 0, 0, 111, 785 0, 0, 112, 113, 114, 0, 0, 0, 115, 116, 786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 787 0, 117, 118, 119, 120, 121, 122, 123, 0, 0, 788 0, 0, 0, 124, 125, 101, 102, 103, 104, 105, 789 106, 0, 107, 108, 109, 110, 0, 0, 0, 0, 790 0, 0, 0, 111, 0, 0, 112, 113, 114, 0, 791 0, 0, 115, 116, 101, 102, 103, 104, 105, 106, 792 0, 107, 108, 109, 110, 117, 118, 119, 120, 121, 793 122, 123, 111, 0, 0, 112, 113, 114, 125, 0, 794 0, 115, 116, 101, 102, 103, 104, 105, 106, 0, 795 107, 108, 109, 110, 117, 118, 119, 120, 121, 0, 796 123, 111, 0, 0, 112, 113, 114, 125, 0, 0, 797 115, 116, 101, 102, 103, 104, 105, 106, 0, 107, 798 0, 109, 110, 117, 118, 119, 120, 0, 0, 123, 799 111, 0, 0, 112, 113, 114, 125, 0, 0, 115, 800 116, 101, 102, 103, 104, 105, 106, 0, 107, 0, 801 109, 110, 117, 118, 119, 120, 0, 0, 123, 0, 802 0, 0, 112, 113, 114, 125, 0, 0, 115, 116, 803 101, 102, 103, 104, 105, 106, 0, 107, 0, 0, 804 110, 117, 118, 119, 120, 0, 0, 123, 0, 0, 805 0, 112, 113, 114, 125, 0, 0, 115, 116, 101, 806 102, 103, 104, 105, 106, 0, 107, 0, 0, 110, 807 117, 118, 119, 120, 0, 0, 123, 0, 0, 0, 808 112, 113, 114, 125, 0, 0, 115, 116, 101, 102, 809 103, 104, 0, 0, 0, 107, 0, 0, 110, 260, 810 0, 119, 120, 0, 0, 123, 0, 0, 0, 112, 811 113, 114, 125, 0, 0, 115, 116, 79, 80, 0, 812 0, 0, 81, 82, 83, 84, 85, 86, 87, 88, 813 89, 90, 0, 0, 123, 0, 0, 0, 0, 0, 814 0, 125 815}; 816 817static const short yycheck[] = { 1, 818 1, 45, 236, 231, 205, 206, 4, 128, 10, 194, 819 254, 135, 241, 3, 55, 148, 14, 57, 323, 324, 820 59, 57, 3, 38, 5, 6, 7, 204, 50, 55, 821 59, 50, 55, 333, 268, 38, 341, 342, 215, 28, 822 55, 57, 342, 55, 245, 61, 324, 57, 57, 354, 823 91, 32, 55, 358, 35, 36, 37, 38, 55, 99, 824 41, 42, 43, 99, 45, 46, 92, 55, 91, 58, 825 92, 61, 301, 92, 55, 276, 354, 201, 279, 280, 826 51, 282, 63, 64, 285, 286, 219, 321, 273, 99, 827 99, 24, 46, 47, 271, 66, 67, 51, 5, 6, 828 54, 50, 336, 5, 6, 38, 39, 308, 352, 310, 829 311, 92, 66, 67, 235, 113, 114, 24, 55, 347, 830 229, 230, 38, 55, 55, 55, 55, 328, 37, 14, 831 38, 38, 39, 59, 59, 55, 364, 139, 139, 37, 832 55, 375, 55, 37, 55, 38, 3, 38, 5, 6, 833 7, 57, 9, 56, 11, 60, 13, 14, 15, 55, 834 23, 23, 19, 20, 21, 22, 3, 24, 25, 26, 835 27, 57, 56, 55, 55, 32, 56, 60, 35, 36, 836 37, 38, 226, 40, 41, 42, 43, 37, 45, 46, 837 58, 60, 38, 60, 41, 60, 38, 57, 55, 99, 838 8, 56, 26, 205, 206, 59, 63, 64, 56, 60, 839 50, 56, 3, 56, 5, 6, 7, 56, 9, 60, 840 11, 56, 13, 14, 15, 56, 56, 61, 61, 20, 841 21, 22, 60, 24, 25, 60, 27, 38, 29, 61, 842 60, 32, 59, 245, 35, 36, 37, 38, 61, 40, 843 41, 42, 43, 59, 45, 46, 61, 59, 58, 0, 844 50, 50, 61, 0, 55, 342, 315, -1, 270, 270, 845 -1, -1, 63, 64, 276, -1, -1, 279, 280, -1, 846 282, -1, -1, 285, 286, -1, -1, -1, -1, -1, 847 -1, -1, 8, -1, -1, -1, 298, 298, -1, -1, 848 44, 45, 46, 47, -1, -1, 308, 51, 310, 311, 849 54, 27, 28, 29, 30, 31, -1, -1, -1, -1, 850 -1, -1, 66, 67, -1, -1, 328, 71, 72, -1, 851 -1, -1, -1, -1, -1, 337, 337, 53, -1, -1, 852 -1, -1, 58, -1, -1, -1, -1, -1, -1, 65, 853 352, 352, -1, 69, -1, -1, -1, 73, 74, -1, 854 76, 77, 78, -1, -1, 81, 82, 83, 84, 85, 855 86, 87, 88, 89, 90, 91, -1, 93, 380, 380, 856 -1, -1, -1, -1, -1, 101, 102, 103, 104, 105, 857 106, -1, 108, 109, 110, 111, 112, -1, -1, 115, 858 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 859 126, -1, -1, -1, -1, -1, -1, -1, 134, 135, 860 3, -1, 5, 6, 7, 141, 9, -1, 11, 145, 861 13, 14, 15, -1, -1, -1, -1, 20, 21, 22, 862 -1, 24, 25, -1, 27, -1, -1, -1, -1, 32, 863 -1, -1, 35, 36, 37, 38, -1, 40, 41, 42, 864 43, -1, 45, 46, 44, 45, 46, 47, -1, -1, 865 -1, 51, 55, -1, 54, -1, -1, 60, 194, -1, 866 63, 64, -1, -1, -1, 201, 66, 67, -1, -1, 867 -1, -1, -1, 209, 210, -1, 212, 213, 214, -1, 868 -1, -1, -1, -1, -1, -1, -1, 223, -1, 225, 869 -1, 50, 228, 229, 230, 231, 232, -1, -1, -1, 870 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 871 69, 247, 248, -1, 73, 74, 75, 76, 77, 78, 872 79, 80, 81, 82, 260, -1, -1, -1, -1, -1, 873 -1, -1, 3, 92, 5, 6, 7, 273, 9, -1, 874 11, -1, 13, 14, 15, -1, -1, -1, 284, 20, 875 21, 22, 288, 24, 25, -1, 27, -1, -1, -1, 876 -1, 32, -1, -1, 35, 36, 37, 38, -1, 40, 877 41, 42, 43, -1, 45, 46, -1, -1, -1, -1, 878 -1, -1, -1, -1, 55, -1, -1, -1, -1, 50, 879 61, -1, 63, 64, -1, -1, -1, -1, -1, 335, 880 -1, -1, -1, -1, -1, -1, -1, 68, 69, 345, 881 346, 347, 73, 74, 75, 76, 77, 78, 79, 80, 882 81, 82, -1, -1, -1, -1, -1, 363, 364, -1, 883 -1, -1, 3, -1, 5, 6, 7, -1, 9, -1, 884 11, 377, 13, 14, 15, -1, 382, -1, -1, 20, 885 21, 22, -1, 24, 25, -1, 27, -1, -1, -1, 886 -1, 32, -1, -1, 35, 36, 37, 38, -1, 40, 887 41, 42, 43, -1, 45, 46, -1, 3, -1, 5, 888 6, 7, -1, 9, 55, 11, -1, 13, 14, 15, 889 61, -1, 63, 64, 20, 21, 22, -1, 24, 25, 890 -1, 27, -1, -1, -1, -1, 32, -1, -1, 35, 891 36, 37, 38, -1, 40, 41, 42, 43, -1, 45, 892 46, -1, 3, -1, 5, 6, 7, -1, 9, 55, 893 11, -1, 13, 14, 15, 61, -1, 63, 64, 20, 894 21, 22, -1, 24, 25, -1, 27, -1, -1, -1, 895 -1, 32, -1, -1, 35, 36, 37, 38, -1, 40, 896 41, 42, 43, -1, 45, 46, -1, 3, -1, 5, 897 6, 7, -1, 9, 55, 11, -1, 13, 14, 15, 898 61, -1, 63, 64, 20, 21, 22, -1, 24, 25, 899 -1, 27, -1, -1, -1, -1, 32, -1, -1, 35, 900 36, 37, 38, -1, 40, 41, 42, 43, -1, 45, 901 46, 3, -1, 5, 6, 7, -1, -1, -1, 55, 902 -1, -1, -1, -1, -1, -1, -1, 63, 64, -1, 903 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 904 32, -1, -1, 35, 36, 37, 38, -1, -1, 41, 905 42, 43, -1, 45, 46, 3, -1, 5, 6, 7, 906 -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, 907 -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, 908 -1, -1, -1, -1, 32, -1, -1, 35, 36, 37, 909 38, -1, -1, 41, 42, 43, -1, 45, 46, 3, 910 -1, 5, 6, 7, -1, -1, -1, 55, -1, -1, 911 -1, 59, -1, -1, -1, 63, 64, -1, -1, -1, 912 -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, 913 -1, 35, 36, 37, 38, -1, -1, 41, 42, 43, 914 -1, 45, 46, 3, -1, 5, 6, 7, -1, -1, 915 -1, 55, -1, -1, -1, -1, 60, -1, -1, 63, 916 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, 917 -1, -1, 32, -1, -1, 35, 36, 37, 38, -1, 918 -1, 41, 42, 43, -1, 45, 46, 3, -1, 5, 919 6, 7, -1, -1, -1, 55, -1, -1, -1, 59, 920 -1, -1, -1, 63, 64, -1, -1, -1, -1, -1, 921 -1, -1, -1, -1, -1, -1, 32, -1, -1, 35, 922 36, 37, 38, -1, -1, 41, 42, 43, -1, 45, 923 46, 3, -1, 5, 6, 7, -1, -1, -1, 55, 924 56, -1, -1, -1, -1, -1, -1, 63, 64, -1, 925 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 926 32, -1, -1, 35, 36, 37, 38, -1, -1, 41, 927 42, 43, -1, 45, 46, 3, -1, 5, 6, 7, 928 -1, -1, -1, 55, -1, -1, -1, 59, -1, -1, 929 -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, 930 -1, -1, -1, -1, 32, -1, -1, 35, 36, 37, 931 38, -1, -1, 41, 42, 43, -1, 45, 46, 3, 932 -1, 5, 6, 7, -1, -1, -1, 55, 56, -1, 933 -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, 934 -1, -1, -1, -1, -1, -1, -1, -1, 32, -1, 935 -1, 35, 36, 37, 38, -1, -1, 41, 42, 43, 936 -1, 45, 46, 3, -1, 5, 6, 7, -1, -1, 937 -1, 55, 56, -1, -1, -1, -1, -1, -1, 63, 938 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, 939 -1, -1, 32, -1, -1, 35, 36, 37, 38, -1, 940 -1, 41, 42, 43, -1, 45, 46, 3, -1, 5, 941 6, 7, -1, -1, -1, 55, 56, -1, -1, -1, 942 -1, -1, -1, 63, 64, -1, -1, -1, -1, -1, 943 -1, -1, -1, -1, -1, -1, 32, -1, -1, 35, 944 36, 37, 38, -1, -1, 41, 42, 43, -1, 45, 945 46, -1, -1, 44, 45, 46, 47, 48, 49, 55, 946 51, 52, 53, 54, -1, 56, 57, 63, 64, -1, 947 -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 948 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 949 -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 950 -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 951 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, 952 57, -1, 59, -1, -1, 62, -1, -1, 65, 66, 953 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, 954 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 955 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, 956 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, 957 53, 54, -1, -1, -1, -1, 59, -1, -1, 62, 958 -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 959 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 960 -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 961 -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 962 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, 963 -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 964 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 965 -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 966 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, 967 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, 968 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, 969 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, 970 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 971 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, 972 -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 973 51, 52, 53, 54, -1, 56, -1, -1, -1, -1, 974 -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 975 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 976 -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 977 -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 978 47, 48, 49, -1, 51, 52, 53, 54, -1, 56, 979 -1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 980 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, 981 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 982 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, 983 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, 984 53, 54, -1, -1, -1, -1, 59, -1, -1, 62, 985 -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 986 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 987 -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 988 -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 989 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, 990 -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 991 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 992 -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 993 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, 994 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, 995 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, 996 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, 997 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 998 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, 999 -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 1000 51, 52, 53, 54, -1, -1, -1, 58, -1, -1, 1001 -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 1002 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1003 -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1004 -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 1005 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, 1006 -1, -1, 59, -1, -1, 62, -1, -1, 65, 66, 1007 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1008 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 1009 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, 1010 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, 1011 53, 54, -1, -1, -1, 58, -1, -1, -1, 62, 1012 -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1014 -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1015 -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 1016 49, -1, 51, 52, 53, 54, -1, 56, -1, -1, 1017 -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1018 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1019 -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 1020 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, 1021 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, 1022 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, 1023 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1024 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 1025 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1026 -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 1027 51, 52, 53, 54, -1, -1, -1, -1, 59, -1, 1028 -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 1029 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1030 -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1031 -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 1032 47, 48, 49, -1, 51, 52, 53, 54, -1, 56, 1033 -1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 1034 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1035 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 1036 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, 1037 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, 1038 53, 54, -1, 56, -1, -1, -1, -1, -1, 62, 1039 -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1040 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1041 -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1042 -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 1043 49, -1, 51, 52, 53, 54, -1, -1, -1, -1, 1044 59, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1045 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1046 -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 1047 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, 1048 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, 1049 -1, 56, -1, -1, -1, -1, -1, 62, -1, -1, 1050 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1051 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 1052 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1053 -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 1054 51, 52, 53, 54, -1, 56, -1, -1, -1, -1, 1055 -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 1056 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1057 -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1058 -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 1059 47, 48, 49, -1, 51, 52, 53, 54, -1, 56, 1060 -1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 1061 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1062 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 1063 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, 1064 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, 1065 53, 54, -1, -1, -1, -1, 59, -1, -1, 62, 1066 -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1068 -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1069 -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 1070 49, -1, 51, 52, 53, 54, -1, -1, -1, -1, 1071 59, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1072 -1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1073 -1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 1074 89, 90, -1, -1, -1, -1, -1, 96, 97, 44, 1075 45, 46, 47, 48, 49, -1, 51, 52, 53, 54, 1076 -1, -1, -1, -1, 59, -1, -1, 62, -1, -1, 1077 65, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1078 -1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 1079 85, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1080 -1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 1081 51, 52, 53, 54, -1, -1, -1, -1, 59, -1, 1082 -1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 1083 71, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1084 -1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1085 -1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 1086 47, 48, 49, -1, 51, 52, 53, 54, -1, -1, 1087 -1, -1, 59, -1, -1, 62, -1, -1, 65, 66, 1088 67, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1089 -1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 1090 87, 88, 89, 90, -1, -1, -1, -1, -1, 96, 1091 97, 44, 45, 46, 47, 48, 49, -1, 51, 52, 1092 53, 54, -1, -1, -1, -1, -1, -1, -1, 62, 1093 -1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1094 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1095 -1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1096 -1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 1097 49, -1, 51, 52, 53, 54, -1, -1, -1, -1, 1098 -1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1099 -1, -1, 71, 72, 44, 45, 46, 47, 48, 49, 1100 -1, 51, 52, 53, 54, 84, 85, 86, 87, 88, 1101 89, 90, 62, -1, -1, 65, 66, 67, 97, -1, 1102 -1, 71, 72, 44, 45, 46, 47, 48, 49, -1, 1103 51, 52, 53, 54, 84, 85, 86, 87, 88, -1, 1104 90, 62, -1, -1, 65, 66, 67, 97, -1, -1, 1105 71, 72, 44, 45, 46, 47, 48, 49, -1, 51, 1106 -1, 53, 54, 84, 85, 86, 87, -1, -1, 90, 1107 62, -1, -1, 65, 66, 67, 97, -1, -1, 71, 1108 72, 44, 45, 46, 47, 48, 49, -1, 51, -1, 1109 53, 54, 84, 85, 86, 87, -1, -1, 90, -1, 1110 -1, -1, 65, 66, 67, 97, -1, -1, 71, 72, 1111 44, 45, 46, 47, 48, 49, -1, 51, -1, -1, 1112 54, 84, 85, 86, 87, -1, -1, 90, -1, -1, 1113 -1, 65, 66, 67, 97, -1, -1, 71, 72, 44, 1114 45, 46, 47, 48, 49, -1, 51, -1, -1, 54, 1115 84, 85, 86, 87, -1, -1, 90, -1, -1, -1, 1116 65, 66, 67, 97, -1, -1, 71, 72, 44, 45, 1117 46, 47, -1, -1, -1, 51, -1, -1, 54, 50, 1118 -1, 86, 87, -1, -1, 90, -1, -1, -1, 65, 1119 66, 67, 97, -1, -1, 71, 72, 68, 69, -1, 1120 -1, -1, 73, 74, 75, 76, 77, 78, 79, 80, 1121 81, 82, -1, -1, 90, -1, -1, -1, -1, -1, 1122 -1, 97 1123}; 1124/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ 1125#line 3 "bison.simple" 1126 1127/* Skeleton output parser for bison, 1128 Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. 1129 1130 This program is free software; you can redistribute it and/or modify 1131 it under the terms of the GNU General Public License as published by 1132 the Free Software Foundation; either version 2, or (at your option) 1133 any later version. 1134 1135 This program is distributed in the hope that it will be useful, 1136 but WITHOUT ANY WARRANTY; without even the implied warranty of 1137 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1138 GNU General Public License for more details. 1139 1140 You should have received a copy of the GNU General Public License 1141 along with this program; if not, write to the Free Software 1142 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ 1143 1144/* As a special exception, when this file is copied by Bison into a 1145 Bison output file, you may use that output file without restriction. 1146 This special exception was added by the Free Software Foundation 1147 in version 1.24 of Bison. */ 1148 1149#ifndef alloca 1150#ifdef __GNUC__ 1151#define alloca __builtin_alloca 1152#else /* not GNU C. */ 1153#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) 1154#include <alloca.h> 1155#else /* not sparc */ 1156#if defined (MSDOS) && !defined (__TURBOC__) 1157#include <malloc.h> 1158#else /* not MSDOS, or __TURBOC__ */ 1159#if defined(_AIX) 1160#include <malloc.h> 1161 #pragma alloca 1162#else /* not MSDOS, __TURBOC__, or _AIX */ 1163#ifdef __hpux 1164#ifdef __cplusplus 1165extern "C" { 1166void *alloca (unsigned int); 1167}; 1168#else /* not __cplusplus */ 1169void *alloca (); 1170#endif /* not __cplusplus */ 1171#endif /* __hpux */ 1172#endif /* not _AIX */ 1173#endif /* not MSDOS, or __TURBOC__ */ 1174#endif /* not sparc. */ 1175#endif /* not GNU C. */ 1176#endif /* alloca not defined. */ 1177 1178/* This is the parser code that is written into each bison parser 1179 when the %semantic_parser declaration is not specified in the grammar. 1180 It was written by Richard Stallman by simplifying the hairy parser 1181 used when %semantic_parser is specified. */ 1182 1183/* Note: there must be only one dollar sign in this file. 1184 It is replaced by the list of actions, each action 1185 as one case of the switch. */ 1186 1187#define yyerrok (yyerrstatus = 0) 1188#define yyclearin (yychar = YYEMPTY) 1189#define YYEMPTY -2 1190#define YYEOF 0 1191#define YYACCEPT return(0) 1192#define YYABORT return(1) 1193#define YYERROR goto yyerrlab1 1194/* Like YYERROR except do call yyerror. 1195 This remains here temporarily to ease the 1196 transition to the new meaning of YYERROR, for GCC. 1197 Once GCC version 2 has supplanted version 1, this can go. */ 1198#define YYFAIL goto yyerrlab 1199#define YYRECOVERING() (!!yyerrstatus) 1200#define YYBACKUP(token, value) \ 1201do \ 1202 if (yychar == YYEMPTY && yylen == 1) \ 1203 { yychar = (token), yylval = (value); \ 1204 yychar1 = YYTRANSLATE (yychar); \ 1205 YYPOPSTACK; \ 1206 goto yybackup; \ 1207 } \ 1208 else \ 1209 { yyerror ("syntax error: cannot back up"); YYERROR; } \ 1210while (0) 1211 1212#define YYTERROR 1 1213#define YYERRCODE 256 1214 1215#ifndef YYPURE 1216#define YYLEX yylex() 1217#endif 1218 1219#ifdef YYPURE 1220#ifdef YYLSP_NEEDED 1221#ifdef YYLEX_PARAM 1222#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) 1223#else 1224#define YYLEX yylex(&yylval, &yylloc) 1225#endif 1226#else /* not YYLSP_NEEDED */ 1227#ifdef YYLEX_PARAM 1228#define YYLEX yylex(&yylval, YYLEX_PARAM) 1229#else 1230#define YYLEX yylex(&yylval) 1231#endif 1232#endif /* not YYLSP_NEEDED */ 1233#endif 1234 1235/* If nonreentrant, generate the variables here */ 1236 1237#ifndef YYPURE 1238 1239int yychar; /* the lookahead symbol */ 1240YYSTYPE yylval; /* the semantic value of the */ 1241 /* lookahead symbol */ 1242 1243#ifdef YYLSP_NEEDED 1244YYLTYPE yylloc; /* location data for the lookahead */ 1245 /* symbol */ 1246#endif 1247 1248int yynerrs; /* number of parse errors so far */ 1249#endif /* not YYPURE */ 1250 1251#if YYDEBUG != 0 1252int yydebug; /* nonzero means print parse trace */ 1253/* Since this is uninitialized, it does not stop multiple parsers 1254 from coexisting. */ 1255#endif 1256 1257/* YYINITDEPTH indicates the initial size of the parser's stacks */ 1258 1259#ifndef YYINITDEPTH 1260#define YYINITDEPTH 200 1261#endif 1262 1263/* YYMAXDEPTH is the maximum size the stacks can grow to 1264 (effective only if the built-in stack extension method is used). */ 1265 1266#if YYMAXDEPTH == 0 1267#undef YYMAXDEPTH 1268#endif 1269 1270#ifndef YYMAXDEPTH 1271#define YYMAXDEPTH 10000 1272#endif 1273 1274/* Prevent warning if -Wstrict-prototypes. */ 1275#ifdef __GNUC__ 1276int yyparse (void); 1277#endif 1278 1279#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ 1280#define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) 1281#else /* not GNU C or C++ */ 1282#ifndef __cplusplus 1283 1284/* This is the most reliable way to avoid incompatibilities 1285 in available built-in functions on various systems. */ 1286static void 1287__yy_memcpy (from, to, count) 1288 char *from; 1289 char *to; 1290 int count; 1291{ 1292 register char *f = from; 1293 register char *t = to; 1294 register int i = count; 1295 1296 while (i-- > 0) 1297 *t++ = *f++; 1298} 1299 1300#else /* __cplusplus */ 1301 1302/* This is the most reliable way to avoid incompatibilities 1303 in available built-in functions on various systems. */ 1304static void 1305__yy_memcpy (char *from, char *to, int count) 1306{ 1307 register char *f = from; 1308 register char *t = to; 1309 register int i = count; 1310 1311 while (i-- > 0) 1312 *t++ = *f++; 1313} 1314 1315#endif 1316#endif 1317 1318#line 192 "bison.simple" 1319 1320/* The user can define YYPARSE_PARAM as the name of an argument to be passed 1321 into yyparse. The argument should have type void *. 1322 It should actually point to an object. 1323 Grammar actions can access the variable by casting it 1324 to the proper pointer type. */ 1325 1326#ifdef YYPARSE_PARAM 1327#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; 1328#else 1329#define YYPARSE_PARAM 1330#define YYPARSE_PARAM_DECL 1331#endif 1332 1333int 1334yyparse(YYPARSE_PARAM) 1335 YYPARSE_PARAM_DECL 1336{ 1337 register int yystate; 1338 register int yyn; 1339 register short *yyssp; 1340 register YYSTYPE *yyvsp; 1341 int yyerrstatus; /* number of tokens to shift before error messages enabled */ 1342 int yychar1 = 0; /* lookahead token as an internal (translated) token number */ 1343 1344 short yyssa[YYINITDEPTH]; /* the state stack */ 1345 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ 1346 1347 short *yyss = yyssa; /* refer to the stacks thru separate pointers */ 1348 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ 1349 1350#ifdef YYLSP_NEEDED 1351 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ 1352 YYLTYPE *yyls = yylsa; 1353 YYLTYPE *yylsp; 1354 1355#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) 1356#else 1357#define YYPOPSTACK (yyvsp--, yyssp--) 1358#endif 1359 1360 int yystacksize = YYINITDEPTH; 1361 1362#ifdef YYPURE 1363 int yychar; 1364 YYSTYPE yylval; 1365 int yynerrs; 1366#ifdef YYLSP_NEEDED 1367 YYLTYPE yylloc; 1368#endif 1369#endif 1370 1371 YYSTYPE yyval; /* the variable used to return */ 1372 /* semantic values from the action */ 1373 /* routines */ 1374 1375 int yylen; 1376 1377#if YYDEBUG != 0 1378 if (yydebug) 1379 fprintf(stderr, "Starting parse\n"); 1380#endif 1381 1382 yystate = 0; 1383 yyerrstatus = 0; 1384 yynerrs = 0; 1385 yychar = YYEMPTY; /* Cause a token to be read. */ 1386 1387 /* Initialize stack pointers. 1388 Waste one element of value and location stack 1389 so that they stay on the same level as the state stack. 1390 The wasted elements are never initialized. */ 1391 1392 yyssp = yyss - 1; 1393 yyvsp = yyvs; 1394#ifdef YYLSP_NEEDED 1395 yylsp = yyls; 1396#endif 1397 1398/* Push a new state, which is found in yystate . */ 1399/* In all cases, when you get here, the value and location stacks 1400 have just been pushed. so pushing a state here evens the stacks. */ 1401yynewstate: 1402 1403 *++yyssp = yystate; 1404 1405 if (yyssp >= yyss + yystacksize - 1) 1406 { 1407 /* Give user a chance to reallocate the stack */ 1408 /* Use copies of these so that the &'s don't force the real ones into memory. */ 1409 YYSTYPE *yyvs1 = yyvs; 1410 short *yyss1 = yyss; 1411#ifdef YYLSP_NEEDED 1412 YYLTYPE *yyls1 = yyls; 1413#endif 1414 1415 /* Get the current used size of the three stacks, in elements. */ 1416 int size = yyssp - yyss + 1; 1417 1418#ifdef yyoverflow 1419 /* Each stack pointer address is followed by the size of 1420 the data in use in that stack, in bytes. */ 1421#ifdef YYLSP_NEEDED 1422 /* This used to be a conditional around just the two extra args, 1423 but that might be undefined if yyoverflow is a macro. */ 1424 yyoverflow("parser stack overflow", 1425 &yyss1, size * sizeof (*yyssp), 1426 &yyvs1, size * sizeof (*yyvsp), 1427 &yyls1, size * sizeof (*yylsp), 1428 &yystacksize); 1429#else 1430 yyoverflow("parser stack overflow", 1431 &yyss1, size * sizeof (*yyssp), 1432 &yyvs1, size * sizeof (*yyvsp), 1433 &yystacksize); 1434#endif 1435 1436 yyss = yyss1; yyvs = yyvs1; 1437#ifdef YYLSP_NEEDED 1438 yyls = yyls1; 1439#endif 1440#else /* no yyoverflow */ 1441 /* Extend the stack our own way. */ 1442 if (yystacksize >= YYMAXDEPTH) 1443 { 1444 yyerror("parser stack overflow"); 1445 return 2; 1446 } 1447 yystacksize *= 2; 1448 if (yystacksize > YYMAXDEPTH) 1449 yystacksize = YYMAXDEPTH; 1450 yyss = (short *) alloca (yystacksize * sizeof (*yyssp)); 1451 __yy_memcpy ((char *)yyss1, (char *)yyss, size * sizeof (*yyssp)); 1452 yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp)); 1453 __yy_memcpy ((char *)yyvs1, (char *)yyvs, size * sizeof (*yyvsp)); 1454#ifdef YYLSP_NEEDED 1455 yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp)); 1456 __yy_memcpy ((char *)yyls1, (char *)yyls, size * sizeof (*yylsp)); 1457#endif 1458#endif /* no yyoverflow */ 1459 1460 yyssp = yyss + size - 1; 1461 yyvsp = yyvs + size - 1; 1462#ifdef YYLSP_NEEDED 1463 yylsp = yyls + size - 1; 1464#endif 1465 1466#if YYDEBUG != 0 1467 if (yydebug) 1468 fprintf(stderr, "Stack size increased to %d\n", yystacksize); 1469#endif 1470 1471 if (yyssp >= yyss + yystacksize - 1) 1472 YYABORT; 1473 } 1474 1475#if YYDEBUG != 0 1476 if (yydebug) 1477 fprintf(stderr, "Entering state %d\n", yystate); 1478#endif 1479 1480 goto yybackup; 1481 yybackup: 1482 1483/* Do appropriate processing given the current state. */ 1484/* Read a lookahead token if we need one and don't already have one. */ 1485/* yyresume: */ 1486 1487 /* First try to decide what to do without reference to lookahead token. */ 1488 1489 yyn = yypact[yystate]; 1490 if (yyn == YYFLAG) 1491 goto yydefault; 1492 1493 /* Not known => get a lookahead token if don't already have one. */ 1494 1495 /* yychar is either YYEMPTY or YYEOF 1496 or a valid token in external form. */ 1497 1498 if (yychar == YYEMPTY) 1499 { 1500#if YYDEBUG != 0 1501 if (yydebug) 1502 fprintf(stderr, "Reading a token: "); 1503#endif 1504 yychar = YYLEX; 1505 } 1506 1507 /* Convert token to internal form (in yychar1) for indexing tables with */ 1508 1509 if (yychar <= 0) /* This means end of input. */ 1510 { 1511 yychar1 = 0; 1512 yychar = YYEOF; /* Don't call YYLEX any more */ 1513 1514#if YYDEBUG != 0 1515 if (yydebug) 1516 fprintf(stderr, "Now at end of input.\n"); 1517#endif 1518 } 1519 else 1520 { 1521 yychar1 = YYTRANSLATE(yychar); 1522 1523#if YYDEBUG != 0 1524 if (yydebug) 1525 { 1526 fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); 1527 /* Give the individual parser a way to print the precise meaning 1528 of a token, for further debugging info. */ 1529#ifdef YYPRINT 1530 YYPRINT (stderr, yychar, yylval); 1531#endif 1532 fprintf (stderr, ")\n"); 1533 } 1534#endif 1535 } 1536 1537 yyn += yychar1; 1538 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) 1539 goto yydefault; 1540 1541 yyn = yytable[yyn]; 1542 1543 /* yyn is what to do for this token type in this state. 1544 Negative => reduce, -yyn is rule number. 1545 Positive => shift, yyn is new state. 1546 New state is final state => don't bother to shift, 1547 just return success. 1548 0, or most negative number => error. */ 1549 1550 if (yyn < 0) 1551 { 1552 if (yyn == YYFLAG) 1553 goto yyerrlab; 1554 yyn = -yyn; 1555 goto yyreduce; 1556 } 1557 else if (yyn == 0) 1558 goto yyerrlab; 1559 1560 if (yyn == YYFINAL) 1561 YYACCEPT; 1562 1563 /* Shift the lookahead token. */ 1564 1565#if YYDEBUG != 0 1566 if (yydebug) 1567 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); 1568#endif 1569 1570 /* Discard the token being shifted unless it is eof. */ 1571 if (yychar != YYEOF) 1572 yychar = YYEMPTY; 1573 1574 *++yyvsp = yylval; 1575#ifdef YYLSP_NEEDED 1576 *++yylsp = yylloc; 1577#endif 1578 1579 /* count tokens shifted since error; after three, turn off error status. */ 1580 if (yyerrstatus) yyerrstatus--; 1581 1582 yystate = yyn; 1583 goto yynewstate; 1584 1585/* Do the default action for the current state. */ 1586yydefault: 1587 1588 yyn = yydefact[yystate]; 1589 if (yyn == 0) 1590 goto yyerrlab; 1591 1592/* Do a reduction. yyn is the number of a rule to reduce with. */ 1593yyreduce: 1594 yylen = yyr2[yyn]; 1595 if (yylen > 0) 1596 yyval = yyvsp[1-yylen]; /* implement default value of the action */ 1597 1598#if YYDEBUG != 0 1599 if (yydebug) 1600 { 1601 int i; 1602 1603 fprintf (stderr, "Reducing via rule %d (line %d), ", 1604 yyn, yyrline[yyn]); 1605 1606 /* Print the symbols being reduced, and their result. */ 1607 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) 1608 fprintf (stderr, "%s ", yytname[yyrhs[i]]); 1609 fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); 1610 } 1611#endif 1612 1613 1614 switch (yyn) { 1615 1616case 1: 1617#line 162 "cmdgram.y" 1618{ ; 1619 break;} 1620case 2: 1621#line 167 "cmdgram.y" 1622{ yyval.stmt = nil; ; 1623 break;} 1624case 3: 1625#line 169 "cmdgram.y" 1626{ if(!gStatementList) { gStatementList = yyvsp[0].stmt; } else { gStatementList->append(yyvsp[0].stmt); } ; 1627 break;} 1628case 4: 1629#line 174 "cmdgram.y" 1630{ yyval.stmt = yyvsp[0].stmt; ; 1631 break;} 1632case 5: 1633#line 176 "cmdgram.y" 1634{ yyval.stmt = yyvsp[0].stmt; ; 1635 break;} 1636case 6: 1637#line 178 "cmdgram.y" 1638{ yyval.stmt = yyvsp[0].stmt; ; 1639 break;} 1640case 7: 1641#line 183 "cmdgram.y" 1642{ yyval.stmt = yyvsp[-2].stmt; for(StmtNode *walk = (yyvsp[-2].stmt);walk;walk = walk->getNext() ) walk->setPackage(yyvsp[-4].s.value); ; 1643 break;} 1644case 8: 1645#line 188 "cmdgram.y" 1646{ yyval.stmt = yyvsp[0].stmt; ; 1647 break;} 1648case 9: 1649#line 190 "cmdgram.y" 1650{ yyval.stmt = yyvsp[-1].stmt; (yyvsp[-1].stmt)->append(yyvsp[0].stmt); ; 1651 break;} 1652case 10: 1653#line 195 "cmdgram.y" 1654{ yyval.stmt = nil; ; 1655 break;} 1656case 11: 1657#line 197 "cmdgram.y" 1658{ if(!yyvsp[-1].stmt) { yyval.stmt = yyvsp[0].stmt; } else { (yyvsp[-1].stmt)->append(yyvsp[0].stmt); yyval.stmt = yyvsp[-1].stmt; } ; 1659 break;} 1660case 18: 1661#line 208 "cmdgram.y" 1662{ yyval.stmt = BreakStmtNode::alloc( yyvsp[-1].i.lineNumber ); ; 1663 break;} 1664case 19: 1665#line 210 "cmdgram.y" 1666{ yyval.stmt = ContinueStmtNode::alloc( yyvsp[-1].i.lineNumber ); ; 1667 break;} 1668case 20: 1669#line 212 "cmdgram.y" 1670{ yyval.stmt = ReturnStmtNode::alloc( yyvsp[-1].i.lineNumber, NULL ); ; 1671 break;} 1672case 21: 1673#line 214 "cmdgram.y" 1674{ yyval.stmt = ReturnStmtNode::alloc( yyvsp[-2].i.lineNumber, yyvsp[-1].expr ); ; 1675 break;} 1676case 22: 1677#line 216 "cmdgram.y" 1678{ yyval.stmt = yyvsp[-1].stmt; ; 1679 break;} 1680case 23: 1681#line 218 "cmdgram.y" 1682{ yyval.stmt = TTagSetStmtNode::alloc( yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr, NULL ); ; 1683 break;} 1684case 24: 1685#line 220 "cmdgram.y" 1686{ yyval.stmt = TTagSetStmtNode::alloc( yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[-1].expr ); ; 1687 break;} 1688case 25: 1689#line 222 "cmdgram.y" 1690{ yyval.stmt = StrConstNode::alloc( yyvsp[0].str.lineNumber, yyvsp[0].str.value, false, true ); ; 1691 break;} 1692case 26: 1693#line 227 "cmdgram.y" 1694{ yyval.stmt = FunctionDeclStmtNode::alloc( yyvsp[-7].i.lineNumber, yyvsp[-6].s.value, NULL, yyvsp[-4].var, yyvsp[-1].stmt ); ; 1695 break;} 1696case 27: 1697#line 229 "cmdgram.y" 1698{ yyval.stmt = FunctionDeclStmtNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-6].s.value, yyvsp[-8].s.value, yyvsp[-4].var, yyvsp[-1].stmt ); ; 1699 break;} 1700case 28: 1701#line 234 "cmdgram.y" 1702{ yyval.var = NULL; ; 1703 break;} 1704case 29: 1705#line 236 "cmdgram.y" 1706{ yyval.var = yyvsp[0].var; ; 1707 break;} 1708case 30: 1709#line 241 "cmdgram.y" 1710{ yyval.var = VarNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL ); ; 1711 break;} 1712case 31: 1713#line 243 "cmdgram.y" 1714{ yyval.var = yyvsp[-2].var; ((StmtNode*)(yyvsp[-2].var))->append((StmtNode*)VarNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL ) ); ; 1715 break;} 1716case 32: 1717#line 248 "cmdgram.y" 1718{ yyval.stmt = ObjectDeclNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, NULL, yyvsp[-5].s.value, yyvsp[-2].slist, NULL, true, false, false); ; 1719 break;} 1720case 33: 1721#line 253 "cmdgram.y" 1722{ yyval.od = ObjectDeclNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, false); ; 1723 break;} 1724case 34: 1725#line 255 "cmdgram.y" 1726{ yyval.od = ObjectDeclNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, false, false); ; 1727 break;} 1728case 35: 1729#line 257 "cmdgram.y" 1730{ yyval.od = ObjectDeclNode::alloc( yyvsp[-11].i.lineNumber, yyvsp[-10].expr, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, true, false); ; 1731 break;} 1732case 36: 1733#line 259 "cmdgram.y" 1734{ yyval.od = ObjectDeclNode::alloc( yyvsp[-8].i.lineNumber, yyvsp[-7].expr, yyvsp[-4].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, true, false); ; 1735 break;} 1736case 37: 1737#line 261 "cmdgram.y" 1738{ yyval.od = ObjectDeclNode::alloc( yyvsp[-9].i.lineNumber, yyvsp[-8].expr, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-5].s.value, yyvsp[-1].odcl.slots, yyvsp[-1].odcl.decls, false, false, true); ; 1739 break;} 1740case 38: 1741#line 263 "cmdgram.y" 1742{ yyval.od = ObjectDeclNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, yyvsp[-1].expr, yyvsp[-2].s.value, NULL, NULL, false, false, true); ; 1743 break;} 1744case 39: 1745#line 268 "cmdgram.y" 1746{ yyval.s.value = NULL; ; 1747 break;} 1748case 40: 1749#line 270 "cmdgram.y" 1750{ yyval.s = yyvsp[0].s; ; 1751 break;} 1752case 41: 1753#line 275 "cmdgram.y" 1754{ yyval.expr = StrConstNode::alloc( CodeBlock::smCurrentParser->getCurrentLine(), "", false); ; 1755 break;} 1756case 42: 1757#line 277 "cmdgram.y" 1758{ yyval.expr = yyvsp[0].expr; ; 1759 break;} 1760case 43: 1761#line 282 "cmdgram.y" 1762{ yyval.expr = NULL; ; 1763 break;} 1764case 44: 1765#line 284 "cmdgram.y" 1766{ yyval.expr = yyvsp[0].expr; ; 1767 break;} 1768case 45: 1769#line 289 "cmdgram.y" 1770{ yyval.odcl.slots = NULL; yyval.odcl.decls = NULL; ; 1771 break;} 1772case 46: 1773#line 291 "cmdgram.y" 1774{ yyval.odcl.slots = yyvsp[0].slist; yyval.odcl.decls = NULL; ; 1775 break;} 1776case 47: 1777#line 293 "cmdgram.y" 1778{ yyval.odcl.slots = NULL; yyval.odcl.decls = yyvsp[0].od; ; 1779 break;} 1780case 48: 1781#line 295 "cmdgram.y" 1782{ yyval.odcl.slots = yyvsp[-1].slist; yyval.odcl.decls = yyvsp[0].od; ; 1783 break;} 1784case 49: 1785#line 300 "cmdgram.y" 1786{ yyval.od = yyvsp[-1].od; ; 1787 break;} 1788case 50: 1789#line 302 "cmdgram.y" 1790{ yyvsp[-2].od->append(yyvsp[-1].od); yyval.od = yyvsp[-2].od; ; 1791 break;} 1792case 51: 1793#line 307 "cmdgram.y" 1794{ yyval.stmt = yyvsp[-1].stmt; ; 1795 break;} 1796case 52: 1797#line 309 "cmdgram.y" 1798{ yyval.stmt = yyvsp[0].stmt; ; 1799 break;} 1800case 53: 1801#line 314 "cmdgram.y" 1802{ yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, false); ; 1803 break;} 1804case 54: 1805#line 316 "cmdgram.y" 1806{ yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, true); ; 1807 break;} 1808case 55: 1809#line 321 "cmdgram.y" 1810{ yyval.ifnode = IfStmtNode::alloc( yyvsp[-3].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; 1811 break;} 1812case 56: 1813#line 323 "cmdgram.y" 1814{ yyval.ifnode = IfStmtNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].stmt, yyvsp[0].stmt, false); ; 1815 break;} 1816case 57: 1817#line 325 "cmdgram.y" 1818{ yyval.ifnode = IfStmtNode::alloc( yyvsp[-4].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].stmt, yyvsp[0].ifnode, true); ; 1819 break;} 1820case 58: 1821#line 330 "cmdgram.y" 1822{ yyval.expr = yyvsp[0].expr;; 1823 break;} 1824case 59: 1825#line 332 "cmdgram.y" 1826{ (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr=yyvsp[-2].expr; ; 1827 break;} 1828case 60: 1829#line 337 "cmdgram.y" 1830{ yyval.stmt = IfStmtNode::alloc(yyvsp[-4].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; 1831 break;} 1832case 61: 1833#line 339 "cmdgram.y" 1834{ yyval.stmt = IfStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, yyvsp[-2].stmt, yyvsp[0].stmt, false); ; 1835 break;} 1836case 62: 1837#line 344 "cmdgram.y" 1838{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-4].i.lineNumber, nil, yyvsp[-2].expr, nil, yyvsp[0].stmt, false); ; 1839 break;} 1840case 63: 1841#line 346 "cmdgram.y" 1842{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-3].i.lineNumber, nil, yyvsp[-1].expr, nil, yyvsp[-4].stmt, true); ; 1843 break;} 1844case 64: 1845#line 351 "cmdgram.y" 1846{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-8].i.lineNumber, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1847 break;} 1848case 65: 1849#line 353 "cmdgram.y" 1850{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; 1851 break;} 1852case 66: 1853#line 355 "cmdgram.y" 1854{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1855 break;} 1856case 67: 1857#line 357 "cmdgram.y" 1858{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, NULL, NULL, yyvsp[0].stmt, false); ; 1859 break;} 1860case 68: 1861#line 359 "cmdgram.y" 1862{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1863 break;} 1864case 69: 1865#line 361 "cmdgram.y" 1866{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; 1867 break;} 1868case 70: 1869#line 363 "cmdgram.y" 1870{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1871 break;} 1872case 71: 1873#line 365 "cmdgram.y" 1874{ yyval.stmt = LoopStmtNode::alloc(yyvsp[-5].i.lineNumber, NULL, NULL, NULL, yyvsp[0].stmt, false); ; 1875 break;} 1876case 72: 1877#line 370 "cmdgram.y" 1878{ yyval.stmt = IterStmtNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, false ); ; 1879 break;} 1880case 73: 1881#line 372 "cmdgram.y" 1882{ yyval.stmt = IterStmtNode::alloc( yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, true ); ; 1883 break;} 1884case 74: 1885#line 377 "cmdgram.y" 1886{ yyval.stmt = yyvsp[0].expr; ; 1887 break;} 1888case 75: 1889#line 382 "cmdgram.y" 1890{ yyval.expr = yyvsp[0].expr; ; 1891 break;} 1892case 76: 1893#line 384 "cmdgram.y" 1894{ yyval.expr = yyvsp[-1].expr; ; 1895 break;} 1896case 77: 1897#line 386 "cmdgram.y" 1898{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1899 break;} 1900case 78: 1901#line 388 "cmdgram.y" 1902{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1903 break;} 1904case 79: 1905#line 390 "cmdgram.y" 1906{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1907 break;} 1908case 80: 1909#line 392 "cmdgram.y" 1910{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1911 break;} 1912case 81: 1913#line 394 "cmdgram.y" 1914{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1915 break;} 1916case 82: 1917#line 396 "cmdgram.y" 1918{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1919 break;} 1920case 83: 1921#line 398 "cmdgram.y" 1922{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1923 break;} 1924case 84: 1925#line 400 "cmdgram.y" 1926{ yyval.expr = FloatBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1927 break;} 1928case 85: 1929#line 402 "cmdgram.y" 1930{ yyval.expr = FloatUnaryExprNode::alloc( yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; 1931 break;} 1932case 86: 1933#line 404 "cmdgram.y" 1934{ yyval.expr = TTagDerefNode::alloc( yyvsp[-1].i.lineNumber, yyvsp[0].expr ); ; 1935 break;} 1936case 87: 1937#line 406 "cmdgram.y" 1938{ yyval.expr = TTagExprNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value ); ; 1939 break;} 1940case 88: 1941#line 408 "cmdgram.y" 1942{ yyval.expr = ConditionalExprNode::alloc( yyvsp[-4].expr->dbgLineNumber, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ; 1943 break;} 1944case 89: 1945#line 410 "cmdgram.y" 1946{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1947 break;} 1948case 90: 1949#line 412 "cmdgram.y" 1950{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1951 break;} 1952case 91: 1953#line 414 "cmdgram.y" 1954{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1955 break;} 1956case 92: 1957#line 416 "cmdgram.y" 1958{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1959 break;} 1960case 93: 1961#line 418 "cmdgram.y" 1962{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1963 break;} 1964case 94: 1965#line 420 "cmdgram.y" 1966{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1967 break;} 1968case 95: 1969#line 422 "cmdgram.y" 1970{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1971 break;} 1972case 96: 1973#line 424 "cmdgram.y" 1974{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1975 break;} 1976case 97: 1977#line 426 "cmdgram.y" 1978{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1979 break;} 1980case 98: 1981#line 428 "cmdgram.y" 1982{ yyval.expr = IntBinaryExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1983 break;} 1984case 99: 1985#line 430 "cmdgram.y" 1986{ yyval.expr = StreqExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, true); ; 1987 break;} 1988case 100: 1989#line 432 "cmdgram.y" 1990{ yyval.expr = StreqExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, false); ; 1991 break;} 1992case 101: 1993#line 434 "cmdgram.y" 1994{ yyval.expr = StrcatExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].i.value); ; 1995 break;} 1996case 102: 1997#line 436 "cmdgram.y" 1998{ yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; 1999 break;} 2000case 103: 2001#line 438 "cmdgram.y" 2002{ yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; 2003 break;} 2004case 104: 2005#line 440 "cmdgram.y" 2006{ yyval.expr = StrConstNode::alloc( yyvsp[0].str.lineNumber, yyvsp[0].str.value, true); ; 2007 break;} 2008case 105: 2009#line 442 "cmdgram.y" 2010{ yyval.expr = FloatNode::alloc( yyvsp[0].f.lineNumber, yyvsp[0].f.value ); ; 2011 break;} 2012case 106: 2013#line 444 "cmdgram.y" 2014{ yyval.expr = IntNode::alloc( yyvsp[0].i.lineNumber, yyvsp[0].i.value ); ; 2015 break;} 2016case 107: 2017#line 446 "cmdgram.y" 2018{ yyval.expr = ConstantNode::alloc( yyvsp[0].i.lineNumber, StringTable->insert("break")); ; 2019 break;} 2020case 108: 2021#line 448 "cmdgram.y" 2022{ yyval.expr = SlotAccessNode::alloc( yyvsp[0].slot.lineNumber, yyvsp[0].slot.object, yyvsp[0].slot.array, yyvsp[0].slot.slotName ); ; 2023 break;} 2024case 109: 2025#line 450 "cmdgram.y" 2026{ yyval.expr = InternalSlotAccessNode::alloc( yyvsp[0].intslot.lineNumber, yyvsp[0].intslot.object, yyvsp[0].intslot.slotExpr, yyvsp[0].intslot.recurse); ; 2027 break;} 2028case 110: 2029#line 452 "cmdgram.y" 2030{ yyval.expr = ConstantNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value ); ; 2031 break;} 2032case 111: 2033#line 454 "cmdgram.y" 2034{ yyval.expr = StrConstNode::alloc( yyvsp[0].str.lineNumber, yyvsp[0].str.value, false); ; 2035 break;} 2036case 112: 2037#line 456 "cmdgram.y" 2038{ yyval.expr = (ExprNode*)VarNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL); ; 2039 break;} 2040case 113: 2041#line 458 "cmdgram.y" 2042{ yyval.expr = (ExprNode*)VarNode::alloc( yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr ); ; 2043 break;} 2044case 114: 2045#line 460 "cmdgram.y" 2046{ 2047 const U32 bufLen = 64; 2048 UTF8 buffer[bufLen]; 2049 dSprintf(buffer, bufLen, "__anonymous_function%d", gAnonFunctionID++); 2050 StringTableEntry fName = StringTable->insert(buffer); 2051 StmtNode *fndef = FunctionDeclStmtNode::alloc(yyvsp[-6].i.lineNumber, fName, NULL, yyvsp[-4].var, yyvsp[-1].stmt); 2052 2053 if(!gAnonFunctionList) 2054 gAnonFunctionList = fndef; 2055 else 2056 gAnonFunctionList->append(fndef); 2057 2058 yyval.expr = StrConstNode::alloc( yyvsp[-6].i.lineNumber, (UTF8*)fName, false ); 2059 ; 2060 break;} 2061case 115: 2062#line 478 "cmdgram.y" 2063{ yyval.slot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.slot.object = yyvsp[-2].expr; yyval.slot.slotName = yyvsp[0].s.value; yyval.slot.array = NULL; ; 2064 break;} 2065case 116: 2066#line 480 "cmdgram.y" 2067{ yyval.slot.lineNumber = yyvsp[-5].expr->dbgLineNumber; yyval.slot.object = yyvsp[-5].expr; yyval.slot.slotName = yyvsp[-3].s.value; yyval.slot.array = yyvsp[-1].expr; ; 2068 break;} 2069case 117: 2070#line 485 "cmdgram.y" 2071{ yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = false; ; 2072 break;} 2073case 118: 2074#line 487 "cmdgram.y" 2075{ yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = true; ; 2076 break;} 2077case 119: 2078#line 492 "cmdgram.y" 2079{ yyval.expr = ConstantNode::alloc( yyvsp[0].s.lineNumber, yyvsp[0].s.value ); ; 2080 break;} 2081case 120: 2082#line 494 "cmdgram.y" 2083{ yyval.expr = yyvsp[-1].expr; ; 2084 break;} 2085case 121: 2086#line 499 "cmdgram.y" 2087{ yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = '+'; yyval.asn.expr = FloatNode::alloc( yyvsp[0].i.lineNumber, 1 ); ; 2088 break;} 2089case 122: 2090#line 501 "cmdgram.y" 2091{ yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = '-'; yyval.asn.expr = FloatNode::alloc( yyvsp[0].i.lineNumber, 1 ); ; 2092 break;} 2093case 123: 2094#line 503 "cmdgram.y" 2095{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '+'; yyval.asn.expr = yyvsp[0].expr; ; 2096 break;} 2097case 124: 2098#line 505 "cmdgram.y" 2099{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '-'; yyval.asn.expr = yyvsp[0].expr; ; 2100 break;} 2101case 125: 2102#line 507 "cmdgram.y" 2103{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '*'; yyval.asn.expr = yyvsp[0].expr; ; 2104 break;} 2105case 126: 2106#line 509 "cmdgram.y" 2107{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '/'; yyval.asn.expr = yyvsp[0].expr; ; 2108 break;} 2109case 127: 2110#line 511 "cmdgram.y" 2111{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '%'; yyval.asn.expr = yyvsp[0].expr; ; 2112 break;} 2113case 128: 2114#line 513 "cmdgram.y" 2115{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '&'; yyval.asn.expr = yyvsp[0].expr; ; 2116 break;} 2117case 129: 2118#line 515 "cmdgram.y" 2119{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '^'; yyval.asn.expr = yyvsp[0].expr; ; 2120 break;} 2121case 130: 2122#line 517 "cmdgram.y" 2123{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '|'; yyval.asn.expr = yyvsp[0].expr; ; 2124 break;} 2125case 131: 2126#line 519 "cmdgram.y" 2127{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHL; yyval.asn.expr = yyvsp[0].expr; ; 2128 break;} 2129case 132: 2130#line 521 "cmdgram.y" 2131{ yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHR; yyval.asn.expr = yyvsp[0].expr; ; 2132 break;} 2133case 133: 2134#line 526 "cmdgram.y" 2135{ yyval.expr = yyvsp[0].expr; ; 2136 break;} 2137case 134: 2138#line 528 "cmdgram.y" 2139{ yyval.expr = yyvsp[0].expr; ; 2140 break;} 2141case 135: 2142#line 530 "cmdgram.y" 2143{ yyval.expr = yyvsp[0].od; ; 2144 break;} 2145case 136: 2146#line 532 "cmdgram.y" 2147{ yyval.expr = AssignExprNode::alloc( yyvsp[-2].s.lineNumber, yyvsp[-2].s.value, NULL, yyvsp[0].expr); ; 2148 break;} 2149case 137: 2150#line 534 "cmdgram.y" 2151{ yyval.expr = AssignExprNode::alloc( yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[0].expr); ; 2152 break;} 2153case 138: 2154#line 536 "cmdgram.y" 2155{ yyval.expr = AssignOpExprNode::alloc( yyvsp[-1].s.lineNumber, yyvsp[-1].s.value, NULL, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; 2156 break;} 2157case 139: 2158#line 538 "cmdgram.y" 2159{ yyval.expr = AssignOpExprNode::alloc( yyvsp[-4].s.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; 2160 break;} 2161case 140: 2162#line 540 "cmdgram.y" 2163{ yyval.expr = SlotAssignOpNode::alloc( yyvsp[-1].slot.lineNumber, yyvsp[-1].slot.object, yyvsp[-1].slot.slotName, yyvsp[-1].slot.array, yyvsp[0].asn.token, yyvsp[0].asn.expr); ; 2164 break;} 2165case 141: 2166#line 542 "cmdgram.y" 2167{ yyval.expr = SlotAssignNode::alloc( yyvsp[-2].slot.lineNumber, yyvsp[-2].slot.object, yyvsp[-2].slot.array, yyvsp[-2].slot.slotName, yyvsp[0].expr); ; 2168 break;} 2169case 142: 2170#line 544 "cmdgram.y" 2171{ yyval.expr = SlotAssignNode::alloc( yyvsp[-4].slot.lineNumber, yyvsp[-4].slot.object, yyvsp[-4].slot.array, yyvsp[-4].slot.slotName, yyvsp[-1].expr); ; 2172 break;} 2173case 143: 2174#line 549 "cmdgram.y" 2175{ yyval.expr = FuncCallExprNode::alloc( yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, NULL, yyvsp[-1].expr, false); ; 2176 break;} 2177case 144: 2178#line 551 "cmdgram.y" 2179{ yyval.expr = FuncCallExprNode::alloc( yyvsp[-5].s.lineNumber, yyvsp[-3].s.value, yyvsp[-5].s.value, yyvsp[-1].expr, false); ; 2180 break;} 2181case 145: 2182#line 553 "cmdgram.y" 2183{ yyvsp[-5].expr->append(yyvsp[-1].expr); yyval.expr = FuncCallExprNode::alloc( yyvsp[-5].expr->dbgLineNumber, yyvsp[-3].s.value, NULL, yyvsp[-5].expr, true); ; 2184 break;} 2185case 146: 2186#line 558 "cmdgram.y" 2187{ yyval.expr = AssertCallExprNode::alloc( yyvsp[-3].i.lineNumber, yyvsp[-1].expr, NULL ); ; 2188 break;} 2189case 147: 2190#line 560 "cmdgram.y" 2191{ yyval.expr = AssertCallExprNode::alloc( yyvsp[-5].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].str.value ); ; 2192 break;} 2193case 148: 2194#line 565 "cmdgram.y" 2195{ yyval.expr = NULL; ; 2196 break;} 2197case 149: 2198#line 567 "cmdgram.y" 2199{ yyval.expr = yyvsp[0].expr; ; 2200 break;} 2201case 150: 2202#line 572 "cmdgram.y" 2203{ yyval.expr = yyvsp[0].expr; ; 2204 break;} 2205case 151: 2206#line 574 "cmdgram.y" 2207{ (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ; 2208 break;} 2209case 152: 2210#line 579 "cmdgram.y" 2211{ yyval.slist = NULL; ; 2212 break;} 2213case 153: 2214#line 581 "cmdgram.y" 2215{ yyval.slist = yyvsp[0].slist; ; 2216 break;} 2217case 154: 2218#line 586 "cmdgram.y" 2219{ yyval.slist = yyvsp[0].slist; ; 2220 break;} 2221case 155: 2222#line 588 "cmdgram.y" 2223{ yyvsp[-1].slist->append(yyvsp[0].slist); yyval.slist = yyvsp[-1].slist; ; 2224 break;} 2225case 156: 2226#line 593 "cmdgram.y" 2227{ yyval.slist = SlotAssignNode::alloc( yyvsp[-3].s.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr); ; 2228 break;} 2229case 157: 2230#line 595 "cmdgram.y" 2231{ yyval.slist = SlotAssignNode::alloc( yyvsp[-4].i.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr, yyvsp[-4].i.value); ; 2232 break;} 2233case 158: 2234#line 597 "cmdgram.y" 2235{ yyval.slist = SlotAssignNode::alloc( yyvsp[-3].i.lineNumber, NULL, NULL, StringTable->insert("datablock"), yyvsp[-1].expr); ; 2236 break;} 2237case 159: 2238#line 599 "cmdgram.y" 2239{ yyval.slist = SlotAssignNode::alloc( yyvsp[-6].s.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr); ; 2240 break;} 2241case 160: 2242#line 601 "cmdgram.y" 2243{ yyval.slist = SlotAssignNode::alloc( yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr, yyvsp[-7].i.value); ; 2244 break;} 2245case 161: 2246#line 606 "cmdgram.y" 2247{ yyval.expr = yyvsp[0].expr; ; 2248 break;} 2249case 162: 2250#line 608 "cmdgram.y" 2251{ yyval.expr = CommaCatExprNode::alloc( yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr); ; 2252 break;} 2253} 2254 /* the action file gets copied in in place of this dollarsign */ 2255#line 487 "bison.simple" 2256 2257 yyvsp -= yylen; 2258 yyssp -= yylen; 2259#ifdef YYLSP_NEEDED 2260 yylsp -= yylen; 2261#endif 2262 2263#if YYDEBUG != 0 2264 if (yydebug) 2265 { 2266 short *ssp1 = yyss - 1; 2267 fprintf (stderr, "state stack now"); 2268 while (ssp1 != yyssp) 2269 fprintf (stderr, " %d", *++ssp1); 2270 fprintf (stderr, "\n"); 2271 } 2272#endif 2273 2274 *++yyvsp = yyval; 2275 2276#ifdef YYLSP_NEEDED 2277 yylsp++; 2278 if (yylen == 0) 2279 { 2280 yylsp->first_line = yylloc.first_line; 2281 yylsp->first_column = yylloc.first_column; 2282 yylsp->last_line = (yylsp-1)->last_line; 2283 yylsp->last_column = (yylsp-1)->last_column; 2284 yylsp->text = 0; 2285 } 2286 else 2287 { 2288 yylsp->last_line = (yylsp+yylen-1)->last_line; 2289 yylsp->last_column = (yylsp+yylen-1)->last_column; 2290 } 2291#endif 2292 2293 /* Now "shift" the result of the reduction. 2294 Determine what state that goes to, 2295 based on the state we popped back to 2296 and the rule number reduced by. */ 2297 2298 yyn = yyr1[yyn]; 2299 2300 yystate = yypgoto[yyn - YYNTBASE] + *yyssp; 2301 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) 2302 yystate = yytable[yystate]; 2303 else 2304 yystate = yydefgoto[yyn - YYNTBASE]; 2305 2306 goto yynewstate; 2307 2308yyerrlab: /* here on detecting error */ 2309 2310 if (! yyerrstatus) 2311 /* If not already recovering from an error, report this error. */ 2312 { 2313 ++yynerrs; 2314 2315#ifdef YYERROR_VERBOSE 2316 yyn = yypact[yystate]; 2317 2318 if (yyn > YYFLAG && yyn < YYLAST) 2319 { 2320 int size = 0; 2321 char *msg; 2322 int x, count; 2323 2324 count = 0; 2325 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ 2326 for (x = (yyn < 0 ? -yyn : 0); 2327 x < (sizeof(yytname) / sizeof(char *)); x++) 2328 if (yycheck[x + yyn] == x) 2329 size += strlen(yytname[x]) + 15, count++; 2330 msg = (char *) malloc(size + 15); 2331 if (msg != 0) 2332 { 2333 strcpy(msg, "parse error"); 2334 2335 if (count < 5) 2336 { 2337 count = 0; 2338 for (x = (yyn < 0 ? -yyn : 0); 2339 x < (sizeof(yytname) / sizeof(char *)); x++) 2340 if (yycheck[x + yyn] == x) 2341 { 2342 strcat(msg, count == 0 ? ", expecting `" : " or `"); 2343 strcat(msg, yytname[x]); 2344 strcat(msg, "'"); 2345 count++; 2346 } 2347 } 2348 yyerror(msg); 2349 free(msg); 2350 } 2351 else 2352 yyerror ("parse error; also virtual memory exceeded"); 2353 } 2354 else 2355#endif /* YYERROR_VERBOSE */ 2356 yyerror("parse error"); 2357 } 2358 2359 goto yyerrlab1; 2360yyerrlab1: /* here on error raised explicitly by an action */ 2361 2362 if (yyerrstatus == 3) 2363 { 2364 /* if just tried and failed to reuse lookahead token after an error, discard it. */ 2365 2366 /* return failure if at end of input */ 2367 if (yychar == YYEOF) 2368 YYABORT; 2369 2370#if YYDEBUG != 0 2371 if (yydebug) 2372 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); 2373#endif 2374 2375 yychar = YYEMPTY; 2376 } 2377 2378 /* Else will try to reuse lookahead token 2379 after shifting the error token. */ 2380 2381 yyerrstatus = 3; /* Each real token shifted decrements this */ 2382 2383 goto yyerrhandle; 2384 2385yyerrdefault: /* current state does not do anything special for the error token. */ 2386 2387#if 0 2388 /* This is wrong; only states that explicitly want error tokens 2389 should shift them. */ 2390 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ 2391 if (yyn) goto yydefault; 2392#endif 2393 2394yyerrpop: /* pop the current state because it cannot handle the error token */ 2395 2396 if (yyssp == yyss) YYABORT; 2397 yyvsp--; 2398 yystate = *--yyssp; 2399#ifdef YYLSP_NEEDED 2400 yylsp--; 2401#endif 2402 2403#if YYDEBUG != 0 2404 if (yydebug) 2405 { 2406 short *ssp1 = yyss - 1; 2407 fprintf (stderr, "Error: state stack now"); 2408 while (ssp1 != yyssp) 2409 fprintf (stderr, " %d", *++ssp1); 2410 fprintf (stderr, "\n"); 2411 } 2412#endif 2413 2414yyerrhandle: 2415 2416 yyn = yypact[yystate]; 2417 if (yyn == YYFLAG) 2418 goto yyerrdefault; 2419 2420 yyn += YYTERROR; 2421 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) 2422 goto yyerrdefault; 2423 2424 yyn = yytable[yyn]; 2425 if (yyn < 0) 2426 { 2427 if (yyn == YYFLAG) 2428 goto yyerrpop; 2429 yyn = -yyn; 2430 goto yyreduce; 2431 } 2432 else if (yyn == 0) 2433 goto yyerrpop; 2434 2435 if (yyn == YYFINAL) 2436 YYACCEPT; 2437 2438#if YYDEBUG != 0 2439 if (yydebug) 2440 fprintf(stderr, "Shifting error token, "); 2441#endif 2442 2443 *++yyvsp = yylval; 2444#ifdef YYLSP_NEEDED 2445 *++yylsp = yylloc; 2446#endif 2447 2448 yystate = yyn; 2449 goto yynewstate; 2450} 2451#line 610 "cmdgram.y" 2452 2453 2454
