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),  = (value);			\
      yychar1 =  ();				\
      ;						\
      goto yybackup;						\
    }								\
  else								\
    {  ("syntax error: cannot back up"); YYERROR; }	\
 (0)
define
YYBISON() 1  /* Identify Bison output.  */
define
yychar() CMDchar
define
yyclearin() ( = )
define
yydebug() CMDdebug
define
YYDEBUG() 0
define
YYEMPTY() -2
define
YYEOF() 0
define
YYERRCODE() 256
define
yyerrok() (yyerrstatus = 0)
define
define
YYERROR() goto yyerrlab1
define
YYFAIL() goto yyerrlab
define
YYFINAL() 388
define
YYFLAG() -32768
define
define
YYLAST() 3042
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),  = (value);			\
      yychar1 =  ();				\
      ;						\
      goto yybackup;						\
    }								\
  else								\
    {  ("syntax error: cannot back up"); YYERROR; }	\
 (0)
YYBISON() 1  /* Identify Bison output.  */
yychar() CMDchar
yyclearin() ( = )
yydebug() CMDdebug
YYDEBUG() 0
YYEMPTY() -2
YYEOF() 0
YYERRCODE() 256
yyerrok() (yyerrstatus = 0)
yyerror() 
YYERROR() goto yyerrlab1
YYFAIL() goto yyerrlab
YYFINAL() 388
YYFLAG() -32768
YYINITDEPTH() 200
YYLAST() 3042
yylex() 
YYLEX() ()
YYLTYPE() 
yylval() 
YYMAXDEPTH() 10000
yynerrs() CMDnerrs
YYNTBASE() 100
yyparse() CMDparse
YYPARSE_PARAM() 
YYPARSE_PARAM_DECL() 
YYPOPSTACK() (yyvsp--, yyssp--)
YYRECOVERING() (!!yyerrstatus)
YYSSIZE() 350
YYTERROR() 1
YYTRANSLATE(x) ((unsigned)(x) <= 329 ? yytranslate[x] : 140)

Public Variables

int count 
register int i 
int serrors 
register char * t 
char * to 
int yychar 
const short yycheck []
const short yydefact []
const short yydefgoto []
YYSTYPE yylval 
int yynerrs 
const short yypact []
const short yypgoto []
const short yyr1 []
const short yyr2 []
const short yytable []
const char yytranslate []

Public Functions

__yy_memcpy(from , to , count )

CMDerror(char * format, ... )

CMDlex()

outtext(char * fmt, ... )

while(i-- , 0 )

yyparse(YYPARSE_PARAM )

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