cmdgram.cpp

Engine/source/console/cmdgram.cpp

More...

Classes:

class
class
union

Public Defines

define
define
define
CHRCONST() 289
define
define
DOCBLOCK() 295
define
FLTCONST() 298
define
IDENT() 293
define
define
INTCONST() 290
define
nil() 0
define
opAND() 321
define
opANDASN() 311
define
opCAT() 316
define
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
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
define
rwDECLARE() 260
define
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
define
rwGLOBAL() 265
define
rwIF() 266
define
rwIN() 278
define
define
rwNIL() 267
define
rwPACKAGE() 284
define
rwRETURN() 268
define
rwSWITCH() 280
define
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
define
YYERROR() goto yyerrlab1
define
YYFAIL() goto yyerrlab
define
YYFINAL() 391
define
YYFLAG() -32768
define
define
YYLAST() 3123
define
define
YYLEX() ()
define
define
define
YYMAXDEPTH() 10000
define
yynerrs() CMDnerrs
define
YYNTBASE() 100
define
yyparse() CMDparse
define
define
YYPOPSTACK() (yyvsp--, yyssp--)
define
YYRECOVERING() (!!yyerrstatus)
define
YYSSIZE() 350
define
define
YYTRANSLATE(x) ((unsigned)(x) <= 329 ? yytranslate[x] : 140)

Public Variables

int
register int
i 
int
register char *
t 
char *
int
const short
const short
const short
int
const short
yypact []
const short
const short
yyr1 []
const short
yyr2 []
const short

Public Functions

__yy_memcpy(from , to , count )
CMDerror(char * format, ... )
int
int
outtext(char * fmt, ... )
while(i-- , 0 )

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