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), = (); \ 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() 391
define
YYFLAG() -32768
define
YYINITDEPTH() 200
define
YYLAST() 3123
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), = (); \ 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() 391
YYFLAG() -32768
YYINITDEPTH() 200
YYLAST() 3123
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 162struct 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} 171yyltype; 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 391 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, 1932, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1942, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1952, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1962, 2, 64, 2, 2, 2, 54, 53, 2, 55, 19756, 46, 44, 57, 45, 51, 47, 2, 2, 2, 1982, 2, 2, 2, 2, 2, 2, 58, 59, 48, 19950, 49, 96, 65, 2, 2, 2, 2, 2, 2, 2002, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2012, 2, 2, 2, 2, 2, 2, 2, 2, 2, 20292, 2, 99, 62, 2, 2, 2, 2, 2, 2, 2032, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2042, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2052, 2, 60, 52, 61, 63, 2, 2, 2, 2, 2062, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2072, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2082, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2092, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2102, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2112, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2122, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2132, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2142, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2152, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2162, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2172, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2182, 2, 2, 2, 2, 1, 2, 3, 4, 5, 2196, 7, 8, 9, 10, 11, 12, 13, 14, 15, 22016, 17, 18, 19, 20, 21, 22, 23, 24, 25, 22126, 27, 28, 29, 30, 31, 32, 33, 34, 35, 22236, 37, 38, 39, 40, 41, 42, 43, 66, 67, 22368, 69, 70, 71, 72, 73, 74, 75, 76, 77, 22478, 79, 80, 81, 82, 83, 84, 85, 86, 87, 22588, 89, 90, 91, 93, 94, 95, 97, 98 226}; 227 228#if YYDEBUG != 0 229static const short yyprhs[] = { 0, 2300, 2, 3, 6, 8, 10, 12, 19, 21, 24, 23125, 28, 30, 32, 34, 36, 38, 40, 43, 46, 23249, 53, 56, 61, 68, 70, 79, 90, 91, 93, 23395, 99, 110, 121, 129, 142, 152, 163, 171, 172, 234175, 176, 178, 179, 182, 183, 185, 187, 190, 193, 235197, 201, 203, 211, 219, 224, 232, 238, 240, 244, 236250, 258, 264, 271, 281, 290, 299, 307, 316, 324, 237332, 339, 347, 355, 357, 359, 363, 367, 371, 375, 238379, 383, 387, 391, 395, 398, 401, 403, 409, 413, 239417, 421, 425, 429, 433, 437, 441, 445, 449, 453, 240457, 461, 464, 467, 469, 471, 473, 475, 477, 479, 241481, 483, 485, 490, 498, 502, 509, 513, 517, 519, 242523, 525, 527, 530, 533, 536, 539, 542, 545, 548, 243551, 554, 557, 559, 561, 563, 567, 574, 577, 583, 244586, 590, 596, 601, 608, 615, 620, 625, 632, 633, 245635, 637, 641, 642, 644, 646, 649, 654, 660, 665, 246673, 682, 684 247}; 248 249static const short yyrhs[] = { 101, 2500, 0, 101, 102, 0, 106, 0, 107, 0, 103, 2510, 29, 38, 60, 104, 61, 59, 0, 107, 0, 252104, 107, 0, 0, 105, 106, 0, 121, 0, 122, 2530, 123, 0, 124, 0, 110, 0, 118, 0, 7, 25459, 0, 9, 59, 0, 13, 59, 0, 13, 126, 25559, 0, 125, 59, 0, 36, 50, 126, 59, 0, 25636, 50, 126, 57, 126, 59, 0, 40, 0, 3, 25738, 55, 108, 56, 60, 105, 61, 0, 3, 38, 25891, 38, 55, 108, 56, 60, 105, 61, 0, 0, 259109, 0, 37, 0, 109, 57, 37, 0, 24, 129, 26055, 126, 112, 56, 60, 136, 61, 59, 0, 5, 261129, 55, 113, 112, 114, 56, 60, 115, 61, 0, 2625, 129, 55, 113, 112, 114, 56, 0, 5, 129, 26355, 92, 113, 99, 112, 114, 56, 60, 115, 61, 2640, 5, 129, 55, 92, 113, 99, 112, 114, 56, 2650, 6, 129, 55, 113, 112, 114, 56, 60, 115, 26661, 0, 6, 129, 55, 113, 112, 114, 56, 0, 2670, 58, 38, 0, 0, 126, 0, 0, 57, 135, 2680, 0, 137, 0, 116, 0, 137, 116, 0, 111, 26959, 0, 116, 111, 59, 0, 60, 105, 61, 0, 270106, 0, 25, 55, 126, 56, 60, 119, 61, 0, 27127, 55, 126, 56, 60, 119, 61, 0, 26, 120, 27258, 105, 0, 26, 120, 58, 105, 19, 58, 105, 2730, 26, 120, 58, 105, 119, 0, 126, 0, 120, 27428, 126, 0, 11, 55, 126, 56, 117, 0, 11, 27555, 126, 56, 117, 8, 117, 0, 14, 55, 126, 27656, 117, 0, 15, 117, 14, 55, 126, 56, 0, 27720, 55, 126, 59, 126, 59, 126, 56, 117, 0, 27820, 55, 126, 59, 126, 59, 56, 117, 0, 20, 27955, 126, 59, 59, 126, 56, 117, 0, 20, 55, 280126, 59, 59, 56, 117, 0, 20, 55, 59, 126, 28159, 126, 56, 117, 0, 20, 55, 59, 126, 59, 28256, 117, 0, 20, 55, 59, 59, 126, 56, 117, 2830, 20, 55, 59, 59, 56, 117, 0, 21, 55, 28437, 23, 126, 56, 117, 0, 22, 55, 37, 23, 285126, 56, 117, 0, 131, 0, 131, 0, 55, 126, 28656, 0, 126, 62, 126, 0, 126, 54, 126, 0, 287126, 53, 126, 0, 126, 52, 126, 0, 126, 44, 288126, 0, 126, 45, 126, 0, 126, 46, 126, 0, 289126, 47, 126, 0, 45, 126, 0, 46, 126, 0, 29036, 0, 126, 96, 126, 58, 126, 0, 126, 48, 291126, 0, 126, 49, 126, 0, 126, 86, 126, 0, 292126, 87, 126, 0, 126, 84, 126, 0, 126, 85, 293126, 0, 126, 89, 126, 0, 126, 71, 126, 0, 294126, 72, 126, 0, 126, 88, 126, 0, 126, 90, 295126, 0, 126, 97, 126, 0, 126, 65, 126, 0, 29664, 126, 0, 63, 126, 0, 42, 0, 43, 0, 29735, 0, 7, 0, 127, 0, 128, 0, 38, 0, 29841, 0, 37, 0, 37, 92, 139, 99, 0, 3, 29955, 108, 56, 60, 105, 61, 0, 126, 51, 38, 3000, 126, 51, 38, 92, 139, 99, 0, 126, 66, 301129, 0, 126, 67, 129, 0, 38, 0, 55, 126, 30256, 0, 69, 0, 68, 0, 73, 126, 0, 74, 303126, 0, 75, 126, 0, 76, 126, 0, 77, 126, 3040, 78, 126, 0, 79, 126, 0, 80, 126, 0, 30581, 126, 0, 82, 126, 0, 132, 0, 133, 0, 306111, 0, 37, 50, 126, 0, 37, 92, 139, 99, 30750, 126, 0, 37, 130, 0, 37, 92, 139, 99, 308130, 0, 127, 130, 0, 127, 50, 126, 0, 127, 30950, 60, 135, 61, 0, 38, 55, 134, 56, 0, 31038, 91, 38, 55, 134, 56, 0, 126, 51, 38, 31155, 134, 56, 0, 126, 55, 134, 56, 0, 32, 31255, 126, 56, 0, 32, 55, 126, 57, 41, 56, 3130, 0, 135, 0, 126, 0, 135, 57, 126, 0, 3140, 137, 0, 138, 0, 137, 138, 0, 38, 50, 315126, 59, 0, 39, 38, 50, 126, 59, 0, 24, 31650, 126, 59, 0, 38, 92, 139, 99, 50, 126, 31759, 0, 39, 38, 92, 139, 99, 50, 126, 59, 3180, 126, 0, 139, 57, 126, 0 319}; 320 321#endif 322 323#if YYDEBUG != 0 324static const short yyrline[] = { 0, 325161, 166, 168, 173, 175, 177, 182, 187, 189, 194, 326196, 201, 202, 203, 204, 205, 206, 207, 209, 211, 327213, 215, 217, 219, 221, 226, 228, 233, 235, 240, 328242, 247, 252, 254, 256, 258, 260, 262, 267, 269, 329274, 276, 281, 283, 288, 290, 292, 294, 299, 301, 330306, 308, 313, 315, 320, 322, 324, 329, 331, 336, 331338, 343, 345, 350, 352, 354, 356, 358, 360, 362, 332364, 369, 371, 376, 381, 383, 385, 387, 389, 391, 333393, 395, 397, 399, 401, 403, 405, 407, 409, 411, 334413, 415, 417, 419, 421, 423, 425, 427, 429, 431, 335433, 435, 437, 439, 441, 443, 445, 447, 449, 451, 336453, 455, 457, 459, 477, 479, 484, 486, 491, 493, 337498, 500, 502, 504, 506, 508, 510, 512, 514, 516, 338518, 520, 525, 527, 529, 531, 533, 535, 537, 539, 339541, 543, 548, 550, 552, 554, 559, 561, 566, 568, 340573, 575, 580, 582, 587, 589, 594, 596, 598, 600, 341602, 607, 609 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, 368100, 101, 101, 102, 102, 102, 103, 104, 104, 105, 369105, 106, 106, 106, 106, 106, 106, 106, 106, 106, 370106, 106, 106, 106, 106, 107, 107, 108, 108, 109, 371109, 110, 111, 111, 111, 111, 111, 111, 112, 112, 372113, 113, 114, 114, 115, 115, 115, 115, 116, 116, 373117, 117, 118, 118, 119, 119, 119, 120, 120, 121, 374121, 122, 122, 123, 123, 123, 123, 123, 123, 123, 375123, 124, 124, 125, 126, 126, 126, 126, 126, 126, 376126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 377126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 378126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 379126, 126, 126, 126, 127, 127, 128, 128, 129, 129, 380130, 130, 130, 130, 130, 130, 130, 130, 130, 130, 381130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 382131, 131, 132, 132, 132, 132, 133, 133, 134, 134, 383135, 135, 136, 136, 137, 137, 138, 138, 138, 138, 384138, 139, 139 385}; 386 387static const short yyr2[] = { 0, 3881, 0, 2, 1, 1, 1, 6, 1, 2, 0, 3892, 1, 1, 1, 1, 1, 1, 2, 2, 2, 3903, 2, 4, 6, 1, 8, 10, 0, 1, 1, 3913, 10, 10, 7, 12, 9, 10, 7, 0, 2, 3920, 1, 0, 2, 0, 1, 1, 2, 2, 3, 3933, 1, 7, 7, 4, 7, 5, 1, 3, 5, 3947, 5, 6, 9, 8, 8, 7, 8, 7, 7, 3956, 7, 7, 1, 1, 3, 3, 3, 3, 3, 3963, 3, 3, 3, 2, 2, 1, 5, 3, 3, 3973, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3983, 2, 2, 1, 1, 1, 1, 1, 1, 1, 3991, 1, 4, 7, 3, 6, 3, 3, 1, 3, 4001, 1, 2, 2, 2, 2, 2, 2, 2, 2, 4012, 2, 1, 1, 1, 3, 6, 2, 5, 2, 4023, 5, 4, 6, 6, 4, 4, 6, 0, 1, 4031, 3, 0, 1, 1, 2, 4, 5, 4, 7, 4048, 1, 3 405}; 406 407static const short yydefact[] = { 2, 4081, 0, 0, 0, 107, 0, 0, 0, 0, 0, 4090, 0, 0, 0, 0, 0, 0, 0, 106, 87, 410112, 110, 25, 111, 104, 105, 0, 0, 0, 0, 4110, 3, 6, 4, 5, 16, 135, 17, 12, 13, 41214, 15, 0, 0, 108, 109, 75, 133, 134, 0, 41328, 119, 0, 0, 0, 18, 19, 0, 0, 107, 41487, 20, 0, 75, 0, 10, 52, 0, 0, 0, 4150, 0, 0, 0, 0, 0, 0, 0, 122, 121, 4160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4170, 138, 149, 0, 85, 86, 0, 103, 102, 22, 4180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 419149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4200, 0, 0, 0, 0, 0, 0, 140, 28, 0, 42130, 0, 29, 0, 41, 41, 0, 21, 0, 0, 4220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4230, 136, 123, 124, 125, 126, 127, 128, 129, 130, 424131, 132, 162, 0, 151, 0, 150, 0, 76, 81, 42582, 83, 84, 89, 90, 115, 80, 79, 78, 0, 42677, 101, 117, 118, 96, 97, 93, 94, 91, 92, 42798, 95, 99, 0, 100, 0, 141, 0, 0, 0, 4280, 120, 41, 39, 42, 39, 0, 0, 51, 11, 4290, 0, 0, 0, 0, 0, 39, 0, 0, 0, 4300, 8, 147, 0, 0, 23, 0, 113, 143, 0, 431149, 149, 0, 146, 0, 0, 0, 28, 10, 31, 4320, 0, 43, 43, 60, 62, 0, 0, 0, 0, 4330, 0, 0, 0, 0, 0, 0, 0, 9, 0, 4340, 163, 0, 139, 152, 0, 0, 0, 88, 142, 43510, 0, 0, 39, 40, 0, 0, 0, 0, 63, 43671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4370, 0, 0, 7, 148, 24, 137, 144, 145, 116, 4380, 0, 114, 43, 44, 34, 38, 61, 70, 69, 4390, 67, 0, 0, 0, 72, 73, 153, 0, 58, 44053, 54, 26, 10, 0, 45, 45, 68, 66, 65, 4410, 0, 0, 0, 0, 154, 155, 0, 10, 0, 44236, 0, 0, 47, 46, 0, 64, 0, 0, 0, 4430, 0, 156, 59, 55, 27, 45, 49, 33, 0, 44448, 37, 0, 0, 0, 0, 0, 32, 0, 57, 4450, 50, 159, 157, 0, 0, 0, 10, 35, 0, 446158, 0, 56, 0, 0, 160, 0, 161, 0, 0, 4470 448}; 449 450static const short yydefgoto[] = { 389, 4511, 32, 33, 221, 140, 67, 35, 132, 133, 36, 45237, 243, 204, 277, 343, 344, 68, 38, 292, 319, 45339, 40, 41, 42, 43, 44, 45, 46, 54, 92, 45464, 48, 49, 166, 167, 335, 345, 337, 164 455}; 456 457static const short yypact[] = { -32768, 458213, -7, 55, 55, -37, -25, -18, 490, -13, 422, 4595, 14, 41, 55, 47, 49, 9, 51,-32768, 57, 460566, -23,-32768,-32768,-32768,-32768, 1187, 1187, 1187, 1187, 4611187,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 462-32768,-32768, -5, 2650, 3021,-32768, 35,-32768,-32768, -12, 46362,-32768, 1187, 67, 68,-32768,-32768, 1187, 69,-32768, 464-32768,-32768, 1300,-32768, 1187,-32768,-32768, 103, 835, 88, 46589, 77, 1187, 1187, 73, 1187, 1187, 1187,-32768,-32768, 4661187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 1187, 4671187,-32768, 1187, 96, 219, 219, 1354, 219, 219,-32768, 4681187, 1187, 1187, 1187, 1187, 1187, 97, 1187, 1187, 1187, 4691187, 1187, 1187, 55, 55, 1187, 1187, 1187, 1187, 1187, 4701187, 1187, 1187, 1187, 1187, 1187, 879,-32768, 62, 98, 471-32768, 81, 91, 1408, 21, 1187, 1462,-32768, 1516, 556, 47295, 923, 1570, 123, 131, 1187, 1624, 1678, 152, 1192, 4731246, 2650, 2650, 2650, 2650, 2650, 2650, 2650, 2650, 2650, 4742650, 2650, 2650, -38, 2650, 100, 104, 111,-32768, 145, 475145, 219, 219, 3015, 3015, -40, 2845, 2939, 219, 112, 4762892, 143,-32768,-32768, 277, 277, 2986, 2986, 3015, 3015, 4772798, 2751, 143, 1732, 143, 1187, 2650, 113, 116, 107, 478135,-32768, 1187, 119, 2650, 119, 422, 422,-32768,-32768, 4791187, 967, 1786, 1011, 1187, 1187, 1840, 122, 126, 157, 48013,-32768,-32768, 162, 1187,-32768, 1187, 3041,-32768, 1187, 4811187, 1187, 1187,-32768, 1187, 44, 144, 62,-32768,-32768, 482106, 170, 156, 156, 209,-32768, 1894, 422, 1948, 1055, 4831099, 2002, 2056, 2110, 165, 197, 197, 166,-32768, 173, 4842164, 2650, 1187,-32768, 2650, 174, 175, -28, 2704,-32768, 485-32768, 176, 656, 119,-32768, 1187, 180, 183, 422,-32768, 486-32768, 422, 422, 2218, 422, 2272, 1143, 422, 422, 181, 4871187, 182, 185,-32768,-32768,-32768, 2650,-32768,-32768,-32768, 488701, 184,-32768, 156, 104, 192, 200,-32768,-32768,-32768, 489422,-32768, 422, 422, 2326,-32768,-32768, 76, 12, 2650, 490-32768,-32768,-32768,-32768, 201, 92, 92,-32768,-32768,-32768, 491422, 211, -20, 224, 202, 76,-32768, 1187,-32768, 746, 492204, 206, 205, 39, 92, 208,-32768, 1187, 1187, 1187, 493-17, 212,-32768, 2650, 138,-32768, 92,-32768,-32768, 216, 49439,-32768, 2380, 2434, -21, 1187, 1187,-32768, 221,-32768, 495222,-32768,-32768,-32768, 217, 2488, -8,-32768,-32768, 1187, 496-32768, 230, 791, 2542, 1187,-32768, 2596,-32768, 289, 290, 497-32768 498}; 499 500static const short yypgoto[] = { -32768, 501-32768,-32768,-32768,-32768, -236, 0, -132, -118,-32768,-32768, 502-306, -192, -113, -231, -262, -54, -202,-32768, -247,-32768, 503-32768,-32768,-32768,-32768,-32768, 288,-32768,-32768, 4, -43, 504-1,-32768,-32768, -104, -184,-32768, -26, -295, -229 505}; 506 507 508#define YYLAST 3123 509 510 511static const short yytable[] = { 47, 51234, 128, 273, 268, 245, 246, 180, 55, 47, 293, 513198, 236, 278, 244, 232, 220, 222, 72, 227, 342, 514342, 56, 206, 59, 255, 3, 4, 60, 227, 349, 51550, 93, 366, 57, 301, 227, 58, 360, 342, 338, 516353, 65, 129, 3, 4, 281, 75, 51, 227, 353, 517342, 233, 18, 100, 360, 19, 61, 21, 22, 69, 518228, 24, 25, 26, 346, 27, 28, 94, 70, 339, 519300, 350, 325, 258, 367, 29, 308, 375, 130, 309, 520310, 304, 312, 30, 31, 316, 317, 340, 259, 241, 521382, 305, 52, -74, 371, 71, 3, 4, 131, 332, 522230, 73, 355, 74, 270, 76, 77, 370, 328, 53, 523329, 330, 203, 333, 334, 332, 141, 183, 184, 272, 524365, 135, 136, 51, 144, 145, 266, 267, 347, 333, 525334, 146, 149, 168, 176, 199, 200, 377, 47, 210, 52659, 383, 3, 4, 5, 215, 6, 201, 7, 211, 5278, 9, 10, 216, 220, 229, 369, 11, 12, 13, 528230, 14, 15, 291, 16, 231, 239, 234, 237, 18, 529238, 240, 19, 20, 21, 22, 242, 23, 24, 25, 53026, 256, 27, 28, 264, 257, 101, 102, 103, 104, 531103, 104, 29, 107, 50, 107, 110, 111, 110, 111, 53230, 31, 260, 271, 274, 47, 47, 275, 114, 115, 533114, 115, 276, 116, 117, 2, 279, 3, 4, 5, 534290, 6, 291, 7, 294, 8, 9, 10, 295, 298, 535299, 302, 11, 12, 13, 306, 14, 15, 307, 16, 536318, 17, 321, 324, 18, 322, 47, 19, 20, 21, 53722, 326, 23, 24, 25, 26, 341, 27, 28, 327, 538348, 351, 352, 357, 358, 359, 380, 29, 362, 107, 539368, 47, 210, 111, 372, 30, 31, 47, 378, 385, 54047, 47, 379, 47, 114, 115, 47, 47, 390, 391, 541361, 336, 0, 0, 0, 63, 0, 0, 0, 47, 542210, 0, 0, 0, 0, 0, 0, 0, 0, 47, 5430, 47, 47, 0, 95, 96, 97, 98, 99, 0, 544101, 102, 103, 104, 0, 0, 0, 107, 0, 47, 545110, 111, 0, 0, 0, 0, 0, 0, 47, 210, 546134, 0, 114, 115, 0, 137, 0, 0, 0, 0, 5470, 0, 139, 47, 210, 0, 143, 0, 0, 0, 548147, 148, 0, 150, 151, 152, 0, 0, 153, 154, 549155, 156, 157, 158, 159, 160, 161, 162, 163, 0, 550165, 47, 210, 0, 0, 0, 0, 0, 170, 171, 551172, 173, 174, 175, 0, 177, 178, 179, 165, 181, 552182, 0, 0, 185, 186, 187, 188, 189, 190, 191, 553192, 193, 194, 195, 197, 0, 0, 0, 0, 0, 5540, 0, 205, 205, 59, 0, 3, 4, 5, 213, 5556, 0, 7, 217, 8, 9, 10, 0, 0, 0, 5560, 11, 12, 13, 0, 14, 15, 0, 16, 0, 5570, 0, 0, 18, 0, 0, 19, 20, 21, 22, 5580, 23, 24, 25, 26, 0, 27, 28, 0, 0, 5590, 0, 0, 0, 0, 0, 29, 0, 0, 0, 5600, 66, 0, 165, 30, 31, 0, 0, 0, 0, 561205, 0, 59, 0, 3, 4, 60, 0, 247, 249, 5620, 252, 253, 254, 0, 0, 0, 0, 0, 0, 5630, 0, 261, 0, 262, 0, 0, 265, 165, 165, 564163, 18, 269, 0, 19, 61, 21, 22, 0, 0, 56524, 25, 26, 0, 27, 28, 0, 284, 286, 0, 5660, 0, 0, 0, 29, 0, 0, 0, 62, 0, 567297, 0, 30, 31, 0, 0, 0, 0, 59, 0, 5683, 4, 5, 165, 6, 0, 7, 0, 8, 9, 56910, 0, 0, 0, 315, 11, 12, 13, 320, 14, 57015, 0, 16, 0, 0, 0, 0, 18, 0, 0, 57119, 20, 21, 22, 0, 23, 24, 25, 26, 0, 57227, 28, 0, 0, 0, 0, 0, 0, 0, 0, 57329, 0, 0, 0, 0, 78, 209, 0, 30, 31, 5740, 0, 0, 0, 0, 354, 0, 0, 0, 0, 5750, 0, 0, 79, 80, 363, 364, 163, 81, 82, 57683, 84, 85, 86, 87, 88, 89, 90, 0, 0, 5770, 0, 0, 376, 163, 0, 0, 91, 59, 0, 5783, 4, 5, 0, 6, 0, 7, 384, 8, 9, 57910, 0, 387, 0, 0, 11, 12, 13, 0, 14, 58015, 0, 16, 0, 0, 0, 0, 18, 0, 0, 58119, 20, 21, 22, 0, 23, 24, 25, 26, 0, 58227, 28, 0, 59, 0, 3, 4, 5, 0, 6, 58329, 7, 0, 8, 9, 10, 303, 0, 30, 31, 58411, 12, 13, 0, 14, 15, 0, 16, 0, 0, 5850, 0, 18, 0, 0, 19, 20, 21, 22, 0, 58623, 24, 25, 26, 0, 27, 28, 0, 59, 0, 5873, 4, 5, 0, 6, 29, 7, 0, 8, 9, 58810, 323, 0, 30, 31, 11, 12, 13, 0, 14, 58915, 0, 16, 0, 0, 0, 0, 18, 0, 0, 59019, 20, 21, 22, 0, 23, 24, 25, 26, 0, 59127, 28, 0, 59, 0, 3, 4, 5, 0, 6, 59229, 7, 0, 8, 9, 10, 356, 0, 30, 31, 59311, 12, 13, 0, 14, 15, 0, 16, 0, 0, 5940, 0, 18, 0, 0, 19, 20, 21, 22, 0, 59523, 24, 25, 26, 0, 27, 28, 59, 0, 3, 5964, 60, 0, 0, 0, 29, 0, 0, 0, 0, 5970, 0, 0, 30, 31, 0, 0, 0, 0, 0, 5980, 0, 0, 0, 0, 0, 18, 0, 0, 19, 59961, 21, 22, 0, 0, 24, 25, 26, 0, 27, 60028, 59, 0, 3, 4, 60, 0, 0, 0, 29, 6010, 0, 0, 142, 0, 0, 0, 30, 31, 0, 6020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 60318, 0, 0, 19, 61, 21, 22, 0, 0, 24, 60425, 26, 0, 27, 28, 59, 0, 3, 4, 60, 6050, 0, 0, 29, 0, 0, 0, 0, 196, 0, 6060, 30, 31, 0, 0, 0, 0, 0, 0, 0, 6070, 0, 0, 0, 18, 0, 0, 19, 61, 21, 60822, 0, 0, 24, 25, 26, 0, 27, 28, 59, 6090, 3, 4, 60, 0, 0, 0, 29, 0, 0, 6100, 212, 0, 0, 0, 30, 31, 0, 0, 0, 6110, 0, 0, 0, 0, 0, 0, 0, 18, 0, 6120, 19, 61, 21, 22, 0, 0, 24, 25, 26, 6130, 27, 28, 59, 0, 3, 4, 60, 0, 0, 6140, 29, 248, 0, 0, 0, 0, 0, 0, 30, 61531, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6160, 0, 18, 0, 0, 19, 61, 21, 22, 0, 6170, 24, 25, 26, 0, 27, 28, 59, 0, 3, 6184, 60, 0, 0, 0, 29, 0, 0, 0, 251, 6190, 0, 0, 30, 31, 0, 0, 0, 0, 0, 6200, 0, 0, 0, 0, 0, 18, 0, 0, 19, 62161, 21, 22, 0, 0, 24, 25, 26, 0, 27, 62228, 59, 0, 3, 4, 60, 0, 0, 0, 29, 623283, 0, 0, 0, 0, 0, 0, 30, 31, 0, 6240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62518, 0, 0, 19, 61, 21, 22, 0, 0, 24, 62625, 26, 0, 27, 28, 59, 0, 3, 4, 60, 6270, 0, 0, 29, 285, 0, 0, 0, 0, 0, 6280, 30, 31, 0, 0, 0, 0, 0, 0, 0, 6290, 0, 0, 0, 18, 0, 0, 19, 61, 21, 63022, 0, 0, 24, 25, 26, 0, 27, 28, 59, 6310, 3, 4, 60, 0, 0, 0, 29, 314, 0, 6320, 0, 0, 0, 0, 30, 31, 0, 0, 0, 6330, 0, 0, 0, 0, 0, 0, 0, 18, 0, 6340, 19, 61, 21, 22, 0, 0, 24, 25, 26, 6350, 27, 28, 0, 0, 101, 102, 103, 104, 105, 636106, 29, 107, 108, 109, 110, 111, 223, 224, 30, 63731, 0, 0, 112, 0, 0, 113, 114, 115, 0, 6380, 0, 116, 117, 0, 0, 0, 0, 0, 0, 6390, 0, 0, 0, 0, 118, 119, 120, 121, 122, 640123, 124, 0, 0, 0, 0, 0, 125, 126, 101, 641102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 642111, 0, 225, 0, 226, 0, 0, 112, 0, 0, 643113, 114, 115, 0, 0, 0, 116, 117, 0, 0, 6440, 0, 0, 0, 0, 0, 0, 0, 0, 118, 645119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 6460, 125, 126, 101, 102, 103, 104, 105, 106, 0, 647107, 108, 109, 110, 111, 0, 0, 0, 138, 0, 6480, 112, 0, 0, 113, 114, 115, 0, 0, 0, 649116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 6500, 0, 0, 118, 119, 120, 121, 122, 123, 124, 6510, 0, 0, 0, 0, 125, 126, 101, 102, 103, 652104, 105, 106, 0, 107, 108, 109, 110, 111, 169, 6530, 0, 0, 0, 0, 112, 0, 0, 113, 114, 654115, 0, 0, 0, 116, 117, 0, 0, 0, 0, 6550, 0, 0, 0, 0, 0, 0, 118, 119, 120, 656121, 122, 123, 124, 0, 0, 0, 0, 0, 125, 657126, 101, 102, 103, 104, 105, 106, 0, 107, 108, 658109, 110, 111, 202, 0, 0, 0, 0, 0, 112, 6590, 0, 113, 114, 115, 0, 0, 0, 116, 117, 6600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6610, 118, 119, 120, 121, 122, 123, 124, 0, 0, 6620, 0, 0, 125, 126, 101, 102, 103, 104, 105, 663106, 0, 107, 108, 109, 110, 111, 207, 0, 0, 6640, 0, 0, 112, 0, 0, 113, 114, 115, 0, 6650, 0, 116, 117, 0, 0, 0, 0, 0, 0, 6660, 0, 0, 0, 0, 118, 119, 120, 121, 122, 667123, 124, 0, 0, 0, 0, 0, 125, 126, 101, 668102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 669111, 208, 0, 0, 0, 0, 0, 112, 0, 0, 670113, 114, 115, 0, 0, 0, 116, 117, 0, 0, 6710, 0, 0, 0, 0, 0, 0, 0, 0, 118, 672119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 6730, 125, 126, 101, 102, 103, 104, 105, 106, 0, 674107, 108, 109, 110, 111, 0, 0, 0, 214, 0, 6750, 112, 0, 0, 113, 114, 115, 0, 0, 0, 676116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 6770, 0, 0, 118, 119, 120, 121, 122, 123, 124, 6780, 0, 0, 0, 0, 125, 126, 101, 102, 103, 679104, 105, 106, 0, 107, 108, 109, 110, 111, 218, 6800, 0, 0, 0, 0, 112, 0, 0, 113, 114, 681115, 0, 0, 0, 116, 117, 0, 0, 0, 0, 6820, 0, 0, 0, 0, 0, 0, 118, 119, 120, 683121, 122, 123, 124, 0, 0, 0, 0, 0, 125, 684126, 101, 102, 103, 104, 105, 106, 0, 107, 108, 685109, 110, 111, 219, 0, 0, 0, 0, 0, 112, 6860, 0, 113, 114, 115, 0, 0, 0, 116, 117, 6870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6880, 118, 119, 120, 121, 122, 123, 124, 0, 0, 6890, 0, 0, 125, 126, 101, 102, 103, 104, 105, 690106, 0, 107, 108, 109, 110, 111, 0, 0, 235, 6910, 0, 0, 112, 0, 0, 113, 114, 115, 0, 6920, 0, 116, 117, 0, 0, 0, 0, 0, 0, 6930, 0, 0, 0, 0, 118, 119, 120, 121, 122, 694123, 124, 0, 0, 0, 0, 0, 125, 126, 101, 695102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 696111, 0, 0, 0, 250, 0, 0, 112, 0, 0, 697113, 114, 115, 0, 0, 0, 116, 117, 0, 0, 6980, 0, 0, 0, 0, 0, 0, 0, 0, 118, 699119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 7000, 125, 126, 101, 102, 103, 104, 105, 106, 0, 701107, 108, 109, 110, 111, 0, 0, 242, 0, 0, 7020, 112, 0, 0, 113, 114, 115, 0, 0, 0, 703116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 7040, 0, 0, 118, 119, 120, 121, 122, 123, 124, 7050, 0, 0, 0, 0, 125, 126, 101, 102, 103, 706104, 105, 106, 0, 107, 108, 109, 110, 111, 280, 7070, 0, 0, 0, 0, 112, 0, 0, 113, 114, 708115, 0, 0, 0, 116, 117, 0, 0, 0, 0, 7090, 0, 0, 0, 0, 0, 0, 118, 119, 120, 710121, 122, 123, 124, 0, 0, 0, 0, 0, 125, 711126, 101, 102, 103, 104, 105, 106, 0, 107, 108, 712109, 110, 111, 282, 0, 0, 0, 0, 0, 112, 7130, 0, 113, 114, 115, 0, 0, 0, 116, 117, 7140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7150, 118, 119, 120, 121, 122, 123, 124, 0, 0, 7160, 0, 0, 125, 126, 101, 102, 103, 104, 105, 717106, 0, 107, 108, 109, 110, 111, 0, 0, 0, 718287, 0, 0, 112, 0, 0, 113, 114, 115, 0, 7190, 0, 116, 117, 0, 0, 0, 0, 0, 0, 7200, 0, 0, 0, 0, 118, 119, 120, 121, 122, 721123, 124, 0, 0, 0, 0, 0, 125, 126, 101, 722102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 723111, 288, 0, 0, 0, 0, 0, 112, 0, 0, 724113, 114, 115, 0, 0, 0, 116, 117, 0, 0, 7250, 0, 0, 0, 0, 0, 0, 0, 0, 118, 726119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 7270, 125, 126, 101, 102, 103, 104, 105, 106, 0, 728107, 108, 109, 110, 111, 289, 0, 0, 0, 0, 7290, 112, 0, 0, 113, 114, 115, 0, 0, 0, 730116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 7310, 0, 0, 118, 119, 120, 121, 122, 123, 124, 7320, 0, 0, 0, 0, 125, 126, 101, 102, 103, 733104, 105, 106, 0, 107, 108, 109, 110, 111, 0, 7340, 0, 296, 0, 0, 112, 0, 0, 113, 114, 735115, 0, 0, 0, 116, 117, 0, 0, 0, 0, 7360, 0, 0, 0, 0, 0, 0, 118, 119, 120, 737121, 122, 123, 124, 0, 0, 0, 0, 0, 125, 738126, 101, 102, 103, 104, 105, 106, 0, 107, 108, 739109, 110, 111, 311, 0, 0, 0, 0, 0, 112, 7400, 0, 113, 114, 115, 0, 0, 0, 116, 117, 7410, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7420, 118, 119, 120, 121, 122, 123, 124, 0, 0, 7430, 0, 0, 125, 126, 101, 102, 103, 104, 105, 744106, 0, 107, 108, 109, 110, 111, 313, 0, 0, 7450, 0, 0, 112, 0, 0, 113, 114, 115, 0, 7460, 0, 116, 117, 0, 0, 0, 0, 0, 0, 7470, 0, 0, 0, 0, 118, 119, 120, 121, 122, 748123, 124, 0, 0, 0, 0, 0, 125, 126, 101, 749102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 750111, 331, 0, 0, 0, 0, 0, 112, 0, 0, 751113, 114, 115, 0, 0, 0, 116, 117, 0, 0, 7520, 0, 0, 0, 0, 0, 0, 0, 0, 118, 753119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 7540, 125, 126, 101, 102, 103, 104, 105, 106, 0, 755107, 108, 109, 110, 111, 0, 0, 0, 373, 0, 7560, 112, 0, 0, 113, 114, 115, 0, 0, 0, 757116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 7580, 0, 0, 118, 119, 120, 121, 122, 123, 124, 7590, 0, 0, 0, 0, 125, 126, 101, 102, 103, 760104, 105, 106, 0, 107, 108, 109, 110, 111, 0, 7610, 0, 374, 0, 0, 112, 0, 0, 113, 114, 762115, 0, 0, 0, 116, 117, 0, 0, 0, 0, 7630, 0, 0, 0, 0, 0, 0, 118, 119, 120, 764121, 122, 123, 124, 0, 0, 0, 0, 0, 125, 765126, 101, 102, 103, 104, 105, 106, 0, 107, 108, 766109, 110, 111, 0, 0, 0, 381, 0, 0, 112, 7670, 0, 113, 114, 115, 0, 0, 0, 116, 117, 7680, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7690, 118, 119, 120, 121, 122, 123, 124, 0, 0, 7700, 0, 0, 125, 126, 101, 102, 103, 104, 105, 771106, 0, 107, 108, 109, 110, 111, 0, 0, 0, 772386, 0, 0, 112, 0, 0, 113, 114, 115, 0, 7730, 0, 116, 117, 0, 0, 0, 0, 0, 0, 7740, 0, 0, 0, 0, 118, 119, 120, 121, 122, 775123, 124, 0, 0, 0, 0, 0, 125, 126, 101, 776102, 103, 104, 105, 106, 0, 107, 108, 109, 110, 777111, 0, 0, 0, 388, 0, 0, 112, 0, 0, 778113, 114, 115, 0, 0, 0, 116, 117, 0, 0, 7790, 0, 0, 0, 0, 0, 0, 0, 0, 118, 780119, 120, 121, 122, 123, 124, 0, 0, 0, 0, 7810, 125, 126, 101, 102, 103, 104, 105, 106, 0, 782107, 108, 109, 110, 111, 0, 0, 0, 0, 0, 7830, 112, 0, 0, 113, 114, 115, 0, 0, 0, 784116, 117, 0, 0, 0, 0, 0, 0, 0, 0, 7850, 0, 0, 118, 119, 120, 121, 122, 123, 124, 7860, 0, 0, 0, 0, 125, 126, 101, 102, 103, 787104, 105, 106, 0, 107, 108, 109, 110, 111, 0, 7880, 0, 0, 0, 0, 112, 0, 0, 113, 114, 789115, 0, 0, 0, 116, 117, 0, 0, 0, 0, 7900, 0, 0, 0, 0, 0, 0, 118, 119, 120, 791121, 122, 123, 124, 101, 102, 103, 104, 105, 106, 792126, 107, 108, 109, 110, 111, 0, 0, 0, 0, 7930, 0, 112, 0, 0, 113, 114, 115, 0, 0, 7940, 116, 117, 0, 0, 0, 0, 0, 0, 0, 7950, 0, 0, 0, 118, 119, 120, 121, 122, 0, 796124, 101, 102, 103, 104, 105, 106, 126, 107, 108, 797109, 110, 111, 0, 0, 0, 0, 0, 0, 112, 7980, 0, 113, 114, 115, 0, 0, 0, 116, 117, 7990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8000, 118, 119, 120, 121, 0, 0, 124, 101, 102, 801103, 104, 105, 106, 126, 107, 0, 109, 110, 111, 8020, 0, 0, 0, 0, 0, 112, 0, 0, 113, 803114, 115, 0, 0, 0, 116, 117, 0, 0, 0, 8040, 0, 0, 0, 0, 0, 0, 0, 118, 119, 805120, 121, 0, 0, 124, 101, 102, 103, 104, 105, 806106, 126, 107, 0, 109, 110, 111, 0, 0, 0, 8070, 0, 0, 0, 0, 0, 113, 114, 115, 0, 8080, 0, 116, 117, 0, 0, 0, 0, 0, 0, 8090, 0, 0, 0, 0, 118, 119, 120, 121, 0, 8100, 124, 101, 102, 103, 104, 105, 106, 126, 107, 8110, 0, 110, 111, 0, 0, 0, 0, 0, 0, 8120, 0, 0, 113, 114, 115, 0, 0, 0, 116, 813117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8140, 0, 118, 119, 120, 121, 0, 0, 124, 101, 815102, 103, 104, 105, 106, 126, 107, 0, 0, 110, 816111, 0, 0, 0, 0, 0, 0, 0, 0, 0, 817113, 114, 115, 0, 0, 0, 116, 117, 101, 102, 818103, 104, 0, 0, 0, 107, 0, 0, 110, 111, 819127, 120, 121, 0, 0, 124, 0, 0, 0, 113, 820114, 115, 126, 0, 0, 116, 117, 0, 79, 80, 821263, 0, 0, 81, 82, 83, 84, 85, 86, 87, 82288, 89, 90, 0, 124, 0, 0, 0, 79, 80, 8230, 126, 0, 81, 82, 83, 84, 85, 86, 87, 82488, 89, 90 825}; 826 827static const short yycheck[] = { 1, 8281, 45, 239, 233, 207, 208, 111, 4, 10, 257, 829129, 196, 244, 206, 55, 3, 149, 14, 57, 326, 830327, 59, 136, 3, 217, 5, 6, 7, 57, 50, 83138, 55, 50, 59, 271, 57, 55, 344, 345, 28, 832336, 55, 55, 5, 6, 248, 38, 55, 57, 345, 833357, 92, 32, 59, 361, 35, 36, 37, 38, 55, 83499, 41, 42, 43, 327, 45, 46, 91, 55, 58, 83599, 92, 304, 61, 92, 55, 279, 99, 91, 282, 836283, 274, 285, 63, 64, 288, 289, 324, 221, 203, 83799, 276, 38, 59, 357, 55, 5, 6, 37, 24, 83857, 55, 339, 55, 61, 55, 50, 355, 311, 55, 839313, 314, 92, 38, 39, 24, 14, 114, 115, 238, 840350, 55, 55, 55, 37, 37, 231, 232, 331, 38, 84139, 55, 60, 38, 38, 38, 56, 367, 140, 140, 8423, 378, 5, 6, 7, 23, 9, 57, 11, 55, 84313, 14, 15, 23, 3, 56, 19, 20, 21, 22, 84457, 24, 25, 26, 27, 55, 60, 56, 56, 32, 84555, 37, 35, 36, 37, 38, 58, 40, 41, 42, 84643, 60, 45, 46, 228, 60, 44, 45, 46, 47, 84746, 47, 55, 51, 38, 51, 54, 55, 54, 55, 84863, 64, 41, 60, 99, 207, 208, 38, 66, 67, 84966, 67, 57, 71, 72, 3, 8, 5, 6, 7, 85056, 9, 26, 11, 59, 13, 14, 15, 56, 56, 85156, 56, 20, 21, 22, 56, 24, 25, 56, 27, 85260, 29, 61, 60, 32, 61, 248, 35, 36, 37, 85338, 60, 40, 41, 42, 43, 56, 45, 46, 60, 85450, 38, 61, 60, 59, 61, 50, 55, 61, 51, 85559, 273, 273, 55, 59, 63, 64, 279, 58, 50, 856282, 283, 61, 285, 66, 67, 288, 289, 0, 0, 857345, 318, -1, -1, -1, 8, -1, -1, -1, 301, 858301, -1, -1, -1, -1, -1, -1, -1, -1, 311, 859-1, 313, 314, -1, 27, 28, 29, 30, 31, -1, 86044, 45, 46, 47, -1, -1, -1, 51, -1, 331, 86154, 55, -1, -1, -1, -1, -1, -1, 340, 340, 86253, -1, 66, 67, -1, 58, -1, -1, -1, -1, 863-1, -1, 65, 355, 355, -1, 69, -1, -1, -1, 86473, 74, -1, 76, 77, 78, -1, -1, 81, 82, 86583, 84, 85, 86, 87, 88, 89, 90, 91, -1, 86693, 383, 383, -1, -1, -1, -1, -1, 101, 102, 867103, 104, 105, 106, -1, 108, 109, 110, 111, 112, 868113, -1, -1, 116, 117, 118, 119, 120, 121, 122, 869123, 124, 125, 126, 127, -1, -1, -1, -1, -1, 870-1, -1, 135, 136, 3, -1, 5, 6, 7, 142, 8719, -1, 11, 146, 13, 14, 15, -1, -1, -1, 872-1, 20, 21, 22, -1, 24, 25, -1, 27, -1, 873-1, -1, -1, 32, -1, -1, 35, 36, 37, 38, 874-1, 40, 41, 42, 43, -1, 45, 46, -1, -1, 875-1, -1, -1, -1, -1, -1, 55, -1, -1, -1, 876-1, 60, -1, 196, 63, 64, -1, -1, -1, -1, 877203, -1, 3, -1, 5, 6, 7, -1, 211, 212, 878-1, 214, 215, 216, -1, -1, -1, -1, -1, -1, 879-1, -1, 225, -1, 227, -1, -1, 230, 231, 232, 880233, 32, 235, -1, 35, 36, 37, 38, -1, -1, 88141, 42, 43, -1, 45, 46, -1, 250, 251, -1, 882-1, -1, -1, -1, 55, -1, -1, -1, 59, -1, 883263, -1, 63, 64, -1, -1, -1, -1, 3, -1, 8845, 6, 7, 276, 9, -1, 11, -1, 13, 14, 88515, -1, -1, -1, 287, 20, 21, 22, 291, 24, 88625, -1, 27, -1, -1, -1, -1, 32, -1, -1, 88735, 36, 37, 38, -1, 40, 41, 42, 43, -1, 88845, 46, -1, -1, -1, -1, -1, -1, -1, -1, 88955, -1, -1, -1, -1, 50, 61, -1, 63, 64, 890-1, -1, -1, -1, -1, 338, -1, -1, -1, -1, 891-1, -1, -1, 68, 69, 348, 349, 350, 73, 74, 89275, 76, 77, 78, 79, 80, 81, 82, -1, -1, 893-1, -1, -1, 366, 367, -1, -1, 92, 3, -1, 8945, 6, 7, -1, 9, -1, 11, 380, 13, 14, 89515, -1, 385, -1, -1, 20, 21, 22, -1, 24, 89625, -1, 27, -1, -1, -1, -1, 32, -1, -1, 89735, 36, 37, 38, -1, 40, 41, 42, 43, -1, 89845, 46, -1, 3, -1, 5, 6, 7, -1, 9, 89955, 11, -1, 13, 14, 15, 61, -1, 63, 64, 90020, 21, 22, -1, 24, 25, -1, 27, -1, -1, 901-1, -1, 32, -1, -1, 35, 36, 37, 38, -1, 90240, 41, 42, 43, -1, 45, 46, -1, 3, -1, 9035, 6, 7, -1, 9, 55, 11, -1, 13, 14, 90415, 61, -1, 63, 64, 20, 21, 22, -1, 24, 90525, -1, 27, -1, -1, -1, -1, 32, -1, -1, 90635, 36, 37, 38, -1, 40, 41, 42, 43, -1, 90745, 46, -1, 3, -1, 5, 6, 7, -1, 9, 90855, 11, -1, 13, 14, 15, 61, -1, 63, 64, 90920, 21, 22, -1, 24, 25, -1, 27, -1, -1, 910-1, -1, 32, -1, -1, 35, 36, 37, 38, -1, 91140, 41, 42, 43, -1, 45, 46, 3, -1, 5, 9126, 7, -1, -1, -1, 55, -1, -1, -1, -1, 913-1, -1, -1, 63, 64, -1, -1, -1, -1, -1, 914-1, -1, -1, -1, -1, -1, 32, -1, -1, 35, 91536, 37, 38, -1, -1, 41, 42, 43, -1, 45, 91646, 3, -1, 5, 6, 7, -1, -1, -1, 55, 917-1, -1, -1, 59, -1, -1, -1, 63, 64, -1, 918-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 91932, -1, -1, 35, 36, 37, 38, -1, -1, 41, 92042, 43, -1, 45, 46, 3, -1, 5, 6, 7, 921-1, -1, -1, 55, -1, -1, -1, -1, 60, -1, 922-1, 63, 64, -1, -1, -1, -1, -1, -1, -1, 923-1, -1, -1, -1, 32, -1, -1, 35, 36, 37, 92438, -1, -1, 41, 42, 43, -1, 45, 46, 3, 925-1, 5, 6, 7, -1, -1, -1, 55, -1, -1, 926-1, 59, -1, -1, -1, 63, 64, -1, -1, -1, 927-1, -1, -1, -1, -1, -1, -1, -1, 32, -1, 928-1, 35, 36, 37, 38, -1, -1, 41, 42, 43, 929-1, 45, 46, 3, -1, 5, 6, 7, -1, -1, 930-1, 55, 56, -1, -1, -1, -1, -1, -1, 63, 93164, -1, -1, -1, -1, -1, -1, -1, -1, -1, 932-1, -1, 32, -1, -1, 35, 36, 37, 38, -1, 933-1, 41, 42, 43, -1, 45, 46, 3, -1, 5, 9346, 7, -1, -1, -1, 55, -1, -1, -1, 59, 935-1, -1, -1, 63, 64, -1, -1, -1, -1, -1, 936-1, -1, -1, -1, -1, -1, 32, -1, -1, 35, 93736, 37, 38, -1, -1, 41, 42, 43, -1, 45, 93846, 3, -1, 5, 6, 7, -1, -1, -1, 55, 93956, -1, -1, -1, -1, -1, -1, 63, 64, -1, 940-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 94132, -1, -1, 35, 36, 37, 38, -1, -1, 41, 94242, 43, -1, 45, 46, 3, -1, 5, 6, 7, 943-1, -1, -1, 55, 56, -1, -1, -1, -1, -1, 944-1, 63, 64, -1, -1, -1, -1, -1, -1, -1, 945-1, -1, -1, -1, 32, -1, -1, 35, 36, 37, 94638, -1, -1, 41, 42, 43, -1, 45, 46, 3, 947-1, 5, 6, 7, -1, -1, -1, 55, 56, -1, 948-1, -1, -1, -1, -1, 63, 64, -1, -1, -1, 949-1, -1, -1, -1, -1, -1, -1, -1, 32, -1, 950-1, 35, 36, 37, 38, -1, -1, 41, 42, 43, 951-1, 45, 46, -1, -1, 44, 45, 46, 47, 48, 95249, 55, 51, 52, 53, 54, 55, 56, 57, 63, 95364, -1, -1, 62, -1, -1, 65, 66, 67, -1, 954-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 955-1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 95689, 90, -1, -1, -1, -1, -1, 96, 97, 44, 95745, 46, 47, 48, 49, -1, 51, 52, 53, 54, 95855, -1, 57, -1, 59, -1, -1, 62, -1, -1, 95965, 66, 67, -1, -1, -1, 71, 72, -1, -1, 960-1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 96185, 86, 87, 88, 89, 90, -1, -1, -1, -1, 962-1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 96351, 52, 53, 54, 55, -1, -1, -1, 59, -1, 964-1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 96571, 72, -1, -1, -1, -1, -1, -1, -1, -1, 966-1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 967-1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 96847, 48, 49, -1, 51, 52, 53, 54, 55, 56, 969-1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 97067, -1, -1, -1, 71, 72, -1, -1, -1, -1, 971-1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 97287, 88, 89, 90, -1, -1, -1, -1, -1, 96, 97397, 44, 45, 46, 47, 48, 49, -1, 51, 52, 97453, 54, 55, 56, -1, -1, -1, -1, -1, 62, 975-1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 976-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 977-1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 978-1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 97949, -1, 51, 52, 53, 54, 55, 56, -1, -1, 980-1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 981-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 982-1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 98389, 90, -1, -1, -1, -1, -1, 96, 97, 44, 98445, 46, 47, 48, 49, -1, 51, 52, 53, 54, 98555, 56, -1, -1, -1, -1, -1, 62, -1, -1, 98665, 66, 67, -1, -1, -1, 71, 72, -1, -1, 987-1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 98885, 86, 87, 88, 89, 90, -1, -1, -1, -1, 989-1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 99051, 52, 53, 54, 55, -1, -1, -1, 59, -1, 991-1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 99271, 72, -1, -1, -1, -1, -1, -1, -1, -1, 993-1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 994-1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 99547, 48, 49, -1, 51, 52, 53, 54, 55, 56, 996-1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 99767, -1, -1, -1, 71, 72, -1, -1, -1, -1, 998-1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 99987, 88, 89, 90, -1, -1, -1, -1, -1, 96, 100097, 44, 45, 46, 47, 48, 49, -1, 51, 52, 100153, 54, 55, 56, -1, -1, -1, -1, -1, 62, 1002-1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1003-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1004-1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1005-1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 100649, -1, 51, 52, 53, 54, 55, -1, -1, 58, 1007-1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1008-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1009-1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 101089, 90, -1, -1, -1, -1, -1, 96, 97, 44, 101145, 46, 47, 48, 49, -1, 51, 52, 53, 54, 101255, -1, -1, -1, 59, -1, -1, 62, -1, -1, 101365, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1014-1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 101585, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1016-1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 101751, 52, 53, 54, 55, -1, -1, 58, -1, -1, 1018-1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 101971, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1020-1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1021-1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 102247, 48, 49, -1, 51, 52, 53, 54, 55, 56, 1023-1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 102467, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1025-1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 102687, 88, 89, 90, -1, -1, -1, -1, -1, 96, 102797, 44, 45, 46, 47, 48, 49, -1, 51, 52, 102853, 54, 55, 56, -1, -1, -1, -1, -1, 62, 1029-1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1030-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1031-1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1032-1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 103349, -1, 51, 52, 53, 54, 55, -1, -1, -1, 103459, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1035-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1036-1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 103789, 90, -1, -1, -1, -1, -1, 96, 97, 44, 103845, 46, 47, 48, 49, -1, 51, 52, 53, 54, 103955, 56, -1, -1, -1, -1, -1, 62, -1, -1, 104065, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1041-1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 104285, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1043-1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 104451, 52, 53, 54, 55, 56, -1, -1, -1, -1, 1045-1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 104671, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1047-1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1048-1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 104947, 48, 49, -1, 51, 52, 53, 54, 55, -1, 1050-1, -1, 59, -1, -1, 62, -1, -1, 65, 66, 105167, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1052-1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 105387, 88, 89, 90, -1, -1, -1, -1, -1, 96, 105497, 44, 45, 46, 47, 48, 49, -1, 51, 52, 105553, 54, 55, 56, -1, -1, -1, -1, -1, 62, 1056-1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1057-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1058-1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1059-1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 106049, -1, 51, 52, 53, 54, 55, 56, -1, -1, 1061-1, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1062-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1063-1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 106489, 90, -1, -1, -1, -1, -1, 96, 97, 44, 106545, 46, 47, 48, 49, -1, 51, 52, 53, 54, 106655, 56, -1, -1, -1, -1, -1, 62, -1, -1, 106765, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1068-1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 106985, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1070-1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 107151, 52, 53, 54, 55, -1, -1, -1, 59, -1, 1072-1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 107371, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1074-1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1075-1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 107647, 48, 49, -1, 51, 52, 53, 54, 55, -1, 1077-1, -1, 59, -1, -1, 62, -1, -1, 65, 66, 107867, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1079-1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 108087, 88, 89, 90, -1, -1, -1, -1, -1, 96, 108197, 44, 45, 46, 47, 48, 49, -1, 51, 52, 108253, 54, 55, -1, -1, -1, 59, -1, -1, 62, 1083-1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1084-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1085-1, 84, 85, 86, 87, 88, 89, 90, -1, -1, 1086-1, -1, -1, 96, 97, 44, 45, 46, 47, 48, 108749, -1, 51, 52, 53, 54, 55, -1, -1, -1, 108859, -1, -1, 62, -1, -1, 65, 66, 67, -1, 1089-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1090-1, -1, -1, -1, -1, 84, 85, 86, 87, 88, 109189, 90, -1, -1, -1, -1, -1, 96, 97, 44, 109245, 46, 47, 48, 49, -1, 51, 52, 53, 54, 109355, -1, -1, -1, 59, -1, -1, 62, -1, -1, 109465, 66, 67, -1, -1, -1, 71, 72, -1, -1, 1095-1, -1, -1, -1, -1, -1, -1, -1, -1, 84, 109685, 86, 87, 88, 89, 90, -1, -1, -1, -1, 1097-1, 96, 97, 44, 45, 46, 47, 48, 49, -1, 109851, 52, 53, 54, 55, -1, -1, -1, -1, -1, 1099-1, 62, -1, -1, 65, 66, 67, -1, -1, -1, 110071, 72, -1, -1, -1, -1, -1, -1, -1, -1, 1101-1, -1, -1, 84, 85, 86, 87, 88, 89, 90, 1102-1, -1, -1, -1, -1, 96, 97, 44, 45, 46, 110347, 48, 49, -1, 51, 52, 53, 54, 55, -1, 1104-1, -1, -1, -1, -1, 62, -1, -1, 65, 66, 110567, -1, -1, -1, 71, 72, -1, -1, -1, -1, 1106-1, -1, -1, -1, -1, -1, -1, 84, 85, 86, 110787, 88, 89, 90, 44, 45, 46, 47, 48, 49, 110897, 51, 52, 53, 54, 55, -1, -1, -1, -1, 1109-1, -1, 62, -1, -1, 65, 66, 67, -1, -1, 1110-1, 71, 72, -1, -1, -1, -1, -1, -1, -1, 1111-1, -1, -1, -1, 84, 85, 86, 87, 88, -1, 111290, 44, 45, 46, 47, 48, 49, 97, 51, 52, 111353, 54, 55, -1, -1, -1, -1, -1, -1, 62, 1114-1, -1, 65, 66, 67, -1, -1, -1, 71, 72, 1115-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1116-1, 84, 85, 86, 87, -1, -1, 90, 44, 45, 111746, 47, 48, 49, 97, 51, -1, 53, 54, 55, 1118-1, -1, -1, -1, -1, -1, 62, -1, -1, 65, 111966, 67, -1, -1, -1, 71, 72, -1, -1, -1, 1120-1, -1, -1, -1, -1, -1, -1, -1, 84, 85, 112186, 87, -1, -1, 90, 44, 45, 46, 47, 48, 112249, 97, 51, -1, 53, 54, 55, -1, -1, -1, 1123-1, -1, -1, -1, -1, -1, 65, 66, 67, -1, 1124-1, -1, 71, 72, -1, -1, -1, -1, -1, -1, 1125-1, -1, -1, -1, -1, 84, 85, 86, 87, -1, 1126-1, 90, 44, 45, 46, 47, 48, 49, 97, 51, 1127-1, -1, 54, 55, -1, -1, -1, -1, -1, -1, 1128-1, -1, -1, 65, 66, 67, -1, -1, -1, 71, 112972, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1130-1, -1, 84, 85, 86, 87, -1, -1, 90, 44, 113145, 46, 47, 48, 49, 97, 51, -1, -1, 54, 113255, -1, -1, -1, -1, -1, -1, -1, -1, -1, 113365, 66, 67, -1, -1, -1, 71, 72, 44, 45, 113446, 47, -1, -1, -1, 51, -1, -1, 54, 55, 113550, 86, 87, -1, -1, 90, -1, -1, -1, 65, 113666, 67, 97, -1, -1, 71, 72, -1, 68, 69, 113750, -1, -1, 73, 74, 75, 76, 77, 78, 79, 113880, 81, 82, -1, 90, -1, -1, -1, 68, 69, 1139-1, 97, -1, 73, 74, 75, 76, 77, 78, 79, 114080, 81, 82 1141}; 1142/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ 1143#line 3 "bison.simple" 1144 1145/* Skeleton output parser for bison, 1146Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. 1147 1148This program is free software; you can redistribute it and/or modify 1149it under the terms of the GNU General Public License as published by 1150the Free Software Foundation; either version 2, or (at your option) 1151any later version. 1152 1153This program is distributed in the hope that it will be useful, 1154but WITHOUT ANY WARRANTY; without even the implied warranty of 1155MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1156GNU General Public License for more details. 1157 1158You should have received a copy of the GNU General Public License 1159along with this program; if not, write to the Free Software 1160Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ 1161 1162/* As a special exception, when this file is copied by Bison into a 1163Bison output file, you may use that output file without restriction. 1164This special exception was added by the Free Software Foundation 1165in version 1.24 of Bison. */ 1166 1167#ifndef alloca 1168#ifdef __GNUC__ 1169#define alloca __builtin_alloca 1170#else /* not GNU C. */ 1171#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) 1172#include <alloca.h> 1173#else /* not sparc */ 1174#if defined (MSDOS) && !defined (__TURBOC__) 1175#include <malloc.h> 1176#else /* not MSDOS, or __TURBOC__ */ 1177#if defined(_AIX) 1178#include <malloc.h> 1179#pragma alloca 1180#else /* not MSDOS, __TURBOC__, or _AIX */ 1181#ifdef __hpux 1182#ifdef __cplusplus 1183extern "C" { 1184 void *alloca(unsigned int); 1185}; 1186#else /* not __cplusplus */ 1187void *alloca(); 1188#endif /* not __cplusplus */ 1189#endif /* __hpux */ 1190#endif /* not _AIX */ 1191#endif /* not MSDOS, or __TURBOC__ */ 1192#endif /* not sparc. */ 1193#endif /* not GNU C. */ 1194#endif /* alloca not defined. */ 1195 1196/* This is the parser code that is written into each bison parser 1197when the %semantic_parser declaration is not specified in the grammar. 1198It was written by Richard Stallman by simplifying the hairy parser 1199used when %semantic_parser is specified. */ 1200 1201/* Note: there must be only one dollar sign in this file. 1202It is replaced by the list of actions, each action 1203as one case of the switch. */ 1204 1205#define yyerrok (yyerrstatus = 0) 1206#define yyclearin (yychar = YYEMPTY) 1207#define YYEMPTY -2 1208#define YYEOF 0 1209#define YYACCEPT return(0) 1210#define YYABORT return(1) 1211#define YYERROR goto yyerrlab1 1212/* Like YYERROR except do call yyerror. 1213This remains here temporarily to ease the 1214transition to the new meaning of YYERROR, for GCC. 1215Once GCC version 2 has supplanted version 1, this can go. */ 1216#define YYFAIL goto yyerrlab 1217#define YYRECOVERING() (!!yyerrstatus) 1218#define YYBACKUP(token, value) \ 1219do \ 1220 if (yychar == YYEMPTY && yylen == 1) \ 1221 { yychar = (token), yylval = (value); \ 1222 yychar1 = YYTRANSLATE (yychar); \ 1223 YYPOPSTACK; \ 1224 goto yybackup; \ 1225 } \ 1226 else \ 1227 { yyerror ("syntax error: cannot back up"); YYERROR; } \ 1228while (0) 1229 1230#define YYTERROR 1 1231#define YYERRCODE 256 1232 1233#ifndef YYPURE 1234#define YYLEX yylex() 1235#endif 1236 1237#ifdef YYPURE 1238#ifdef YYLSP_NEEDED 1239#ifdef YYLEX_PARAM 1240#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) 1241#else 1242#define YYLEX yylex(&yylval, &yylloc) 1243#endif 1244#else /* not YYLSP_NEEDED */ 1245#ifdef YYLEX_PARAM 1246#define YYLEX yylex(&yylval, YYLEX_PARAM) 1247#else 1248#define YYLEX yylex(&yylval) 1249#endif 1250#endif /* not YYLSP_NEEDED */ 1251#endif 1252 1253/* If nonreentrant, generate the variables here */ 1254 1255#ifndef YYPURE 1256 1257int yychar; /* the lookahead symbol */ 1258YYSTYPE yylval; /* the semantic value of the */ 1259 /* lookahead symbol */ 1260 1261#ifdef YYLSP_NEEDED 1262YYLTYPE yylloc; /* location data for the lookahead */ 1263 /* symbol */ 1264#endif 1265 1266int yynerrs; /* number of parse errors so far */ 1267#endif /* not YYPURE */ 1268 1269#if YYDEBUG != 0 1270int yydebug; /* nonzero means print parse trace */ 1271 /* Since this is uninitialized, it does not stop multiple parsers 1272 from coexisting. */ 1273#endif 1274 1275 /* YYINITDEPTH indicates the initial size of the parser's stacks */ 1276 1277#ifndef YYINITDEPTH 1278#define YYINITDEPTH 200 1279#endif 1280 1281 /* YYMAXDEPTH is the maximum size the stacks can grow to 1282 (effective only if the built-in stack extension method is used). */ 1283 1284#if YYMAXDEPTH == 0 1285#undef YYMAXDEPTH 1286#endif 1287 1288#ifndef YYMAXDEPTH 1289#define YYMAXDEPTH 10000 1290#endif 1291 1292 /* Prevent warning if -Wstrict-prototypes. */ 1293#ifdef __GNUC__ 1294int yyparse(void); 1295#endif 1296 1297#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ 1298#define __yy_memcpy(FROM,TO,COUNT) __builtin_memcpy(TO,FROM,COUNT) 1299#else /* not GNU C or C++ */ 1300#ifndef __cplusplus 1301 1302/* This is the most reliable way to avoid incompatibilities 1303in available built-in functions on various systems. */ 1304static void 1305__yy_memcpy(from, to, count) 1306char *from; 1307char *to; 1308int count; 1309{ 1310 register char *f = from; 1311 register char *t = to; 1312 register int i = count; 1313 1314 while (i-- > 0) 1315 *t++ = *f++; 1316} 1317 1318#else /* __cplusplus */ 1319 1320/* This is the most reliable way to avoid incompatibilities 1321in available built-in functions on various systems. */ 1322static void 1323__yy_memcpy(char *from, char *to, int count) 1324{ 1325 register char *f = from; 1326 register char *t = to; 1327 register int i = count; 1328 1329 while (i-- > 0) 1330 *t++ = *f++; 1331} 1332 1333#endif 1334#endif 1335 1336#line 192 "bison.simple" 1337 1338/* The user can define YYPARSE_PARAM as the name of an argument to be passed 1339into yyparse. The argument should have type void *. 1340It should actually point to an object. 1341Grammar actions can access the variable by casting it 1342to the proper pointer type. */ 1343 1344#ifdef YYPARSE_PARAM 1345#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; 1346#else 1347#define YYPARSE_PARAM 1348#define YYPARSE_PARAM_DECL 1349#endif 1350 1351int 1352yyparse(YYPARSE_PARAM) 1353YYPARSE_PARAM_DECL 1354{ 1355 register int yystate; 1356 register int yyn; 1357 register short *yyssp; 1358 register YYSTYPE *yyvsp; 1359 int yyerrstatus; /* number of tokens to shift before error messages enabled */ 1360 int yychar1 = 0; /* lookahead token as an internal (translated) token number */ 1361 1362 short yyssa[YYINITDEPTH]; /* the state stack */ 1363 YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ 1364 1365 short *yyss = yyssa; /* refer to the stacks thru separate pointers */ 1366 YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ 1367 1368#ifdef YYLSP_NEEDED 1369 YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ 1370 YYLTYPE *yyls = yylsa; 1371 YYLTYPE *yylsp; 1372 1373#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) 1374#else 1375#define YYPOPSTACK (yyvsp--, yyssp--) 1376#endif 1377 1378 int yystacksize = YYINITDEPTH; 1379 1380#ifdef YYPURE 1381 int yychar; 1382 YYSTYPE yylval; 1383 int yynerrs; 1384#ifdef YYLSP_NEEDED 1385 YYLTYPE yylloc; 1386#endif 1387#endif 1388 1389 YYSTYPE yyval; /* the variable used to return */ 1390 /* semantic values from the action */ 1391 /* routines */ 1392 1393 int yylen; 1394 1395#if YYDEBUG != 0 1396 if (yydebug) 1397 fprintf(stderr, "Starting parse\n"); 1398#endif 1399 1400 yystate = 0; 1401 yyerrstatus = 0; 1402 yynerrs = 0; 1403 yychar = YYEMPTY; /* Cause a token to be read. */ 1404 1405 /* Initialize stack pointers. 1406 Waste one element of value and location stack 1407 so that they stay on the same level as the state stack. 1408 The wasted elements are never initialized. */ 1409 1410 yyssp = yyss - 1; 1411 yyvsp = yyvs; 1412#ifdef YYLSP_NEEDED 1413 yylsp = yyls; 1414#endif 1415 1416 /* Push a new state, which is found in yystate . */ 1417 /* In all cases, when you get here, the value and location stacks 1418 have just been pushed. so pushing a state here evens the stacks. */ 1419yynewstate: 1420 1421 *++yyssp = yystate; 1422 1423 if (yyssp >= yyss + yystacksize - 1) 1424 { 1425 /* Give user a chance to reallocate the stack */ 1426 /* Use copies of these so that the &'s don't force the real ones into memory. */ 1427 YYSTYPE *yyvs1 = yyvs; 1428 short *yyss1 = yyss; 1429#ifdef YYLSP_NEEDED 1430 YYLTYPE *yyls1 = yyls; 1431#endif 1432 1433 /* Get the current used size of the three stacks, in elements. */ 1434 int size = yyssp - yyss + 1; 1435 1436#ifdef yyoverflow 1437 /* Each stack pointer address is followed by the size of 1438 the data in use in that stack, in bytes. */ 1439#ifdef YYLSP_NEEDED 1440 /* This used to be a conditional around just the two extra args, 1441 but that might be undefined if yyoverflow is a macro. */ 1442 yyoverflow("parser stack overflow", 1443 &yyss1, size * sizeof(*yyssp), 1444 &yyvs1, size * sizeof(*yyvsp), 1445 &yyls1, size * sizeof(*yylsp), 1446 &yystacksize); 1447#else 1448 yyoverflow("parser stack overflow", 1449 &yyss1, size * sizeof(*yyssp), 1450 &yyvs1, size * sizeof(*yyvsp), 1451 &yystacksize); 1452#endif 1453 1454 yyss = yyss1; yyvs = yyvs1; 1455#ifdef YYLSP_NEEDED 1456 yyls = yyls1; 1457#endif 1458#else /* no yyoverflow */ 1459 /* Extend the stack our own way. */ 1460 if (yystacksize >= YYMAXDEPTH) 1461 { 1462 yyerror("parser stack overflow"); 1463 return 2; 1464 } 1465 yystacksize *= 2; 1466 if (yystacksize > YYMAXDEPTH) 1467 yystacksize = YYMAXDEPTH; 1468 yyss = (short *)alloca(yystacksize * sizeof(*yyssp)); 1469 __yy_memcpy((char *)yyss1, (char *)yyss, size * sizeof(*yyssp)); 1470 yyvs = (YYSTYPE *)alloca(yystacksize * sizeof(*yyvsp)); 1471 __yy_memcpy((char *)yyvs1, (char *)yyvs, size * sizeof(*yyvsp)); 1472#ifdef YYLSP_NEEDED 1473 yyls = (YYLTYPE *)alloca(yystacksize * sizeof(*yylsp)); 1474 __yy_memcpy((char *)yyls1, (char *)yyls, size * sizeof(*yylsp)); 1475#endif 1476#endif /* no yyoverflow */ 1477 1478 yyssp = yyss + size - 1; 1479 yyvsp = yyvs + size - 1; 1480#ifdef YYLSP_NEEDED 1481 yylsp = yyls + size - 1; 1482#endif 1483 1484#if YYDEBUG != 0 1485 if (yydebug) 1486 fprintf(stderr, "Stack size increased to %d\n", yystacksize); 1487#endif 1488 1489 if (yyssp >= yyss + yystacksize - 1) 1490 YYABORT; 1491 } 1492 1493#if YYDEBUG != 0 1494 if (yydebug) 1495 fprintf(stderr, "Entering state %d\n", yystate); 1496#endif 1497 1498 goto yybackup; 1499yybackup: 1500 1501 /* Do appropriate processing given the current state. */ 1502 /* Read a lookahead token if we need one and don't already have one. */ 1503 /* yyresume: */ 1504 1505 /* First try to decide what to do without reference to lookahead token. */ 1506 1507 yyn = yypact[yystate]; 1508 if (yyn == YYFLAG) 1509 goto yydefault; 1510 1511 /* Not known => get a lookahead token if don't already have one. */ 1512 1513 /* yychar is either YYEMPTY or YYEOF 1514 or a valid token in external form. */ 1515 1516 if (yychar == YYEMPTY) 1517 { 1518#if YYDEBUG != 0 1519 if (yydebug) 1520 fprintf(stderr, "Reading a token: "); 1521#endif 1522 yychar = YYLEX; 1523 } 1524 1525 /* Convert token to internal form (in yychar1) for indexing tables with */ 1526 1527 if (yychar <= 0) /* This means end of input. */ 1528 { 1529 yychar1 = 0; 1530 yychar = YYEOF; /* Don't call YYLEX any more */ 1531 1532#if YYDEBUG != 0 1533 if (yydebug) 1534 fprintf(stderr, "Now at end of input.\n"); 1535#endif 1536 } 1537 else 1538 { 1539 yychar1 = YYTRANSLATE(yychar); 1540 1541#if YYDEBUG != 0 1542 if (yydebug) 1543 { 1544 fprintf(stderr, "Next token is %d (%s", yychar, yytname[yychar1]); 1545 /* Give the individual parser a way to print the precise meaning 1546 of a token, for further debugging info. */ 1547#ifdef YYPRINT 1548 YYPRINT(stderr, yychar, yylval); 1549#endif 1550 fprintf(stderr, ")\n"); 1551 } 1552#endif 1553 } 1554 1555 yyn += yychar1; 1556 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) 1557 goto yydefault; 1558 1559 yyn = yytable[yyn]; 1560 1561 /* yyn is what to do for this token type in this state. 1562 Negative => reduce, -yyn is rule number. 1563 Positive => shift, yyn is new state. 1564 New state is final state => don't bother to shift, 1565 just return success. 1566 0, or most negative number => error. */ 1567 1568 if (yyn < 0) 1569 { 1570 if (yyn == YYFLAG) 1571 goto yyerrlab; 1572 yyn = -yyn; 1573 goto yyreduce; 1574 } 1575 else if (yyn == 0) 1576 goto yyerrlab; 1577 1578 if (yyn == YYFINAL) 1579 YYACCEPT; 1580 1581 /* Shift the lookahead token. */ 1582 1583#if YYDEBUG != 0 1584 if (yydebug) 1585 fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); 1586#endif 1587 1588 /* Discard the token being shifted unless it is eof. */ 1589 if (yychar != YYEOF) 1590 yychar = YYEMPTY; 1591 1592 *++yyvsp = yylval; 1593#ifdef YYLSP_NEEDED 1594 *++yylsp = yylloc; 1595#endif 1596 1597 /* count tokens shifted since error; after three, turn off error status. */ 1598 if (yyerrstatus) yyerrstatus--; 1599 1600 yystate = yyn; 1601 goto yynewstate; 1602 1603 /* Do the default action for the current state. */ 1604yydefault: 1605 1606 yyn = yydefact[yystate]; 1607 if (yyn == 0) 1608 goto yyerrlab; 1609 1610 /* Do a reduction. yyn is the number of a rule to reduce with. */ 1611yyreduce: 1612 yylen = yyr2[yyn]; 1613 if (yylen > 0) 1614 yyval = yyvsp[1 - yylen]; /* implement default value of the action */ 1615 1616#if YYDEBUG != 0 1617 if (yydebug) 1618 { 1619 int i; 1620 1621 fprintf(stderr, "Reducing via rule %d (line %d), ", 1622 yyn, yyrline[yyn]); 1623 1624 /* Print the symbols being reduced, and their result. */ 1625 for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) 1626 fprintf(stderr, "%s ", yytname[yyrhs[i]]); 1627 fprintf(stderr, " -> %s\n", yytname[yyr1[yyn]]); 1628 } 1629#endif 1630 1631 1632 switch (yyn) { 1633 1634 case 1: 1635#line 162 "cmdgram.y" 1636 {; 1637 break; } 1638 case 2: 1639#line 167 "cmdgram.y" 1640 { yyval.stmt = nil; ; 1641 break; } 1642 case 3: 1643#line 169 "cmdgram.y" 1644 { if (!gStatementList) { gStatementList = yyvsp[0].stmt; } 1645 else { gStatementList->append(yyvsp[0].stmt); }; 1646 break; } 1647 case 4: 1648#line 174 "cmdgram.y" 1649 { yyval.stmt = yyvsp[0].stmt; ; 1650 break; } 1651 case 5: 1652#line 176 "cmdgram.y" 1653 { yyval.stmt = yyvsp[0].stmt; ; 1654 break; } 1655 case 6: 1656#line 178 "cmdgram.y" 1657 { yyval.stmt = yyvsp[0].stmt; ; 1658 break; } 1659 case 7: 1660#line 183 "cmdgram.y" 1661 { yyval.stmt = yyvsp[-2].stmt; for (StmtNode *walk = (yyvsp[-2].stmt); walk; walk = walk->getNext()) walk->setPackage(yyvsp[-4].s.value); ; 1662 break; } 1663 case 8: 1664#line 188 "cmdgram.y" 1665 { yyval.stmt = yyvsp[0].stmt; ; 1666 break; } 1667 case 9: 1668#line 190 "cmdgram.y" 1669 { yyval.stmt = yyvsp[-1].stmt; (yyvsp[-1].stmt)->append(yyvsp[0].stmt); ; 1670 break; } 1671 case 10: 1672#line 195 "cmdgram.y" 1673 { yyval.stmt = nil; ; 1674 break; } 1675 case 11: 1676#line 197 "cmdgram.y" 1677 { if (!yyvsp[-1].stmt) { yyval.stmt = yyvsp[0].stmt; } 1678 else { (yyvsp[-1].stmt)->append(yyvsp[0].stmt); yyval.stmt = yyvsp[-1].stmt; }; 1679 break; } 1680 case 18: 1681#line 208 "cmdgram.y" 1682 { yyval.stmt = BreakStmtNode::alloc(yyvsp[-1].i.lineNumber); ; 1683 break; } 1684 case 19: 1685#line 210 "cmdgram.y" 1686 { yyval.stmt = ContinueStmtNode::alloc(yyvsp[-1].i.lineNumber); ; 1687 break; } 1688 case 20: 1689#line 212 "cmdgram.y" 1690 { yyval.stmt = ReturnStmtNode::alloc(yyvsp[-1].i.lineNumber, NULL); ; 1691 break; } 1692 case 21: 1693#line 214 "cmdgram.y" 1694 { yyval.stmt = ReturnStmtNode::alloc(yyvsp[-2].i.lineNumber, yyvsp[-1].expr); ; 1695 break; } 1696 case 22: 1697#line 216 "cmdgram.y" 1698 { yyval.stmt = yyvsp[-1].stmt; ; 1699 break; } 1700 case 23: 1701#line 218 "cmdgram.y" 1702 { yyval.stmt = TTagSetStmtNode::alloc(yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr, NULL); ; 1703 break; } 1704 case 24: 1705#line 220 "cmdgram.y" 1706 { yyval.stmt = TTagSetStmtNode::alloc(yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[-1].expr); ; 1707 break; } 1708 case 25: 1709#line 222 "cmdgram.y" 1710 { yyval.stmt = StrConstNode::alloc(yyvsp[0].str.lineNumber, yyvsp[0].str.value, false, true); ; 1711 break; } 1712 case 26: 1713#line 227 "cmdgram.y" 1714 { yyval.stmt = FunctionDeclStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-6].s.value, NULL, yyvsp[-4].var, yyvsp[-1].stmt); ; 1715 break; } 1716 case 27: 1717#line 229 "cmdgram.y" 1718 { yyval.stmt = FunctionDeclStmtNode::alloc(yyvsp[-9].i.lineNumber, yyvsp[-6].s.value, yyvsp[-8].s.value, yyvsp[-4].var, yyvsp[-1].stmt); ; 1719 break; } 1720 case 28: 1721#line 234 "cmdgram.y" 1722 { yyval.var = NULL; ; 1723 break; } 1724 case 29: 1725#line 236 "cmdgram.y" 1726 { yyval.var = yyvsp[0].var; ; 1727 break; } 1728 case 30: 1729#line 241 "cmdgram.y" 1730 { yyval.var = VarNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL); ; 1731 break; } 1732 case 31: 1733#line 243 "cmdgram.y" 1734 { yyval.var = yyvsp[-2].var; ((StmtNode*)(yyvsp[-2].var))->append((StmtNode*)VarNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL)); ; 1735 break; } 1736 case 32: 1737#line 248 "cmdgram.y" 1738 { 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); ; 1739 break; } 1740 case 33: 1741#line 253 "cmdgram.y" 1742 { 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); ; 1743 break; } 1744 case 34: 1745#line 255 "cmdgram.y" 1746 { 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); ; 1747 break; } 1748 case 35: 1749#line 257 "cmdgram.y" 1750 { 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); ; 1751 break; } 1752 case 36: 1753#line 259 "cmdgram.y" 1754 { 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); ; 1755 break; } 1756 case 37: 1757#line 261 "cmdgram.y" 1758 { 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); ; 1759 break; } 1760 case 38: 1761#line 263 "cmdgram.y" 1762 { 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); ; 1763 break; } 1764 case 39: 1765#line 268 "cmdgram.y" 1766 { yyval.s.value = NULL; ; 1767 break; } 1768 case 40: 1769#line 270 "cmdgram.y" 1770 { yyval.s = yyvsp[0].s; ; 1771 break; } 1772 case 41: 1773#line 275 "cmdgram.y" 1774 { yyval.expr = StrConstNode::alloc(CodeBlock::smCurrentParser->getCurrentLine(), "", false); ; 1775 break; } 1776 case 42: 1777#line 277 "cmdgram.y" 1778 { yyval.expr = yyvsp[0].expr; ; 1779 break; } 1780 case 43: 1781#line 282 "cmdgram.y" 1782 { yyval.expr = NULL; ; 1783 break; } 1784 case 44: 1785#line 284 "cmdgram.y" 1786 { yyval.expr = yyvsp[0].expr; ; 1787 break; } 1788 case 45: 1789#line 289 "cmdgram.y" 1790 { yyval.odcl.slots = NULL; yyval.odcl.decls = NULL; ; 1791 break; } 1792 case 46: 1793#line 291 "cmdgram.y" 1794 { yyval.odcl.slots = yyvsp[0].slist; yyval.odcl.decls = NULL; ; 1795 break; } 1796 case 47: 1797#line 293 "cmdgram.y" 1798 { yyval.odcl.slots = NULL; yyval.odcl.decls = yyvsp[0].od; ; 1799 break; } 1800 case 48: 1801#line 295 "cmdgram.y" 1802 { yyval.odcl.slots = yyvsp[-1].slist; yyval.odcl.decls = yyvsp[0].od; ; 1803 break; } 1804 case 49: 1805#line 300 "cmdgram.y" 1806 { yyval.od = yyvsp[-1].od; ; 1807 break; } 1808 case 50: 1809#line 302 "cmdgram.y" 1810 { yyvsp[-2].od->append(yyvsp[-1].od); yyval.od = yyvsp[-2].od; ; 1811 break; } 1812 case 51: 1813#line 307 "cmdgram.y" 1814 { yyval.stmt = yyvsp[-1].stmt; ; 1815 break; } 1816 case 52: 1817#line 309 "cmdgram.y" 1818 { yyval.stmt = yyvsp[0].stmt; ; 1819 break; } 1820 case 53: 1821#line 314 "cmdgram.y" 1822 { yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, false); ; 1823 break; } 1824 case 54: 1825#line 316 "cmdgram.y" 1826 { yyval.stmt = yyvsp[-1].ifnode; yyvsp[-1].ifnode->propagateSwitchExpr(yyvsp[-4].expr, true); ; 1827 break; } 1828 case 55: 1829#line 321 "cmdgram.y" 1830 { yyval.ifnode = IfStmtNode::alloc(yyvsp[-3].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; 1831 break; } 1832 case 56: 1833#line 323 "cmdgram.y" 1834 { yyval.ifnode = IfStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].stmt, yyvsp[0].stmt, false); ; 1835 break; } 1836 case 57: 1837#line 325 "cmdgram.y" 1838 { yyval.ifnode = IfStmtNode::alloc(yyvsp[-4].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].stmt, yyvsp[0].ifnode, true); ; 1839 break; } 1840 case 58: 1841#line 330 "cmdgram.y" 1842 { yyval.expr = yyvsp[0].expr;; 1843 break; } 1844 case 59: 1845#line 332 "cmdgram.y" 1846 { (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ; 1847 break; } 1848 case 60: 1849#line 337 "cmdgram.y" 1850 { yyval.stmt = IfStmtNode::alloc(yyvsp[-4].i.lineNumber, yyvsp[-2].expr, yyvsp[0].stmt, NULL, false); ; 1851 break; } 1852 case 61: 1853#line 339 "cmdgram.y" 1854 { yyval.stmt = IfStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, yyvsp[-2].stmt, yyvsp[0].stmt, false); ; 1855 break; } 1856 case 62: 1857#line 344 "cmdgram.y" 1858 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-4].i.lineNumber, nil, yyvsp[-2].expr, nil, yyvsp[0].stmt, false); ; 1859 break; } 1860 case 63: 1861#line 346 "cmdgram.y" 1862 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-3].i.lineNumber, nil, yyvsp[-1].expr, nil, yyvsp[-4].stmt, true); ; 1863 break; } 1864 case 64: 1865#line 351 "cmdgram.y" 1866 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-8].i.lineNumber, yyvsp[-6].expr, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1867 break; } 1868 case 65: 1869#line 353 "cmdgram.y" 1870 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; 1871 break; } 1872 case 66: 1873#line 355 "cmdgram.y" 1874 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, yyvsp[-5].expr, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1875 break; } 1876 case 67: 1877#line 357 "cmdgram.y" 1878 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].expr, NULL, NULL, yyvsp[0].stmt, false); ; 1879 break; } 1880 case 68: 1881#line 359 "cmdgram.y" 1882 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1883 break; } 1884 case 69: 1885#line 361 "cmdgram.y" 1886 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, yyvsp[-3].expr, NULL, yyvsp[0].stmt, false); ; 1887 break; } 1888 case 70: 1889#line 363 "cmdgram.y" 1890 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-6].i.lineNumber, NULL, NULL, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1891 break; } 1892 case 71: 1893#line 365 "cmdgram.y" 1894 { yyval.stmt = LoopStmtNode::alloc(yyvsp[-5].i.lineNumber, NULL, NULL, NULL, yyvsp[0].stmt, false); ; 1895 break; } 1896 case 72: 1897#line 370 "cmdgram.y" 1898 { yyval.stmt = IterStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, false); ; 1899 break; } 1900 case 73: 1901#line 372 "cmdgram.y" 1902 { yyval.stmt = IterStmtNode::alloc(yyvsp[-6].i.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].stmt, true); ; 1903 break; } 1904 case 74: 1905#line 377 "cmdgram.y" 1906 { yyval.stmt = yyvsp[0].expr; ; 1907 break; } 1908 case 75: 1909#line 382 "cmdgram.y" 1910 { yyval.expr = yyvsp[0].expr; ; 1911 break; } 1912 case 76: 1913#line 384 "cmdgram.y" 1914 { yyval.expr = yyvsp[-1].expr; ; 1915 break; } 1916 case 77: 1917#line 386 "cmdgram.y" 1918 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1919 break; } 1920 case 78: 1921#line 388 "cmdgram.y" 1922 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1923 break; } 1924 case 79: 1925#line 390 "cmdgram.y" 1926 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1927 break; } 1928 case 80: 1929#line 392 "cmdgram.y" 1930 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1931 break; } 1932 case 81: 1933#line 394 "cmdgram.y" 1934 { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1935 break; } 1936 case 82: 1937#line 396 "cmdgram.y" 1938 { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1939 break; } 1940 case 83: 1941#line 398 "cmdgram.y" 1942 { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1943 break; } 1944 case 84: 1945#line 400 "cmdgram.y" 1946 { yyval.expr = FloatBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1947 break; } 1948 case 85: 1949#line 402 "cmdgram.y" 1950 { yyval.expr = FloatUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; 1951 break; } 1952 case 86: 1953#line 404 "cmdgram.y" 1954 { yyval.expr = TTagDerefNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[0].expr); ; 1955 break; } 1956 case 87: 1957#line 406 "cmdgram.y" 1958 { yyval.expr = TTagExprNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value); ; 1959 break; } 1960 case 88: 1961#line 408 "cmdgram.y" 1962 { yyval.expr = ConditionalExprNode::alloc(yyvsp[-4].expr->dbgLineNumber, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ; 1963 break; } 1964 case 89: 1965#line 410 "cmdgram.y" 1966 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1967 break; } 1968 case 90: 1969#line 412 "cmdgram.y" 1970 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1971 break; } 1972 case 91: 1973#line 414 "cmdgram.y" 1974 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1975 break; } 1976 case 92: 1977#line 416 "cmdgram.y" 1978 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1979 break; } 1980 case 93: 1981#line 418 "cmdgram.y" 1982 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1983 break; } 1984 case 94: 1985#line 420 "cmdgram.y" 1986 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1987 break; } 1988 case 95: 1989#line 422 "cmdgram.y" 1990 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1991 break; } 1992 case 96: 1993#line 424 "cmdgram.y" 1994 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1995 break; } 1996 case 97: 1997#line 426 "cmdgram.y" 1998 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 1999 break; } 2000 case 98: 2001#line 428 "cmdgram.y" 2002 { yyval.expr = IntBinaryExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-1].i.value, yyvsp[-2].expr, yyvsp[0].expr); ; 2003 break; } 2004 case 99: 2005#line 430 "cmdgram.y" 2006 { yyval.expr = StreqExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, true); ; 2007 break; } 2008 case 100: 2009#line 432 "cmdgram.y" 2010 { yyval.expr = StreqExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, false); ; 2011 break; } 2012 case 101: 2013#line 434 "cmdgram.y" 2014 { yyval.expr = StrcatExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].i.value); ; 2015 break; } 2016 case 102: 2017#line 436 "cmdgram.y" 2018 { yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; 2019 break; } 2020 case 103: 2021#line 438 "cmdgram.y" 2022 { yyval.expr = IntUnaryExprNode::alloc(yyvsp[-1].i.lineNumber, yyvsp[-1].i.value, yyvsp[0].expr); ; 2023 break; } 2024 case 104: 2025#line 440 "cmdgram.y" 2026 { yyval.expr = StrConstNode::alloc(yyvsp[0].str.lineNumber, yyvsp[0].str.value, true); ; 2027 break; } 2028 case 105: 2029#line 442 "cmdgram.y" 2030 { yyval.expr = FloatNode::alloc(yyvsp[0].f.lineNumber, yyvsp[0].f.value); ; 2031 break; } 2032 case 106: 2033#line 444 "cmdgram.y" 2034 { yyval.expr = IntNode::alloc(yyvsp[0].i.lineNumber, yyvsp[0].i.value); ; 2035 break; } 2036 case 107: 2037#line 446 "cmdgram.y" 2038 { yyval.expr = ConstantNode::alloc(yyvsp[0].i.lineNumber, StringTable->insert("break")); ; 2039 break; } 2040 case 108: 2041#line 448 "cmdgram.y" 2042 { yyval.expr = SlotAccessNode::alloc(yyvsp[0].slot.lineNumber, yyvsp[0].slot.object, yyvsp[0].slot.array, yyvsp[0].slot.slotName); ; 2043 break; } 2044 case 109: 2045#line 450 "cmdgram.y" 2046 { yyval.expr = InternalSlotAccessNode::alloc(yyvsp[0].intslot.lineNumber, yyvsp[0].intslot.object, yyvsp[0].intslot.slotExpr, yyvsp[0].intslot.recurse); ; 2047 break; } 2048 case 110: 2049#line 452 "cmdgram.y" 2050 { yyval.expr = ConstantNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value); ; 2051 break; } 2052 case 111: 2053#line 454 "cmdgram.y" 2054 { yyval.expr = StrConstNode::alloc(yyvsp[0].str.lineNumber, yyvsp[0].str.value, false); ; 2055 break; } 2056 case 112: 2057#line 456 "cmdgram.y" 2058 { yyval.expr = (ExprNode*)VarNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value, NULL); ; 2059 break; } 2060 case 113: 2061#line 458 "cmdgram.y" 2062 { yyval.expr = (ExprNode*)VarNode::alloc(yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, yyvsp[-1].expr); ; 2063 break; } 2064 case 114: 2065#line 460 "cmdgram.y" 2066 { 2067 const U32 bufLen = 64; 2068 UTF8 buffer[bufLen]; 2069 dSprintf(buffer, bufLen, "__anonymous_function%d", gAnonFunctionID++); 2070 StringTableEntry fName = StringTable->insert(buffer); 2071 StmtNode *fndef = FunctionDeclStmtNode::alloc(yyvsp[-6].i.lineNumber, fName, NULL, yyvsp[-4].var, yyvsp[-1].stmt); 2072 2073 if (!gAnonFunctionList) 2074 gAnonFunctionList = fndef; 2075 else 2076 gAnonFunctionList->append(fndef); 2077 2078 yyval.expr = StrConstNode::alloc(yyvsp[-6].i.lineNumber, (UTF8*)fName, false); 2079 ; 2080 break; } 2081 case 115: 2082#line 478 "cmdgram.y" 2083 { yyval.slot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.slot.object = yyvsp[-2].expr; yyval.slot.slotName = yyvsp[0].s.value; yyval.slot.array = NULL; ; 2084 break; } 2085 case 116: 2086#line 480 "cmdgram.y" 2087 { 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; ; 2088 break; } 2089 case 117: 2090#line 485 "cmdgram.y" 2091 { yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = false; ; 2092 break; } 2093 case 118: 2094#line 487 "cmdgram.y" 2095 { yyval.intslot.lineNumber = yyvsp[-2].expr->dbgLineNumber; yyval.intslot.object = yyvsp[-2].expr; yyval.intslot.slotExpr = yyvsp[0].expr; yyval.intslot.recurse = true; ; 2096 break; } 2097 case 119: 2098#line 492 "cmdgram.y" 2099 { yyval.expr = ConstantNode::alloc(yyvsp[0].s.lineNumber, yyvsp[0].s.value); ; 2100 break; } 2101 case 120: 2102#line 494 "cmdgram.y" 2103 { yyval.expr = yyvsp[-1].expr; ; 2104 break; } 2105 case 121: 2106#line 499 "cmdgram.y" 2107 { yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = opPLUSPLUS; yyval.asn.expr = FloatNode::alloc(yyvsp[0].i.lineNumber, 1); ; 2108 break; } 2109 case 122: 2110#line 501 "cmdgram.y" 2111 { yyval.asn.lineNumber = yyvsp[0].i.lineNumber; yyval.asn.token = opMINUSMINUS; yyval.asn.expr = FloatNode::alloc(yyvsp[0].i.lineNumber, 1); ; 2112 break; } 2113 case 123: 2114#line 503 "cmdgram.y" 2115 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '+'; yyval.asn.expr = yyvsp[0].expr; ; 2116 break; } 2117 case 124: 2118#line 505 "cmdgram.y" 2119 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '-'; yyval.asn.expr = yyvsp[0].expr; ; 2120 break; } 2121 case 125: 2122#line 507 "cmdgram.y" 2123 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '*'; yyval.asn.expr = yyvsp[0].expr; ; 2124 break; } 2125 case 126: 2126#line 509 "cmdgram.y" 2127 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '/'; yyval.asn.expr = yyvsp[0].expr; ; 2128 break; } 2129 case 127: 2130#line 511 "cmdgram.y" 2131 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '%'; yyval.asn.expr = yyvsp[0].expr; ; 2132 break; } 2133 case 128: 2134#line 513 "cmdgram.y" 2135 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '&'; yyval.asn.expr = yyvsp[0].expr; ; 2136 break; } 2137 case 129: 2138#line 515 "cmdgram.y" 2139 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '^'; yyval.asn.expr = yyvsp[0].expr; ; 2140 break; } 2141 case 130: 2142#line 517 "cmdgram.y" 2143 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = '|'; yyval.asn.expr = yyvsp[0].expr; ; 2144 break; } 2145 case 131: 2146#line 519 "cmdgram.y" 2147 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHL; yyval.asn.expr = yyvsp[0].expr; ; 2148 break; } 2149 case 132: 2150#line 521 "cmdgram.y" 2151 { yyval.asn.lineNumber = yyvsp[-1].i.lineNumber; yyval.asn.token = opSHR; yyval.asn.expr = yyvsp[0].expr; ; 2152 break; } 2153 case 133: 2154#line 526 "cmdgram.y" 2155 { yyval.expr = yyvsp[0].expr; ; 2156 break; } 2157 case 134: 2158#line 528 "cmdgram.y" 2159 { yyval.expr = yyvsp[0].expr; ; 2160 break; } 2161 case 135: 2162#line 530 "cmdgram.y" 2163 { yyval.expr = yyvsp[0].od; ; 2164 break; } 2165 case 136: 2166#line 532 "cmdgram.y" 2167 { yyval.expr = AssignExprNode::alloc(yyvsp[-2].s.lineNumber, yyvsp[-2].s.value, NULL, yyvsp[0].expr); ; 2168 break; } 2169 case 137: 2170#line 534 "cmdgram.y" 2171 { yyval.expr = AssignExprNode::alloc(yyvsp[-5].s.lineNumber, yyvsp[-5].s.value, yyvsp[-3].expr, yyvsp[0].expr); ; 2172 break; } 2173 case 138: 2174#line 536 "cmdgram.y" 2175 { yyval.expr = AssignOpExprNode::alloc(yyvsp[-1].s.lineNumber, yyvsp[-1].s.value, NULL, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; 2176 break; } 2177 case 139: 2178#line 538 "cmdgram.y" 2179 { yyval.expr = AssignOpExprNode::alloc(yyvsp[-4].s.lineNumber, yyvsp[-4].s.value, yyvsp[-2].expr, yyvsp[0].asn.expr, yyvsp[0].asn.token); ; 2180 break; } 2181 case 140: 2182#line 540 "cmdgram.y" 2183 { 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); ; 2184 break; } 2185 case 141: 2186#line 542 "cmdgram.y" 2187 { yyval.expr = SlotAssignNode::alloc(yyvsp[-2].slot.lineNumber, yyvsp[-2].slot.object, yyvsp[-2].slot.array, yyvsp[-2].slot.slotName, yyvsp[0].expr); ; 2188 break; } 2189 case 142: 2190#line 544 "cmdgram.y" 2191 { yyval.expr = SlotAssignNode::alloc(yyvsp[-4].slot.lineNumber, yyvsp[-4].slot.object, yyvsp[-4].slot.array, yyvsp[-4].slot.slotName, yyvsp[-1].expr); ; 2192 break; } 2193 case 143: 2194#line 549 "cmdgram.y" 2195 { yyval.expr = FuncCallExprNode::alloc(yyvsp[-3].s.lineNumber, yyvsp[-3].s.value, NULL, yyvsp[-1].expr, false); ; 2196 break; } 2197 case 144: 2198#line 551 "cmdgram.y" 2199 { yyval.expr = FuncCallExprNode::alloc(yyvsp[-5].s.lineNumber, yyvsp[-3].s.value, yyvsp[-5].s.value, yyvsp[-1].expr, false); ; 2200 break; } 2201 case 145: 2202#line 553 "cmdgram.y" 2203 { yyvsp[-5].expr->append(yyvsp[-1].expr); yyval.expr = FuncCallExprNode::alloc(yyvsp[-5].expr->dbgLineNumber, yyvsp[-3].s.value, NULL, yyvsp[-5].expr, true); ; 2204 break; } 2205 case 146: 2206#line 555 "cmdgram.y" 2207 { yyval.expr = FuncPointerCallExprNode::alloc(yyvsp[-3].expr->dbgLineNumber, yyvsp[-3].expr, yyvsp[-1].expr); ; 2208 break; } 2209 case 147: 2210#line 560 "cmdgram.y" 2211 { yyval.expr = AssertCallExprNode::alloc(yyvsp[-3].i.lineNumber, yyvsp[-1].expr, NULL); ; 2212 break; } 2213 case 148: 2214#line 562 "cmdgram.y" 2215 { yyval.expr = AssertCallExprNode::alloc(yyvsp[-5].i.lineNumber, yyvsp[-3].expr, yyvsp[-1].str.value); ; 2216 break; } 2217 case 149: 2218#line 567 "cmdgram.y" 2219 { yyval.expr = NULL; ; 2220 break; } 2221 case 150: 2222#line 569 "cmdgram.y" 2223 { yyval.expr = yyvsp[0].expr; ; 2224 break; } 2225 case 151: 2226#line 574 "cmdgram.y" 2227 { yyval.expr = yyvsp[0].expr; ; 2228 break; } 2229 case 152: 2230#line 576 "cmdgram.y" 2231 { (yyvsp[-2].expr)->append(yyvsp[0].expr); yyval.expr = yyvsp[-2].expr; ; 2232 break; } 2233 case 153: 2234#line 581 "cmdgram.y" 2235 { yyval.slist = NULL; ; 2236 break; } 2237 case 154: 2238#line 583 "cmdgram.y" 2239 { yyval.slist = yyvsp[0].slist; ; 2240 break; } 2241 case 155: 2242#line 588 "cmdgram.y" 2243 { yyval.slist = yyvsp[0].slist; ; 2244 break; } 2245 case 156: 2246#line 590 "cmdgram.y" 2247 { yyvsp[-1].slist->append(yyvsp[0].slist); yyval.slist = yyvsp[-1].slist; ; 2248 break; } 2249 case 157: 2250#line 595 "cmdgram.y" 2251 { yyval.slist = SlotAssignNode::alloc(yyvsp[-3].s.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr); ; 2252 break; } 2253 case 158: 2254#line 597 "cmdgram.y" 2255 { yyval.slist = SlotAssignNode::alloc(yyvsp[-4].i.lineNumber, NULL, NULL, yyvsp[-3].s.value, yyvsp[-1].expr, yyvsp[-4].i.value); ; 2256 break; } 2257 case 159: 2258#line 599 "cmdgram.y" 2259 { yyval.slist = SlotAssignNode::alloc(yyvsp[-3].i.lineNumber, NULL, NULL, StringTable->insert("datablock"), yyvsp[-1].expr); ; 2260 break; } 2261 case 160: 2262#line 601 "cmdgram.y" 2263 { yyval.slist = SlotAssignNode::alloc(yyvsp[-6].s.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr); ; 2264 break; } 2265 case 161: 2266#line 603 "cmdgram.y" 2267 { yyval.slist = SlotAssignNode::alloc(yyvsp[-7].i.lineNumber, NULL, yyvsp[-4].expr, yyvsp[-6].s.value, yyvsp[-1].expr, yyvsp[-7].i.value); ; 2268 break; } 2269 case 162: 2270#line 608 "cmdgram.y" 2271 { yyval.expr = yyvsp[0].expr; ; 2272 break; } 2273 case 163: 2274#line 610 "cmdgram.y" 2275 { yyval.expr = CommaCatExprNode::alloc(yyvsp[-2].expr->dbgLineNumber, yyvsp[-2].expr, yyvsp[0].expr); ; 2276 break; } 2277 } 2278 /* the action file gets copied in in place of this dollarsign */ 2279#line 487 "bison.simple" 2280 2281 yyvsp -= yylen; 2282 yyssp -= yylen; 2283#ifdef YYLSP_NEEDED 2284 yylsp -= yylen; 2285#endif 2286 2287#if YYDEBUG != 0 2288 if (yydebug) 2289 { 2290 short *ssp1 = yyss - 1; 2291 fprintf(stderr, "state stack now"); 2292 while (ssp1 != yyssp) 2293 fprintf(stderr, " %d", *++ssp1); 2294 fprintf(stderr, "\n"); 2295 } 2296#endif 2297 2298 *++yyvsp = yyval; 2299 2300#ifdef YYLSP_NEEDED 2301 yylsp++; 2302 if (yylen == 0) 2303 { 2304 yylsp->first_line = yylloc.first_line; 2305 yylsp->first_column = yylloc.first_column; 2306 yylsp->last_line = (yylsp - 1)->last_line; 2307 yylsp->last_column = (yylsp - 1)->last_column; 2308 yylsp->text = 0; 2309 } 2310 else 2311 { 2312 yylsp->last_line = (yylsp + yylen - 1)->last_line; 2313 yylsp->last_column = (yylsp + yylen - 1)->last_column; 2314 } 2315#endif 2316 2317 /* Now "shift" the result of the reduction. 2318 Determine what state that goes to, 2319 based on the state we popped back to 2320 and the rule number reduced by. */ 2321 2322 yyn = yyr1[yyn]; 2323 2324 yystate = yypgoto[yyn - YYNTBASE] + *yyssp; 2325 if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) 2326 yystate = yytable[yystate]; 2327 else 2328 yystate = yydefgoto[yyn - YYNTBASE]; 2329 2330 goto yynewstate; 2331 2332yyerrlab: /* here on detecting error */ 2333 2334 if (!yyerrstatus) 2335 /* If not already recovering from an error, report this error. */ 2336 { 2337 ++yynerrs; 2338 2339#ifdef YYERROR_VERBOSE 2340 yyn = yypact[yystate]; 2341 2342 if (yyn > YYFLAG && yyn < YYLAST) 2343 { 2344 int size = 0; 2345 char *msg; 2346 int x, count; 2347 2348 count = 0; 2349 /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ 2350 for (x = (yyn < 0 ? -yyn : 0); 2351 x < (sizeof(yytname) / sizeof(char *)); x++) 2352 if (yycheck[x + yyn] == x) 2353 size += strlen(yytname[x]) + 15, count++; 2354 msg = (char *)malloc(size + 15); 2355 if (msg != 0) 2356 { 2357 strcpy(msg, "parse error"); 2358 2359 if (count < 5) 2360 { 2361 count = 0; 2362 for (x = (yyn < 0 ? -yyn : 0); 2363 x < (sizeof(yytname) / sizeof(char *)); x++) 2364 if (yycheck[x + yyn] == x) 2365 { 2366 strcat(msg, count == 0 ? ", expecting `" : " or `"); 2367 strcat(msg, yytname[x]); 2368 strcat(msg, "'"); 2369 count++; 2370 } 2371 } 2372 yyerror(msg); 2373 free(msg); 2374 } 2375 else 2376 yyerror("parse error; also virtual memory exceeded"); 2377 } 2378 else 2379#endif /* YYERROR_VERBOSE */ 2380 yyerror("parse error"); 2381 } 2382 2383 goto yyerrlab1; 2384yyerrlab1: /* here on error raised explicitly by an action */ 2385 2386 if (yyerrstatus == 3) 2387 { 2388 /* if just tried and failed to reuse lookahead token after an error, discard it. */ 2389 2390 /* return failure if at end of input */ 2391 if (yychar == YYEOF) 2392 YYABORT; 2393 2394#if YYDEBUG != 0 2395 if (yydebug) 2396 fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); 2397#endif 2398 2399 yychar = YYEMPTY; 2400 } 2401 2402 /* Else will try to reuse lookahead token 2403 after shifting the error token. */ 2404 2405 yyerrstatus = 3; /* Each real token shifted decrements this */ 2406 2407 goto yyerrhandle; 2408 2409yyerrdefault: /* current state does not do anything special for the error token. */ 2410 2411#if 0 2412 /* This is wrong; only states that explicitly want error tokens 2413 should shift them. */ 2414 yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ 2415 if (yyn) goto yydefault; 2416#endif 2417 2418yyerrpop: /* pop the current state because it cannot handle the error token */ 2419 2420 if (yyssp == yyss) YYABORT; 2421 yyvsp--; 2422 yystate = *--yyssp; 2423#ifdef YYLSP_NEEDED 2424 yylsp--; 2425#endif 2426 2427#if YYDEBUG != 0 2428 if (yydebug) 2429 { 2430 short *ssp1 = yyss - 1; 2431 fprintf(stderr, "Error: state stack now"); 2432 while (ssp1 != yyssp) 2433 fprintf(stderr, " %d", *++ssp1); 2434 fprintf(stderr, "\n"); 2435 } 2436#endif 2437 2438yyerrhandle: 2439 2440 yyn = yypact[yystate]; 2441 if (yyn == YYFLAG) 2442 goto yyerrdefault; 2443 2444 yyn += YYTERROR; 2445 if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) 2446 goto yyerrdefault; 2447 2448 yyn = yytable[yyn]; 2449 if (yyn < 0) 2450 { 2451 if (yyn == YYFLAG) 2452 goto yyerrpop; 2453 yyn = -yyn; 2454 goto yyreduce; 2455 } 2456 else if (yyn == 0) 2457 goto yyerrpop; 2458 2459 if (yyn == YYFINAL) 2460 YYACCEPT; 2461 2462#if YYDEBUG != 0 2463 if (yydebug) 2464 fprintf(stderr, "Shifting error token, "); 2465#endif 2466 2467 *++yyvsp = yylval; 2468#ifdef YYLSP_NEEDED 2469 *++yylsp = yylloc; 2470#endif 2471 2472 yystate = yyn; 2473 goto yynewstate; 2474} 2475#line 612 "cmdgram.y" 2476 2477 2478