#ifndef lint /*static char yysccsid[] = "from: @(#)yaccpar 1.9 (Berkeley) 02/21/93";*/ static char yyrcsid[] = "$Id: skeleton.c,v 1.4 1993/12/21 18:45:32 jtc Exp $"; #endif #define YYBYACC 1 #define YYMAJOR 1 #define YYMINOR 9 #define yyclearin (yychar=(-1)) #define yyerrok (yyerrflag=0) #define YYRECOVERING (yyerrflag!=0) #define YYPREFIX "yy" #line 35 "scan.y" #include #include #include #include #include #include "scan.h" #define __YYSCLASS #define YYDEBUG 1 extern char yytext[]; extern FILE * yyin; int nError = 0; int nWarning = 0; int crt_section; int eqState; int isPhoto = 0; char crt_term[ 30 ]; char crt_coef[ 30 ]; char * InlineBuf; int InlineLen; void SemicolonError(); extern int yyerrflag; #line 66 "scan.y" typedef union{ char str[80]; } YYSTYPE; #line 47 "y.tab.c" #define JACOBIAN 257 #define DOUBLE 258 #define FUNCTION 259 #define DEFVAR 260 #define DEFRAD 261 #define DEFFIX 262 #define SETVAR 263 #define SETRAD 264 #define SETFIX 265 #define HESSIAN 266 #define STOICMAT 267 #define STOCHASTIC 268 #define INITVALUES 269 #define EQUATIONS 270 #define LUMP 271 #define INIEQUAL 272 #define EQNEQUAL 273 #define EQNCOLON 274 #define LMPCOLON 275 #define LMPPLUS 276 #define SPCPLUS 277 #define SPCEQUAL 278 #define ATOMDECL 279 #define CHECK 280 #define CHECKALL 281 #define REORDER 282 #define MEX 283 #define DUMMYINDEX 284 #define EQNTAGS 285 #define LOOKAT 286 #define LOOKATALL 287 #define TRANSPORT 288 #define TRANSPORTALL 289 #define MONITOR 290 #define USES 291 #define SPARSEDATA 292 #define WRFCONFORM 293 #define WRITE_ATM 294 #define WRITE_SPC 295 #define WRITE_MAT 296 #define WRITE_OPT 297 #define INITIALIZE 298 #define XGRID 299 #define YGRID 300 #define ZGRID 301 #define USE 302 #define LANGUAGE 303 #define INTFILE 304 #define DRIVER 305 #define RUN 306 #define INLINE 307 #define ENDINLINE 308 #define PARAMETER 309 #define SPCSPC 310 #define INISPC 311 #define INIVALUE 312 #define EQNSPC 313 #define EQNSIGN 314 #define EQNCOEF 315 #define RATE 316 #define LMPSPC 317 #define SPCNR 318 #define ATOMID 319 #define LKTID 320 #define MNIID 321 #define INLCTX 322 #define INCODE 323 #define SSPID 324 #define EQNLESS 325 #define EQNTAG 326 #define EQNGREATER 327 #define TPTID 328 #define USEID 329 #define YYERRCODE 256 short yylhs[] = { -1, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 15, 15, 4, 4, 4, 16, 10, 10, 10, 17, 11, 11, 11, 18, 12, 12, 12, 19, 14, 14, 14, 20, 6, 6, 6, 21, 5, 5, 5, 22, 22, 23, 24, 25, 25, 26, 26, 7, 7, 7, 27, 8, 8, 8, 28, 28, 1, 1, 2, 29, 30, 31, 31, 31, 32, 32, 9, 9, 9, 33, 33, 13, 13, }; short yylen[] = { 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 4, 2, 2, 2, 2, 2, 2, 2, 1, 3, 2, 2, 1, 3, 2, 2, 1, 3, 2, 2, 1, 3, 2, 2, 1, 3, 2, 2, 1, 3, 2, 2, 1, 3, 2, 2, 1, 1, 3, 1, 3, 1, 2, 1, 3, 2, 2, 3, 3, 2, 2, 4, 3, 2, 1, 3, 2, 2, 3, 2, 1, 2, 1, 3, 2, 2, 3, 3, 2, 1, }; short yydefred[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 28, 0, 29, 0, 0, 0, 30, 31, 32, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 11, 0, 0, 0, 0, 76, 77, 0, 0, 0, 72, 0, 0, 0, 0, 4, 5, 12, 0, 0, 0, 0, 0, 102, 0, 0, 0, 0, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 52, 0, 0, 0, 7, 8, 9, 10, 0, 56, 0, 0, 0, 64, 0, 0, 0, 60, 0, 0, 0, 68, 0, 0, 46, 36, 37, 38, 39, 34, 35, 42, 43, 44, 41, 0, 2, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 101, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, 47, 83, 0, 0, 81, 0, 0, 87, 0, 95, 0, 0, 0, 92, 97, 98, 107, 106, 0, 0, 0, 0, 0, 0, 40, 108, 82, 0, 91, 93, 80, }; short yydgoto[] = { 44, 181, 75, 45, 87, 51, 59, 68, 76, 83, 96, 104, 100, 167, 108, 124, 88, 97, 105, 101, 109, 60, 52, 53, 54, 171, 172, 69, 77, 78, 142, 79, 80, 84, }; short yysindex[] = { -139, -285, -278, -271, -240, -240, -240, -253, -253, -253, -226, -219, -212, -243, -249, -248, -237, -237, 0, -211, -210, -209, -207, -246, 0, -251, 0, -242, -256, -204, 0, 0, 0, 0, -203, -201, -200, -198, -197, -195, -194, -192, -176, -250, 0, -139, 0, 0, 0, -3, -215, -175, -3, 0, 0, -175, -175, -3, 0, -265, -3, -265, -265, 0, 0, 0, -3, -138, -174, -3, -3, 0, -288, -177, -188, -227, -270, -3, -227, -247, 0, -3, -228, -178, -3, -3, 0, -150, -3, -150, 0, 0, 0, 0, -3, 0, -149, -3, -3, 0, -158, -3, -3, 0, -148, -3, -3, 0, -157, -3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -147, 0, 0, 115, -290, -3, 115, 115, -3, 115, 115, -137, -3, 115, 115, 0, 0, -146, -227, -3, 115, -136, -263, 0, -288, 115, -140, -178, -3, 115, 115, -3, 115, 115, -3, 115, 115, -3, 115, 115, -3, 115, 115, -3, 115, 0, -291, 0, 0, -132, -98, 0, 115, 115, 0, 115, 0, -136, 115, -136, 0, 0, 0, 0, 0, 115, 115, 115, 115, 115, 115, 0, 0, 0, -290, 0, 0, 0, }; short yyrindex[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 182, 0, 0, 0, 0, 124, 1996, 0, 0, 0, 2047, 2100, 0, 0, 2153, 0, 2204, 2268, 0, 0, 0, 0, 0, 2319, 0, 0, 0, 0, 0, 0, 0, 2372, 0, 0, 0, 0, 0, 0, 2425, 0, 0, 0, 2476, 0, 2540, 0, 0, 0, 0, 0, 0, 2591, 0, 0, 0, 2644, 0, 0, 0, 2697, 0, 0, 0, 2748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1792, 0, 0, 1860, 567, 0, 636, 1588, 0, 0, 1655, 328, 0, 0, 0, 0, 0, 426, 0, 0, 0, 0, 1383, 0, 0, 0, 1452, 1180, 0, 1248, 976, 0, 1044, 154, 0, 205, 772, 0, 839, 1, 0, 52, 0, 0, 0, 0, 0, 125, 0, 1927, 704, 0, 1724, 0, 0, 498, 126, 0, 0, 0, 0, 0, 1520, 1316, 1111, 256, 908, 103, 0, 0, 0, 0, 0, 0, 0, }; short yygindex[] = { 141, -118, 0, 0, 170, 88, 87, 0, 0, 0, 0, 0, 0, 0, 0, -48, 2, 92, 85, 90, 83, -20, -21, 0, 0, 0, -2, 127, 116, 119, 57, -55, -70, -68, }; #define YYTABLESIZE 3055 short yytable[] = { 106, 67, 136, 57, 127, 98, 120, 70, 81, 128, 94, 182, 130, 66, 102, 149, 49, 192, 131, 85, 169, 134, 135, 143, 46, 71, 144, 73, 170, 141, 126, 47, 193, 146, 126, 126, 150, 151, 48, 129, 153, 129, 129, 71, 72, 73, 154, 147, 148, 156, 157, 145, 66, 159, 160, 74, 123, 162, 163, 58, 196, 165, 197, 125, 71, 72, 73, 145, 67, 82, 50, 58, 121, 107, 95, 183, 74, 99, 173, 103, 185, 174, 86, 63, 143, 176, 71, 72, 73, 152, 64, 152, 179, 55, 56, 61, 62, 65, 90, 91, 92, 186, 93, 65, 187, 110, 111, 188, 112, 113, 189, 114, 115, 190, 116, 117, 191, 118, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 119, 132, 50, 137, 67, 138, 82, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 63, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 86, 99, 95, 107, 103, 168, 175, 166, 184, 194, 195, 180, 177, 1, 79, 78, 94, 122, 89, 155, 161, 158, 164, 140, 198, 139, 133, 178, 0, 0, 0, 0, 0, 0, 0, 0, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 0, 0, 0, 0, 0, 0, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 0, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, 0, 0, 0, 90, 0, 67, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 0, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 0, 0, 0, 0, 0, 66, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 0, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 89, 0, 0, 0, 0, 0, 65, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 0, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 0, 0, 0, 0, 0, 63, 0, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 88, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, 0, 0, 62, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 0, 0, 0, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 61, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 0, 0, 0, 0, 0, 0, 0, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 0, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 70, 0, 0, 0, 0, 90, 90, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 0, 69, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 89, 0, 0, 0, 0, 0, 89, 89, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 89, 0, 0, 0, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 0, 0, 59, 0, 0, 0, 0, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 0, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 0, 0, 0, 0, 0, 88, 88, 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 58, 0, 0, 0, 0, 0, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 71, 0, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 57, 0, 0, 0, 0, 0, 0, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 0, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 55, 0, 0, 0, 0, 0, 0, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 0, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 54, 0, 0, 0, 0, 0, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 59, 0, 0, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 53, 0, 0, 0, 0, 0, 0, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 0, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 51, 0, 0, 0, 0, 0, 0, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 0, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 57, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 50, 0, 0, 0, 0, 0, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 49, 0, 0, 0, 0, 0, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 105, 0, 0, 0, 0, 0, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 104, 0, 0, 0, 0, 0, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0, 0, 0, 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 103, 0, 0, 0, 0, 0, 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 86, 0, 0, 0, 0, 0, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, 0, 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 85, 0, 0, 0, 0, 0, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 0, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 105, 0, 0, 0, 0, 0, 0, 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 84, 0, 0, 0, 0, 0, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 104, 0, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 75, 0, 0, 0, 0, 0, 0, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 0, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, 0, 0, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 74, 0, 0, 0, 0, 0, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 0, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 0, 0, 0, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 73, 0, 0, 0, 0, 0, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 0, 0, 0, 85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 15, 0, 0, 0, 0, 0, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 0, 0, 0, 0, 0, 0, 0, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 0, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 17, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 0, 0, 0, 0, 0, 0, 0, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 18, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 0, 0, 0, 0, 0, 19, 0, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 0, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 20, 0, 0, 0, 0, 0, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 0, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 21, 0, 0, 0, 0, 0, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 22, 0, 0, 0, 0, 0, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 23, 0, 0, 0, 0, 0, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 13, 0, 0, 0, 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 14, 0, 0, 0, 0, 0, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 0, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 24, 0, 0, 0, 0, 0, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 0, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 26, 0, 0, 0, 0, 0, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 0, 0, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 25, 0, 0, 0, 0, 0, 0, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 0, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 45, 0, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 0, 0, 0, 0, 0, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 0, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 0, 0, 0, 0, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 0, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 0, 0, 0, 0, 0, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 0, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, }; short yycheck[] = { 256, 0, 72, 256, 52, 256, 256, 256, 256, 57, 256, 274, 60, 256, 256, 83, 256, 308, 66, 256, 310, 69, 70, 78, 309, 313, 273, 315, 318, 77, 51, 309, 323, 81, 55, 56, 84, 85, 309, 59, 88, 61, 62, 313, 314, 315, 94, 275, 276, 97, 98, 314, 0, 101, 102, 325, 59, 105, 106, 324, 178, 109, 180, 278, 313, 314, 315, 314, 311, 317, 310, 324, 322, 329, 320, 145, 325, 328, 126, 321, 148, 129, 319, 309, 139, 133, 313, 314, 315, 87, 309, 89, 140, 5, 6, 8, 9, 309, 309, 309, 309, 149, 309, 0, 152, 309, 309, 155, 309, 309, 158, 309, 309, 161, 309, 309, 164, 309, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 309, 272, 310, 313, 311, 326, 317, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 0, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 319, 328, 320, 329, 321, 59, 312, 323, 317, 310, 277, 316, 327, 0, 59, 59, 59, 45, 17, 96, 104, 100, 108, 76, 195, 75, 68, 139, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, 0, -1, 329, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, 329, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, 329, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, 328, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 0, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, 328, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 328, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 0, -1, -1, -1, -1, 313, 314, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, 0, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, 313, 314, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, 0, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, 313, 314, 315, -1, -1, -1, -1, -1, -1, -1, -1, -1, 325, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 324, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 321, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 320, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 319, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, 317, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, 311, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 0, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 0, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, 0, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, -1, -1, -1, -1, -1, -1, -1, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, -1, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, }; #define YYFINAL 44 #ifndef YYDEBUG #define YYDEBUG 0 #endif #define YYMAXTOKEN 329 #if YYDEBUG char *yyname[] = { "end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"';'",0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"JACOBIAN","DOUBLE", "FUNCTION","DEFVAR","DEFRAD","DEFFIX","SETVAR","SETRAD","SETFIX","HESSIAN", "STOICMAT","STOCHASTIC","INITVALUES","EQUATIONS","LUMP","INIEQUAL","EQNEQUAL", "EQNCOLON","LMPCOLON","LMPPLUS","SPCPLUS","SPCEQUAL","ATOMDECL","CHECK", "CHECKALL","REORDER","MEX","DUMMYINDEX","EQNTAGS","LOOKAT","LOOKATALL", "TRANSPORT","TRANSPORTALL","MONITOR","USES","SPARSEDATA","WRFCONFORM", "WRITE_ATM","WRITE_SPC","WRITE_MAT","WRITE_OPT","INITIALIZE","XGRID","YGRID", "ZGRID","USE","LANGUAGE","INTFILE","DRIVER","RUN","INLINE","ENDINLINE", "PARAMETER","SPCSPC","INISPC","INIVALUE","EQNSPC","EQNSIGN","EQNCOEF","RATE", "LMPSPC","SPCNR","ATOMID","LKTID","MNIID","INLCTX","INCODE","SSPID","EQNLESS", "EQNTAG","EQNGREATER","TPTID","USEID", }; char *yyrule[] = { "$accept : program", "program : section", "program : section program", "section : JACOBIAN PARAMETER", "section : HESSIAN PARAMETER", "section : STOICMAT PARAMETER", "section : DOUBLE PARAMETER", "section : REORDER PARAMETER", "section : MEX PARAMETER", "section : DUMMYINDEX PARAMETER", "section : EQNTAGS PARAMETER", "section : FUNCTION PARAMETER", "section : STOCHASTIC PARAMETER", "section : ATOMDECL atomlist", "section : CHECK atomlist", "section : DEFVAR species", "section : DEFRAD species", "section : DEFFIX species", "section : SETVAR setspclist", "section : SETRAD setspclist", "section : SETFIX setspclist", "section : INITVALUES initvalues", "section : EQUATIONS equations", "section : LUMP lumps", "section : LOOKAT lookatlist", "section : MONITOR monitorlist", "section : TRANSPORT translist", "section : CHECKALL", "section : LOOKATALL", "section : TRANSPORTALL", "section : WRITE_ATM", "section : WRITE_SPC", "section : WRITE_MAT", "section : WRITE_OPT", "section : USE PARAMETER", "section : LANGUAGE PARAMETER", "section : INITIALIZE PARAMETER", "section : XGRID PARAMETER", "section : YGRID PARAMETER", "section : ZGRID PARAMETER", "section : INLINE INLCTX inlinecode ENDINLINE", "section : INLINE error", "section : INTFILE PARAMETER", "section : DRIVER PARAMETER", "section : RUN PARAMETER", "section : USES uselist", "section : SPARSEDATA PARAMETER", "semicolon : semicolon ';'", "semicolon : ';'", "atomlist : atomlist atomdef semicolon", "atomlist : atomdef semicolon", "atomlist : error semicolon", "atomdef : ATOMID", "lookatlist : lookatlist lookatspc semicolon", "lookatlist : lookatspc semicolon", "lookatlist : error semicolon", "lookatspc : LKTID", "monitorlist : monitorlist monitorspc semicolon", "monitorlist : monitorspc semicolon", "monitorlist : error semicolon", "monitorspc : MNIID", "translist : translist transspc semicolon", "translist : transspc semicolon", "translist : error semicolon", "transspc : TPTID", "uselist : uselist usefile semicolon", "uselist : usefile semicolon", "uselist : error semicolon", "usefile : USEID", "setspclist : setspclist setspcspc semicolon", "setspclist : setspcspc semicolon", "setspclist : error semicolon", "setspcspc : SSPID", "species : species spc semicolon", "species : spc semicolon", "species : error semicolon", "spc : spcname", "spc : spcdef", "spcname : SPCSPC SPCEQUAL atoms", "spcdef : SPCSPC", "atoms : atoms SPCPLUS atom", "atoms : atom", "atom : SPCNR SPCSPC", "atom : SPCSPC", "initvalues : initvalues assignment semicolon", "initvalues : assignment semicolon", "initvalues : error semicolon", "assignment : INISPC INIEQUAL INIVALUE", "equations : equations equation semicolon", "equations : equation semicolon", "equations : error semicolon", "equation : eqntag lefths righths rate", "equation : lefths righths rate", "rate : RATE rate", "rate : RATE", "eqntag : EQNLESS EQNTAG EQNGREATER", "lefths : expresion EQNEQUAL", "righths : expresion EQNCOLON", "expresion : expresion EQNSIGN term", "expresion : EQNSIGN term", "expresion : term", "term : EQNCOEF EQNSPC", "term : EQNSPC", "lumps : lumps lump semicolon", "lumps : lump semicolon", "lumps : error semicolon", "lump : LMPSPC LMPPLUS lump", "lump : LMPSPC LMPCOLON LMPSPC", "inlinecode : inlinecode INCODE", "inlinecode : INCODE", }; #endif #ifdef YYSTACKSIZE #undef YYMAXDEPTH #define YYMAXDEPTH YYSTACKSIZE #else #ifdef YYMAXDEPTH #define YYSTACKSIZE YYMAXDEPTH #else #define YYSTACKSIZE 500 #define YYMAXDEPTH 500 #endif #endif int yydebug; int yynerrs; int yyerrflag; int yychar; short *yyssp; YYSTYPE *yyvsp; YYSTYPE yyval; YYSTYPE yylval; short yyss[YYSTACKSIZE]; YYSTYPE yyvs[YYSTACKSIZE]; #define yystacksize YYSTACKSIZE #line 384 "scan.y" void yyerror( char * str ) { } void ParserErrorMessage() { yyerrok; /* Message("[%d,%s] -> [%d,%s]", crtTokType, crtToken, nextTokType, nextToken ); */ if( crtToken[0] == ';' ) { ParserError("Misplaced ';'"); return; } switch( crtTokType ) { case ATOMID: ParserError("Missing ';' after '%s'", crtToken ); break; case SPCSPC: ParserError("Missing ';' or '+' after '%s'", crtToken ); break; case SPCNR: ParserError("Missing species after '%s'", crtToken ); break; case SPCPLUS: ParserError("Missing atom after '%s'", crtToken ); break; case SPCEQUAL: ParserError("Invalid '=' after '%s'", crtToken ); break; case INISPC: ParserError("Missing '=' after '%s'", crtToken ); break; case INIEQUAL: ParserError("Missing value after '%s'", crtToken ); break; case INIVALUE: ParserError("Missing ';' after '%s'", crtToken ); break; case EQNSPC: ParserError("Missing '+' or '=' after '%s'", crtToken ); break; case EQNEQUAL: ParserError("Invalid right hand side of equation"); break; case EQNCOLON: ParserError("Missing rate after '%s'", crtToken ); break; case EQNSIGN: ParserError("Missing coeficient after '%s'", crtToken ); break; case EQNCOEF: ParserError("Missing species after '%s'", crtToken ); break; case RATE: ParserError("Missing ';' after '%s'", crtToken ); break; case LMPSPC: ParserError("Missing '+' or ':' or ';' after '%s'", crtToken ); break; case LMPPLUS: ParserError("Missing species after '%s'", crtToken ); break; case LMPCOLON: ParserError("Missing species after '%s'", crtToken ); break; case INLINE: ParserError("Missing inline option after '%s'", crtToken ); break; default: ParserError("Syntax error after '%s'", crtToken ); } } int Parser( char * filename ) { extern int yydebug; FILE *f; crt_filename = filename; f = fopen( crt_filename, "r" ); if( f == 0 ) { FatalError(7,"%s: File not found", crt_filename); } yyin = f; nError = 0; nWarning = 0; yydebug = 0; yyparse(); fclose( f ); return nError; } #line 1109 "y.tab.c" #define YYABORT goto yyabort #define YYREJECT goto yyabort #define YYACCEPT goto yyaccept #define YYERROR goto yyerrlab int #if defined(__STDC__) yyparse(void) #else yyparse() #endif { register int yym, yyn, yystate; #if YYDEBUG register char *yys; extern char *getenv(); if (yys = getenv("YYDEBUG")) { yyn = *yys; if (yyn >= '0' && yyn <= '9') yydebug = yyn - '0'; } #endif yynerrs = 0; yyerrflag = 0; yychar = (-1); yyssp = yyss; yyvsp = yyvs; *yyssp = yystate = 0; yyloop: if ((yyn = yydefred[yystate]) != 0) goto yyreduce; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif } if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, shifting to state %d\n", YYPREFIX, yystate, yytable[yyn]); #endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; yychar = (-1); if (yyerrflag > 0) --yyerrflag; goto yyloop; } if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yychar) { yyn = yytable[yyn]; goto yyreduce; } if (yyerrflag) goto yyinrecovery; yyerror("syntax error"); #ifdef lint goto yyerrlab; #endif yyerrlab: ++yynerrs; yyinrecovery: if (yyerrflag < 3) { yyerrflag = 3; for (;;) { if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE) { #if YYDEBUG if (yydebug) printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]); #endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate = yytable[yyn]; *++yyvsp = yylval; goto yyloop; } else { #if YYDEBUG if (yydebug) printf("%sdebug: error recovery discarding state %d\n", YYPREFIX, *yyssp); #endif if (yyssp <= yyss) goto yyabort; --yyssp; --yyvsp; } } } else { if (yychar == 0) goto yyabort; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, error recovery discards token %d (%s)\n", YYPREFIX, yystate, yychar, yys); } #endif yychar = (-1); goto yyloop; } yyreduce: #if YYDEBUG if (yydebug) printf("%sdebug: state %d, reducing by rule %d (%s)\n", YYPREFIX, yystate, yyn, yyrule[yyn]); #endif yym = yylen[yyn]; yyval = yyvsp[1-yym]; switch (yyn) { case 3: #line 95 "scan.y" { CmdJacobian( yyvsp[0].str ); } break; case 4: #line 98 "scan.y" { CmdHessian( yyvsp[0].str ); } break; case 5: #line 101 "scan.y" { CmdStoicmat( yyvsp[0].str ); } break; case 6: #line 104 "scan.y" { CmdDouble( yyvsp[0].str ); } break; case 7: #line 107 "scan.y" { CmdReorder( yyvsp[0].str ); } break; case 8: #line 110 "scan.y" { CmdMex( yyvsp[0].str ); } break; case 9: #line 113 "scan.y" { CmdDummyindex( yyvsp[0].str ); } break; case 10: #line 116 "scan.y" { CmdEqntags( yyvsp[0].str ); } break; case 11: #line 119 "scan.y" { CmdFunction( yyvsp[0].str ); } break; case 12: #line 122 "scan.y" { CmdStochastic( yyvsp[0].str ); } break; case 13: #line 125 "scan.y" {} break; case 14: #line 127 "scan.y" {} break; case 15: #line 129 "scan.y" {} break; case 16: #line 131 "scan.y" {} break; case 17: #line 133 "scan.y" {} break; case 18: #line 135 "scan.y" {} break; case 19: #line 137 "scan.y" {} break; case 20: #line 139 "scan.y" {} break; case 21: #line 141 "scan.y" {} break; case 22: #line 143 "scan.y" {} break; case 23: #line 145 "scan.y" {} break; case 24: #line 147 "scan.y" {} break; case 25: #line 149 "scan.y" {} break; case 26: #line 151 "scan.y" {} break; case 27: #line 153 "scan.y" { CheckAll(); } break; case 28: #line 155 "scan.y" { LookAtAll(); } break; case 29: #line 157 "scan.y" { TransportAll(); } break; case 30: #line 159 "scan.y" { WriteAtoms(); } break; case 31: #line 161 "scan.y" { WriteSpecies(); } break; case 32: #line 163 "scan.y" { WriteMatrices(); } break; case 33: #line 165 "scan.y" { WriteOptions(); } break; case 34: #line 167 "scan.y" { CmdUse( yyvsp[0].str ); } break; case 35: #line 169 "scan.y" { CmdLanguage( yyvsp[0].str ); } break; case 36: #line 171 "scan.y" { DefineInitializeNbr( yyvsp[0].str ); } break; case 37: #line 173 "scan.y" { DefineXGrid( yyvsp[0].str ); } break; case 38: #line 175 "scan.y" { DefineYGrid( yyvsp[0].str ); } break; case 39: #line 177 "scan.y" { DefineZGrid( yyvsp[0].str ); } break; case 40: #line 179 "scan.y" { AddInlineCode( yyvsp[-2].str, InlineBuf ); free( InlineBuf ); } break; case 41: #line 184 "scan.y" { ParserErrorMessage(); } break; case 42: #line 186 "scan.y" { CmdIntegrator( yyvsp[0].str ); } break; case 43: #line 188 "scan.y" { CmdDriver( yyvsp[0].str ); } break; case 44: #line 190 "scan.y" { CmdRun( yyvsp[0].str ); } break; case 45: #line 192 "scan.y" {} break; case 46: #line 194 "scan.y" { SparseData( yyvsp[0].str ); } break; case 47: #line 198 "scan.y" { ScanWarning("Unnecessary ';'"); } break; case 51: #line 205 "scan.y" { ParserErrorMessage(); } break; case 52: #line 208 "scan.y" { switch( crt_section ) { case ATOMDECL: DeclareAtom( yyvsp[0].str ); break; case CHECK: SetAtomType( yyvsp[0].str, DO_CHECK ); break; } } break; case 55: #line 217 "scan.y" { ParserErrorMessage(); } break; case 56: #line 220 "scan.y" { AddLookAt( yyvsp[0].str ); } break; case 59: #line 226 "scan.y" { ParserErrorMessage(); } break; case 60: #line 229 "scan.y" { AddMonitor( yyvsp[0].str ); } break; case 63: #line 235 "scan.y" { ParserErrorMessage(); } break; case 64: #line 238 "scan.y" { AddTransport( yyvsp[0].str ); } break; case 67: #line 244 "scan.y" { ParserErrorMessage(); } break; case 68: #line 247 "scan.y" { AddUseFile( yyvsp[0].str ); } break; case 71: #line 253 "scan.y" { ParserErrorMessage(); } break; case 72: #line 256 "scan.y" { switch( crt_section ) { case SETVAR: SetSpcType( VAR_SPC, yyvsp[0].str ); break; case SETRAD: SetSpcType( RAD_SPC, yyvsp[0].str ); break; case SETFIX: SetSpcType( FIX_SPC, yyvsp[0].str ); break; } } break; case 75: #line 266 "scan.y" { ParserErrorMessage(); } break; case 78: #line 272 "scan.y" { switch( crt_section ) { case DEFVAR: DeclareSpecies( VAR_SPC, yyvsp[-2].str ); break; case DEFRAD: DeclareSpecies( RAD_SPC, yyvsp[-2].str ); break; case DEFFIX: DeclareSpecies( FIX_SPC, yyvsp[-2].str ); break; } } break; case 79: #line 280 "scan.y" { switch( crt_section ) { case DEFVAR: DeclareSpecies( VAR_SPC, yyvsp[0].str ); break; case DEFRAD: DeclareSpecies( RAD_SPC, yyvsp[0].str ); break; case DEFFIX: DeclareSpecies( FIX_SPC, yyvsp[0].str ); break; } } break; case 82: #line 291 "scan.y" { AddAtom( yyvsp[0].str, yyvsp[-1].str ); } break; case 83: #line 294 "scan.y" { AddAtom( yyvsp[0].str, "1" ); } break; case 86: #line 300 "scan.y" { ParserErrorMessage(); } break; case 87: #line 303 "scan.y" { AssignInitialValue( yyvsp[-2].str, yyvsp[0].str ); } break; case 90: #line 308 "scan.y" { ParserErrorMessage(); eqState = LHS; } break; case 91: #line 313 "scan.y" { eqState = LHS; StoreEquationRate( yyvsp[0].str, yyvsp[-3].str ); CheckEquation(); } break; case 92: #line 318 "scan.y" { eqState = LHS; StoreEquationRate( yyvsp[0].str, " " ); CheckEquation(); } break; case 93: #line 323 "scan.y" { strcpy( yyval.str, yyvsp[-1].str ); strcat( yyval.str, yyvsp[0].str ); } break; case 94: #line 327 "scan.y" { strcpy( yyval.str, yyvsp[0].str ); } break; case 95: #line 331 "scan.y" { strcpy( yyval.str, yyvsp[-1].str ); } break; case 96: #line 335 "scan.y" { eqState = RHS; } break; case 97: #line 338 "scan.y" { eqState = RAT; } break; case 98: #line 341 "scan.y" { ProcessTerm( eqState, yyvsp[-1].str, crt_coef, crt_term ); } break; case 99: #line 344 "scan.y" { ProcessTerm( eqState, yyvsp[-1].str, crt_coef, crt_term ); } break; case 100: #line 347 "scan.y" { ProcessTerm( eqState, "+", crt_coef, crt_term ); } break; case 101: #line 351 "scan.y" { strcpy( crt_term, yyvsp[0].str ); strcpy( crt_coef, yyvsp[-1].str ); } break; case 102: #line 355 "scan.y" { strcpy( crt_term, yyvsp[0].str ); strcpy( crt_coef, "1" ); } break; case 105: #line 362 "scan.y" { ParserErrorMessage(); } break; case 106: #line 365 "scan.y" { AddLumpSpecies( yyvsp[-2].str ); } break; case 107: #line 368 "scan.y" { AddLumpSpecies( yyvsp[-2].str ); CheckLump( yyvsp[0].str ); } break; case 108: #line 373 "scan.y" { InlineBuf = AppendString( InlineBuf, yyvsp[0].str, &InlineLen, MAX_INLINE ); } break; case 109: #line 377 "scan.y" { InlineBuf = malloc( MAX_INLINE ); InlineLen = MAX_INLINE; strcpy( InlineBuf, yyvsp[0].str); } break; #line 1647 "y.tab.c" } yyssp -= yym; yystate = *yyssp; yyvsp -= yym; yym = yylhs[yyn]; if (yystate == 0 && yym == 0) { #if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL); #endif yystate = YYFINAL; *++yyssp = YYFINAL; *++yyvsp = yyval; if (yychar < 0) { if ((yychar = yylex()) < 0) yychar = 0; #if YYDEBUG if (yydebug) { yys = 0; if (yychar <= YYMAXTOKEN) yys = yyname[yychar]; if (!yys) yys = "illegal-symbol"; printf("%sdebug: state %d, reading %d (%s)\n", YYPREFIX, YYFINAL, yychar, yys); } #endif } if (yychar == 0) goto yyaccept; goto yyloop; } if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 && yyn <= YYTABLESIZE && yycheck[yyn] == yystate) yystate = yytable[yyn]; else yystate = yydgoto[yym]; #if YYDEBUG if (yydebug) printf("%sdebug: after reduction, shifting from state %d \ to state %d\n", YYPREFIX, *yyssp, yystate); #endif if (yyssp >= yyss + yystacksize - 1) { goto yyoverflow; } *++yyssp = yystate; *++yyvsp = yyval; goto yyloop; yyoverflow: yyerror("yacc stack overflow"); yyabort: return (1); yyaccept: return (0); }