Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

llgrammar.tab.c

Go to the documentation of this file.
00001 
00002 /*  A Bison parser, made from llgrammar.y
00003     by GNU Bison version 1.28  */
00004 
00005 #define YYBISON 1  /* Identify Bison output.  */
00006 
00007 #define yyparse ylparse
00008 #define yylex yllex
00009 #define yyerror ylerror
00010 #define yylval yllval
00011 #define yychar ylchar
00012 #define yydebug yldebug
00013 #define yynerrs ylnerrs
00014 #define simpleOp        257
00015 #define PREFIX_OP       258
00016 #define POSTFIX_OP      259
00017 #define LLT_MULOP       260
00018 #define LLT_SEMI        261
00019 #define LLT_VERTICALBAR 262
00020 #define ITERATION_OP    263
00021 #define LLT_LPAR        264
00022 #define LLT_LBRACKET    265
00023 #define selectSym       266
00024 #define LLT_IF_THEN_ELSE        267
00025 #define logicalOp       268
00026 #define eqSepSym        269
00027 #define equationSym     270
00028 #define commentSym      271
00029 #define LLT_WHITESPACE  272
00030 #define LLT_EOL 273
00031 #define LLT_TYPEDEF_NAME        274
00032 #define quantifierSym   275
00033 #define openSym 276
00034 #define closeSym        277
00035 #define sepSym  278
00036 #define simpleId        279
00037 #define mapSym  280
00038 #define markerSym       281
00039 #define preSym  282
00040 #define postSym 283
00041 #define anySym  284
00042 #define LLT_COLON       285
00043 #define LLT_COMMA       286
00044 #define LLT_EQUALS      287
00045 #define LLT_LBRACE      288
00046 #define LLT_RBRACE      289
00047 #define LLT_RBRACKET    290
00048 #define LLT_RPAR        291
00049 #define LLT_QUOTE       292
00050 #define eqOp    293
00051 #define LLT_CCHAR       294
00052 #define LLT_CFLOAT      295
00053 #define LLT_CINTEGER    296
00054 #define LLT_LCSTRING    297
00055 #define LLT_ALL 298
00056 #define LLT_ANYTHING    299
00057 #define LLT_BE  300
00058 #define LLT_BODY        301
00059 #define LLT_CLAIMS      302
00060 #define LLT_CHECKS      303
00061 #define LLT_CONSTANT    304
00062 #define LLT_ELSE        305
00063 #define LLT_ENSURES     306
00064 #define LLT_FOR 307
00065 #define LLT_FRESH       308
00066 #define LLT_IF  309
00067 #define LLT_IMMUTABLE   310
00068 #define LLT_IMPORTS     311
00069 #define LLT_CONSTRAINT  312
00070 #define LLT_ISSUB       313
00071 #define LLT_LET 314
00072 #define LLT_MODIFIES    315
00073 #define LLT_MUTABLE     316
00074 #define LLT_NOTHING     317
00075 #define LLT_INTERNAL    318
00076 #define LLT_FILESYS     319
00077 #define LLT_OBJ 320
00078 #define LLT_OUT 321
00079 #define LLT_SEF 322
00080 #define LLT_ONLY        323
00081 #define LLT_PARTIAL     324
00082 #define LLT_OWNED       325
00083 #define LLT_DEPENDENT   326
00084 #define LLT_KEEP        327
00085 #define LLT_KEPT        328
00086 #define LLT_TEMP        329
00087 #define LLT_SHARED      330
00088 #define LLT_UNIQUE      331
00089 #define LLT_UNUSED      332
00090 #define LLT_EXITS       333
00091 #define LLT_MAYEXIT     334
00092 #define LLT_NEVEREXIT   335
00093 #define LLT_TRUEEXIT    336
00094 #define LLT_FALSEEXIT   337
00095 #define LLT_UNDEF       338
00096 #define LLT_KILLED      339
00097 #define LLT_CHECKMOD    340
00098 #define LLT_CHECKED     341
00099 #define LLT_UNCHECKED   342
00100 #define LLT_CHECKEDSTRICT       343
00101 #define LLT_TRUENULL    344
00102 #define LLT_FALSENULL   345
00103 #define LLT_LNULL       346
00104 #define LLT_LNOTNULL    347
00105 #define LLT_RETURNED    348
00106 #define LLT_OBSERVER    349
00107 #define LLT_EXPOSED     350
00108 #define LLT_REFCOUNTED  351
00109 #define LLT_REFS        352
00110 #define LLT_RELNULL     353
00111 #define LLT_RELDEF      354
00112 #define LLT_KILLREF     355
00113 #define LLT_TEMPREF     356
00114 #define LLT_NEWREF      357
00115 #define LLT_PRIVATE     358
00116 #define LLT_REQUIRES    359
00117 #define LLT_RESULT      360
00118 #define LLT_SIZEOF      361
00119 #define LLT_SPEC        362
00120 #define LLT_TAGGEDUNION 363
00121 #define LLT_THEN        364
00122 #define LLT_TYPE        365
00123 #define LLT_TYPEDEF     366
00124 #define LLT_UNCHANGED   367
00125 #define LLT_USES        368
00126 #define LLT_CHAR        369
00127 #define LLT_CONST       370
00128 #define LLT_DOUBLE      371
00129 #define LLT_ENUM        372
00130 #define LLT_FLOAT       373
00131 #define LLT_INT 374
00132 #define LLT_ITER        375
00133 #define LLT_YIELD       376
00134 #define LLT_LONG        377
00135 #define LLT_SHORT       378
00136 #define LLT_SIGNED      379
00137 #define LLT_UNKNOWN     380
00138 #define LLT_STRUCT      381
00139 #define LLT_TELIPSIS    382
00140 #define LLT_UNION       383
00141 #define LLT_UNSIGNED    384
00142 #define LLT_VOID        385
00143 #define LLT_VOLATILE    386
00144 #define LLT_PRINTFLIKE  387
00145 #define LLT_SCANFLIKE   388
00146 #define LLT_MESSAGELIKE 389
00147 
00148 #line 36 "llgrammar.y"
00149 
00150 
00151 # include "lclintMacros.nf"
00152 # include "llbasic.h"
00153 # include "lclscan.h"
00154 # include "checking.h"
00155 # include "lslparse.h" 
00156 # include "lh.h"
00157 # include "usymtab_interface.h"
00158 
00159 /*@-noparams@*/
00160 static /*@unused@*/ void yyprint ();
00161 /*@=noparams@*/
00162 
00163 /*@-redecl@*/
00164 void ylerror (char *) /*@modifies *g_msgstream@*/ ;
00165 /*@=redecl@*/
00166 
00167 bool g_inTypeDef = FALSE;
00168 
00169 /*@constant int YYDEBUG;@*/
00170 # define YYDEBUG 1
00171 
00172 /*@notfunction@*/
00173 # define YYPRINT(file, type, value) yyprint (file, type, value)
00174 
00175 /*
00176 ** This is necessary, or else when the bison-generated code #include's malloc.h,
00177 ** there will be a parse error.
00178 **
00179 ** Unfortunately, it means the error checking on malloc, etc. is lost for allocations
00180 ** in bison-generated files under Win32.
00181 */
00182 
00183 # ifdef WIN32
00184 # undef malloc
00185 # undef calloc
00186 # undef realloc
00187 # endif
00188 
00189 
00190 #line 78 "llgrammar.y"
00191 typedef union 
00192 {
00193   ltoken ltok;  /* a leaf is also an ltoken */
00194   qual typequal;
00195   unsigned int count;
00196   /*@only@*/ ltokenList ltokenList;
00197   /*@only@*/ abstDeclaratorNode abstDecl; 
00198   /*@only@*/ declaratorNode declare;
00199   /*@only@*/ declaratorNodeList declarelist;
00200   /*@only@*/ typeExpr typeexpr;
00201   /*@only@*/ arrayQualNode array;
00202   /*@only@*/ quantifierNode quantifier;
00203   /*@only@*/ quantifierNodeList quantifiers;
00204   /*@only@*/ varNode var;
00205   /*@only@*/ varNodeList vars;
00206   /*@only@*/ storeRefNode storeref;
00207   /*@only@*/ storeRefNodeList storereflist;
00208   /*@only@*/ termNode term;
00209   /*@only@*/ termNodeList termlist;
00210   /*@only@*/ programNode program; 
00211   /*@only@*/ stmtNode stmt;
00212   /*@only@*/ claimNode claim;
00213   /*@only@*/ typeNode type;
00214   /*@only@*/ iterNode iter;
00215   /*@only@*/ fcnNode fcn;
00216   /*@only@*/ fcnNodeList fcns;
00217   /*@only@*/ letDeclNode letdecl;
00218   /*@only@*/ letDeclNodeList letdecls;
00219   /*@only@*/ lclPredicateNode lclpredicate;
00220   /*@only@*/ modifyNode modify;
00221   /*@only@*/ paramNode param;
00222   /*@only@*/ paramNodeList paramlist;
00223   /*@only@*/ declaratorInvNodeList declaratorinvs;      
00224   /*@only@*/ declaratorInvNode declaratorinv;   
00225   /*@only@*/ abstBodyNode abstbody;
00226   /*@only@*/ abstractNode abstract;
00227   /*@only@*/ exposedNode exposed;
00228   /*    taggedUnionNode taggedunion; */
00229   /*@only@*/ globalList globals;
00230   /*@only@*/ constDeclarationNode constdeclaration;
00231   /*@only@*/ varDeclarationNode vardeclaration;
00232   /*@only@*/ varDeclarationNodeList vardeclarationlist;
00233   /*@only@*/ initDeclNodeList initdecls;
00234   /*@only@*/ initDeclNode initdecl;
00235   /*@only@*/ stDeclNodeList structdecls;
00236   /*@only@*/ stDeclNode structdecl;
00237   /*@only@*/ strOrUnionNode structorunion;
00238   /*@only@*/ enumSpecNode enumspec; 
00239   /*@only@*/ lclTypeSpecNode lcltypespec;
00240   /*@only@*/ typeNameNode typname;
00241   /*@only@*/ opFormNode opform;
00242   /*@only@*/ sigNode signature;
00243   /*@only@*/ nameNode name;
00244   /*@only@*/ typeNameNodeList namelist;
00245   /*@only@*/ replaceNode replace;       
00246   /*@only@*/ replaceNodeList replacelist;
00247   /*@only@*/ renamingNode renaming;
00248   /*@only@*/ traitRefNode traitref;
00249   /*@only@*/ traitRefNodeList traitreflist;
00250   /*@only@*/ importNode import;
00251   /*@only@*/ importNodeList importlist;
00252   /*@only@*/ interfaceNode iface;
00253   /*@only@*/ interfaceNodeList interfacelist; 
00254   /*@only@*/ CTypesNode ctypes;
00255 } YYSTYPE;
00256 #ifndef YYDEBUG
00257 #define YYDEBUG 1
00258 #endif
00259 
00260 #include <stdio.h>
00261 
00262 #ifndef __cplusplus
00263 #ifndef __STDC__
00264 #define const
00265 #endif
00266 #endif
00267 
00268 
00269 
00270 #define YYFINAL         683
00271 #define YYFLAG          -32768
00272 #define YYNTBASE        136
00273 
00274 #define YYTRANSLATE(x) ((unsigned)(x) <= 389 ? yytranslate[x] : 290)
00275 
00276 static const short yytranslate[] = {     0,
00277      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00278      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00279      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00280      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00281      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00282      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00283      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00284      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00285      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00286      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00287      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00288      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00289      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00290      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00291      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00292      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00293      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00294      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00295      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00296      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00297      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00298      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00299      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00300      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00301      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
00302      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
00303      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
00304     17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
00305     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
00306     37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
00307     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
00308     57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
00309     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
00310     77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
00311     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
00312     97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
00313    107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
00314    117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
00315    127,   128,   129,   130,   131,   132,   133,   134,   135
00316 };
00317 
00318 #if YYDEBUG != 0
00319 static const short yyprhs[] = {     0,
00320      0,     1,     5,     6,     9,    11,    13,    14,    17,    20,
00321     21,    24,    26,    28,    30,    34,    38,    40,    42,    44,
00322     46,    48,    50,    57,    58,    60,    62,    66,    69,    71,
00323     72,    76,    78,    80,    82,    84,    89,    93,    98,   103,
00324    105,   107,   109,   111,   113,   114,   128,   129,   144,   145,
00325    159,   164,   165,   166,   173,   174,   175,   183,   184,   185,
00326    193,   194,   195,   202,   203,   204,   211,   214,   217,   219,
00327    223,   225,   229,   231,   233,   237,   239,   241,   245,   247,
00328    252,   256,   263,   265,   269,   271,   273,   277,   279,   283,
00329    285,   289,   293,   297,   302,   304,   306,   308,   310,   312,
00330    316,   318,   322,   323,   326,   330,   333,   336,   337,   340,
00331    345,   346,   350,   352,   356,   362,   366,   368,   369,   373,
00332    374,   378,   379,   383,   387,   391,   393,   397,   399,   401,
00333    404,   406,   408,   409,   413,   414,   418,   419,   421,   423,
00334    425,   429,   431,   435,   436,   441,   447,   449,   453,   456,
00335    460,   464,   469,   473,   479,   486,   488,   492,   494,   496,
00336    499,   502,   506,   510,   514,   519,   521,   525,   530,   534,
00337    535,   538,   539,   541,   542,   549,   551,   555,   556,   560,
00338    561,   565,   567,   569,   571,   573,   575,   577,   579,   581,
00339    583,   585,   587,   590,   592,   594,   596,   598,   600,   602,
00340    604,   606,   608,   610,   612,   614,   616,   618,   620,   622,
00341    624,   626,   628,   630,   632,   634,   636,   638,   640,   642,
00342    644,   646,   648,   650,   652,   654,   656,   658,   660,   662,
00343    664,   666,   668,   670,   673,   679,   681,   684,   686,   689,
00344    690,   697,   698,   705,   708,   711,   712,   714,   716,   719,
00345    723,   725,   729,   730,   732,   739,   742,   744,   748,   750,
00346    752,   754,   758,   761,   764,   768,   773,   775,   779,   782,
00347    785,   789,   794,   796,   799,   802,   806,   811,   814,   817,
00348    820,   823,   827,   829,   830,   832,   836,   839,   841,   843,
00349    846,   850,   854,   859,   862,   866,   873,   875,   878,   881,
00350    885,   889,   894,   899,   905,   909,   914,   919,   925,   928,
00351    931,   935,   939,   941,   943,   945,   947,   949,   951,   953,
00352    954,   956,   958,   962,   964,   966,   971,   972,   974,   976,
00353    980,   982,   984,   991,   993,   997,   999,  1004,  1008,  1012,
00354   1014,  1017,  1020,  1022,  1024,  1026,  1029,  1031,  1034,  1037,
00355   1041,  1043,  1045,  1048,  1051,  1055,  1057,  1060,  1064,  1066,
00356   1072,  1076,  1081,  1084,  1088,  1091,  1093,  1097,  1101,  1103,
00357   1108,  1110,  1113,  1117,  1121,  1125,  1130,  1134,  1136,  1140,
00358   1142,  1144,  1146,  1148,  1150,  1152,  1157,  1162,  1167,  1172,
00359   1179,  1184,  1186,  1188,  1190,  1192,  1194,  1197,  1198,  1202,
00360   1204,  1208,  1212,  1217,  1219,  1221,  1223,  1225,  1227,  1229,
00361   1231,  1233
00362 };
00363 
00364 static const short yyrhs[] = {    -1,
00365    138,   137,   140,     0,     0,   138,   139,     0,   143,     0,
00366    144,     0,     0,   145,   141,     0,   150,   141,     0,     0,
00367    141,   142,     0,   145,     0,   150,     0,   144,     0,    57,
00368    174,     7,     0,   114,   178,     7,     0,   153,     0,   154,
00369      0,   155,     0,   157,     0,   160,     0,   146,     0,   121,
00370    284,    10,   147,    37,     7,     0,     0,   148,     0,   149,
00371      0,   148,    32,   149,     0,   122,   243,     0,   243,     0,
00372      0,   108,   151,   152,     0,   153,     0,   154,     0,   155,
00373      0,   157,     0,    50,   226,   188,     7,     0,   226,   188,
00374      7,     0,   116,   226,   188,     7,     0,   132,   226,   188,
00375      7,     0,   162,     0,   171,     0,   133,     0,   134,     0,
00376    135,     0,     0,   226,   239,   190,   158,    34,   192,   194,
00377    198,   199,   200,   203,   204,    35,     0,     0,   156,   226,
00378    239,   190,   159,    34,   192,   194,   198,   199,   200,   203,
00379    204,    35,     0,     0,    48,   286,    10,   205,    37,   190,
00380    161,    34,   194,   199,   208,   203,    35,     0,    48,   283,
00381    286,     7,     0,     0,     0,    62,   163,   111,    20,   164,
00382    213,     0,     0,     0,    62,   165,    97,   111,    20,   166,
00383    213,     0,     0,     0,    97,    62,   167,   111,    20,   168,
00384    213,     0,     0,     0,    56,   169,   111,    20,   170,   213,
00385      0,     0,     0,   112,   226,   172,   218,   173,     7,     0,
00386    229,     7,     0,   237,     7,     0,   175,     0,   174,    32,
00387    175,     0,   177,     0,     3,   177,     3,     0,    43,     0,
00388    177,     0,   176,    32,   177,     0,   282,     0,   179,     0,
00389    178,    32,   179,     0,   288,     0,   288,    10,   181,    37,
00390      0,    10,   180,    37,     0,    10,   180,    37,    10,   181,
00391     37,     0,   288,     0,   180,    32,   288,     0,   183,     0,
00392    182,     0,   182,    32,   183,     0,   244,     0,   182,    32,
00393    244,     0,   184,     0,   183,    32,   184,     0,   244,    53,
00394    222,     0,   244,    53,   185,     0,   244,    53,   185,   255,
00395      0,   289,     0,   248,     0,   187,     0,   259,     0,   189,
00396      0,   188,    32,   189,     0,   239,     0,   239,    33,   186,
00397      0,     0,   190,   191,     0,   226,   188,     7,     0,    64,
00398      7,     0,    65,     7,     0,     0,   192,   193,     0,   104,
00399    226,   188,     7,     0,     0,    60,   195,     7,     0,   196,
00400      0,   195,    32,   196,     0,   284,    31,   197,    46,   259,
00401      0,   284,    46,   259,     0,   226,     0,     0,    49,   258,
00402      7,     0,     0,   105,   258,     7,     0,     0,    61,    63,
00403      7,     0,    61,    45,     7,     0,    61,   201,     7,     0,
00404    202,     0,   201,    32,   202,     0,   259,     0,   227,     0,
00405     66,   227,     0,    64,     0,    65,     0,     0,    52,   258,
00406      7,     0,     0,    48,   258,     7,     0,     0,   206,     0,
00407    207,     0,   128,     0,   207,    32,   128,     0,   243,     0,
00408    207,    32,   243,     0,     0,    47,    34,   209,    35,     0,
00409     47,    34,   209,     7,    35,     0,   210,     0,    10,   209,
00410     37,     0,   209,     6,     0,   209,     8,   209,     0,   209,
00411      7,   209,     0,   283,    10,   211,    37,     0,   283,    10,
00412     37,     0,   284,    33,   283,    10,    37,     0,   284,    33,
00413    283,    10,   211,    37,     0,   212,     0,   211,    32,   212,
00414      0,   276,     0,   284,     0,     3,   212,     0,   212,     3,
00415      0,   212,     3,   212,     0,    10,   212,    37,     0,   283,
00416     10,    37,     0,   283,    10,   211,    37,     0,     7,     0,
00417     34,   214,    35,     0,    34,   176,    35,     7,     0,    34,
00418     35,     7,     0,     0,   214,   157,     0,     0,   216,     0,
00419      0,    58,   217,   278,    10,   258,    37,     0,   219,     0,
00420    218,    32,   219,     0,     0,   239,   220,   221,     0,     0,
00421     34,   215,    35,     0,   131,     0,   115,     0,   117,     0,
00422    119,     0,   120,     0,   123,     0,   124,     0,   125,     0,
00423    130,     0,   126,     0,   222,     0,   223,   222,     0,    20,
00424      0,   223,     0,    67,     0,    78,     0,    68,     0,    69,
00425      0,    71,     0,    72,     0,    73,     0,    74,     0,    95,
00426      0,    79,     0,    80,     0,    82,     0,    83,     0,    81,
00427      0,    75,     0,    76,     0,    77,     0,    87,     0,    88,
00428      0,    89,     0,    90,     0,    91,     0,    99,     0,   100,
00429      0,    97,     0,    98,     0,   103,     0,   101,     0,    92,
00430      0,    93,     0,    94,     0,    96,     0,    70,     0,    84,
00431      0,    85,     0,   224,     0,   229,     0,   237,     0,   225,
00432    226,     0,     8,   227,    31,   227,     8,     0,   226,     0,
00433    226,   228,     0,     6,     0,   228,     6,     0,     0,   127,
00434    232,   230,    34,   233,    35,     0,     0,   129,   232,   231,
00435     34,   233,    35,     0,   127,   285,     0,   129,   285,     0,
00436      0,   285,     0,   234,     0,   233,   234,     0,   226,   235,
00437      7,     0,   239,     0,   235,    32,   239,     0,     0,    32,
00438      0,   118,   232,    34,   238,   236,    35,     0,   118,   285,
00439      0,    25,     0,   238,    32,    25,     0,   241,     0,   240,
00440      0,   284,     0,    10,   240,    37,     0,     6,   240,     0,
00441    240,   247,     0,   240,    10,    37,     0,   240,    10,   206,
00442     37,     0,    20,     0,    10,   241,    37,     0,     6,   241,
00443      0,   241,   247,     0,   241,    10,    37,     0,   241,    10,
00444    206,    37,     0,    20,     0,     6,   242,     0,   242,   247,
00445      0,   242,    10,    37,     0,   242,    10,   206,    37,     0,
00446    226,   242,     0,   226,   240,     0,   226,   245,     0,   226,
00447    245,     0,    66,   226,   245,     0,   248,     0,     0,   246,
00448      0,    10,   246,    37,     0,     6,   246,     0,     6,     0,
00449    247,     0,   246,   247,     0,   246,    10,    37,     0,    10,
00450    206,    37,     0,   246,    10,   206,    37,     0,    11,    36,
00451      0,    11,   187,    36,     0,    55,    27,   110,    27,    51,
00452     27,     0,   251,     0,    27,   251,     0,   251,    27,     0,
00453     27,   251,    27,     0,   249,   252,   250,     0,    27,   249,
00454    252,   250,     0,   249,   252,   250,    27,     0,    27,   249,
00455    252,   250,    27,     0,    11,   252,    36,     0,    11,   252,
00456     36,    27,     0,    27,    11,   252,    36,     0,    27,    11,
00457    252,    36,    27,     0,    12,   282,     0,    26,   282,     0,
00458     27,    12,   282,     0,    27,    26,   282,     0,    22,     0,
00459     34,     0,    23,     0,    35,     0,   263,     0,    14,     0,
00460     39,     0,     0,   253,     0,    27,     0,   253,   254,    27,
00461      0,    32,     0,    24,     0,    31,   256,    26,   287,     0,
00462      0,   257,     0,   287,     0,   257,    32,   287,     0,   259,
00463      0,   260,     0,    55,   260,   110,   260,    51,   260,     0,
00464    261,     0,   260,    14,   260,     0,   262,     0,   277,    10,
00465    258,    37,     0,   262,    39,   262,     0,   262,    33,   262,
00466      0,   264,     0,   267,   265,     0,   267,   266,     0,     3,
00467      0,     6,     0,   267,     0,   263,   264,     0,   263,     0,
00468    265,   263,     0,   263,   267,     0,   266,   263,   267,     0,
00469    272,     0,   268,     0,   268,   272,     0,   272,   268,     0,
00470    272,   268,   272,     0,   269,     0,   269,   272,     0,   270,
00471     31,   287,     0,   270,     0,    11,   271,    36,    31,   287,
00472      0,    11,   271,    36,     0,    11,    36,    31,   287,     0,
00473     11,    36,     0,   249,   271,   250,     0,   249,   250,     0,
00474    259,     0,   271,   254,   259,     0,    10,   260,    37,     0,
00475    284,     0,   289,    10,   273,    37,     0,   275,     0,   272,
00476    274,     0,   272,    12,   282,     0,   272,    26,   282,     0,
00477    272,    11,    36,     0,   272,    11,   273,    36,     0,   272,
00478     31,   287,     0,   260,     0,   273,    32,   260,     0,    28,
00479      0,    29,     0,    30,     0,    38,     0,   276,     0,   106,
00480      0,    54,    10,   273,    37,     0,   113,    10,    44,    37,
00481      0,   113,    10,   201,    37,     0,   107,    10,   259,    37,
00482      0,    59,    10,   259,    32,   259,    37,     0,   107,    10,
00483    226,    37,     0,    42,     0,    43,     0,    40,     0,    41,
00484      0,   278,     0,   277,   278,     0,     0,    21,   279,   280,
00485      0,   281,     0,   280,    32,   281,     0,   284,    31,   197,
00486      0,   284,    31,    66,   197,     0,    25,     0,    20,     0,
00487     25,     0,    25,     0,   282,     0,   282,     0,   282,     0,
00488    282,     0,   282,     0
00489 };
00490 
00491 #endif
00492 
00493 #if YYDEBUG != 0
00494 static const short yyrline[] = { 0,
00495    382,   383,   386,   387,   390,   391,   394,   395,   396,   399,
00496    400,   403,   404,   405,   408,   414,   418,   420,   422,   424,
00497    426,   428,   432,   436,   437,   440,   442,   446,   447,   450,
00498    451,   454,   456,   458,   460,   464,   468,   470,   472,   476,
00499    477,   480,   481,   482,   485,   486,   493,   495,   506,   508,
00500    511,   515,   515,   516,   517,   517,   519,   520,   521,   522,
00501    523,   523,   524,   527,   528,   529,   530,   532,   548,   550,
00502    554,   555,   557,   560,   561,   564,   568,   570,   574,   576,
00503    578,   580,   584,   585,   588,   590,   592,   595,   597,   600,
00504    602,   605,   606,   607,   611,   612,   614,   616,   619,   621,
00505    625,   626,   629,   631,   635,   636,   637,   640,   641,   644,
00506    648,   649,   652,   653,   656,   657,   659,   662,   663,   666,
00507    667,   670,   671,   672,   673,   676,   677,   680,   681,   682,
00508    683,   684,   687,   688,   691,   692,   695,   696,   699,   700,
00509    701,   704,   705,   708,   709,   710,   713,   714,   717,   722,
00510    728,   736,   738,   740,   742,   746,   747,   750,   751,   752,
00511    753,   754,   755,   756,   758,   762,   763,   764,   765,   768,
00512    769,   772,   773,   776,   776,   785,   786,   790,   791,   794,
00513    795,   798,   799,   800,   801,   802,   803,   804,   805,   806,
00514    807,   815,   816,   821,   823,   829,   830,   831,   832,   833,
00515    834,   835,   836,   837,   838,   839,   840,   841,   842,   843,
00516    844,   845,   846,   847,   848,   849,   850,   851,   852,   853,
00517    854,   855,   856,   857,   858,   859,   860,   861,   862,   863,
00518    866,   868,   870,   872,   874,   883,   884,   889,   890,   893,
00519    895,   897,   899,   901,   903,   907,   908,   911,   912,   917,
00520    920,   922,   926,   927,   930,   932,   936,   937,   947,   948,
00521    951,   952,   953,   954,   955,   956,   959,   960,   961,   962,
00522    963,   964,   973,   974,   975,   976,   977,   983,   984,   985,
00523    995,   996,   997,  1002,  1003,  1006,  1007,  1008,  1009,  1010,
00524   1011,  1012,  1013,  1016,  1017,  1020,  1022,  1024,  1026,  1028,
00525   1031,  1033,  1035,  1037,  1039,  1041,  1049,  1051,  1053,  1056,
00526   1059,  1062,  1067,  1068,  1071,  1072,  1075,  1076,  1077,  1080,
00527   1081,  1084,  1085,  1088,  1089,  1092,  1095,  1096,  1099,  1100,
00528   1103,  1106,  1112,  1114,  1115,  1118,  1119,  1124,  1126,  1130,
00529   1131,  1132,  1135,  1136,  1139,  1140,  1143,  1144,  1147,  1148,
00530   1151,  1152,  1153,  1154,  1155,  1156,  1157,  1160,  1161,  1164,
00531   1167,  1169,  1173,  1177,  1178,  1181,  1182,  1185,  1187,  1189,
00532   1191,  1192,  1194,  1196,  1198,  1201,  1203,  1207,  1208,  1211,
00533   1212,  1213,  1214,  1217,  1218,  1219,  1220,  1221,  1222,  1227,
00534   1233,  1243,  1244,  1245,  1246,  1249,  1251,  1255,  1259,  1262,
00535   1263,  1266,  1267,  1270,  1271,  1274,  1275,  1276,  1277,  1278,
00536   1279,  1280
00537 };
00538 #endif
00539 
00540 
00541 #if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
00542 
00543 static const char * const yytname[] = {   "$","error","$undefined.","simpleOp",
00544 "PREFIX_OP","POSTFIX_OP","LLT_MULOP","LLT_SEMI","LLT_VERTICALBAR","ITERATION_OP",
00545 "LLT_LPAR","LLT_LBRACKET","selectSym","LLT_IF_THEN_ELSE","logicalOp","eqSepSym",
00546 "equationSym","commentSym","LLT_WHITESPACE","LLT_EOL","LLT_TYPEDEF_NAME","quantifierSym",
00547 "openSym","closeSym","sepSym","simpleId","mapSym","markerSym","preSym","postSym",
00548 "anySym","LLT_COLON","LLT_COMMA","LLT_EQUALS","LLT_LBRACE","LLT_RBRACE","LLT_RBRACKET",
00549 "LLT_RPAR","LLT_QUOTE","eqOp","LLT_CCHAR","LLT_CFLOAT","LLT_CINTEGER","LLT_LCSTRING",
00550 "LLT_ALL","LLT_ANYTHING","LLT_BE","LLT_BODY","LLT_CLAIMS","LLT_CHECKS","LLT_CONSTANT",
00551 "LLT_ELSE","LLT_ENSURES","LLT_FOR","LLT_FRESH","LLT_IF","LLT_IMMUTABLE","LLT_IMPORTS",
00552 "LLT_CONSTRAINT","LLT_ISSUB","LLT_LET","LLT_MODIFIES","LLT_MUTABLE","LLT_NOTHING",
00553 "LLT_INTERNAL","LLT_FILESYS","LLT_OBJ","LLT_OUT","LLT_SEF","LLT_ONLY","LLT_PARTIAL",
00554 "LLT_OWNED","LLT_DEPENDENT","LLT_KEEP","LLT_KEPT","LLT_TEMP","LLT_SHARED","LLT_UNIQUE",
00555 "LLT_UNUSED","LLT_EXITS","LLT_MAYEXIT","LLT_NEVEREXIT","LLT_TRUEEXIT","LLT_FALSEEXIT",
00556 "LLT_UNDEF","LLT_KILLED","LLT_CHECKMOD","LLT_CHECKED","LLT_UNCHECKED","LLT_CHECKEDSTRICT",
00557 "LLT_TRUENULL","LLT_FALSENULL","LLT_LNULL","LLT_LNOTNULL","LLT_RETURNED","LLT_OBSERVER",
00558 "LLT_EXPOSED","LLT_REFCOUNTED","LLT_REFS","LLT_RELNULL","LLT_RELDEF","LLT_KILLREF",
00559 "LLT_TEMPREF","LLT_NEWREF","LLT_PRIVATE","LLT_REQUIRES","LLT_RESULT","LLT_SIZEOF",
00560 "LLT_SPEC","LLT_TAGGEDUNION","LLT_THEN","LLT_TYPE","LLT_TYPEDEF","LLT_UNCHANGED",
00561 "LLT_USES","LLT_CHAR","LLT_CONST","LLT_DOUBLE","LLT_ENUM","LLT_FLOAT","LLT_INT",
00562 "LLT_ITER","LLT_YIELD","LLT_LONG","LLT_SHORT","LLT_SIGNED","LLT_UNKNOWN","LLT_STRUCT",
00563 "LLT_TELIPSIS","LLT_UNION","LLT_UNSIGNED","LLT_VOID","LLT_VOLATILE","LLT_PRINTFLIKE",
00564 "LLT_SCANFLIKE","LLT_MESSAGELIKE","interface","@1","externals","external","optDeclarations",
00565 "declarations","declaration","imports","uses","export","iter","iterParamList",
00566 "realIterParamList","iterParam","private","@2","private2","constDeclaration",
00567 "varDeclaration","type","special","fcn","@3","@4","claim","@5","abstract","@6",
00568 "@7","@8","@9","@10","@11","@12","@13","exposed","@14","@15","importNameList",
00569 "importName","interfaceNameList","interfaceName","traitRefNodeList","traitRef",
00570 "traitIdList","renaming","nameList","replaceNodeList","replace","name","initializer",
00571 "constLclExpr","initDecls","initDecl","globals","globalDecl","privateInits",
00572 "privateInit","optLetDecl","beDeclList","beDecl","sortSpec","optChecks","optRequire",
00573 "optModify","storeRefList","storeRef","optEnsure","optClaim","optParamList",
00574 "realParamList","paramList","optBody","callExpr","stmt","valueList","value",
00575 "abstBody","fcns","optTypeInv","typeInv","@16","declaratorInvs","declaratorInv",
00576 "@17","optExposedBody","CType","CTypes","typeSpecifier","specialQualifier","lclTypeSpec",
00577 "lclType","pointers","structOrUnionSpec","@18","@19","optTagId","structDecls",
00578 "structDecl","declaratorList","optCOMMA","enumSpec","enumeratorList","declarator",
00579 "notype_decl","after_type_decl","parameter_decl","param","typeName","optAbstDeclarator",
00580 "abstDeclarator","arrayQual","opForm","open","close","anyOp","middle","placeList",
00581 "separator","signature","domain","sortList","lclPredicate","term","term0","equalityTerm",
00582 "simpleOpTerm","simpleOp2","prefixOpTerm","postfixOps","infixOpPart","secondary",
00583 "bracketed","sqBracketed","matched","args","primary","termList","stateFcn","lclPrimary",
00584 "cLiteral","quantifiers","quantifier","@20","quantifiedList","quantified","simpleIdOrTypedefName",
00585 "fcnId","varId","tagId","claimId","sortId","traitId","opId", NULL
00586 };
00587 #endif
00588 
00589 static const short yyr1[] = {     0,
00590    137,   136,   138,   138,   139,   139,   140,   140,   140,   141,
00591    141,   142,   142,   142,   143,   144,   145,   145,   145,   145,
00592    145,   145,   146,   147,   147,   148,   148,   149,   149,   151,
00593    150,   152,   152,   152,   152,   153,   154,   154,   154,   155,
00594    155,   156,   156,   156,   158,   157,   159,   157,   161,   160,
00595    160,   163,   164,   162,   165,   166,   162,   167,   168,   162,
00596    169,   170,   162,   172,   173,   171,   171,   171,   174,   174,
00597    175,   175,   175,   176,   176,   177,   178,   178,   179,   179,
00598    179,   179,   180,   180,   181,   181,   181,   182,   182,   183,
00599    183,   184,   184,   184,   185,   185,   186,   187,   188,   188,
00600    189,   189,   190,   190,   191,   191,   191,   192,   192,   193,
00601    194,   194,   195,   195,   196,   196,   197,   198,   198,   199,
00602    199,   200,   200,   200,   200,   201,   201,   202,   202,   202,
00603    202,   202,   203,   203,   204,   204,   205,   205,   206,   206,
00604    206,   207,   207,   208,   208,   208,   209,   209,   209,   209,
00605    209,   210,   210,   210,   210,   211,   211,   212,   212,   212,
00606    212,   212,   212,   212,   212,   213,   213,   213,   213,   214,
00607    214,   215,   215,   217,   216,   218,   218,   220,   219,   221,
00608    221,   222,   222,   222,   222,   222,   222,   222,   222,   222,
00609    222,   223,   223,   224,   224,   225,   225,   225,   225,   225,
00610    225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
00611    225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
00612    225,   225,   225,   225,   225,   225,   225,   225,   225,   225,
00613    226,   226,   226,   226,   226,   227,   227,   228,   228,   230,
00614    229,   231,   229,   229,   229,   232,   232,   233,   233,   234,
00615    235,   235,   236,   236,   237,   237,   238,   238,   239,   239,
00616    240,   240,   240,   240,   240,   240,   241,   241,   241,   241,
00617    241,   241,   242,   242,   242,   242,   242,   243,   243,   243,
00618    244,   244,   244,   245,   245,   246,   246,   246,   246,   246,
00619    246,   246,   246,   247,   247,   248,   248,   248,   248,   248,
00620    248,   248,   248,   248,   248,   248,   248,   248,   248,   248,
00621    248,   248,   249,   249,   250,   250,   251,   251,   251,   252,
00622    252,   253,   253,   254,   254,   255,   256,   256,   257,   257,
00623    258,   259,   260,   260,   260,   261,   261,   261,   261,   262,
00624    262,   262,   263,   263,   264,   264,   265,   265,   266,   266,
00625    267,   267,   267,   267,   267,   267,   267,   268,   268,   269,
00626    269,   269,   269,   270,   270,   271,   271,   272,   272,   272,
00627    272,   272,   272,   272,   272,   272,   272,   273,   273,   274,
00628    274,   274,   274,   275,   275,   275,   275,   275,   275,   275,
00629    275,   276,   276,   276,   276,   277,   277,   279,   278,   280,
00630    280,   281,   281,   282,   282,   283,   284,   285,   286,   287,
00631    288,   289
00632 };
00633 
00634 static const short yyr2[] = {     0,
00635      0,     3,     0,     2,     1,     1,     0,     2,     2,     0,
00636      2,     1,     1,     1,     3,     3,     1,     1,     1,     1,
00637      1,     1,     6,     0,     1,     1,     3,     2,     1,     0,
00638      3,     1,     1,     1,     1,     4,     3,     4,     4,     1,
00639      1,     1,     1,     1,     0,    13,     0,    14,     0,    13,
00640      4,     0,     0,     6,     0,     0,     7,     0,     0,     7,
00641      0,     0,     6,     0,     0,     6,     2,     2,     1,     3,
00642      1,     3,     1,     1,     3,     1,     1,     3,     1,     4,
00643      3,     6,     1,     3,     1,     1,     3,     1,     3,     1,
00644      3,     3,     3,     4,     1,     1,     1,     1,     1,     3,
00645      1,     3,     0,     2,     3,     2,     2,     0,     2,     4,
00646      0,     3,     1,     3,     5,     3,     1,     0,     3,     0,
00647      3,     0,     3,     3,     3,     1,     3,     1,     1,     2,
00648      1,     1,     0,     3,     0,     3,     0,     1,     1,     1,
00649      3,     1,     3,     0,     4,     5,     1,     3,     2,     3,
00650      3,     4,     3,     5,     6,     1,     3,     1,     1,     2,
00651      2,     3,     3,     3,     4,     1,     3,     4,     3,     0,
00652      2,     0,     1,     0,     6,     1,     3,     0,     3,     0,
00653      3,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00654      1,     1,     2,     1,     1,     1,     1,     1,     1,     1,
00655      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00656      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00657      1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
00658      1,     1,     1,     2,     5,     1,     2,     1,     2,     0,
00659      6,     0,     6,     2,     2,     0,     1,     1,     2,     3,
00660      1,     3,     0,     1,     6,     2,     1,     3,     1,     1,
00661      1,     3,     2,     2,     3,     4,     1,     3,     2,     2,
00662      3,     4,     1,     2,     2,     3,     4,     2,     2,     2,
00663      2,     3,     1,     0,     1,     3,     2,     1,     1,     2,
00664      3,     3,     4,     2,     3,     6,     1,     2,     2,     3,
00665      3,     4,     4,     5,     3,     4,     4,     5,     2,     2,
00666      3,     3,     1,     1,     1,     1,     1,     1,     1,     0,
00667      1,     1,     3,     1,     1,     4,     0,     1,     1,     3,
00668      1,     1,     6,     1,     3,     1,     4,     3,     3,     1,
00669      2,     2,     1,     1,     1,     2,     1,     2,     2,     3,
00670      1,     1,     2,     2,     3,     1,     2,     3,     1,     5,
00671      3,     4,     2,     3,     2,     1,     3,     3,     1,     4,
00672      1,     2,     3,     3,     3,     4,     3,     1,     3,     1,
00673      1,     1,     1,     1,     1,     4,     4,     4,     4,     6,
00674      4,     1,     1,     1,     1,     1,     2,     0,     3,     1,
00675      3,     3,     4,     1,     1,     1,     1,     1,     1,     1,
00676      1,     1
00677 };
00678 
00679 static const short yydefact[] = {     3,
00680      1,     0,     0,     7,     4,     5,     6,     0,   405,   404,
00681     73,     0,    69,    71,    76,     0,     0,    77,   411,    79,
00682      0,   194,     0,     0,    61,    52,   196,   198,   199,   228,
00683    200,   201,   202,   203,   210,   211,   212,   197,   205,   206,
00684    209,   207,   208,   229,   230,   213,   214,   215,   216,   217,
00685    224,   225,   226,   204,   227,   220,   221,   218,   219,   223,
00686    222,    30,     0,   183,     0,   184,   246,   185,   186,     0,
00687    187,   188,   189,   191,   246,   246,   190,   182,     0,    42,
00688     43,    44,     2,    10,    22,    10,    17,    18,    19,     0,
00689     20,    21,    40,    41,   192,   195,   231,     0,     0,   232,
00690    233,     0,    15,     0,     0,    83,    16,     0,     0,   220,
00691    236,     0,   232,   233,   406,   409,     0,     0,     0,     0,
00692      0,     0,    58,     0,    64,     0,     0,   408,   256,   407,
00693      0,   240,   244,   242,   245,     0,     8,     9,     0,   193,
00694    234,     0,     0,   267,     0,    99,   103,   260,   259,   261,
00695     67,    68,    72,    70,     0,    81,    78,   343,   344,   320,
00696      0,   318,   313,     0,     0,   314,   319,     0,     0,     0,
00697     86,    85,    90,   284,    88,   283,   320,   297,   317,   238,
00698    237,     0,     0,   137,     0,   101,     0,     0,     0,     0,
00699     31,    32,    33,    34,    35,     0,     0,     0,    24,     0,
00700      0,     0,    11,    14,    12,    13,   103,   263,   269,     0,
00701      0,    37,     0,     0,    45,     0,     0,   264,     0,   270,
00702     84,     0,   322,     0,   321,   309,   310,   320,     0,     0,
00703    320,   298,     0,   284,    80,     0,     0,   288,     0,   281,
00704    285,   289,     0,     0,   299,   239,     0,    51,   140,     0,
00705    138,   139,   284,   142,    36,    62,    53,     0,     0,    65,
00706    176,   178,    38,   257,   253,     0,     0,    25,    26,    29,
00707      0,     0,    39,    47,   262,   268,   100,     0,     0,   398,
00708    407,   394,   395,   392,   393,     0,     0,     0,   385,     0,
00709      0,   102,    97,     0,    98,   332,   334,   336,     0,   340,
00710    345,   352,   356,   359,   351,   371,   384,     0,   396,   412,
00711    369,     0,     0,     0,     0,   104,     0,   265,     0,   294,
00712      0,   271,     0,     0,   305,   325,   324,     0,     0,   311,
00713    312,     0,   300,     0,   282,    87,    89,    91,     0,   287,
00714      0,     0,     0,   290,    93,    92,    96,    95,   315,   316,
00715    301,   235,   103,     0,   288,     0,   273,   279,   278,   280,
00716      0,     0,    56,    59,     0,     0,   180,   254,     0,    28,
00717      0,     0,     0,     0,   248,     0,     0,     0,   363,   366,
00718      0,     0,     0,     0,     0,     0,     0,   365,     0,     0,
00719      0,     0,   346,   345,   347,   341,   342,   353,   357,     0,
00720      0,     0,     0,   380,   381,   382,     0,   383,   354,   372,
00721      0,   397,     0,   106,   107,   108,     0,   266,   295,   272,
00722     82,   306,   323,   307,   302,     0,   292,   286,   291,     0,
00723    327,    94,   303,    49,   141,   143,   274,   288,     0,   275,
00724    166,   170,    63,    54,     0,     0,   177,    66,   172,   179,
00725    258,   255,    23,    27,     0,   251,   241,   249,   243,   108,
00726    368,     0,   361,     0,   399,   400,     0,   378,     0,     0,
00727      0,   194,     0,     0,     0,   131,   132,     0,     0,   126,
00728    129,   128,   364,   335,   339,   338,   349,   348,     0,   410,
00729    358,   375,     0,   373,   374,   377,   355,     0,   331,     0,
00730    111,   105,   308,   304,     0,   293,     0,   328,   329,     0,
00731    276,     0,     0,     0,    74,     0,    57,    60,   174,     0,
00732    173,   250,     0,   111,   362,     0,   367,     0,     0,     0,
00733    386,     0,     0,   391,   389,   387,   130,     0,   388,   350,
00734    376,   337,   370,     0,     0,   109,   118,   296,     0,     0,
00735    111,   277,   169,     0,     0,   167,   171,     0,     0,   181,
00736    252,   118,   360,   401,     0,   402,   117,   379,     0,     0,
00737    127,     0,   113,     0,     0,     0,   120,   326,   330,   120,
00738     75,   168,   103,     0,   120,   403,   333,   390,   112,     0,
00739      0,     0,     0,     0,     0,   122,   144,     0,   122,   114,
00740      0,   116,   110,   119,     0,     0,   133,     0,   133,     0,
00741    133,     0,   121,     0,     0,     0,     0,   135,     0,     0,
00742    175,   135,   115,   124,   123,   125,     0,     0,     0,     0,
00743    407,     0,   147,     0,     0,    50,     0,   134,     0,    46,
00744      0,   149,     0,     0,   145,     0,     0,    48,   136,     0,
00745    148,   146,   151,   150,     0,     0,   153,     0,   156,   158,
00746      0,   159,   406,     0,   160,     0,     0,   152,   161,     0,
00747      0,   163,   157,   162,   164,     0,   154,     0,   165,   155,
00748      0,     0,     0
00749 };
00750 
00751 static const short yydefgoto[] = {   681,
00752      4,     1,     5,    83,   137,   203,     6,   204,   205,    85,
00753    267,   268,   269,   206,   124,   191,    87,    88,    89,    90,
00754     91,   315,   377,    92,   510,    93,   121,   362,   122,   445,
00755    190,   446,   120,   361,    94,   196,   366,    12,    13,   514,
00756     14,    17,    18,   105,   170,   171,   172,   173,   345,   292,
00757    293,   145,   146,   215,   316,   501,   546,   547,   572,   573,
00758    566,   577,   596,   607,   479,   480,   618,   629,   250,   341,
00759    252,   609,   653,   633,   658,   659,   443,   516,   520,   521,
00760    559,   260,   261,   367,   450,    95,    96,    97,    98,   253,
00761    481,   181,   113,   200,   201,   127,   374,   375,   455,   369,
00762    114,   265,   186,   148,   149,   359,   254,   175,   240,   241,
00763    242,   176,   294,   351,   178,   224,   225,   464,   432,   507,
00764    508,   498,   499,   296,   297,   298,   299,   300,   396,   397,
00765    301,   302,   303,   304,   381,   305,   469,   410,   306,   307,
00766    308,   309,   382,   465,   466,   310,   661,   311,   129,   118,
00767    491,    20,   312
00768 };
00769 
00770 static const short yypact[] = {-32768,
00771    -28,   224,   372,  1343,-32768,-32768,-32768,   132,-32768,-32768,
00772 -32768,    48,-32768,-32768,-32768,   132,   105,-32768,-32768,    49,
00773   2880,-32768,   227,  2880,-32768,    17,-32768,-32768,-32768,-32768,
00774 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00775 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00776 -32768,-32768,-32768,-32768,-32768,   161,-32768,-32768,-32768,-32768,
00777 -32768,-32768,  2880,-32768,  2880,-32768,   132,-32768,-32768,   221,
00778 -32768,-32768,-32768,-32768,   132,   132,-32768,-32768,  2880,-32768,
00779 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,  2880,
00780 -32768,-32768,-32768,-32768,-32768,  1065,-32768,  2880,   396,   247,
00781    270,   280,-32768,   224,   311,-32768,-32768,   372,  1147,-32768,
00782    310,   265,-32768,-32768,   343,-32768,   132,   345,   396,   209,
00783    246,   264,-32768,  1437,-32768,   396,   340,-32768,   346,-32768,
00784    378,-32768,   346,-32768,   346,   396,  1241,  1241,   396,-32768,
00785 -32768,   396,   396,-32768,   123,-32768,   118,   198,   294,-32768,
00786 -32768,-32768,-32768,-32768,   132,   431,-32768,-32768,-32768,   416,
00787    132,-32768,-32768,   132,   488,-32768,-32768,   423,  2880,   427,
00788    442,   444,-32768,   462,   417,-32768,   416,   466,-32768,-32768,
00789    499,  2880,   502,  2302,   149,   484,   501,   512,   428,   429,
00790 -32768,-32768,-32768,-32768,-32768,   396,   156,   509,  2396,   504,
00791    507,   165,-32768,-32768,-32768,-32768,-32768,   198,   294,    89,
00792    112,-32768,   396,  3134,  1824,  1920,  3009,-32768,  2016,-32768,
00793 -32768,  1147,-32768,   500,    33,-32768,-32768,   416,   132,   132,
00794    416,   516,   437,   462,-32768,  1147,  1147,   462,  1730,-32768,
00795    329,-32768,   239,    93,-32768,-32768,   538,-32768,-32768,   513,
00796 -32768,   517,   379,-32768,-32768,-32768,-32768,   533,   534,   523,
00797 -32768,-32768,-32768,-32768,   526,  2880,   522,   532,-32768,-32768,
00798   2880,  2880,-32768,  1824,-32768,-32768,-32768,  3134,  3036,-32768,
00799    343,-32768,-32768,-32768,-32768,   555,  3134,   556,-32768,   559,
00800    560,-32768,-32768,   412,-32768,   558,-32768,   121,   557,-32768,
00801    436,   438,   438,   540,   761,-32768,-32768,   290,-32768,-32768,
00802 -32768,   563,   567,   568,   542,-32768,   396,-32768,   541,-32768,
00803    544,-32768,   546,   547,   562,-32768,-32768,   566,   549,-32768,
00804 -32768,    93,-32768,   574,-32768,   444,   417,-32768,   417,   329,
00805    550,   128,  2112,-32768,   564,-32768,-32768,-32768,-32768,-32768,
00806    575,-32768,-32768,  2490,   379,  1634,-32768,   198,   376,-32768,
00807     34,    34,-32768,-32768,   396,   579,   570,   565,   578,-32768,
00808    587,  2396,   396,  2591,-32768,  2692,   576,   159,   583,-32768,
00809    393,   221,  3134,    21,  3134,  1018,   760,-32768,   463,  3134,
00810    557,   557,-32768,-32768,   288,   436,   436,   295,   295,   132,
00811   3077,   132,   132,-32768,-32768,-32768,   132,-32768,   438,-32768,
00812   3134,-32768,  3134,-32768,-32768,-32768,   211,-32768,-32768,-32768,
00813 -32768,-32768,-32768,   582,   588,   571,-32768,-32768,-32768,   586,
00814    132,-32768,-32768,  1824,-32768,-32768,   376,   434,  2208,-32768,
00815 -32768,   373,-32768,-32768,    34,    34,-32768,-32768,   561,-32768,
00816 -32768,-32768,-32768,-32768,   249,-32768,-32768,-32768,-32768,-32768,
00817 -32768,   132,   594,  3134,   596,-32768,   595,   558,   419,  3134,
00818    598,   625,   599,   601,   603,-32768,-32768,  2880,   425,-32768,
00819 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   288,-32768,
00820 -32768,-32768,    20,-32768,-32768,-32768,   295,   606,-32768,   445,
00821     -7,-32768,-32768,-32768,   617,-32768,   619,   614,-32768,   613,
00822 -32768,   611,   642,   472,-32768,  1538,-32768,-32768,-32768,   615,
00823 -32768,-32768,   396,    -7,-32768,   132,-32768,   221,  2786,  3134,
00824 -32768,    28,  3134,-32768,-32768,-32768,-32768,   889,-32768,-32768,
00825 -32768,-32768,-32768,   221,  2880,-32768,   605,-32768,   132,   132,
00826    597,-32768,-32768,   132,   648,-32768,-32768,   396,   637,-32768,
00827 -32768,   605,-32768,-32768,  2880,-32768,-32768,   558,  3134,   622,
00828 -32768,   277,-32768,   115,   396,  3134,   572,-32768,-32768,   572,
00829 -32768,-32768,-32768,   650,   572,-32768,   558,-32768,-32768,   221,
00830   2880,  3134,   282,   654,  3134,   607,   620,  3134,   607,-32768,
00831    616,-32768,-32768,-32768,   659,   631,   623,   635,   623,   641,
00832    623,  3134,-32768,   672,   673,   334,  3134,   633,   192,   647,
00833 -32768,   633,-32768,-32768,-32768,-32768,   676,  3134,   649,   192,
00834    677,   187,-32768,   678,   656,-32768,   657,-32768,   684,-32768,
00835     65,-32768,   200,   192,-32768,   245,   668,-32768,-32768,   192,
00836 -32768,-32768,   709,-32768,   189,   189,-32768,   451,   730,-32768,
00837    725,-32768,-32768,   726,-32768,    47,   189,-32768,   250,   309,
00838    335,-32768,   730,-32768,-32768,   452,-32768,   464,-32768,-32768,
00839    739,   740,-32768
00840 };
00841 
00842 static const short yypgoto[] = {-32768,
00843 -32768,-32768,-32768,-32768,   655,-32768,-32768,   741,   743,-32768,
00844 -32768,-32768,   371,   748,-32768,-32768,   621,   629,   640,-32768,
00845   -120,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
00846 -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   661,-32768,
00847     -6,-32768,   651,-32768,   545,-32768,   539,   537,-32768,-32768,
00848    552,  -114,   573,  -179,-32768,   316,-32768,  -434,-32768,   188,
00849   -522,   215,   -77,   180,   178,   255,  -420,   166,-32768,  -165,
00850 -32768,-32768,  -406,-32768,  -251,  -288,  -326,-32768,-32768,-32768,
00851 -32768,-32768,   432,-32768,-32768,   -76,-32768,-32768,-32768,    -3,
00852    -18,-32768,    45,-32768,-32768,   440,   524,   -79,-32768,-32768,
00853     63,-32768,   -93,  -135,   369,   443,  -174,   287,  -189,  -212,
00854   -101,   569,   -32,  -257,   643,  -137,-32768,   580,-32768,-32768,
00855 -32768,  -532,  -201,  -254,-32768,   137,   -95,   508,-32768,-32768,
00856   -282,   505,-32768,-32768,   515,  -264,  -173,-32768,-32768,  -243,
00857 -32768,  -297,-32768,-32768,   278,     7,   -23,   -38,   455,   694,
00858   -373,    15,   577
00859 };
00860 
00861 
00862 #define YYLAST          3247
00863 
00864 
00865 static const short yytable[] = {   117,
00866     99,   102,   112,   195,   185,   147,   208,   210,    15,    19,
00867    412,   197,   295,   179,    15,   295,   394,   111,   251,   140,
00868    119,   202,    19,   378,   270,   340,   342,   274,     2,   116,
00869    106,   131,   384,   496,   390,   444,   388,   398,   399,   244,
00870    441,   390,   586,   594,   335,   207,   218,   220,   100,   669,
00871    319,   530,   544,   323,   103,   541,   326,   509,   109,   125,
00872    150,   126,   605,   360,   327,   610,   101,   442,   601,   179,
00873    642,   650,   644,   128,   425,   136,   177,   380,   569,   104,
00874    150,   128,   128,   672,   627,     3,   139,   150,   525,   562,
00875    329,   370,   380,   332,   141,   639,   545,   150,   216,   217,
00876    150,   651,   262,   150,   150,   174,   218,   220,   218,   220,
00877     15,   107,   487,   -55,    19,   349,   580,   358,   517,   518,
00878     99,   219,   217,   116,  -101,   275,   179,   350,   468,   212,
00879    470,   483,   231,    99,    99,   484,   108,   343,   217,   344,
00880    179,   179,   340,   342,   497,   591,   468,   179,   276,  -101,
00881    214,     9,   563,   391,   213,   255,    10,   150,   468,   392,
00882    592,    19,   263,   247,   428,   234,   346,   226,   100,   221,
00883    227,   273,   390,   434,   150,   578,   579,   430,   111,   436,
00884    213,   100,   100,   471,   474,   482,   101,   213,   620,   177,
00885    622,   655,   642,   643,   644,   461,   213,   270,   656,   101,
00886    101,   630,   417,   177,   177,   395,   540,   216,   217,   630,
00887    177,   317,   632,   631,   150,   532,   631,   502,   174,   208,
00888    210,   645,   123,   641,   631,   340,     8,   493,   282,   283,
00889    284,   285,   174,   174,   652,   330,   331,   654,   344,   500,
00890    344,   158,   213,     9,   159,   130,     9,   655,    10,   160,
00891    161,   115,   162,   151,   656,   522,   218,   440,     9,   656,
00892    163,   584,   527,    10,   164,   165,    11,   373,   373,   631,
00893    317,   262,   166,   512,   631,   568,   152,   167,   150,   456,
00894    523,   657,   153,   589,   282,   283,   284,   285,   603,   282,
00895    283,   284,   285,   168,   458,   182,   458,   278,   279,   411,
00896    488,   489,   208,   219,   217,   401,   402,     9,   590,   163,
00897    280,   655,   281,   213,   587,   180,   150,   150,   656,   187,
00898    403,   166,   404,   405,   406,   407,   150,   282,   283,   284,
00899    285,   570,   408,   631,   150,   440,   482,   655,   343,   217,
00900    626,   286,   155,   467,   656,   675,   288,   156,   282,   283,
00901    284,   285,  -404,    64,   184,    66,   188,    68,    69,   631,
00902    189,    71,    72,    73,    74,   538,   665,   666,    77,    78,
00903    373,   677,   373,   198,   282,   283,   284,   285,   673,  -247,
00904    674,    16,   473,   111,   355,   439,   217,   199,   356,   217,
00905    602,     9,     9,   289,   290,   557,    10,    10,   357,   150,
00906    291,   142,   660,   130,   482,   143,   490,   513,   494,   495,
00907    623,   660,   660,   490,   158,   144,   326,   159,   676,   678,
00908    130,   278,   279,   660,   327,   660,   660,   660,   463,   561,
00909    317,     9,   280,   163,   349,   515,   281,   490,   158,   438,
00910    222,   159,   223,   356,   217,   166,   350,   278,    15,   233,
00911    530,   282,   283,   284,   285,   531,   538,     9,   130,   537,
00912    593,   539,   281,   235,   583,   286,   287,   238,   490,   243,
00913    288,   239,   217,   236,   111,   237,   530,   282,   283,   284,
00914    285,   543,   667,   667,   150,   349,   326,   668,   679,   467,
00915    158,   286,   245,   159,   327,   667,   288,   350,   228,   229,
00916    680,   162,   597,   554,   246,   574,   555,   599,   248,   163,
00917    209,   211,   558,   230,   132,   134,   214,   289,   290,   150,
00918    256,   166,   337,   339,   291,   567,   167,   485,   486,   133,
00919    135,   257,   490,   264,   111,   325,   150,   271,   258,   259,
00920    272,   575,   333,   289,   290,   352,   334,   581,   354,   353,
00921    291,   574,   363,   364,   365,   490,   490,   368,   371,   158,
00922     15,   567,   159,   372,   383,   385,   278,   279,   386,   387,
00923    400,   390,   413,   414,   415,   416,     9,   418,   163,   419,
00924    635,   281,   420,   421,   424,   448,   427,   567,   422,   451,
00925    166,   635,   423,   453,   431,   634,   282,   283,   284,   285,
00926    426,   433,   111,   449,   635,   635,   634,   662,   503,   460,
00927    286,   635,   452,   462,   504,   288,   662,   662,   519,   634,
00928    634,   505,   506,   664,   526,   529,   634,   528,   662,   533,
00929    662,   662,   662,   158,  -405,   534,   159,   535,    21,   536,
00930    278,   279,   542,   548,   549,   550,   551,   552,   553,   560,
00931    472,   280,   163,   576,   582,   281,   544,   280,   588,   598,
00932    604,   612,   289,   290,   166,   613,   608,   606,   619,   291,
00933    282,   283,   284,   285,   617,   614,   595,   621,   624,   625,
00934    628,   636,   638,   640,   286,   287,  -406,   646,   647,   288,
00935    649,   648,   663,   615,   476,   477,   478,    27,    28,    29,
00936     30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
00937     40,    41,    42,    43,    44,    45,   644,    46,    47,    48,
00938     49,    50,    51,    52,    53,    54,    55,   110,    57,    58,
00939     59,    60,   669,    61,   670,   671,   289,   290,   682,   683,
00940    138,     7,   454,   291,   192,    64,    84,    66,    67,    68,
00941     69,    86,   193,    71,    72,    73,    74,    75,   157,    76,
00942     77,    78,   158,   194,   154,   159,   324,    21,   321,   278,
00943    279,   401,   402,   338,   336,   524,   585,   600,   611,   472,
00944    280,   163,   163,   616,   281,   277,   403,   637,   404,   405,
00945    406,   407,   571,   166,   166,   376,   447,   437,   408,   282,
00946    283,   284,   285,   475,   328,   564,   393,   232,   389,   409,
00947    183,   347,     0,   286,   287,     0,     0,     0,   288,   348,
00948      0,     0,     0,   476,   477,   478,    27,    28,    29,    30,
00949     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
00950     41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
00951     50,    51,    52,    53,    54,    55,   110,    57,    58,    59,
00952     60,     0,    61,     0,     0,   289,   290,     0,     0,     0,
00953      0,     0,   291,     0,    64,     0,    66,    67,    68,    69,
00954      0,     0,    71,    72,    73,    74,    75,     0,    76,    77,
00955     78,   158,     0,     0,   159,     0,    21,     0,   278,   279,
00956      0,     0,     0,     0,     0,     0,     0,     0,   472,   280,
00957    163,     0,     0,   281,     0,     0,     0,     0,     0,     0,
00958      0,     0,   166,     0,     0,     0,     0,     0,   282,   283,
00959    284,   285,     0,     0,     0,     0,     0,     0,     0,     0,
00960      0,     0,   286,   287,     0,     0,     0,   288,     0,     0,
00961      0,     0,   476,   477,   478,    27,    28,    29,    30,    31,
00962     32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
00963     42,    43,    44,    45,     0,    46,    47,    48,    49,    50,
00964     51,    52,    53,    54,    55,   110,    57,    58,    59,    60,
00965      0,    61,     0,     0,   289,   290,     0,     0,     0,     0,
00966      0,   291,     0,    64,     0,    66,    67,    68,    69,     0,
00967      0,    71,    72,    73,    74,    75,     0,    76,    77,    78,
00968    158,     0,     0,   159,     0,    21,     0,   278,   279,     0,
00969      0,     0,     0,     0,     0,     0,     0,   472,   280,   163,
00970      0,     0,   281,     0,     0,     0,     0,     0,     0,     0,
00971      0,   166,     0,     0,     0,     0,     0,   282,   283,   284,
00972    285,     0,     0,     0,     0,     0,     0,     0,     0,     0,
00973      0,   286,   287,     0,     0,     0,   288,     0,     0,     0,
00974      0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
00975     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
00976     43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
00977     52,    53,    54,    55,   110,    57,    58,    59,    60,     0,
00978     61,     0,     0,   289,   290,     0,     0,     0,     0,     0,
00979    291,     0,    64,     0,    66,    67,    68,    69,     0,     0,
00980     71,    72,    73,    74,    75,     0,    76,    77,    78,   158,
00981      0,     0,   159,     0,    21,     0,     0,   160,   161,     0,
00982    162,     0,     0,     0,     0,     0,    22,     0,   163,     0,
00983      0,     0,   164,   165,     0,     0,     0,     0,     0,    64,
00984    166,    66,     0,    68,    69,   167,     0,    71,    72,    73,
00985     74,     0,     0,     0,    77,    78,     0,     0,     0,     0,
00986      0,   168,     0,     0,     0,     0,     0,     0,     0,     0,
00987      0,     0,   169,    27,    28,    29,    30,    31,    32,    33,
00988     34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
00989     44,    45,     0,    46,    47,    48,    49,    50,    51,    52,
00990     53,    54,    55,   110,    57,    58,    59,    60,    21,    61,
00991      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
00992     22,    64,     0,    66,    67,    68,    69,     0,     0,    71,
00993     72,    73,    74,    75,     0,    76,    77,    78,     0,     0,
00994      0,     0,     0,     0,     0,     0,     0,     0,    23,     0,
00995     24,     0,     0,     0,     0,     0,    25,     0,     0,     0,
00996      0,     0,    26,     0,     0,     0,     0,    27,    28,    29,
00997     30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
00998     40,    41,    42,    43,    44,    45,     0,    46,    47,    48,
00999     49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
01000     59,    60,     0,    61,     0,     0,     0,     0,    62,     0,
01001     21,     0,    63,     0,     3,    64,    65,    66,    67,    68,
01002     69,    70,    22,    71,    72,    73,    74,    75,     0,    76,
01003     77,    78,    79,    80,    81,    82,     0,     0,     0,     0,
01004      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01005     23,     0,    24,     0,     0,     0,     0,     0,    25,     0,
01006      0,     0,     0,     0,    26,     0,     0,     0,     0,    27,
01007     28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
01008     38,    39,    40,    41,    42,    43,    44,    45,     0,    46,
01009     47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
01010     57,    58,    59,    60,    21,    61,     0,     0,     0,     0,
01011     62,     0,     0,     0,    63,     0,    22,    64,    65,    66,
01012     67,    68,    69,    70,     0,    71,    72,    73,    74,    75,
01013      0,    76,    77,    78,    79,    80,    81,    82,     0,     0,
01014      0,     0,     0,     0,     0,     0,    24,     0,     0,     0,
01015      0,     0,    25,     0,     0,     0,     0,     0,    26,     0,
01016      0,     0,     0,    27,    28,    29,    30,    31,    32,    33,
01017     34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
01018     44,    45,     0,    46,    47,    48,    49,    50,    51,    52,
01019     53,    54,    55,    56,    57,    58,    59,    60,     0,    61,
01020      0,     0,     0,     0,     0,    21,     0,     0,    63,     0,
01021      0,    64,    65,    66,    67,    68,    69,    22,     0,    71,
01022     72,    73,    74,    75,     0,    76,    77,    78,    79,    80,
01023     81,    82,   556,     0,     0,     0,     0,     0,     0,     0,
01024      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01025      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01026      0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
01027     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
01028     43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
01029     52,    53,    54,    55,   110,    57,    58,    59,    60,   438,
01030     61,    21,     0,   356,   217,     0,     0,     0,     0,     0,
01031      0,     0,    64,    22,    66,    67,    68,    69,   130,     0,
01032     71,    72,    73,    74,    75,     0,    76,    77,    78,     0,
01033     80,    81,    82,     0,     0,     0,     0,     0,     0,     0,
01034      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01035      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01036     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
01037     37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
01038     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
01039    110,    57,    58,    59,    60,   238,    61,    21,     0,   239,
01040    217,     0,     0,     0,     0,     0,     0,     0,    64,    22,
01041     66,    67,    68,    69,     0,     0,    71,    72,    73,    74,
01042     75,   249,    76,    77,    78,     0,     0,     0,     0,     0,
01043      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01044      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01045      0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
01046     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
01047     41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
01048     50,    51,    52,    53,    54,    55,   110,    57,    58,    59,
01049     60,    21,    61,     0,     0,     0,     0,     0,     0,     0,
01050      0,     0,     0,    22,    64,     0,    66,    67,    68,    69,
01051      0,     0,    71,    72,    73,    74,    75,   249,    76,    77,
01052     78,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01053      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01054      0,     0,     0,     0,     0,     0,     0,   313,   314,     0,
01055     27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
01056     37,    38,    39,    40,    41,    42,    43,    44,    45,     0,
01057     46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
01058    110,    57,    58,    59,    60,     0,    61,    21,     0,     0,
01059      0,     0,     0,     0,     0,     0,     0,     0,    64,    22,
01060     66,    67,    68,    69,     0,     0,    71,    72,    73,    74,
01061     75,     0,    76,    77,    78,     0,   318,     0,     0,     0,
01062      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01063      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01064      0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
01065     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
01066     41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
01067     50,    51,    52,    53,    54,    55,   110,    57,    58,    59,
01068     60,     0,    61,    21,     0,     0,     0,     0,     0,     0,
01069      0,     0,     0,     0,    64,    22,    66,    67,    68,    69,
01070      0,     0,    71,    72,    73,    74,    75,   249,    76,    77,
01071     78,     0,   322,     0,     0,     0,     0,     0,     0,     0,
01072      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01073      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01074      0,     0,    27,    28,    29,    30,    31,    32,    33,    34,
01075     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
01076     45,     0,    46,    47,    48,    49,    50,    51,    52,    53,
01077     54,    55,   110,    57,    58,    59,    60,     0,    61,    21,
01078      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01079     64,    22,    66,    67,    68,    69,     0,     0,    71,    72,
01080     73,    74,    75,   249,    76,    77,    78,     0,   429,     0,
01081      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01082      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01083      0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
01084     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
01085     39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
01086     48,    49,    50,    51,    52,    53,    54,    55,   110,    57,
01087     58,    59,    60,     0,    61,    21,     0,     0,     0,     0,
01088      0,     0,     0,     0,     0,     0,    64,    22,    66,    67,
01089     68,    69,     0,     0,    71,    72,    73,    74,    75,   249,
01090     76,    77,    78,     0,   511,     0,     0,     0,     0,     0,
01091      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01092      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01093      0,     0,     0,     0,    27,    28,    29,    30,    31,    32,
01094     33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
01095     43,    44,    45,     0,    46,    47,    48,    49,    50,    51,
01096     52,    53,    54,    55,   110,    57,    58,    59,    60,    21,
01097     61,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01098      0,    22,    64,     0,    66,    67,    68,    69,     0,     0,
01099     71,    72,    73,    74,    75,   249,    76,    77,    78,     0,
01100      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01101      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01102      0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
01103     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
01104     39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
01105     48,    49,    50,    51,    52,    53,    54,    55,   110,    57,
01106     58,    59,    60,    21,    61,     0,     0,     0,     0,     0,
01107      0,     0,     0,     0,     0,    22,    64,     0,    66,    67,
01108     68,    69,     0,     0,    71,    72,    73,    74,    75,   249,
01109     76,    77,    78,     0,     0,     0,     0,     0,     0,     0,
01110      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01111      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01112      0,     0,    27,    28,    29,    30,    31,    32,    33,    34,
01113     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
01114     45,     0,    46,    47,    48,    49,    50,    51,    52,    53,
01115     54,    55,   110,    57,    58,    59,    60,    21,    61,     0,
01116      0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
01117     64,     0,    66,    67,    68,    69,     0,   266,    71,    72,
01118     73,    74,    75,     0,    76,    77,    78,     0,     0,     0,
01119      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01120      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01121      0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
01122     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
01123     41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
01124     50,    51,    52,    53,    54,    55,   110,    57,    58,    59,
01125     60,     0,    61,     0,     0,     0,     0,     0,    21,     0,
01126      0,     0,     0,     0,    64,     0,    66,    67,    68,    69,
01127     22,     0,    71,    72,    73,    74,    75,   435,    76,    77,
01128     78,     0,     0,     0,     0,   457,     0,     0,     0,     0,
01129      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01130      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01131      0,     0,     0,     0,     0,     0,     0,    27,    28,    29,
01132     30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
01133     40,    41,    42,    43,    44,    45,     0,    46,    47,    48,
01134     49,    50,    51,    52,    53,    54,    55,   110,    57,    58,
01135     59,    60,     0,    61,     0,     0,     0,     0,     0,    21,
01136      0,     0,     0,     0,     0,    64,     0,    66,    67,    68,
01137     69,    22,     0,    71,    72,    73,    74,    75,     0,    76,
01138     77,    78,     0,     0,     0,     0,   459,     0,     0,     0,
01139      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01140      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01141      0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
01142     29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
01143     39,    40,    41,    42,    43,    44,    45,     0,    46,    47,
01144     48,    49,    50,    51,    52,    53,    54,    55,   110,    57,
01145     58,    59,    60,    21,    61,     0,     0,     0,     0,     0,
01146      0,     0,     0,     0,     0,    22,    64,     0,    66,    67,
01147     68,    69,     0,     0,    71,    72,    73,    74,    75,     0,
01148     76,    77,    78,     0,     0,     0,     0,     0,     0,     0,
01149      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01150      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01151      0,   565,    27,    28,    29,    30,    31,    32,    33,    34,
01152     35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
01153     45,     0,    46,    47,    48,    49,    50,    51,    52,    53,
01154     54,    55,   110,    57,    58,    59,    60,    21,    61,     0,
01155      0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
01156     64,     0,    66,    67,    68,    69,     0,     0,    71,    72,
01157     73,    74,    75,     0,    76,    77,    78,     0,     0,     0,
01158      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01159      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01160      0,     0,     0,     0,     0,     0,    27,    28,    29,    30,
01161     31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
01162     41,    42,    43,    44,    45,     0,    46,    47,    48,    49,
01163     50,    51,    52,    53,    54,    55,   110,    57,    58,    59,
01164     60,     0,    61,     0,     0,     0,     0,     0,     0,     0,
01165      0,     0,     0,     0,    64,     0,    66,    67,    68,    69,
01166      0,     0,    71,    72,    73,    74,    75,     0,    76,    77,
01167     78,   158,     0,     0,   159,     0,     0,     0,   278,   279,
01168      0,     0,     0,     0,     0,     0,     0,     0,     9,   280,
01169    163,     0,     0,   281,     0,     0,     0,     0,   158,     0,
01170      0,   159,   166,     0,   320,   278,   279,     0,   282,   283,
01171    284,   285,     0,     0,     0,     9,   280,   163,     0,     0,
01172    281,     0,   286,   287,     0,     0,     0,   288,     0,   166,
01173      0,   379,     0,     0,     0,   282,   283,   284,   285,   158,
01174      0,     0,   159,     0,     0,     0,   278,   279,     0,   286,
01175    287,     0,     0,     0,   288,     0,     9,   280,   163,     0,
01176      0,   281,     0,     0,     0,     0,     0,     0,     0,     0,
01177    166,     0,   492,     0,   289,   290,   282,   283,   284,   285,
01178      0,   291,     0,     0,     0,     0,     0,     0,     0,     0,
01179    286,   287,     0,     0,     0,   288,   158,     0,     0,   159,
01180      0,   289,   290,   278,   279,     0,     0,     0,   291,     0,
01181      0,     0,     0,     9,   280,   163,     0,     0,   281,     0,
01182      0,     0,     0,     0,     0,     0,     0,   166,     0,     0,
01183      0,     0,     0,   282,   283,   284,   285,     0,     0,     0,
01184      0,     0,   289,   290,     0,     0,     0,   286,   287,   291,
01185      0,     0,   288,     0,     0,     0,     0,     0,     0,     0,
01186      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01187      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01188      0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
01189      0,     0,     0,     0,     0,     0,     0,     0,     0,   289,
01190    290,     0,     0,     0,     0,     0,   291
01191 };
01192 
01193 static const short yycheck[] = {    23,
01194      4,     8,    21,   124,   119,    99,   142,   143,     2,     3,
01195    308,   126,   214,   109,     8,   217,   299,    21,   184,    96,
01196     24,   136,    16,   278,   199,   238,   239,   207,    57,    23,
01197     16,    70,   287,   407,    14,   362,   294,   302,   303,   177,
01198      7,    14,   565,   576,   234,   139,   148,   149,     4,     3,
01199    216,    32,    60,   219,     7,    36,    24,   431,    10,    63,
01200     99,    65,   595,   253,    32,   598,     4,    34,   591,   165,
01201      6,     7,     8,    67,   332,    79,   109,   279,    51,    32,
01202    119,    75,    76,    37,   617,   114,    90,   126,   462,   524,
01203    228,   266,   294,   231,    98,   628,   104,   136,    10,    11,
01204    139,    37,   196,   142,   143,   109,   208,   209,   210,   211,
01205    104,     7,   395,    97,   108,    23,   551,   253,   445,   446,
01206    124,    10,    11,   117,     7,    37,   222,    35,   383,     7,
01207    110,   389,   165,   137,   138,   390,    32,    10,    11,   241,
01208    236,   237,   355,   356,   409,    31,   401,   243,    37,    32,
01209     33,    20,   526,    33,    32,     7,    25,   196,   413,    39,
01210     46,   155,     7,   182,    37,   169,   243,   161,   124,   155,
01211    164,     7,    14,   353,   213,   549,   550,   343,   182,   354,
01212     32,   137,   138,   385,   386,   387,   124,    32,   609,   222,
01213    611,     3,     6,     7,     8,    37,    32,   372,    10,   137,
01214    138,    10,   317,   236,   237,   301,   489,    10,    11,    10,
01215    243,   215,   619,    25,   253,   470,    25,     7,   222,   355,
01216    356,    35,    62,   630,    25,   438,     3,   401,    40,    41,
01217     42,    43,   236,   237,    35,   229,   230,   644,   340,   413,
01218    342,     3,    32,    20,     6,    25,    20,     3,    25,    11,
01219     12,    25,    14,     7,    10,     7,   358,   359,    20,    10,
01220     22,   559,   464,    25,    26,    27,    43,   271,   272,    25,
01221    274,   365,    34,   439,    25,   530,     7,    39,   317,   373,
01222     32,    37,     3,     7,    40,    41,    42,    43,     7,    40,
01223     41,    42,    43,    55,   374,    31,   376,    10,    11,    10,
01224    396,   397,   438,    10,    11,    11,    12,    20,    32,    22,
01225     21,     3,    25,    32,   569,     6,   355,   356,    10,   111,
01226     26,    34,    28,    29,    30,    31,   365,    40,    41,    42,
01227     43,   533,    38,    25,   373,   437,   538,     3,    10,    11,
01228      7,    54,    32,   382,    10,    37,    59,    37,    40,    41,
01229     42,    43,    10,   115,    10,   117,   111,   119,   120,    25,
01230     97,   123,   124,   125,   126,    32,   655,   656,   130,   131,
01231    374,    37,   376,    34,    40,    41,    42,    43,   667,    34,
01232    669,    10,   386,   387,     6,    10,    11,    10,    10,    11,
01233    592,    20,    20,   106,   107,   516,    25,    25,    20,   438,
01234    113,     6,   646,    25,   606,    10,   400,    35,   402,   403,
01235    612,   655,   656,   407,     3,    20,    24,     6,   670,   671,
01236     25,    10,    11,   667,    32,   669,   670,   671,    36,   523,
01237    434,    20,    21,    22,    23,   442,    25,   431,     3,     6,
01238     10,     6,    27,    10,    11,    34,    35,    10,   442,    27,
01239     32,    40,    41,    42,    43,    37,    32,    20,    25,   478,
01240    575,    37,    25,    37,   558,    54,    55,     6,   462,    53,
01241     59,    10,    11,    32,   478,    32,    32,    40,    41,    42,
01242     43,    37,    32,    32,   523,    23,    24,    37,    37,   528,
01243      3,    54,    27,     6,    32,    32,    59,    35,    11,    12,
01244     37,    14,   580,    32,     6,   544,    35,   585,     7,    22,
01245    142,   143,   516,    26,    75,    76,    33,   106,   107,   558,
01246     20,    34,   236,   237,   113,   529,    39,   391,   392,    75,
01247     76,    20,   526,    25,   538,    36,   575,    34,   111,   111,
01248     34,   545,    27,   106,   107,     8,   110,   554,    32,    37,
01249    113,   590,    20,    20,    32,   549,   550,    32,    37,     3,
01250    554,   565,     6,    32,    10,    10,    10,    11,    10,    10,
01251     31,    14,    10,     7,     7,    34,    20,    37,    22,    36,
01252    619,    25,    37,    37,    36,     7,    37,   591,    27,    25,
01253     34,   630,    27,     7,    31,   619,    40,    41,    42,    43,
01254     27,    27,   606,    34,   643,   644,   630,   646,    27,    34,
01255     54,   650,    35,    31,    27,    59,   655,   656,    58,   643,
01256    644,    51,    37,   647,    31,    31,   650,    32,   667,    32,
01257    669,   670,   671,     3,    10,    37,     6,    37,     8,    37,
01258     10,    11,    37,    27,    26,    32,    34,    37,     7,    35,
01259     20,    21,    22,    49,     7,    25,    60,    21,    37,    10,
01260      7,    46,   106,   107,    34,     7,    47,    61,    34,   113,
01261     40,    41,    42,    43,    52,    45,   105,    37,     7,     7,
01262     48,    35,     7,    35,    54,    55,    10,    10,    33,    59,
01263      7,    35,    25,    63,    64,    65,    66,    67,    68,    69,
01264     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
01265     80,    81,    82,    83,    84,    85,     8,    87,    88,    89,
01266     90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
01267    100,   101,     3,   103,    10,    10,   106,   107,     0,     0,
01268     86,     1,   372,   113,   124,   115,     4,   117,   118,   119,
01269    120,     4,   124,   123,   124,   125,   126,   127,   108,   129,
01270    130,   131,     3,   124,   104,     6,   222,     8,   217,    10,
01271     11,    11,    12,   237,   236,   460,   562,   590,   599,    20,
01272     21,    22,    22,   606,    25,   213,    26,   622,    28,    29,
01273     30,    31,   538,    34,    34,   272,   365,   355,    38,    40,
01274     41,    42,    43,    44,   225,   528,   299,   165,   294,   305,
01275    117,   243,    -1,    54,    55,    -1,    -1,    -1,    59,   243,
01276     -1,    -1,    -1,    64,    65,    66,    67,    68,    69,    70,
01277     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
01278     81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
01279     91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
01280    101,    -1,   103,    -1,    -1,   106,   107,    -1,    -1,    -1,
01281     -1,    -1,   113,    -1,   115,    -1,   117,   118,   119,   120,
01282     -1,    -1,   123,   124,   125,   126,   127,    -1,   129,   130,
01283    131,     3,    -1,    -1,     6,    -1,     8,    -1,    10,    11,
01284     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
01285     22,    -1,    -1,    25,    -1,    -1,    -1,    -1,    -1,    -1,
01286     -1,    -1,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,
01287     42,    43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01288     -1,    -1,    54,    55,    -1,    -1,    -1,    59,    -1,    -1,
01289     -1,    -1,    64,    65,    66,    67,    68,    69,    70,    71,
01290     72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
01291     82,    83,    84,    85,    -1,    87,    88,    89,    90,    91,
01292     92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
01293     -1,   103,    -1,    -1,   106,   107,    -1,    -1,    -1,    -1,
01294     -1,   113,    -1,   115,    -1,   117,   118,   119,   120,    -1,
01295     -1,   123,   124,   125,   126,   127,    -1,   129,   130,   131,
01296      3,    -1,    -1,     6,    -1,     8,    -1,    10,    11,    -1,
01297     -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,
01298     -1,    -1,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01299     -1,    34,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
01300     43,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01301     -1,    54,    55,    -1,    -1,    -1,    59,    -1,    -1,    -1,
01302     -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
01303     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
01304     83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
01305     93,    94,    95,    96,    97,    98,    99,   100,   101,    -1,
01306    103,    -1,    -1,   106,   107,    -1,    -1,    -1,    -1,    -1,
01307    113,    -1,   115,    -1,   117,   118,   119,   120,    -1,    -1,
01308    123,   124,   125,   126,   127,    -1,   129,   130,   131,     3,
01309     -1,    -1,     6,    -1,     8,    -1,    -1,    11,    12,    -1,
01310     14,    -1,    -1,    -1,    -1,    -1,    20,    -1,    22,    -1,
01311     -1,    -1,    26,    27,    -1,    -1,    -1,    -1,    -1,   115,
01312     34,   117,    -1,   119,   120,    39,    -1,   123,   124,   125,
01313    126,    -1,    -1,    -1,   130,   131,    -1,    -1,    -1,    -1,
01314     -1,    55,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01315     -1,    -1,    66,    67,    68,    69,    70,    71,    72,    73,
01316     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
01317     84,    85,    -1,    87,    88,    89,    90,    91,    92,    93,
01318     94,    95,    96,    97,    98,    99,   100,   101,     8,   103,
01319     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01320     20,   115,    -1,   117,   118,   119,   120,    -1,    -1,   123,
01321    124,   125,   126,   127,    -1,   129,   130,   131,    -1,    -1,
01322     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    48,    -1,
01323     50,    -1,    -1,    -1,    -1,    -1,    56,    -1,    -1,    -1,
01324     -1,    -1,    62,    -1,    -1,    -1,    -1,    67,    68,    69,
01325     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
01326     80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
01327     90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
01328    100,   101,    -1,   103,    -1,    -1,    -1,    -1,   108,    -1,
01329      8,    -1,   112,    -1,   114,   115,   116,   117,   118,   119,
01330    120,   121,    20,   123,   124,   125,   126,   127,    -1,   129,
01331    130,   131,   132,   133,   134,   135,    -1,    -1,    -1,    -1,
01332     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01333     48,    -1,    50,    -1,    -1,    -1,    -1,    -1,    56,    -1,
01334     -1,    -1,    -1,    -1,    62,    -1,    -1,    -1,    -1,    67,
01335     68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
01336     78,    79,    80,    81,    82,    83,    84,    85,    -1,    87,
01337     88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
01338     98,    99,   100,   101,     8,   103,    -1,    -1,    -1,    -1,
01339    108,    -1,    -1,    -1,   112,    -1,    20,   115,   116,   117,
01340    118,   119,   120,   121,    -1,   123,   124,   125,   126,   127,
01341     -1,   129,   130,   131,   132,   133,   134,   135,    -1,    -1,
01342     -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,
01343     -1,    -1,    56,    -1,    -1,    -1,    -1,    -1,    62,    -1,
01344     -1,    -1,    -1,    67,    68,    69,    70,    71,    72,    73,
01345     74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
01346     84,    85,    -1,    87,    88,    89,    90,    91,    92,    93,
01347     94,    95,    96,    97,    98,    99,   100,   101,    -1,   103,
01348     -1,    -1,    -1,    -1,    -1,     8,    -1,    -1,   112,    -1,
01349     -1,   115,   116,   117,   118,   119,   120,    20,    -1,   123,
01350    124,   125,   126,   127,    -1,   129,   130,   131,   132,   133,
01351    134,   135,    35,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01352     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01353     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01354     -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
01355     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
01356     83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
01357     93,    94,    95,    96,    97,    98,    99,   100,   101,     6,
01358    103,     8,    -1,    10,    11,    -1,    -1,    -1,    -1,    -1,
01359     -1,    -1,   115,    20,   117,   118,   119,   120,    25,    -1,
01360    123,   124,   125,   126,   127,    -1,   129,   130,   131,    -1,
01361    133,   134,   135,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01362     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01363     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01364     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
01365     77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
01366     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
01367     97,    98,    99,   100,   101,     6,   103,     8,    -1,    10,
01368     11,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    20,
01369    117,   118,   119,   120,    -1,    -1,   123,   124,   125,   126,
01370    127,   128,   129,   130,   131,    -1,    -1,    -1,    -1,    -1,
01371     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01372     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01373     -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
01374     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
01375     81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
01376     91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
01377    101,     8,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01378     -1,    -1,    -1,    20,   115,    -1,   117,   118,   119,   120,
01379     -1,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
01380    131,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01381     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01382     -1,    -1,    -1,    -1,    -1,    -1,    -1,    64,    65,    -1,
01383     67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
01384     77,    78,    79,    80,    81,    82,    83,    84,    85,    -1,
01385     87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
01386     97,    98,    99,   100,   101,    -1,   103,     8,    -1,    -1,
01387     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   115,    20,
01388    117,   118,   119,   120,    -1,    -1,   123,   124,   125,   126,
01389    127,    -1,   129,   130,   131,    -1,    37,    -1,    -1,    -1,
01390     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01391     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01392     -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
01393     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
01394     81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
01395     91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
01396    101,    -1,   103,     8,    -1,    -1,    -1,    -1,    -1,    -1,
01397     -1,    -1,    -1,    -1,   115,    20,   117,   118,   119,   120,
01398     -1,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
01399    131,    -1,    37,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01400     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01401     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01402     -1,    -1,    67,    68,    69,    70,    71,    72,    73,    74,
01403     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
01404     85,    -1,    87,    88,    89,    90,    91,    92,    93,    94,
01405     95,    96,    97,    98,    99,   100,   101,    -1,   103,     8,
01406     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01407    115,    20,   117,   118,   119,   120,    -1,    -1,   123,   124,
01408    125,   126,   127,   128,   129,   130,   131,    -1,    37,    -1,
01409     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01410     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01411     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
01412     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
01413     79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
01414     89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
01415     99,   100,   101,    -1,   103,     8,    -1,    -1,    -1,    -1,
01416     -1,    -1,    -1,    -1,    -1,    -1,   115,    20,   117,   118,
01417    119,   120,    -1,    -1,   123,   124,   125,   126,   127,   128,
01418    129,   130,   131,    -1,    37,    -1,    -1,    -1,    -1,    -1,
01419     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01420     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01421     -1,    -1,    -1,    -1,    67,    68,    69,    70,    71,    72,
01422     73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
01423     83,    84,    85,    -1,    87,    88,    89,    90,    91,    92,
01424     93,    94,    95,    96,    97,    98,    99,   100,   101,     8,
01425    103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01426     -1,    20,   115,    -1,   117,   118,   119,   120,    -1,    -1,
01427    123,   124,   125,   126,   127,   128,   129,   130,   131,    -1,
01428     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01429     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01430     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
01431     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
01432     79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
01433     89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
01434     99,   100,   101,     8,   103,    -1,    -1,    -1,    -1,    -1,
01435     -1,    -1,    -1,    -1,    -1,    20,   115,    -1,   117,   118,
01436    119,   120,    -1,    -1,   123,   124,   125,   126,   127,   128,
01437    129,   130,   131,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01438     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01439     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01440     -1,    -1,    67,    68,    69,    70,    71,    72,    73,    74,
01441     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
01442     85,    -1,    87,    88,    89,    90,    91,    92,    93,    94,
01443     95,    96,    97,    98,    99,   100,   101,     8,   103,    -1,
01444     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
01445    115,    -1,   117,   118,   119,   120,    -1,   122,   123,   124,
01446    125,   126,   127,    -1,   129,   130,   131,    -1,    -1,    -1,
01447     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01448     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01449     -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
01450     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
01451     81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
01452     91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
01453    101,    -1,   103,    -1,    -1,    -1,    -1,    -1,     8,    -1,
01454     -1,    -1,    -1,    -1,   115,    -1,   117,   118,   119,   120,
01455     20,    -1,   123,   124,   125,   126,   127,   128,   129,   130,
01456    131,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,    -1,
01457     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01458     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01459     -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,
01460     70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
01461     80,    81,    82,    83,    84,    85,    -1,    87,    88,    89,
01462     90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
01463    100,   101,    -1,   103,    -1,    -1,    -1,    -1,    -1,     8,
01464     -1,    -1,    -1,    -1,    -1,   115,    -1,   117,   118,   119,
01465    120,    20,    -1,   123,   124,   125,   126,   127,    -1,   129,
01466    130,   131,    -1,    -1,    -1,    -1,    35,    -1,    -1,    -1,
01467     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01468     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01469     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    67,    68,
01470     69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
01471     79,    80,    81,    82,    83,    84,    85,    -1,    87,    88,
01472     89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
01473     99,   100,   101,     8,   103,    -1,    -1,    -1,    -1,    -1,
01474     -1,    -1,    -1,    -1,    -1,    20,   115,    -1,   117,   118,
01475    119,   120,    -1,    -1,   123,   124,   125,   126,   127,    -1,
01476    129,   130,   131,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01477     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01478     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01479     -1,    66,    67,    68,    69,    70,    71,    72,    73,    74,
01480     75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
01481     85,    -1,    87,    88,    89,    90,    91,    92,    93,    94,
01482     95,    96,    97,    98,    99,   100,   101,     8,   103,    -1,
01483     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,
01484    115,    -1,   117,   118,   119,   120,    -1,    -1,   123,   124,
01485    125,   126,   127,    -1,   129,   130,   131,    -1,    -1,    -1,
01486     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01487     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01488     -1,    -1,    -1,    -1,    -1,    -1,    67,    68,    69,    70,
01489     71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
01490     81,    82,    83,    84,    85,    -1,    87,    88,    89,    90,
01491     91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
01492    101,    -1,   103,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01493     -1,    -1,    -1,    -1,   115,    -1,   117,   118,   119,   120,
01494     -1,    -1,   123,   124,   125,   126,   127,    -1,   129,   130,
01495    131,     3,    -1,    -1,     6,    -1,    -1,    -1,    10,    11,
01496     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    20,    21,
01497     22,    -1,    -1,    25,    -1,    -1,    -1,    -1,     3,    -1,
01498     -1,     6,    34,    -1,    36,    10,    11,    -1,    40,    41,
01499     42,    43,    -1,    -1,    -1,    20,    21,    22,    -1,    -1,
01500     25,    -1,    54,    55,    -1,    -1,    -1,    59,    -1,    34,
01501     -1,    36,    -1,    -1,    -1,    40,    41,    42,    43,     3,
01502     -1,    -1,     6,    -1,    -1,    -1,    10,    11,    -1,    54,
01503     55,    -1,    -1,    -1,    59,    -1,    20,    21,    22,    -1,
01504     -1,    25,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01505     34,    -1,    36,    -1,   106,   107,    40,    41,    42,    43,
01506     -1,   113,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01507     54,    55,    -1,    -1,    -1,    59,     3,    -1,    -1,     6,
01508     -1,   106,   107,    10,    11,    -1,    -1,    -1,   113,    -1,
01509     -1,    -1,    -1,    20,    21,    22,    -1,    -1,    25,    -1,
01510     -1,    -1,    -1,    -1,    -1,    -1,    -1,    34,    -1,    -1,
01511     -1,    -1,    -1,    40,    41,    42,    43,    -1,    -1,    -1,
01512     -1,    -1,   106,   107,    -1,    -1,    -1,    54,    55,   113,
01513     -1,    -1,    59,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01514     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01515     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01516     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
01517     -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   106,
01518    107,    -1,    -1,    -1,    -1,    -1,   113
01519 };
01520 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
01521 #line 3 "/af10/evans/bison-1.28/share/bison.simple"
01522 /* This file comes from bison-1.28.  */
01523 
01524 /* Skeleton output parser for bison,
01525    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
01526 
01527    This program is free software; you can redistribute it and/or modify
01528    it under the terms of the GNU General Public License as published by
01529    the Free Software Foundation; either version 2, or (at your option)
01530    any later version.
01531 
01532    This program is distributed in the hope that it will be useful,
01533    but WITHOUT ANY WARRANTY; without even the implied warranty of
01534    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
01535    GNU General Public License for more details.
01536 
01537    You should have received a copy of the GNU General Public License
01538    along with this program; if not, write to the Free Software
01539    Foundation, Inc., 59 Temple Place - Suite 330,
01540    Boston, MA 02111-1307, USA.  */
01541 
01542 /* As a special exception, when this file is copied by Bison into a
01543    Bison output file, you may use that output file without restriction.
01544    This special exception was added by the Free Software Foundation
01545    in version 1.24 of Bison.  */
01546 
01547 /* This is the parser code that is written into each bison parser
01548   when the %semantic_parser declaration is not specified in the grammar.
01549   It was written by Richard Stallman by simplifying the hairy parser
01550   used when %semantic_parser is specified.  */
01551 
01552 #ifndef YYSTACK_USE_ALLOCA
01553 #ifdef alloca
01554 #define YYSTACK_USE_ALLOCA
01555 #else /* alloca not defined */
01556 #ifdef __GNUC__
01557 #define YYSTACK_USE_ALLOCA
01558 #define alloca __builtin_alloca
01559 #else /* not GNU C.  */
01560 #if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
01561 #define YYSTACK_USE_ALLOCA
01562 #include <alloca.h>
01563 #else /* not sparc */
01564 /* We think this test detects Watcom and Microsoft C.  */
01565 /* This used to test MSDOS, but that is a bad idea
01566    since that symbol is in the user namespace.  */
01567 #if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
01568 #if 0 /* No need for malloc.h, which pollutes the namespace;
01569          instead, just don't use alloca.  */
01570 #include <malloc.h>
01571 #endif
01572 #else /* not MSDOS, or __TURBOC__ */
01573 #if defined(_AIX)
01574 /* I don't know what this was needed for, but it pollutes the namespace.
01575    So I turned it off.   rms, 2 May 1997.  */
01576 /* #include <malloc.h>  */
01577  #pragma alloca
01578 #define YYSTACK_USE_ALLOCA
01579 #else /* not MSDOS, or __TURBOC__, or _AIX */
01580 #if 0
01581 #ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
01582                  and on HPUX 10.  Eventually we can turn this on.  */
01583 #define YYSTACK_USE_ALLOCA
01584 #define alloca __builtin_alloca
01585 #endif /* __hpux */
01586 #endif
01587 #endif /* not _AIX */
01588 #endif /* not MSDOS, or __TURBOC__ */
01589 #endif /* not sparc */
01590 #endif /* not GNU C */
01591 #endif /* alloca not defined */
01592 #endif /* YYSTACK_USE_ALLOCA not defined */
01593 
01594 #ifdef YYSTACK_USE_ALLOCA
01595 #define YYSTACK_ALLOC alloca
01596 #else
01597 #define YYSTACK_ALLOC malloc
01598 #endif
01599 
01600 /* Note: there must be only one dollar sign in this file.
01601    It is replaced by the list of actions, each action
01602    as one case of the switch.  */
01603 
01604 #define yyerrok         (yyerrstatus = 0)
01605 #define yyclearin       (yychar = YYEMPTY)
01606 #define YYEMPTY         -2
01607 #define YYEOF           0
01608 #define YYACCEPT        goto yyacceptlab
01609 #define YYABORT         goto yyabortlab
01610 #define YYERROR         goto yyerrlab1
01611 /* Like YYERROR except do call yyerror.
01612    This remains here temporarily to ease the
01613    transition to the new meaning of YYERROR, for GCC.
01614    Once GCC version 2 has supplanted version 1, this can go.  */
01615 #define YYFAIL          goto yyerrlab
01616 #define YYRECOVERING()  (!!yyerrstatus)
01617 #define YYBACKUP(token, value) \
01618 do                                                              \
01619   if (yychar == YYEMPTY && yylen == 1)                          \
01620     { yychar = (token), yylval = (value);                       \
01621       yychar1 = YYTRANSLATE (yychar);                           \
01622       YYPOPSTACK;                                               \
01623       goto yybackup;                                            \
01624     }                                                           \
01625   else                                                          \
01626     { yyerror ("syntax error: cannot back up"); YYERROR; }      \
01627 while (0)
01628 
01629 #define YYTERROR        1
01630 #define YYERRCODE       256
01631 
01632 #ifndef YYPURE
01633 #define YYLEX           yylex()
01634 #endif
01635 
01636 #ifdef YYPURE
01637 #ifdef YYLSP_NEEDED
01638 #ifdef YYLEX_PARAM
01639 #define YYLEX           yylex(&yylval, &yylloc, YYLEX_PARAM)
01640 #else
01641 #define YYLEX           yylex(&yylval, &yylloc)
01642 #endif
01643 #else /* not YYLSP_NEEDED */
01644 #ifdef YYLEX_PARAM
01645 #define YYLEX           yylex(&yylval, YYLEX_PARAM)
01646 #else
01647 #define YYLEX           yylex(&yylval)
01648 #endif
01649 #endif /* not YYLSP_NEEDED */
01650 #endif
01651 
01652 /* If nonreentrant, generate the variables here */
01653 
01654 #ifndef YYPURE
01655 
01656 int     yychar;                 /*  the lookahead symbol                */
01657 YYSTYPE yylval;                 /*  the semantic value of the           */
01658                                 /*  lookahead symbol                    */
01659 
01660 #ifdef YYLSP_NEEDED
01661 YYLTYPE yylloc;                 /*  location data for the lookahead     */
01662                                 /*  symbol                              */
01663 #endif
01664 
01665 int yynerrs;                    /*  number of parse errors so far       */
01666 #endif  /* not YYPURE */
01667 
01668 #if YYDEBUG != 0
01669 int yydebug;                    /*  nonzero means print parse trace     */
01670 /* Since this is uninitialized, it does not stop multiple parsers
01671    from coexisting.  */
01672 #endif
01673 
01674 /*  YYINITDEPTH indicates the initial size of the parser's stacks       */
01675 
01676 #ifndef YYINITDEPTH
01677 #define YYINITDEPTH 200
01678 #endif
01679 
01680 /*  YYMAXDEPTH is the maximum size the stacks can grow to
01681     (effective only if the built-in stack extension method is used).  */
01682 
01683 #if YYMAXDEPTH == 0
01684 #undef YYMAXDEPTH
01685 #endif
01686 
01687 #ifndef YYMAXDEPTH
01688 #define YYMAXDEPTH 10000
01689 #endif
01690 
01691 /* Define __yy_memcpy.  Note that the size argument
01692    should be passed with type unsigned int, because that is what the non-GCC
01693    definitions require.  With GCC, __builtin_memcpy takes an arg
01694    of type size_t, but it can handle unsigned int.  */
01695 
01696 #if __GNUC__ > 1                /* GNU C and GNU C++ define this.  */
01697 #define __yy_memcpy(TO,FROM,COUNT)      __builtin_memcpy(TO,FROM,COUNT)
01698 #else                           /* not GNU C or C++ */
01699 #ifndef __cplusplus
01700 
01701 /* This is the most reliable way to avoid incompatibilities
01702    in available built-in functions on various systems.  */
01703 static void
01704 __yy_memcpy (to, from, count)
01705      char *to;
01706      char *from;
01707      unsigned int count;
01708 {
01709   register char *f = from;
01710   register char *t = to;
01711   register int i = count;
01712 
01713   while (i-- > 0)
01714     *t++ = *f++;
01715 }
01716 
01717 #else /* __cplusplus */
01718 
01719 /* This is the most reliable way to avoid incompatibilities
01720    in available built-in functions on various systems.  */
01721 static void
01722 __yy_memcpy (char *to, char *from, unsigned int count)
01723 {
01724   register char *t = to;
01725   register char *f = from;
01726   register int i = count;
01727 
01728   while (i-- > 0)
01729     *t++ = *f++;
01730 }
01731 
01732 #endif
01733 #endif
01734 
01735 #line 217 "/af10/evans/bison-1.28/share/bison.simple"
01736 
01737 /* The user can define YYPARSE_PARAM as the name of an argument to be passed
01738    into yyparse.  The argument should have type void *.
01739    It should actually point to an object.
01740    Grammar actions can access the variable by casting it
01741    to the proper pointer type.  */
01742 
01743 #ifdef YYPARSE_PARAM
01744 #ifdef __cplusplus
01745 #define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
01746 #define YYPARSE_PARAM_DECL
01747 #else /* not __cplusplus */
01748 #define YYPARSE_PARAM_ARG YYPARSE_PARAM
01749 #define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
01750 #endif /* not __cplusplus */
01751 #else /* not YYPARSE_PARAM */
01752 #define YYPARSE_PARAM_ARG
01753 #define YYPARSE_PARAM_DECL
01754 #endif /* not YYPARSE_PARAM */
01755 
01756 /* Prevent warning if -Wstrict-prototypes.  */
01757 #ifdef __GNUC__
01758 #ifdef YYPARSE_PARAM
01759 int yyparse (void *);
01760 #else
01761 int yyparse (void);
01762 #endif
01763 #endif
01764 
01765 int
01766 yyparse(YYPARSE_PARAM_ARG)
01767      YYPARSE_PARAM_DECL
01768 {
01769   register int yystate;
01770   register int yyn;
01771   register short *yyssp;
01772   register YYSTYPE *yyvsp;
01773   int yyerrstatus;      /*  number of tokens to shift before error messages enabled */
01774   int yychar1 = 0;              /*  lookahead token as an internal (translated) token number */
01775 
01776   short yyssa[YYINITDEPTH];     /*  the state stack                     */
01777   YYSTYPE yyvsa[YYINITDEPTH];   /*  the semantic value stack            */
01778 
01779   short *yyss = yyssa;          /*  refer to the stacks thru separate pointers */
01780   YYSTYPE *yyvs = yyvsa;        /*  to allow yyoverflow to reallocate them elsewhere */
01781 
01782 #ifdef YYLSP_NEEDED
01783   YYLTYPE yylsa[YYINITDEPTH];   /*  the location stack                  */
01784   YYLTYPE *yyls = yylsa;
01785   YYLTYPE *yylsp;
01786 
01787 #define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
01788 #else
01789 #define YYPOPSTACK   (yyvsp--, yyssp--)
01790 #endif
01791 
01792   int yystacksize = YYINITDEPTH;
01793   int yyfree_stacks = 0;
01794 
01795 #ifdef YYPURE
01796   int yychar;
01797   YYSTYPE yylval;
01798   int yynerrs;
01799 #ifdef YYLSP_NEEDED
01800   YYLTYPE yylloc;
01801 #endif
01802 #endif
01803 
01804   YYSTYPE yyval;                /*  the variable used to return         */
01805                                 /*  semantic values from the action     */
01806                                 /*  routines                            */
01807 
01808   int yylen;
01809 
01810 #if YYDEBUG != 0
01811   if (yydebug)
01812     fprintf(stderr, "Starting parse\n");
01813 #endif
01814 
01815   yystate = 0;
01816   yyerrstatus = 0;
01817   yynerrs = 0;
01818   yychar = YYEMPTY;             /* Cause a token to be read.  */
01819 
01820   /* Initialize stack pointers.
01821      Waste one element of value and location stack
01822      so that they stay on the same level as the state stack.
01823      The wasted elements are never initialized.  */
01824 
01825   yyssp = yyss - 1;
01826   yyvsp = yyvs;
01827 #ifdef YYLSP_NEEDED
01828   yylsp = yyls;
01829 #endif
01830 
01831 /* Push a new state, which is found in  yystate  .  */
01832 /* In all cases, when you get here, the value and location stacks
01833    have just been pushed. so pushing a state here evens the stacks.  */
01834 yynewstate:
01835 
01836   *++yyssp = yystate;
01837 
01838   if (yyssp >= yyss + yystacksize - 1)
01839     {
01840       /* Give user a chance to reallocate the stack */
01841       /* Use copies of these so that the &'s don't force the real ones into memory. */
01842       YYSTYPE *yyvs1 = yyvs;
01843       short *yyss1 = yyss;
01844 #ifdef YYLSP_NEEDED
01845       YYLTYPE *yyls1 = yyls;
01846 #endif
01847 
01848       /* Get the current used size of the three stacks, in elements.  */
01849       int size = yyssp - yyss + 1;
01850 
01851 #ifdef yyoverflow
01852       /* Each stack pointer address is followed by the size of
01853          the data in use in that stack, in bytes.  */
01854 #ifdef YYLSP_NEEDED
01855       /* This used to be a conditional around just the two extra args,
01856          but that might be undefined if yyoverflow is a macro.  */
01857       yyoverflow("parser stack overflow",
01858                  &yyss1, size * sizeof (*yyssp),
01859                  &yyvs1, size * sizeof (*yyvsp),
01860                  &yyls1, size * sizeof (*yylsp),
01861                  &yystacksize);
01862 #else
01863       yyoverflow("parser stack overflow",
01864                  &yyss1, size * sizeof (*yyssp),
01865                  &yyvs1, size * sizeof (*yyvsp),
01866                  &yystacksize);
01867 #endif
01868 
01869       yyss = yyss1; yyvs = yyvs1;
01870 #ifdef YYLSP_NEEDED
01871       yyls = yyls1;
01872 #endif
01873 #else /* no yyoverflow */
01874       /* Extend the stack our own way.  */
01875       if (yystacksize >= YYMAXDEPTH)
01876         {
01877           yyerror("parser stack overflow");
01878           if (yyfree_stacks)
01879             {
01880               free (yyss);
01881               free (yyvs);
01882 #ifdef YYLSP_NEEDED
01883               free (yyls);
01884 #endif
01885             }
01886           return 2;
01887         }
01888       yystacksize *= 2;
01889       if (yystacksize > YYMAXDEPTH)
01890         yystacksize = YYMAXDEPTH;
01891 #ifndef YYSTACK_USE_ALLOCA
01892       yyfree_stacks = 1;
01893 #endif
01894       yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
01895       __yy_memcpy ((char *)yyss, (char *)yyss1,
01896                    size * (unsigned int) sizeof (*yyssp));
01897       yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
01898       __yy_memcpy ((char *)yyvs, (char *)yyvs1,
01899                    size * (unsigned int) sizeof (*yyvsp));
01900 #ifdef YYLSP_NEEDED
01901       yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
01902       __yy_memcpy ((char *)yyls, (char *)yyls1,
01903                    size * (unsigned int) sizeof (*yylsp));
01904 #endif
01905 #endif /* no yyoverflow */
01906 
01907       yyssp = yyss + size - 1;
01908       yyvsp = yyvs + size - 1;
01909 #ifdef YYLSP_NEEDED
01910       yylsp = yyls + size - 1;
01911 #endif
01912 
01913 #if YYDEBUG != 0
01914       if (yydebug)
01915         fprintf(stderr, "Stack size increased to %d\n", yystacksize);
01916 #endif
01917 
01918       if (yyssp >= yyss + yystacksize - 1)
01919         YYABORT;
01920     }
01921 
01922 #if YYDEBUG != 0
01923   if (yydebug)
01924     fprintf(stderr, "Entering state %d\n", yystate);
01925 #endif
01926 
01927   goto yybackup;
01928  yybackup:
01929 
01930 /* Do appropriate processing given the current state.  */
01931 /* Read a lookahead token if we need one and don't already have one.  */
01932 /* yyresume: */
01933 
01934   /* First try to decide what to do without reference to lookahead token.  */
01935 
01936   yyn = yypact[yystate];
01937   if (yyn == YYFLAG)
01938     goto yydefault;
01939 
01940   /* Not known => get a lookahead token if don't already have one.  */
01941 
01942   /* yychar is either YYEMPTY or YYEOF
01943      or a valid token in external form.  */
01944 
01945   if (yychar == YYEMPTY)
01946     {
01947 #if YYDEBUG != 0
01948       if (yydebug)
01949         fprintf(stderr, "Reading a token: ");
01950 #endif
01951       yychar = YYLEX;
01952     }
01953 
01954   /* Convert token to internal form (in yychar1) for indexing tables with */
01955 
01956   if (yychar <= 0)              /* This means end of input. */
01957     {
01958       yychar1 = 0;
01959       yychar = YYEOF;           /* Don't call YYLEX any more */
01960 
01961 #if YYDEBUG != 0
01962       if (yydebug)
01963         fprintf(stderr, "Now at end of input.\n");
01964 #endif
01965     }
01966   else
01967     {
01968       yychar1 = YYTRANSLATE(yychar);
01969 
01970 #if YYDEBUG != 0
01971       if (yydebug)
01972         {
01973           fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
01974           /* Give the individual parser a way to print the precise meaning
01975              of a token, for further debugging info.  */
01976 #ifdef YYPRINT
01977           YYPRINT (stderr, yychar, yylval);
01978 #endif
01979           fprintf (stderr, ")\n");
01980         }
01981 #endif
01982     }
01983 
01984   yyn += yychar1;
01985   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
01986     goto yydefault;
01987 
01988   yyn = yytable[yyn];
01989 
01990   /* yyn is what to do for this token type in this state.
01991      Negative => reduce, -yyn is rule number.
01992      Positive => shift, yyn is new state.
01993        New state is final state => don't bother to shift,
01994        just return success.
01995      0, or most negative number => error.  */
01996 
01997   if (yyn < 0)
01998     {
01999       if (yyn == YYFLAG)
02000         goto yyerrlab;
02001       yyn = -yyn;
02002       goto yyreduce;
02003     }
02004   else if (yyn == 0)
02005     goto yyerrlab;
02006 
02007   if (yyn == YYFINAL)
02008     YYACCEPT;
02009 
02010   /* Shift the lookahead token.  */
02011 
02012 #if YYDEBUG != 0
02013   if (yydebug)
02014     fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
02015 #endif
02016 
02017   /* Discard the token being shifted unless it is eof.  */
02018   if (yychar != YYEOF)
02019     yychar = YYEMPTY;
02020 
02021   *++yyvsp = yylval;
02022 #ifdef YYLSP_NEEDED
02023   *++yylsp = yylloc;
02024 #endif
02025 
02026   /* count tokens shifted since error; after three, turn off error status.  */
02027   if (yyerrstatus) yyerrstatus--;
02028 
02029   yystate = yyn;
02030   goto yynewstate;
02031 
02032 /* Do the default action for the current state.  */
02033 yydefault:
02034 
02035   yyn = yydefact[yystate];
02036   if (yyn == 0)
02037     goto yyerrlab;
02038 
02039 /* Do a reduction.  yyn is the number of a rule to reduce with.  */
02040 yyreduce:
02041   yylen = yyr2[yyn];
02042   if (yylen > 0)
02043     yyval = yyvsp[1-yylen]; /* implement default value of the action */
02044 
02045 #if YYDEBUG != 0
02046   if (yydebug)
02047     {
02048       int i;
02049 
02050       fprintf (stderr, "Reducing via rule %d (line %d), ",
02051                yyn, yyrline[yyn]);
02052 
02053       /* Print the symbols being reduced, and their result.  */
02054       for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
02055         fprintf (stderr, "%s ", yytname[yyrhs[i]]);
02056       fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
02057     }
02058 #endif
02059 
02060 
02061   switch (yyn) {
02062 
02063 case 1:
02064 #line 382 "llgrammar.y"
02065 { lhExternals (yyvsp[0].interfacelist); ;
02066     break;}
02067 case 2:
02068 #line 383 "llgrammar.y"
02069 { interfaceNodeList_free (yyvsp[-2].interfacelist); interfaceNodeList_free (yyvsp[0].interfacelist); ;
02070     break;}
02071 case 3:
02072 #line 386 "llgrammar.y"
02073 { yyval.interfacelist = interfaceNodeList_new (); ;
02074     break;}
02075 case 4:
02076 #line 387 "llgrammar.y"
02077 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
02078     break;}
02079 case 7:
02080 #line 394 "llgrammar.y"
02081 { yyval.interfacelist = interfaceNodeList_new (); ;
02082     break;}
02083 case 8:
02084 #line 395 "llgrammar.y"
02085 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
02086     break;}
02087 case 9:
02088 #line 396 "llgrammar.y"
02089 { yyval.interfacelist = consInterfaceNode (yyvsp[-1].iface, yyvsp[0].interfacelist);;
02090     break;}
02091 case 10:
02092 #line 399 "llgrammar.y"
02093 { yyval.interfacelist = interfaceNodeList_new (); ;
02094     break;}
02095 case 11:
02096 #line 400 "llgrammar.y"
02097 { yyval.interfacelist = interfaceNodeList_addh (yyvsp[-1].interfacelist, yyvsp[0].iface);;
02098     break;}
02099 case 15:
02100 #line 409 "llgrammar.y"
02101 { yyval.iface = makeInterfaceNodeImports (yyvsp[-1].importlist);
02102      /* assume subspecs are already processed, symbol table info in external file */
02103    ;
02104     break;}
02105 case 16:
02106 #line 415 "llgrammar.y"
02107 { yyval.iface = makeInterfaceNodeUses (yyvsp[-1].traitreflist); readlsignatures (yyval.iface);;
02108     break;}
02109 case 17:
02110 #line 419 "llgrammar.y"
02111 { declareConstant (yyvsp[0].constdeclaration); yyval.iface = interfaceNode_makeConst (yyvsp[0].constdeclaration); ;
02112     break;}
02113 case 18:
02114 #line 421 "llgrammar.y"
02115 { declareVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makeVar (yyvsp[0].vardeclaration); ;
02116     break;}
02117 case 19:
02118 #line 423 "llgrammar.y"
02119 { declareType (yyvsp[0].type); yyval.iface = interfaceNode_makeType (yyvsp[0].type); ;
02120     break;}
02121 case 20:
02122 #line 425 "llgrammar.y"
02123 { declareFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makeFcn (yyvsp[0].fcn); ;
02124     break;}
02125 case 21:
02126 #line 427 "llgrammar.y"
02127 { yyval.iface = interfaceNode_makeClaim (yyvsp[0].claim); ;
02128     break;}
02129 case 22:
02130 #line 429 "llgrammar.y"
02131 { declareIter (yyvsp[0].iter); yyval.iface = interfaceNode_makeIter (yyvsp[0].iter); ;
02132     break;}
02133 case 23:
02134 #line 433 "llgrammar.y"
02135 { yyval.iter = makeIterNode (yyvsp[-4].ltok, yyvsp[-2].paramlist); ;
02136     break;}
02137 case 24:
02138 #line 436 "llgrammar.y"
02139 { yyval.paramlist = paramNodeList_new (); ;
02140     break;}
02141 case 25:
02142 #line 437 "llgrammar.y"
02143 { yyval.paramlist = yyvsp[0].paramlist; ;
02144     break;}
02145 case 26:
02146 #line 441 "llgrammar.y"
02147 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), yyvsp[0].param); ;
02148     break;}
02149 case 27:
02150 #line 443 "llgrammar.y"
02151 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist,yyvsp[0].param); ;
02152     break;}
02153 case 28:
02154 #line 446 "llgrammar.y"
02155 { yyval.param = markYieldParamNode (yyvsp[0].param); ;
02156     break;}
02157 case 29:
02158 #line 447 "llgrammar.y"
02159 { yyval.param = yyvsp[0].param; ;
02160     break;}
02161 case 30:
02162 #line 450 "llgrammar.y"
02163 { symtable_export (g_symtab, FALSE); ;
02164     break;}
02165 case 31:
02166 #line 451 "llgrammar.y"
02167 { yyval.iface = yyvsp[0].iface; symtable_export (g_symtab, TRUE); ;
02168     break;}
02169 case 32:
02170 #line 455 "llgrammar.y"
02171 { declarePrivConstant (yyvsp[0].constdeclaration); yyval.iface =  interfaceNode_makePrivConst (yyvsp[0].constdeclaration); ;
02172     break;}
02173 case 33:
02174 #line 457 "llgrammar.y"
02175 { declarePrivVar (yyvsp[0].vardeclaration); yyval.iface = interfaceNode_makePrivVar (yyvsp[0].vardeclaration); ;
02176     break;}
02177 case 34:
02178 #line 459 "llgrammar.y"
02179 { declarePrivType (yyvsp[0].type); yyval.iface = interfaceNode_makePrivType (yyvsp[0].type); ;
02180     break;}
02181 case 35:
02182 #line 461 "llgrammar.y"
02183 { declarePrivFcn (yyvsp[0].fcn, typeId_invalid); yyval.iface = interfaceNode_makePrivFcn (yyvsp[0].fcn); ;
02184     break;}
02185 case 36:
02186 #line 465 "llgrammar.y"
02187 { yyval.constdeclaration = makeConstDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls); ;
02188     break;}
02189 case 37:
02190 #line 469 "llgrammar.y"
02191 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_NONE; ;
02192     break;}
02193 case 38:
02194 #line 471 "llgrammar.y"
02195 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_CONST; ;
02196     break;}
02197 case 39:
02198 #line 473 "llgrammar.y"
02199 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, FALSE); yyval.vardeclaration->qualifier = QLF_VOLATILE; ;
02200     break;}
02201 case 40:
02202 #line 476 "llgrammar.y"
02203 { yyval.type = makeAbstractTypeNode (yyvsp[0].abstract); ;
02204     break;}
02205 case 41:
02206 #line 477 "llgrammar.y"
02207 { yyval.type = makeExposedTypeNode (yyvsp[0].exposed); ;
02208     break;}
02209 case 42:
02210 #line 480 "llgrammar.y"
02211 { yyval.typequal = qual_createPrintfLike (); ;
02212     break;}
02213 case 43:
02214 #line 481 "llgrammar.y"
02215 { yyval.typequal = qual_createScanfLike (); ;
02216     break;}
02217 case 44:
02218 #line 482 "llgrammar.y"
02219 { yyval.typequal = qual_createMessageLike (); ;
02220     break;}
02221 case 45:
02222 #line 485 "llgrammar.y"
02223 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
02224     break;}
02225 case 46:
02226 #line 487 "llgrammar.y"
02227 { yyval.fcn = makeFcnNode (qual_createUnknown (), yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, yyvsp[-6].letdecls, 
02228                        yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
02229      /* type, declarator, glovbls, privateinits,
02230         lets, checks, requires, modifies, ensures, claims */
02231      symtable_exitScope (g_symtab);
02232    ;
02233     break;}
02234 case 47:
02235 #line 493 "llgrammar.y"
02236 { enteringFcnScope (yyvsp[-2].lcltypespec, yyvsp[-1].declare, yyvsp[0].globals); ;
02237     break;}
02238 case 48:
02239 #line 497 "llgrammar.y"
02240 { yyval.fcn = makeFcnNode (yyvsp[-13].typequal, yyvsp[-12].lcltypespec, yyvsp[-11].declare, yyvsp[-10].globals, yyvsp[-7].vardeclarationlist, 
02241                        yyvsp[-6].letdecls, yyvsp[-5].lclpredicate, yyvsp[-4].lclpredicate, yyvsp[-3].modify, yyvsp[-2].lclpredicate, yyvsp[-1].lclpredicate); 
02242      /* type, declarator, glovbls, privateinits,
02243         lets, checks, requires, modifies, ensures, claims */
02244      symtable_exitScope (g_symtab);
02245    ;
02246     break;}
02247 case 49:
02248 #line 507 "llgrammar.y"
02249 { enteringClaimScope (yyvsp[-2].paramlist, yyvsp[0].globals); ;
02250     break;}
02251 case 50:
02252 #line 509 "llgrammar.y"
02253 {      yyval.claim = makeClaimNode (yyvsp[-11].ltok, yyvsp[-9].paramlist, yyvsp[-7].globals, yyvsp[-4].letdecls, yyvsp[-3].lclpredicate, yyvsp[-2].program, yyvsp[-1].lclpredicate); 
02254      symtable_exitScope (g_symtab); ;
02255     break;}
02256 case 51:
02257 #line 512 "llgrammar.y"
02258 { yyval.claim = (claimNode) 0; ;
02259     break;}
02260 case 52:
02261 #line 515 "llgrammar.y"
02262 {g_inTypeDef = TRUE; ;
02263     break;}
02264 case 53:
02265 #line 515 "llgrammar.y"
02266 {g_inTypeDef = FALSE; ;
02267     break;}
02268 case 54:
02269 #line 516 "llgrammar.y"
02270 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, FALSE, yyvsp[0].abstbody); ;
02271     break;}
02272 case 55:
02273 #line 517 "llgrammar.y"
02274 {g_inTypeDef = TRUE; ;
02275     break;}
02276 case 56:
02277 #line 518 "llgrammar.y"
02278 {g_inTypeDef = FALSE; ;
02279     break;}
02280 case 57:
02281 #line 519 "llgrammar.y"
02282 { yyval.abstract = makeAbstractNode (yyvsp[-6].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
02283     break;}
02284 case 58:
02285 #line 520 "llgrammar.y"
02286 {g_inTypeDef = TRUE; ;
02287     break;}
02288 case 59:
02289 #line 521 "llgrammar.y"
02290 {g_inTypeDef = FALSE; ;
02291     break;}
02292 case 60:
02293 #line 522 "llgrammar.y"
02294 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, TRUE, TRUE, yyvsp[0].abstbody); ;
02295     break;}
02296 case 61:
02297 #line 523 "llgrammar.y"
02298 {g_inTypeDef = TRUE; ;
02299     break;}
02300 case 62:
02301 #line 523 "llgrammar.y"
02302 {g_inTypeDef = FALSE; ;
02303     break;}
02304 case 63:
02305 #line 524 "llgrammar.y"
02306 { yyval.abstract = makeAbstractNode (yyvsp[-5].ltok, yyvsp[-2].ltok, FALSE, FALSE, yyvsp[0].abstbody); ;
02307     break;}
02308 case 64:
02309 #line 527 "llgrammar.y"
02310 { g_inTypeDef = TRUE; setExposedType (yyvsp[0].lcltypespec); ;
02311     break;}
02312 case 65:
02313 #line 528 "llgrammar.y"
02314 { g_inTypeDef = FALSE; ;
02315     break;}
02316 case 66:
02317 #line 529 "llgrammar.y"
02318 { yyval.exposed = makeExposedNode (yyvsp[-5].ltok, yyvsp[-4].lcltypespec, yyvsp[-2].declaratorinvs); /* to support mutually recursive types */ ;
02319     break;}
02320 case 67:
02321 #line 531 "llgrammar.y"
02322 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeSU (yyvsp[-1].structorunion), declaratorInvNodeList_new ()); ;
02323     break;}
02324 case 68:
02325 #line 533 "llgrammar.y"
02326 { yyval.exposed = makeExposedNode (yyvsp[0].ltok, makeLclTypeSpecNodeEnum (yyvsp[-1].enumspec), declaratorInvNodeList_new ()); ;
02327     break;}
02328 case 69:
02329 #line 549 "llgrammar.y"
02330 { yyval.importlist = importNodeList_add (importNodeList_new (), yyvsp[0].import); ;
02331     break;}
02332 case 70:
02333 #line 551 "llgrammar.y"
02334 { yyval.importlist = importNodeList_add (yyvsp[-2].importlist, yyvsp[0].import); ;
02335     break;}
02336 case 71:
02337 #line 554 "llgrammar.y"
02338 { yyval.import = importNode_makePlain (yyvsp[0].ltok); ;
02339     break;}
02340 case 72:
02341 #line 556 "llgrammar.y"
02342 { checkBrackets (yyvsp[-2].ltok, yyvsp[0].ltok); yyval.import = importNode_makeBracketed (yyvsp[-1].ltok); ;
02343     break;}
02344 case 73:
02345 #line 557 "llgrammar.y"
02346 { yyval.import = importNode_makeQuoted (yyvsp[0].ltok); ;
02347     break;}
02348 case 74:
02349 #line 560 "llgrammar.y"
02350 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
02351     break;}
02352 case 75:
02353 #line 561 "llgrammar.y"
02354 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
02355     break;}
02356 case 77:
02357 #line 569 "llgrammar.y"
02358 { yyval.traitreflist = traitRefNodeList_add (traitRefNodeList_new (), yyvsp[0].traitref); ;
02359     break;}
02360 case 78:
02361 #line 571 "llgrammar.y"
02362 { yyval.traitreflist = traitRefNodeList_add (yyvsp[-2].traitreflist, yyvsp[0].traitref); ;
02363     break;}
02364 case 79:
02365 #line 575 "llgrammar.y"
02366 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[0].ltok), (renamingNode)0); ;
02367     break;}
02368 case 80:
02369 #line 577 "llgrammar.y"
02370 { yyval.traitref = makeTraitRefNode (ltokenList_singleton (yyvsp[-3].ltok), yyvsp[-1].renaming); ;
02371     break;}
02372 case 81:
02373 #line 579 "llgrammar.y"
02374 { yyval.traitref = makeTraitRefNode (yyvsp[-1].ltokenList, (renamingNode)0); ;
02375     break;}
02376 case 82:
02377 #line 581 "llgrammar.y"
02378 { yyval.traitref = makeTraitRefNode (yyvsp[-4].ltokenList, yyvsp[-1].renaming); ;
02379     break;}
02380 case 83:
02381 #line 584 "llgrammar.y"
02382 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
02383     break;}
02384 case 84:
02385 #line 585 "llgrammar.y"
02386 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
02387     break;}
02388 case 85:
02389 #line 589 "llgrammar.y"
02390 { yyval.renaming = makeRenamingNode (typeNameNodeList_new (), yyvsp[0].replacelist); ;
02391     break;}
02392 case 86:
02393 #line 591 "llgrammar.y"
02394 { yyval.renaming = makeRenamingNode (yyvsp[0].namelist, replaceNodeList_new ()); ;
02395     break;}
02396 case 87:
02397 #line 592 "llgrammar.y"
02398 { yyval.renaming = makeRenamingNode (yyvsp[-2].namelist, yyvsp[0].replacelist); ;
02399     break;}
02400 case 88:
02401 #line 596 "llgrammar.y"
02402 { yyval.namelist = typeNameNodeList_add (typeNameNodeList_new (), yyvsp[0].typname); ;
02403     break;}
02404 case 89:
02405 #line 597 "llgrammar.y"
02406 { yyval.namelist = typeNameNodeList_add (yyvsp[-2].namelist, yyvsp[0].typname); ;
02407     break;}
02408 case 90:
02409 #line 601 "llgrammar.y"
02410 { yyval.replacelist = replaceNodeList_add (replaceNodeList_new (), yyvsp[0].replace); ;
02411     break;}
02412 case 91:
02413 #line 602 "llgrammar.y"
02414 { yyval.replacelist = replaceNodeList_add (yyvsp[-2].replacelist, yyvsp[0].replace); ;
02415     break;}
02416 case 92:
02417 #line 605 "llgrammar.y"
02418 { yyval.replace = makeReplaceNode (yyvsp[-1].ltok, yyvsp[-2].typname, TRUE, yyvsp[0].ltok, NULL, NULL); ;
02419     break;}
02420 case 93:
02421 #line 606 "llgrammar.y"
02422 { yyval.replace = makeReplaceNameNode (yyvsp[-1].ltok, yyvsp[-2].typname, yyvsp[0].name); ;
02423     break;}
02424 case 94:
02425 #line 607 "llgrammar.y"
02426 { yyval.replace = makeReplaceNode (yyvsp[-2].ltok, yyvsp[-3].typname, FALSE, ltoken_undefined,
02427                                                          yyvsp[-1].name, yyvsp[0].signature); ;
02428     break;}
02429 case 95:
02430 #line 611 "llgrammar.y"
02431 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
02432     break;}
02433 case 96:
02434 #line 612 "llgrammar.y"
02435 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
02436     break;}
02437 case 99:
02438 #line 620 "llgrammar.y"
02439 { yyval.initdecls = initDeclNodeList_add (initDeclNodeList_new (), yyvsp[0].initdecl); ;
02440     break;}
02441 case 100:
02442 #line 622 "llgrammar.y"
02443 { yyval.initdecls = initDeclNodeList_add (yyvsp[-2].initdecls, yyvsp[0].initdecl); ;
02444     break;}
02445 case 101:
02446 #line 625 "llgrammar.y"
02447 { yyval.initdecl = makeInitDeclNode (yyvsp[0].declare, (termNode)0); ;
02448     break;}
02449 case 102:
02450 #line 626 "llgrammar.y"
02451 { yyval.initdecl = makeInitDeclNode (yyvsp[-2].declare, yyvsp[0].term); ;
02452     break;}
02453 case 103:
02454 #line 630 "llgrammar.y"
02455 { yyval.globals = varDeclarationNodeList_new (); ;
02456     break;}
02457 case 104:
02458 #line 632 "llgrammar.y"
02459 { varDeclarationNodeList_addh (yyvsp[-1].globals, yyvsp[0].vardeclaration); yyval.globals = yyvsp[-1].globals; ;
02460     break;}
02461 case 105:
02462 #line 635 "llgrammar.y"
02463 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, TRUE, FALSE); ;
02464     break;}
02465 case 106:
02466 #line 636 "llgrammar.y"
02467 { yyval.vardeclaration = makeInternalStateNode (); ;
02468     break;}
02469 case 107:
02470 #line 637 "llgrammar.y"
02471 { yyval.vardeclaration = makeFileSystemNode (); ;
02472     break;}
02473 case 108:
02474 #line 640 "llgrammar.y"
02475 { yyval.vardeclarationlist = varDeclarationNodeList_new (); ;
02476     break;}
02477 case 109:
02478 #line 641 "llgrammar.y"
02479 { varDeclarationNodeList_addh (yyvsp[-1].vardeclarationlist, yyvsp[0].vardeclaration); yyval.vardeclarationlist = yyvsp[-1].vardeclarationlist; ;
02480     break;}
02481 case 110:
02482 #line 645 "llgrammar.y"
02483 { yyval.vardeclaration = makeVarDeclarationNode (yyvsp[-2].lcltypespec, yyvsp[-1].initdecls, FALSE, TRUE); ;
02484     break;}
02485 case 111:
02486 #line 648 "llgrammar.y"
02487 { yyval.letdecls = letDeclNodeList_new (); ;
02488     break;}
02489 case 112:
02490 #line 649 "llgrammar.y"
02491 { yyval.letdecls = yyvsp[-1].letdecls; ;
02492     break;}
02493 case 113:
02494 #line 652 "llgrammar.y"
02495 { yyval.letdecls = letDeclNodeList_add (letDeclNodeList_new (), yyvsp[0].letdecl); ;
02496     break;}
02497 case 114:
02498 #line 653 "llgrammar.y"
02499 { yyval.letdecls = letDeclNodeList_add (yyvsp[-2].letdecls, yyvsp[0].letdecl); ;
02500     break;}
02501 case 115:
02502 #line 656 "llgrammar.y"
02503 { yyval.letdecl = makeLetDeclNode (yyvsp[-4].ltok, yyvsp[-2].lcltypespec, yyvsp[0].term); ;
02504     break;}
02505 case 116:
02506 #line 657 "llgrammar.y"
02507 { yyval.letdecl = makeLetDeclNode (yyvsp[-2].ltok, (lclTypeSpecNode)0, yyvsp[0].term); ;
02508     break;}
02509 case 118:
02510 #line 662 "llgrammar.y"
02511 { yyval.lclpredicate = (lclPredicateNode)0; ;
02512     break;}
02513 case 119:
02514 #line 663 "llgrammar.y"
02515 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeChecksNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
02516     break;}
02517 case 120:
02518 #line 666 "llgrammar.y"
02519 { yyval.lclpredicate = (lclPredicateNode)0; ;
02520     break;}
02521 case 121:
02522 #line 667 "llgrammar.y"
02523 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeRequiresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
02524     break;}
02525 case 122:
02526 #line 670 "llgrammar.y"
02527 { yyval.modify = (modifyNode)0; ;
02528     break;}
02529 case 123:
02530 #line 671 "llgrammar.y"
02531 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, TRUE); ;
02532     break;}
02533 case 124:
02534 #line 672 "llgrammar.y"
02535 { yyval.modify = makeModifyNodeSpecial (yyvsp[-2].ltok, FALSE); ;
02536     break;}
02537 case 125:
02538 #line 673 "llgrammar.y"
02539 { yyval.modify = makeModifyNodeRef (yyvsp[-2].ltok, yyvsp[-1].storereflist); ;
02540     break;}
02541 case 126:
02542 #line 676 "llgrammar.y"
02543 { yyval.storereflist = storeRefNodeList_add (storeRefNodeList_new (), yyvsp[0].storeref); ;
02544     break;}
02545 case 127:
02546 #line 677 "llgrammar.y"
02547 { yyval.storereflist = storeRefNodeList_add (yyvsp[-2].storereflist, yyvsp[0].storeref); ;
02548     break;}
02549 case 128:
02550 #line 680 "llgrammar.y"
02551 { yyval.storeref = makeStoreRefNodeTerm (yyvsp[0].term); ;
02552     break;}
02553 case 129:
02554 #line 681 "llgrammar.y"
02555 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, FALSE); ;
02556     break;}
02557 case 130:
02558 #line 682 "llgrammar.y"
02559 { yyval.storeref = makeStoreRefNodeType (yyvsp[0].lcltypespec, TRUE); ;
02560     break;}
02561 case 131:
02562 #line 683 "llgrammar.y"
02563 { yyval.storeref = makeStoreRefNodeInternal (); ;
02564     break;}
02565 case 132:
02566 #line 684 "llgrammar.y"
02567 { yyval.storeref = makeStoreRefNodeSystem (); ;
02568     break;}
02569 case 133:
02570 #line 687 "llgrammar.y"
02571 { yyval.lclpredicate = (lclPredicateNode)0; ;
02572     break;}
02573 case 134:
02574 #line 688 "llgrammar.y"
02575 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeEnsuresNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
02576     break;}
02577 case 135:
02578 #line 691 "llgrammar.y"
02579 { yyval.lclpredicate = (lclPredicateNode)0; ;
02580     break;}
02581 case 136:
02582 #line 692 "llgrammar.y"
02583 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.lclpredicate = makeIntraClaimNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate);;
02584     break;}
02585 case 137:
02586 #line 695 "llgrammar.y"
02587 { yyval.paramlist = paramNodeList_new (); ;
02588     break;}
02589 case 138:
02590 #line 696 "llgrammar.y"
02591 { yyval.paramlist = yyvsp[0].paramlist; ;
02592     break;}
02593 case 140:
02594 #line 700 "llgrammar.y"
02595 { yyval.paramlist = paramNodeList_add (paramNodeList_new (), paramNode_elipsis ()); ;
02596     break;}
02597 case 141:
02598 #line 701 "llgrammar.y"
02599 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, paramNode_elipsis ()); ;
02600     break;}
02601 case 142:
02602 #line 704 "llgrammar.y"
02603 { yyval.paramlist = paramNodeList_single (yyvsp[0].param); ;
02604     break;}
02605 case 143:
02606 #line 705 "llgrammar.y"
02607 { yyval.paramlist = paramNodeList_add (yyvsp[-2].paramlist, yyvsp[0].param); ;
02608     break;}
02609 case 144:
02610 #line 708 "llgrammar.y"
02611 { yyval.program = (programNode)0; ;
02612     break;}
02613 case 145:
02614 #line 709 "llgrammar.y"
02615 { yyval.program = yyvsp[-1].program; ;
02616     break;}
02617 case 146:
02618 #line 710 "llgrammar.y"
02619 { yyval.program = yyvsp[-2].program; ;
02620     break;}
02621 case 147:
02622 #line 713 "llgrammar.y"
02623 { yyval.program = makeProgramNode (yyvsp[0].stmt); ;
02624     break;}
02625 case 148:
02626 #line 716 "llgrammar.y"
02627 { yyval.program = yyvsp[-1].program; yyval.program->wrapped = yyval.program->wrapped + 1; ;
02628     break;}
02629 case 149:
02630 #line 718 "llgrammar.y"
02631 { programNodeList x = programNodeList_new ();
02632      programNodeList_addh (x, yyvsp[-1].program);
02633      yyval.program = makeProgramNodeAction (x, ACT_ITER); 
02634    ;
02635     break;}
02636 case 150:
02637 #line 723 "llgrammar.y"
02638 { programNodeList x = programNodeList_new ();
02639      programNodeList_addh (x, yyvsp[-2].program);
02640      programNodeList_addh (x, yyvsp[0].program);
02641      yyval.program = makeProgramNodeAction (x, ACT_ALTERNATE); 
02642    ;
02643     break;}
02644 case 151:
02645 #line 729 "llgrammar.y"
02646 { programNodeList x = programNodeList_new ();
02647      programNodeList_addh (x, yyvsp[-2].program);
02648      programNodeList_addh (x, yyvsp[0].program);
02649      yyval.program = makeProgramNodeAction (x, ACT_SEQUENCE); 
02650    ;
02651     break;}
02652 case 152:
02653 #line 737 "llgrammar.y"
02654 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
02655     break;}
02656 case 153:
02657 #line 739 "llgrammar.y"
02658 { yyval.stmt = makeStmtNode (ltoken_undefined, yyvsp[-2].ltok, termNodeList_new ()); ;
02659     break;}
02660 case 154:
02661 #line 741 "llgrammar.y"
02662 { yyval.stmt = makeStmtNode (yyvsp[-4].ltok, yyvsp[-2].ltok, termNodeList_new ()); ;
02663     break;}
02664 case 155:
02665 #line 743 "llgrammar.y"
02666 { yyval.stmt = makeStmtNode (yyvsp[-5].ltok, yyvsp[-3].ltok, yyvsp[-1].termlist); ;
02667     break;}
02668 case 156:
02669 #line 746 "llgrammar.y"
02670 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
02671     break;}
02672 case 157:
02673 #line 747 "llgrammar.y"
02674 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
02675     break;}
02676 case 159:
02677 #line 751 "llgrammar.y"
02678 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
02679     break;}
02680 case 160:
02681 #line 752 "llgrammar.y"
02682 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
02683     break;}
02684 case 161:
02685 #line 753 "llgrammar.y"
02686 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
02687     break;}
02688 case 162:
02689 #line 754 "llgrammar.y"
02690 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
02691     break;}
02692 case 163:
02693 #line 755 "llgrammar.y"
02694 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
02695     break;}
02696 case 164:
02697 #line 757 "llgrammar.y"
02698 { yyval.term = makeOpCallTermNode (yyvsp[-2].ltok, yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
02699     break;}
02700 case 165:
02701 #line 759 "llgrammar.y"
02702 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
02703     break;}
02704 case 166:
02705 #line 762 "llgrammar.y"
02706 { yyval.abstbody = (abstBodyNode)0; ;
02707     break;}
02708 case 167:
02709 #line 763 "llgrammar.y"
02710 { yyval.abstbody = makeAbstBodyNode (yyvsp[-2].ltok, yyvsp[-1].fcns); ;
02711     break;}
02712 case 168:
02713 #line 764 "llgrammar.y"
02714 { yyval.abstbody = makeAbstBodyNode2 (yyvsp[-3].ltok, yyvsp[-2].ltokenList); ;
02715     break;}
02716 case 169:
02717 #line 765 "llgrammar.y"
02718 { yyval.abstbody = (abstBodyNode)0; ;
02719     break;}
02720 case 170:
02721 #line 768 "llgrammar.y"
02722 { yyval.fcns = fcnNodeList_new (); ;
02723     break;}
02724 case 171:
02725 #line 769 "llgrammar.y"
02726 { yyval.fcns = fcnNodeList_add (yyvsp[-1].fcns, yyvsp[0].fcn); ;
02727     break;}
02728 case 172:
02729 #line 772 "llgrammar.y"
02730 { yyval.lclpredicate = (lclPredicateNode)0; ;
02731     break;}
02732 case 174:
02733 #line 776 "llgrammar.y"
02734 { g_inTypeDef = FALSE; ;
02735     break;}
02736 case 175:
02737 #line 777 "llgrammar.y"
02738 { yyvsp[-1].lclpredicate->tok = yyvsp[-5].ltok; yyvsp[-1].lclpredicate->kind = LPD_CONSTRAINT;
02739      checkLclPredicate (yyvsp[-5].ltok, yyvsp[-1].lclpredicate);
02740      yyval.lclpredicate = yyvsp[-1].lclpredicate;
02741      symtable_exitScope (g_symtab); 
02742      g_inTypeDef = TRUE;
02743    ;
02744     break;}
02745 case 176:
02746 #line 785 "llgrammar.y"
02747 { yyval.declaratorinvs = declaratorInvNodeList_add (declaratorInvNodeList_new (), yyvsp[0].declaratorinv); ;
02748     break;}
02749 case 177:
02750 #line 787 "llgrammar.y"
02751 { yyval.declaratorinvs = declaratorInvNodeList_add (yyvsp[-2].declaratorinvs, yyvsp[0].declaratorinv); ;
02752     break;}
02753 case 178:
02754 #line 790 "llgrammar.y"
02755 { declareForwardType (yyvsp[0].declare); ;
02756     break;}
02757 case 179:
02758 #line 791 "llgrammar.y"
02759 { yyval.declaratorinv = makeDeclaratorInvNode (yyvsp[-2].declare, yyvsp[0].abstbody); ;
02760     break;}
02761 case 180:
02762 #line 794 "llgrammar.y"
02763 { yyval.abstbody = (abstBodyNode)0; ;
02764     break;}
02765 case 181:
02766 #line 795 "llgrammar.y"
02767 { yyval.abstbody = makeExposedBodyNode (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); ;
02768     break;}
02769 case 182:
02770 #line 798 "llgrammar.y"
02771 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_VOID, 0)); ;
02772     break;}
02773 case 183:
02774 #line 799 "llgrammar.y"
02775 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_CHAR, 0)); ;
02776     break;}
02777 case 184:
02778 #line 800 "llgrammar.y"
02779 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_DOUBLE, 0)); ;
02780     break;}
02781 case 185:
02782 #line 801 "llgrammar.y"
02783 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_FLOAT, 0)); ;
02784     break;}
02785 case 186:
02786 #line 802 "llgrammar.y"
02787 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_INT, 0)); ;
02788     break;}
02789 case 187:
02790 #line 803 "llgrammar.y"
02791 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_LONG, 0)); ;
02792     break;}
02793 case 188:
02794 #line 804 "llgrammar.y"
02795 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SHORT, 0)); ;
02796     break;}
02797 case 189:
02798 #line 805 "llgrammar.y"
02799 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_SIGNED, 0)); ;
02800     break;}
02801 case 190:
02802 #line 806 "llgrammar.y"
02803 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNSIGNED, 0)); ;
02804     break;}
02805 case 191:
02806 #line 807 "llgrammar.y"
02807 { yyval.ltok = yyvsp[0].ltok; ltoken_setIntField (yyval.ltok, fixBits (TS_UNKNOWN, 0)); ;
02808     break;}
02809 case 192:
02810 #line 815 "llgrammar.y"
02811 { yyval.ctypes = makeCTypesNode ((CTypesNode)0, yyvsp[0].ltok); ;
02812     break;}
02813 case 193:
02814 #line 816 "llgrammar.y"
02815 { yyval.ctypes = makeCTypesNode (yyvsp[-1].ctypes, yyvsp[0].ltok); ;
02816     break;}
02817 case 194:
02818 #line 822 "llgrammar.y"
02819 { yyval.ctypes = makeTypeSpecifier (yyvsp[0].ltok); ;
02820     break;}
02821 case 195:
02822 #line 824 "llgrammar.y"
02823 { yyval.ctypes = yyvsp[0].ctypes; yyval.ctypes->sort = sort_lookupName (lclctype_toSort (yyvsp[0].ctypes->intfield)); ;
02824     break;}
02825 case 196:
02826 #line 829 "llgrammar.y"
02827 { yyval.typequal = qual_createOut (); ;
02828     break;}
02829 case 197:
02830 #line 830 "llgrammar.y"
02831 { yyval.typequal = qual_createUnused (); ;
02832     break;}
02833 case 198:
02834 #line 831 "llgrammar.y"
02835 { yyval.typequal = qual_createSef (); ;
02836     break;}
02837 case 199:
02838 #line 832 "llgrammar.y"
02839 { yyval.typequal = qual_createOnly (); ;
02840     break;}
02841 case 200:
02842 #line 833 "llgrammar.y"
02843 { yyval.typequal = qual_createOwned (); ;
02844     break;}
02845 case 201:
02846 #line 834 "llgrammar.y"
02847 { yyval.typequal = qual_createDependent (); ;
02848     break;}
02849 case 202:
02850 #line 835 "llgrammar.y"
02851 { yyval.typequal = qual_createKeep (); ;
02852     break;}
02853 case 203:
02854 #line 836 "llgrammar.y"
02855 { yyval.typequal = qual_createKept (); ;
02856     break;}
02857 case 204:
02858 #line 837 "llgrammar.y"
02859 { yyval.typequal = qual_createObserver (); ;
02860     break;}
02861 case 205:
02862 #line 838 "llgrammar.y"
02863 { yyval.typequal = qual_createExits (); ;
02864     break;}
02865 case 206:
02866 #line 839 "llgrammar.y"
02867 { yyval.typequal = qual_createMayExit (); ;
02868     break;}
02869 case 207:
02870 #line 840 "llgrammar.y"
02871 { yyval.typequal = qual_createTrueExit (); ;
02872     break;}
02873 case 208:
02874 #line 841 "llgrammar.y"
02875 { yyval.typequal = qual_createFalseExit (); ;
02876     break;}
02877 case 209:
02878 #line 842 "llgrammar.y"
02879 { yyval.typequal = qual_createNeverExit (); ;
02880     break;}
02881 case 210:
02882 #line 843 "llgrammar.y"
02883 { yyval.typequal = qual_createOnly (); ;
02884     break;}
02885 case 211:
02886 #line 844 "llgrammar.y"
02887 { yyval.typequal = qual_createShared (); ;
02888     break;}
02889 case 212:
02890 #line 845 "llgrammar.y"
02891 { yyval.typequal = qual_createUnique (); ;
02892     break;}
02893 case 213:
02894 #line 846 "llgrammar.y"
02895 { yyval.typequal = qual_createChecked (); ;
02896     break;}
02897 case 214:
02898 #line 847 "llgrammar.y"
02899 { yyval.typequal = qual_createUnchecked (); ;
02900     break;}
02901 case 215:
02902 #line 848 "llgrammar.y"
02903 { yyval.typequal = qual_createCheckedStrict (); ;
02904     break;}
02905 case 216:
02906 #line 849 "llgrammar.y"
02907 { yyval.typequal = qual_createTrueNull (); ;
02908     break;}
02909 case 217:
02910 #line 850 "llgrammar.y"
02911 { yyval.typequal = qual_createFalseNull (); ;
02912     break;}
02913 case 218:
02914 #line 851 "llgrammar.y"
02915 { yyval.typequal = qual_createRelNull (); ;
02916     break;}
02917 case 219:
02918 #line 852 "llgrammar.y"
02919 { yyval.typequal = qual_createRelDef (); ;
02920     break;}
02921 case 220:
02922 #line 853 "llgrammar.y"
02923 { yyval.typequal = qual_createRefCounted (); ;
02924     break;}
02925 case 221:
02926 #line 854 "llgrammar.y"
02927 { yyval.typequal = qual_createRefs (); ;
02928     break;}
02929 case 222:
02930 #line 855 "llgrammar.y"
02931 { yyval.typequal = qual_createNewRef (); ;
02932     break;}
02933 case 223:
02934 #line 856 "llgrammar.y"
02935 { yyval.typequal = qual_createKillRef (); ;
02936     break;}
02937 case 224:
02938 #line 857 "llgrammar.y"
02939 { yyval.typequal = qual_createNull (); ;
02940     break;}
02941 case 225:
02942 #line 858 "llgrammar.y"
02943 { yyval.typequal = qual_createNotNull (); ;
02944     break;}
02945 case 226:
02946 #line 859 "llgrammar.y"
02947 { yyval.typequal = qual_createReturned (); ;
02948     break;}
02949 case 227:
02950 #line 860 "llgrammar.y"
02951 { yyval.typequal = qual_createExposed (); ;
02952     break;}
02953 case 228:
02954 #line 861 "llgrammar.y"
02955 { yyval.typequal = qual_createPartial (); ;
02956     break;}
02957 case 229:
02958 #line 862 "llgrammar.y"
02959 { yyval.typequal = qual_createUndef (); ;
02960     break;}
02961 case 230:
02962 #line 863 "llgrammar.y"
02963 { yyval.typequal = qual_createKilled (); ;
02964     break;}
02965 case 231:
02966 #line 867 "llgrammar.y"
02967 { yyval.lcltypespec = makeLclTypeSpecNodeType (yyvsp[0].ctypes); ;
02968     break;}
02969 case 232:
02970 #line 869 "llgrammar.y"
02971 { yyval.lcltypespec = makeLclTypeSpecNodeSU (yyvsp[0].structorunion); ;
02972     break;}
02973 case 233:
02974 #line 871 "llgrammar.y"
02975 { yyval.lcltypespec = makeLclTypeSpecNodeEnum (yyvsp[0].enumspec); ;
02976     break;}
02977 case 234:
02978 #line 873 "llgrammar.y"
02979 { yyval.lcltypespec = lclTypeSpecNode_addQual (yyvsp[0].lcltypespec, yyvsp[-1].typequal); ;
02980     break;}
02981 case 235:
02982 #line 875 "llgrammar.y"
02983 { yyval.lcltypespec = makeLclTypeSpecNodeConj (yyvsp[-3].lcltypespec, yyvsp[-1].lcltypespec); ;
02984     break;}
02985 case 237:
02986 #line 885 "llgrammar.y"
02987 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
02988      yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
02989     break;}
02990 case 238:
02991 #line 889 "llgrammar.y"
02992 { yyval.count = 1; ;
02993     break;}
02994 case 239:
02995 #line 890 "llgrammar.y"
02996 { yyval.count = yyvsp[-1].count + 1; ;
02997     break;}
02998 case 240:
02999 #line 894 "llgrammar.y"
03000 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
03001     break;}
03002 case 241:
03003 #line 896 "llgrammar.y"
03004 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_STRUCT, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
03005     break;}
03006 case 242:
03007 #line 898 "llgrammar.y"
03008 { (void) checkAndEnterTag (TAG_FWDUNION, ltoken_copy (yyvsp[0].ltok)); ;
03009     break;}
03010 case 243:
03011 #line 900 "llgrammar.y"
03012 { yyval.structorunion = makestrOrUnionNode (yyvsp[-5].ltok, SU_UNION, yyvsp[-4].ltok, yyvsp[-1].structdecls); ;
03013     break;}
03014 case 244:
03015 #line 902 "llgrammar.y"
03016 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_STRUCT, yyvsp[0].ltok); ;
03017     break;}
03018 case 245:
03019 #line 904 "llgrammar.y"
03020 { yyval.structorunion = makeForwardstrOrUnionNode (yyvsp[-1].ltok, SU_UNION, yyvsp[0].ltok); ;
03021     break;}
03022 case 246:
03023 #line 907 "llgrammar.y"
03024 { yyval.ltok = ltoken_undefined; ;
03025     break;}
03026 case 248:
03027 #line 911 "llgrammar.y"
03028 { yyval.structdecls = stDeclNodeList_add (stDeclNodeList_new (), yyvsp[0].structdecl); ;
03029     break;}
03030 case 249:
03031 #line 912 "llgrammar.y"
03032 { yyval.structdecls = stDeclNodeList_add (yyvsp[-1].structdecls, yyvsp[0].structdecl); ;
03033     break;}
03034 case 250:
03035 #line 917 "llgrammar.y"
03036 { yyval.structdecl = makestDeclNode (yyvsp[-2].lcltypespec, yyvsp[-1].declarelist); ;
03037     break;}
03038 case 251:
03039 #line 921 "llgrammar.y"
03040 { yyval.declarelist = declaratorNodeList_add (declaratorNodeList_new (), yyvsp[0].declare); ;
03041     break;}
03042 case 252:
03043 #line 923 "llgrammar.y"
03044 { yyval.declarelist = declaratorNodeList_add (yyvsp[-2].declarelist, yyvsp[0].declare); ;
03045     break;}
03046 case 253:
03047 #line 926 "llgrammar.y"
03048 { ; ;
03049     break;}
03050 case 254:
03051 #line 927 "llgrammar.y"
03052 { ; ;
03053     break;}
03054 case 255:
03055 #line 931 "llgrammar.y"
03056 { yyval.enumspec = makeEnumSpecNode (yyvsp[-5].ltok, yyvsp[-4].ltok, yyvsp[-2].ltokenList); ;
03057     break;}
03058 case 256:
03059 #line 933 "llgrammar.y"
03060 { yyval.enumspec = makeEnumSpecNode2 (yyvsp[-1].ltok, yyvsp[0].ltok); ;
03061     break;}
03062 case 257:
03063 #line 936 "llgrammar.y"
03064 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
03065     break;}
03066 case 258:
03067 #line 937 "llgrammar.y"
03068 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
03069     break;}
03070 case 259:
03071 #line 947 "llgrammar.y"
03072 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
03073     break;}
03074 case 260:
03075 #line 948 "llgrammar.y"
03076 { yyval.declare = makeDeclaratorNode (yyvsp[0].typeexpr); ;
03077     break;}
03078 case 261:
03079 #line 951 "llgrammar.y"
03080 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
03081     break;}
03082 case 262:
03083 #line 952 "llgrammar.y"
03084 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
03085     break;}
03086 case 263:
03087 #line 953 "llgrammar.y"
03088 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03089     break;}
03090 case 264:
03091 #line 954 "llgrammar.y"
03092 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03093     break;}
03094 case 265:
03095 #line 955 "llgrammar.y"
03096 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03097     break;}
03098 case 266:
03099 #line 956 "llgrammar.y"
03100 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03101     break;}
03102 case 267:
03103 #line 959 "llgrammar.y"
03104 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
03105     break;}
03106 case 268:
03107 #line 960 "llgrammar.y"
03108 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
03109     break;}
03110 case 269:
03111 #line 961 "llgrammar.y"
03112 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03113     break;}
03114 case 270:
03115 #line 962 "llgrammar.y"
03116 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03117     break;}
03118 case 271:
03119 #line 963 "llgrammar.y"
03120 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03121     break;}
03122 case 272:
03123 #line 964 "llgrammar.y"
03124 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03125     break;}
03126 case 273:
03127 #line 973 "llgrammar.y"
03128 { yyval.typeexpr = makeTypeExpr (yyvsp[0].ltok); ;
03129     break;}
03130 case 274:
03131 #line 974 "llgrammar.y"
03132 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03133     break;}
03134 case 275:
03135 #line 975 "llgrammar.y"
03136 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03137     break;}
03138 case 276:
03139 #line 976 "llgrammar.y"
03140 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03141     break;}
03142 case 277:
03143 #line 977 "llgrammar.y"
03144 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03145     break;}
03146 case 278:
03147 #line 983 "llgrammar.y"
03148 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
03149     break;}
03150 case 279:
03151 #line 984 "llgrammar.y"
03152 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].typeexpr); ;
03153     break;}
03154 case 280:
03155 #line 985 "llgrammar.y"
03156 { yyval.param = makeParamNode (yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
03157     break;}
03158 case 281:
03159 #line 995 "llgrammar.y"
03160 { yyval.typname = makeTypeNameNode (FALSE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
03161     break;}
03162 case 282:
03163 #line 996 "llgrammar.y"
03164 { yyval.typname = makeTypeNameNode (TRUE, yyvsp[-1].lcltypespec, yyvsp[0].abstDecl); ;
03165     break;}
03166 case 283:
03167 #line 997 "llgrammar.y"
03168 { yyval.typname = makeTypeNameNodeOp (yyvsp[0].opform); ;
03169     break;}
03170 case 284:
03171 #line 1002 "llgrammar.y"
03172 { yyval.abstDecl = (abstDeclaratorNode)0; ;
03173     break;}
03174 case 285:
03175 #line 1003 "llgrammar.y"
03176 { yyval.abstDecl = (abstDeclaratorNode)yyvsp[0].typeexpr; ;
03177     break;}
03178 case 286:
03179 #line 1006 "llgrammar.y"
03180 { yyval.typeexpr = yyvsp[-1].typeexpr; yyval.typeexpr->wrapped = yyval.typeexpr->wrapped + 1; ;
03181     break;}
03182 case 287:
03183 #line 1007 "llgrammar.y"
03184 { yyval.typeexpr = makePointerNode (yyvsp[-1].ltok, yyvsp[0].typeexpr); ;
03185     break;}
03186 case 288:
03187 #line 1008 "llgrammar.y"
03188 { yyval.typeexpr = makePointerNode (yyvsp[0].ltok, (typeExpr)0); ;
03189     break;}
03190 case 289:
03191 #line 1009 "llgrammar.y"
03192 { yyval.typeexpr = makeArrayNode ((typeExpr)0, yyvsp[0].array); ;
03193     break;}
03194 case 290:
03195 #line 1010 "llgrammar.y"
03196 { yyval.typeexpr = makeArrayNode (yyvsp[-1].typeexpr, yyvsp[0].array); ;
03197     break;}
03198 case 291:
03199 #line 1011 "llgrammar.y"
03200 { yyval.typeexpr = makeFunctionNode (yyvsp[-2].typeexpr, paramNodeList_new ()); ;
03201     break;}
03202 case 292:
03203 #line 1012 "llgrammar.y"
03204 { yyval.typeexpr = makeFunctionNode ((typeExpr)0, yyvsp[-1].paramlist); ;
03205     break;}
03206 case 293:
03207 #line 1013 "llgrammar.y"
03208 { yyval.typeexpr = makeFunctionNode (yyvsp[-3].typeexpr, yyvsp[-1].paramlist); ;
03209     break;}
03210 case 294:
03211 #line 1016 "llgrammar.y"
03212 { yyval.array = makeArrayQualNode (yyvsp[-1].ltok, (termNode)0); ;
03213     break;}
03214 case 295:
03215 #line 1017 "llgrammar.y"
03216 { yyval.array = makeArrayQualNode (yyvsp[-2].ltok, yyvsp[-1].term); ;
03217     break;}
03218 case 296:
03219 #line 1021 "llgrammar.y"
03220 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
03221     break;}
03222 case 297:
03223 #line 1023 "llgrammar.y"
03224 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03225     break;}
03226 case 298:
03227 #line 1025 "llgrammar.y"
03228 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03229     break;}
03230 case 299:
03231 #line 1027 "llgrammar.y"
03232 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
03233     break;}
03234 case 300:
03235 #line 1029 "llgrammar.y"
03236 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, 
03237                           opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
03238     break;}
03239 case 301:
03240 #line 1032 "llgrammar.y"
03241 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03242     break;}
03243 case 302:
03244 #line 1034 "llgrammar.y"
03245 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03246     break;}
03247 case 303:
03248 #line 1036 "llgrammar.y"
03249 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03250     break;}
03251 case 304:
03252 #line 1038 "llgrammar.y"
03253 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03254     break;}
03255 case 305:
03256 #line 1040 "llgrammar.y"
03257 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03258     break;}
03259 case 306:
03260 #line 1042 "llgrammar.y"
03261 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03262     break;}
03263 case 307:
03264 #line 1050 "llgrammar.y"
03265 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
03266     break;}
03267 case 308:
03268 #line 1052 "llgrammar.y"
03269 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
03270     break;}
03271 case 309:
03272 #line 1054 "llgrammar.y"
03273 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
03274                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03275     break;}
03276 case 310:
03277 #line 1057 "llgrammar.y"
03278 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MAP, 
03279                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03280     break;}
03281 case 311:
03282 #line 1060 "llgrammar.y"
03283 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
03284                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03285     break;}
03286 case 312:
03287 #line 1063 "llgrammar.y"
03288 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
03289                           opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
03290     break;}
03291 case 320:
03292 #line 1080 "llgrammar.y"
03293 { yyval.count = 0; ;
03294     break;}
03295 case 322:
03296 #line 1084 "llgrammar.y"
03297 { yyval.count = 1; ;
03298     break;}
03299 case 323:
03300 #line 1085 "llgrammar.y"
03301 { yyval.count = yyvsp[-2].count + 1; ;
03302     break;}
03303 case 326:
03304 #line 1092 "llgrammar.y"
03305 { yyval.signature = makesigNode (yyvsp[-3].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
03306     break;}
03307 case 327:
03308 #line 1095 "llgrammar.y"
03309 { yyval.ltokenList = ltokenList_new (); ;
03310     break;}
03311 case 329:
03312 #line 1099 "llgrammar.y"
03313 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
03314     break;}
03315 case 330:
03316 #line 1100 "llgrammar.y"
03317 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
03318     break;}
03319 case 331:
03320 #line 1103 "llgrammar.y"
03321 { yyval.lclpredicate = makeLclPredicateNode (ltoken_undefined, yyvsp[0].term, LPD_PLAIN);;
03322     break;}
03323 case 332:
03324 #line 1106 "llgrammar.y"
03325 { yyval.term = checkSort (yyvsp[0].term); ;
03326     break;}
03327 case 333:
03328 #line 1113 "llgrammar.y"
03329 { yyval.term = makeIfTermNode (yyvsp[-5].ltok,yyvsp[-4].term,yyvsp[-3].ltok,yyvsp[-2].term,yyvsp[-1].ltok,yyvsp[0].term); ;
03330     break;}
03331 case 335:
03332 #line 1115 "llgrammar.y"
03333 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term); ;
03334     break;}
03335 case 337:
03336 #line 1121 "llgrammar.y"
03337 { checkLclPredicate (yyvsp[-2].ltok, yyvsp[-1].lclpredicate); yyval.term = makeQuantifiedTermNode (yyvsp[-3].quantifiers, yyvsp[-2].ltok, yyvsp[-1].lclpredicate->predicate, yyvsp[0].ltok);
03338      symtable_exitScope (g_symtab); 
03339    ;
03340     break;}
03341 case 338:
03342 #line 1125 "llgrammar.y"
03343 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
03344     break;}
03345 case 339:
03346 #line 1127 "llgrammar.y"
03347 { yyval.term = makeInfixTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].term);;
03348     break;}
03349 case 341:
03350 #line 1131 "llgrammar.y"
03351 { yyval.term = makePostfixTermNode (yyvsp[-1].term, yyvsp[0].ltokenList); ;
03352     break;}
03353 case 342:
03354 #line 1132 "llgrammar.y"
03355 { yyval.term = CollapseInfixTermNode (yyvsp[-1].term, yyvsp[0].termlist); ;
03356     break;}
03357 case 346:
03358 #line 1140 "llgrammar.y"
03359 { yyval.term = makePrefixTermNode (yyvsp[-1].ltok, yyvsp[0].term); ;
03360     break;}
03361 case 347:
03362 #line 1143 "llgrammar.y"
03363 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
03364     break;}
03365 case 348:
03366 #line 1144 "llgrammar.y"
03367 { yyval.ltokenList = ltokenList_push (yyvsp[-1].ltokenList, yyvsp[0].ltok); ;
03368     break;}
03369 case 349:
03370 #line 1147 "llgrammar.y"
03371 { yyval.termlist = pushInfixOpPartNode (termNodeList_new (), yyvsp[-1].ltok, yyvsp[0].term); ;
03372     break;}
03373 case 350:
03374 #line 1148 "llgrammar.y"
03375 { yyval.termlist = pushInfixOpPartNode (yyvsp[-2].termlist, yyvsp[-1].ltok, yyvsp[0].term); ;
03376     break;}
03377 case 352:
03378 #line 1152 "llgrammar.y"
03379 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
03380     break;}
03381 case 353:
03382 #line 1153 "llgrammar.y"
03383 { yyval.term = updateMatchedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
03384     break;}
03385 case 354:
03386 #line 1154 "llgrammar.y"
03387 { yyval.term = updateMatchedNode (yyvsp[-1].term, yyvsp[0].term, (termNode)0); ;
03388     break;}
03389 case 355:
03390 #line 1155 "llgrammar.y"
03391 { yyval.term = updateMatchedNode (yyvsp[-2].term, yyvsp[-1].term, yyvsp[0].term); ;
03392     break;}
03393 case 356:
03394 #line 1156 "llgrammar.y"
03395 { yyval.term = computePossibleSorts (yyvsp[0].term); ;
03396     break;}
03397 case 357:
03398 #line 1157 "llgrammar.y"
03399 { yyval.term = updateSqBracketedNode ((termNode)0, yyvsp[-1].term, yyvsp[0].term); ;
03400     break;}
03401 case 358:
03402 #line 1160 "llgrammar.y"
03403 { yyval.term = yyvsp[-2].term; yyval.term->sort = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
03404     break;}
03405 case 360:
03406 #line 1165 "llgrammar.y"
03407 { yyval.term = makeSqBracketedNode (yyvsp[-4].ltok, yyvsp[-3].termlist, yyvsp[-2].ltok); 
03408      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
03409     break;}
03410 case 361:
03411 #line 1168 "llgrammar.y"
03412 { yyval.term = makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03413     break;}
03414 case 362:
03415 #line 1170 "llgrammar.y"
03416 { yyval.term = makeSqBracketedNode (yyvsp[-3].ltok, termNodeList_new (), yyvsp[-2].ltok); 
03417      yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); 
03418    ;
03419     break;}
03420 case 363:
03421 #line 1174 "llgrammar.y"
03422 { yyval.term = makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
03423     break;}
03424 case 364:
03425 #line 1177 "llgrammar.y"
03426 { yyval.term = makeMatchedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03427     break;}
03428 case 365:
03429 #line 1178 "llgrammar.y"
03430 { yyval.term = makeMatchedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok); ;
03431     break;}
03432 case 366:
03433 #line 1181 "llgrammar.y"
03434 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
03435     break;}
03436 case 367:
03437 #line 1182 "llgrammar.y"
03438 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
03439     break;}
03440 case 368:
03441 #line 1186 "llgrammar.y"
03442 { yyval.term = yyvsp[-1].term; yyval.term->wrapped = yyval.term->wrapped + 1; ;
03443     break;}
03444 case 369:
03445 #line 1188 "llgrammar.y"
03446 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
03447     break;}
03448 case 370:
03449 #line 1190 "llgrammar.y"
03450 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03451     break;}
03452 case 372:
03453 #line 1193 "llgrammar.y"
03454 { yyval.term = makePostfixTermNode2 (yyvsp[-1].term, yyvsp[0].ltok); ;
03455     break;}
03456 case 373:
03457 #line 1195 "llgrammar.y"
03458 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeSelectTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
03459     break;}
03460 case 374:
03461 #line 1197 "llgrammar.y"
03462 { ltoken_markOwned (yyvsp[0].ltok); yyval.term = makeMapTermNode (yyvsp[-2].term, yyvsp[-1].ltok, yyvsp[0].ltok); ;
03463     break;}
03464 case 375:
03465 #line 1199 "llgrammar.y"
03466 { yyval.term = updateSqBracketedNode (yyvsp[-2].term, makeSqBracketedNode (yyvsp[-1].ltok, termNodeList_new (), yyvsp[0].ltok), 
03467                                 (termNode)0); ;
03468     break;}
03469 case 376:
03470 #line 1202 "llgrammar.y"
03471 { yyval.term = updateSqBracketedNode (yyvsp[-3].term, makeSqBracketedNode (yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok), (termNode)0); ;
03472     break;}
03473 case 377:
03474 #line 1204 "llgrammar.y"
03475 { yyval.term = yyvsp[-2].term; yyval.term->given = sort_lookupName (ltoken_getText (yyvsp[0].ltok)); ;
03476     break;}
03477 case 378:
03478 #line 1207 "llgrammar.y"
03479 { yyval.termlist = termNodeList_push (termNodeList_new (), yyvsp[0].term); ;
03480     break;}
03481 case 379:
03482 #line 1208 "llgrammar.y"
03483 { yyval.termlist = termNodeList_push (yyvsp[-2].termlist, yyvsp[0].term); ;
03484     break;}
03485 case 385:
03486 #line 1218 "llgrammar.y"
03487 { yyval.term = makeSimpleTermNode (yyvsp[0].ltok); ;
03488     break;}
03489 case 386:
03490 #line 1219 "llgrammar.y"
03491 { yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, yyvsp[-1].termlist, yyvsp[0].ltok); ;
03492     break;}
03493 case 387:
03494 #line 1220 "llgrammar.y"
03495 { yyval.term = makeUnchangedTermNode1 (yyvsp[-3].ltok, yyvsp[-1].ltok); ;
03496     break;}
03497 case 388:
03498 #line 1221 "llgrammar.y"
03499 { yyval.term = makeUnchangedTermNode2 (yyvsp[-3].ltok, yyvsp[-1].storereflist); ;
03500     break;}
03501 case 389:
03502 #line 1223 "llgrammar.y"
03503 { termNodeList x = termNodeList_new (); 
03504      termNodeList_addh (x, yyvsp[-1].term);
03505      yyval.term = makeOpCallTermNode (yyvsp[-3].ltok, yyvsp[-2].ltok, x, yyvsp[0].ltok); 
03506    ;
03507     break;}
03508 case 390:
03509 #line 1228 "llgrammar.y"
03510 { termNodeList x = termNodeList_new ();
03511      termNodeList_addh (x, yyvsp[-3].term);
03512      termNodeList_addh (x, yyvsp[-1].term);
03513      yyval.term = makeOpCallTermNode (yyvsp[-5].ltok, yyvsp[-4].ltok, x, yyvsp[0].ltok); 
03514    ;
03515     break;}
03516 case 391:
03517 #line 1233 "llgrammar.y"
03518 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
03519     break;}
03520 case 392:
03521 #line 1243 "llgrammar.y"
03522 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
03523     break;}
03524 case 393:
03525 #line 1244 "llgrammar.y"
03526 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
03527     break;}
03528 case 394:
03529 #line 1245 "llgrammar.y"
03530 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
03531     break;}
03532 case 395:
03533 #line 1246 "llgrammar.y"
03534 { yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
03535     break;}
03536 case 396:
03537 #line 1250 "llgrammar.y"
03538 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (), yyvsp[0].quantifier); ;
03539     break;}
03540 case 397:
03541 #line 1252 "llgrammar.y"
03542 { yyval.quantifiers = quantifierNodeList_add (yyvsp[-1].quantifiers, yyvsp[0].quantifier); ;
03543     break;}
03544 case 398:
03545 #line 1255 "llgrammar.y"
03546 { scopeInfo si = (scopeInfo) dmalloc (sizeof (*si));
03547                    si->kind = SPE_QUANT;
03548                    symtable_enterScope (g_symtab, si); ;
03549     break;}
03550 case 399:
03551 #line 1259 "llgrammar.y"
03552 { yyval.quantifier = makeQuantifierNode (yyvsp[0].vars, yyvsp[-2].ltok); ;
03553     break;}
03554 case 400:
03555 #line 1262 "llgrammar.y"
03556 { yyval.vars = varNodeList_add (varNodeList_new (), yyvsp[0].var); ;
03557     break;}
03558 case 401:
03559 #line 1263 "llgrammar.y"
03560 { yyval.vars = varNodeList_add (yyvsp[-2].vars, yyvsp[0].var); ;
03561     break;}
03562 case 402:
03563 #line 1266 "llgrammar.y"
03564 { yyval.var = makeVarNode (yyvsp[-2].ltok, FALSE, yyvsp[0].lcltypespec); ;
03565     break;}
03566 case 403:
03567 #line 1267 "llgrammar.y"
03568 { yyval.var = makeVarNode (yyvsp[-3].ltok, TRUE, yyvsp[0].lcltypespec); ;
03569     break;}
03570 }
03571    /* the action file gets copied in in place of this dollarsign */
03572 #line 543 "/af10/evans/bison-1.28/share/bison.simple"
03573 
03574   yyvsp -= yylen;
03575   yyssp -= yylen;
03576 #ifdef YYLSP_NEEDED
03577   yylsp -= yylen;
03578 #endif
03579 
03580 #if YYDEBUG != 0
03581   if (yydebug)
03582     {
03583       short *ssp1 = yyss - 1;
03584       fprintf (stderr, "state stack now");
03585       while (ssp1 != yyssp)
03586         fprintf (stderr, " %d", *++ssp1);
03587       fprintf (stderr, "\n");
03588     }
03589 #endif
03590 
03591   *++yyvsp = yyval;
03592 
03593 #ifdef YYLSP_NEEDED
03594   yylsp++;
03595   if (yylen == 0)
03596     {
03597       yylsp->first_line = yylloc.first_line;
03598       yylsp->first_column = yylloc.first_column;
03599       yylsp->last_line = (yylsp-1)->last_line;
03600       yylsp->last_column = (yylsp-1)->last_column;
03601       yylsp->text = 0;
03602     }
03603   else
03604     {
03605       yylsp->last_line = (yylsp+yylen-1)->last_line;
03606       yylsp->last_column = (yylsp+yylen-1)->last_column;
03607     }
03608 #endif
03609 
03610   /* Now "shift" the result of the reduction.
03611      Determine what state that goes to,
03612      based on the state we popped back to
03613      and the rule number reduced by.  */
03614 
03615   yyn = yyr1[yyn];
03616 
03617   yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
03618   if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
03619     yystate = yytable[yystate];
03620   else
03621     yystate = yydefgoto[yyn - YYNTBASE];
03622 
03623   goto yynewstate;
03624 
03625 yyerrlab:   /* here on detecting error */
03626 
03627   if (! yyerrstatus)
03628     /* If not already recovering from an error, report this error.  */
03629     {
03630       ++yynerrs;
03631 
03632 #ifdef YYERROR_VERBOSE
03633       yyn = yypact[yystate];
03634 
03635       if (yyn > YYFLAG && yyn < YYLAST)
03636         {
03637           int size = 0;
03638           char *msg;
03639           int x, count;
03640 
03641           count = 0;
03642           /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
03643           for (x = (yyn < 0 ? -yyn : 0);
03644                x < (sizeof(yytname) / sizeof(char *)); x++)
03645             if (yycheck[x + yyn] == x)
03646               size += strlen(yytname[x]) + 15, count++;
03647           msg = (char *) malloc(size + 15);
03648           if (msg != 0)
03649             {
03650               strcpy(msg, "parse error");
03651 
03652               if (count < 5)
03653                 {
03654                   count = 0;
03655                   for (x = (yyn < 0 ? -yyn : 0);
03656                        x < (sizeof(yytname) / sizeof(char *)); x++)
03657                     if (yycheck[x + yyn] == x)
03658                       {
03659                         strcat(msg, count == 0 ? ", expecting `" : " or `");
03660                         strcat(msg, yytname[x]);
03661                         strcat(msg, "'");
03662                         count++;
03663                       }
03664                 }
03665               yyerror(msg);
03666               free(msg);
03667             }
03668           else
03669             yyerror ("parse error; also virtual memory exceeded");
03670         }
03671       else
03672 #endif /* YYERROR_VERBOSE */
03673         yyerror("parse error");
03674     }
03675 
03676   goto yyerrlab1;
03677 yyerrlab1:   /* here on error raised explicitly by an action */
03678 
03679   if (yyerrstatus == 3)
03680     {
03681       /* if just tried and failed to reuse lookahead token after an error, discard it.  */
03682 
03683       /* return failure if at end of input */
03684       if (yychar == YYEOF)
03685         YYABORT;
03686 
03687 #if YYDEBUG != 0
03688       if (yydebug)
03689         fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
03690 #endif
03691 
03692       yychar = YYEMPTY;
03693     }
03694 
03695   /* Else will try to reuse lookahead token
03696      after shifting the error token.  */
03697 
03698   yyerrstatus = 3;              /* Each real token shifted decrements this */
03699 
03700   goto yyerrhandle;
03701 
03702 yyerrdefault:  /* current state does not do anything special for the error token. */
03703 
03704 #if 0
03705   /* This is wrong; only states that explicitly want error tokens
03706      should shift them.  */
03707   yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
03708   if (yyn) goto yydefault;
03709 #endif
03710 
03711 yyerrpop:   /* pop the current state because it cannot handle the error token */
03712 
03713   if (yyssp == yyss) YYABORT;
03714   yyvsp--;
03715   yystate = *--yyssp;
03716 #ifdef YYLSP_NEEDED
03717   yylsp--;
03718 #endif
03719 
03720 #if YYDEBUG != 0
03721   if (yydebug)
03722     {
03723       short *ssp1 = yyss - 1;
03724       fprintf (stderr, "Error: state stack now");
03725       while (ssp1 != yyssp)
03726         fprintf (stderr, " %d", *++ssp1);
03727       fprintf (stderr, "\n");
03728     }
03729 #endif
03730 
03731 yyerrhandle:
03732 
03733   yyn = yypact[yystate];
03734   if (yyn == YYFLAG)
03735     goto yyerrdefault;
03736 
03737   yyn += YYTERROR;
03738   if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
03739     goto yyerrdefault;
03740 
03741   yyn = yytable[yyn];
03742   if (yyn < 0)
03743     {
03744       if (yyn == YYFLAG)
03745         goto yyerrpop;
03746       yyn = -yyn;
03747       goto yyreduce;
03748     }
03749   else if (yyn == 0)
03750     goto yyerrpop;
03751 
03752   if (yyn == YYFINAL)
03753     YYACCEPT;
03754 
03755 #if YYDEBUG != 0
03756   if (yydebug)
03757     fprintf(stderr, "Shifting error token, ");
03758 #endif
03759 
03760   *++yyvsp = yylval;
03761 #ifdef YYLSP_NEEDED
03762   *++yylsp = yylloc;
03763 #endif
03764 
03765   yystate = yyn;
03766   goto yynewstate;
03767 
03768  yyacceptlab:
03769   /* YYACCEPT comes here.  */
03770   if (yyfree_stacks)
03771     {
03772       free (yyss);
03773       free (yyvs);
03774 #ifdef YYLSP_NEEDED
03775       free (yyls);
03776 #endif
03777     }
03778   return 0;
03779 
03780  yyabortlab:
03781   /* YYABORT comes here.  */
03782   if (yyfree_stacks)
03783     {
03784       free (yyss);
03785       free (yyvs);
03786 #ifdef YYLSP_NEEDED
03787       free (yyls);
03788 #endif
03789     }
03790   return 1;
03791 }
03792 #line 1282 "llgrammar.y"
03793 
03794 
03795 # include "bison.reset"
03796 
03797 /*
03798 ** yytext is set in lex scanner 
03799 ** extern YYSTYPE yylval;  
03800 ** yylval is defined by code generated by bison 
03801 */
03802 
03803 void ylerror (char *s) 
03804 {
03805   /* 
03806   ** This resetting of the left context is very important when multiple
03807   ** files are to be parsed.  We do not want failures to propagate.
03808   ** Lex/Yacc does not reset the flags when the parsing goes bad.  
03809   ** BEGIN 0;        
03810   **/
03811 
03812   /*@-mustfree@*/
03813   lclfatalerror (yllval.ltok,
03814                  message ("%s: Token code: %s, Token String: %s", 
03815                           cstring_fromChars (s), 
03816                           ltoken_unparseCodeName (yllval.ltok), 
03817                           ltoken_getRawString (yllval.ltok)));
03818   /*@=mustfree@*/
03819 }
03820 
03821 static void yyprint (FILE *f, int t, YYSTYPE value) 
03822 {
03823   fprintf (f, " type: %d (%s)", t, 
03824            cstring_toCharsSafe (ltoken_getRawString (value.ltok)));
03825 }
03826 
03827 
03828 
03829 
03830 
03831 
03832 

Generated at Fri Nov 3 18:57:42 2000 for LCLint by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000