Annotation of OpenXM_contrib2/asir2000/parse/ytab.c, Revision 1.8
1.8 ! noro 1: /* A Bison parser, made by GNU Bison 1.875b. */
1.5 noro 2:
1.8 ! noro 3: /* Skeleton parser for Yacc-like parsing with Bison,
! 4: Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
1.5 noro 5:
1.8 ! noro 6: This program is free software; you can redistribute it and/or modify
! 7: it under the terms of the GNU General Public License as published by
! 8: the Free Software Foundation; either version 2, or (at your option)
! 9: any later version.
! 10:
! 11: This program is distributed in the hope that it will be useful,
! 12: but WITHOUT ANY WARRANTY; without even the implied warranty of
! 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! 14: GNU General Public License for more details.
! 15:
! 16: You should have received a copy of the GNU General Public License
! 17: along with this program; if not, write to the Free Software
! 18: Foundation, Inc., 59 Temple Place - Suite 330,
! 19: Boston, MA 02111-1307, USA. */
! 20:
! 21: /* As a special exception, when this file is copied by Bison into a
! 22: Bison output file, you may use that output file without restriction.
! 23: This special exception was added by the Free Software Foundation
! 24: in version 1.24 of Bison. */
! 25:
! 26: /* Written by Richard Stallman by simplifying the original so called
! 27: ``semantic'' parser. */
! 28:
! 29: /* All symbols defined below should begin with yy or YY, to avoid
! 30: infringing on user name space. This should be done even for local
! 31: variables, as they might otherwise be expanded by user macros.
! 32: There are some unavoidable exceptions within include files to
! 33: define necessary library symbols; they are noted "INFRINGES ON
! 34: USER NAME SPACE" below. */
! 35:
! 36: /* Identify Bison output. */
! 37: #define YYBISON 1
! 38:
! 39: /* Skeleton name. */
! 40: #define YYSKELETON_NAME "yacc.c"
! 41:
! 42: /* Pure parsers. */
! 43: #define YYPURE 0
1.5 noro 44:
1.8 ! noro 45: /* Using locations. */
! 46: #define YYLSP_NEEDED 0
! 47:
! 48:
! 49:
! 50: /* Tokens. */
! 51: #ifndef YYTOKENTYPE
! 52: # define YYTOKENTYPE
! 53: /* Put the tokens into the symbol table, so that GDB and other debuggers
! 54: know about them. */
! 55: enum yytokentype {
! 56: STRUCT = 258,
! 57: POINT = 259,
! 58: NEWSTRUCT = 260,
! 59: ANS = 261,
! 60: FDEF = 262,
! 61: PFDEF = 263,
! 62: MODDEF = 264,
! 63: MODEND = 265,
! 64: GLOBAL = 266,
! 65: MGLOBAL = 267,
! 66: LOCAL = 268,
! 67: LOCALF = 269,
! 68: CMP = 270,
! 69: OR = 271,
! 70: AND = 272,
! 71: CAR = 273,
! 72: CDR = 274,
! 73: QUOTED = 275,
! 74: COLONCOLON = 276,
! 75: DO = 277,
! 76: WHILE = 278,
! 77: FOR = 279,
! 78: IF = 280,
! 79: ELSE = 281,
! 80: BREAK = 282,
! 81: RETURN = 283,
! 82: CONTINUE = 284,
! 83: PARIF = 285,
! 84: MAP = 286,
! 85: RECMAP = 287,
! 86: TIMER = 288,
! 87: GF2NGEN = 289,
! 88: GFPNGEN = 290,
! 89: GFSNGEN = 291,
! 90: GETOPT = 292,
! 91: FOP_AND = 293,
! 92: FOP_OR = 294,
! 93: FOP_IMPL = 295,
! 94: FOP_REPL = 296,
! 95: FOP_EQUIV = 297,
! 96: FOP_NOT = 298,
! 97: LOP = 299,
! 98: FORMULA = 300,
! 99: UCASE = 301,
! 100: LCASE = 302,
! 101: STR = 303,
! 102: SELF = 304,
! 103: BOPASS = 305,
! 104: PLUS = 306,
! 105: MINUS = 307
! 106: };
! 107: #endif
! 108: #define STRUCT 258
! 109: #define POINT 259
! 110: #define NEWSTRUCT 260
! 111: #define ANS 261
! 112: #define FDEF 262
! 113: #define PFDEF 263
! 114: #define MODDEF 264
! 115: #define MODEND 265
! 116: #define GLOBAL 266
! 117: #define MGLOBAL 267
! 118: #define LOCAL 268
! 119: #define LOCALF 269
! 120: #define CMP 270
! 121: #define OR 271
! 122: #define AND 272
! 123: #define CAR 273
! 124: #define CDR 274
! 125: #define QUOTED 275
! 126: #define COLONCOLON 276
! 127: #define DO 277
! 128: #define WHILE 278
! 129: #define FOR 279
! 130: #define IF 280
! 131: #define ELSE 281
! 132: #define BREAK 282
! 133: #define RETURN 283
! 134: #define CONTINUE 284
! 135: #define PARIF 285
! 136: #define MAP 286
! 137: #define RECMAP 287
! 138: #define TIMER 288
! 139: #define GF2NGEN 289
! 140: #define GFPNGEN 290
! 141: #define GFSNGEN 291
! 142: #define GETOPT 292
! 143: #define FOP_AND 293
! 144: #define FOP_OR 294
! 145: #define FOP_IMPL 295
! 146: #define FOP_REPL 296
! 147: #define FOP_EQUIV 297
! 148: #define FOP_NOT 298
! 149: #define LOP 299
! 150: #define FORMULA 300
! 151: #define UCASE 301
! 152: #define LCASE 302
! 153: #define STR 303
! 154: #define SELF 304
! 155: #define BOPASS 305
! 156: #define PLUS 306
! 157: #define MINUS 307
! 158:
! 159:
! 160:
! 161:
! 162: /* Copy the first part of user declarations. */
1.5 noro 163: #line 50 "parse.y"
164:
1.1 noro 165: #define malloc(x) GC_malloc(x)
166: #define realloc(x,y) GC_realloc(x,y)
167: #define free(x) GC_free(x)
168:
169: #if defined(TOWNS)
170: #include <alloca.h>
171: #endif
172: #include <ctype.h>
173: #include "ca.h"
174: #include <sys/types.h>
175: #include <sys/stat.h>
176: #include "parse.h"
177:
178: #define NOPR (prresult=0)
179:
1.4 noro 180: extern int gdef,mgdef,ldef;
1.1 noro 181: extern SNODE parse_snode;
1.4 noro 182: extern int main_parser, allow_create_var;
1.1 noro 183:
1.8 ! noro 184: int prresult,saveresult;
1.1 noro 185:
186: static int ind;
187: static FNODE t;
188: static NODE a,b;
189: static NODE2 a2;
190: static pointer val;
1.2 noro 191: static QUOTE quote;
1.1 noro 192: extern jmp_buf env;
1.5 noro 193:
1.8 ! noro 194:
! 195: /* Enabling traces. */
! 196: #ifndef YYDEBUG
! 197: # define YYDEBUG 0
! 198: #endif
! 199:
! 200: /* Enabling verbose error messages. */
! 201: #ifdef YYERROR_VERBOSE
! 202: # undef YYERROR_VERBOSE
! 203: # define YYERROR_VERBOSE 1
! 204: #else
! 205: # define YYERROR_VERBOSE 0
! 206: #endif
! 207:
! 208: #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
1.2 noro 209: #line 83 "parse.y"
1.8 ! noro 210: typedef union YYSTYPE {
1.1 noro 211: FNODE f;
212: SNODE s;
213: NODE n;
214: NODE2 n2;
215: int i;
216: pointer p;
1.8 ! noro 217: } YYSTYPE;
! 218: /* Line 191 of yacc.c. */
! 219: #line 220 "y.tab.c"
! 220: # define yystype YYSTYPE /* obsolescent; will be withdrawn */
! 221: # define YYSTYPE_IS_DECLARED 1
1.5 noro 222: # define YYSTYPE_IS_TRIVIAL 1
223: #endif
1.8 ! noro 224:
! 225:
! 226:
! 227: /* Copy the second part of user declarations. */
! 228:
! 229:
! 230: /* Line 214 of yacc.c. */
! 231: #line 232 "y.tab.c"
! 232:
! 233: #if ! defined (yyoverflow) || YYERROR_VERBOSE
! 234:
! 235: /* The parser invokes alloca or malloc; define the necessary symbols. */
! 236:
! 237: # if YYSTACK_USE_ALLOCA
! 238: # define YYSTACK_ALLOC alloca
! 239: # else
! 240: # ifndef YYSTACK_USE_ALLOCA
! 241: # if defined (alloca) || defined (_ALLOCA_H)
! 242: # define YYSTACK_ALLOC alloca
! 243: # else
! 244: # ifdef __GNUC__
! 245: # define YYSTACK_ALLOC __builtin_alloca
! 246: # endif
! 247: # endif
! 248: # endif
! 249: # endif
! 250:
! 251: # ifdef YYSTACK_ALLOC
! 252: /* Pacify GCC's `empty if-body' warning. */
! 253: # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
! 254: # else
! 255: # if defined (__STDC__) || defined (__cplusplus)
! 256: # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
! 257: # define YYSIZE_T size_t
! 258: # endif
! 259: # define YYSTACK_ALLOC malloc
! 260: # define YYSTACK_FREE free
! 261: # endif
! 262: #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
! 263:
! 264:
! 265: #if (! defined (yyoverflow) \
! 266: && (! defined (__cplusplus) \
! 267: || (YYSTYPE_IS_TRIVIAL)))
! 268:
! 269: /* A type that is properly aligned for any stack member. */
! 270: union yyalloc
! 271: {
! 272: short yyss;
! 273: YYSTYPE yyvs;
! 274: };
! 275:
! 276: /* The size of the maximum gap between one aligned stack and the next. */
! 277: # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
! 278:
! 279: /* The size of an array large to enough to hold all stacks, each with
! 280: N elements. */
! 281: # define YYSTACK_BYTES(N) \
! 282: ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
! 283: + YYSTACK_GAP_MAXIMUM)
! 284:
! 285: /* Copy COUNT objects from FROM to TO. The source and destination do
! 286: not overlap. */
! 287: # ifndef YYCOPY
! 288: # if 1 < __GNUC__
! 289: # define YYCOPY(To, From, Count) \
! 290: __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
! 291: # else
! 292: # define YYCOPY(To, From, Count) \
! 293: do \
! 294: { \
! 295: register YYSIZE_T yyi; \
! 296: for (yyi = 0; yyi < (Count); yyi++) \
! 297: (To)[yyi] = (From)[yyi]; \
! 298: } \
! 299: while (0)
! 300: # endif
! 301: # endif
! 302:
! 303: /* Relocate STACK from its old location to the new one. The
! 304: local variables YYSIZE and YYSTACKSIZE give the old and new number of
! 305: elements in the stack, and YYPTR gives the new location of the
! 306: stack. Advance YYPTR to a properly aligned location for the next
! 307: stack. */
! 308: # define YYSTACK_RELOCATE(Stack) \
! 309: do \
! 310: { \
! 311: YYSIZE_T yynewbytes; \
! 312: YYCOPY (&yyptr->Stack, Stack, yysize); \
! 313: Stack = &yyptr->Stack; \
! 314: yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
! 315: yyptr += yynewbytes / sizeof (*yyptr); \
! 316: } \
! 317: while (0)
! 318:
1.5 noro 319: #endif
320:
1.8 ! noro 321: #if defined (__STDC__) || defined (__cplusplus)
! 322: typedef signed char yysigned_char;
! 323: #else
! 324: typedef short yysigned_char;
! 325: #endif
1.5 noro 326:
1.8 ! noro 327: /* YYFINAL -- State number of the termination state. */
! 328: #define YYFINAL 101
! 329: /* YYLAST -- Last index in YYTABLE. */
! 330: #define YYLAST 1290
! 331:
! 332: /* YYNTOKENS -- Number of terminals. */
! 333: #define YYNTOKENS 77
! 334: /* YYNNTS -- Number of nonterminals. */
! 335: #define YYNNTS 26
! 336: /* YYNRULES -- Number of rules. */
! 337: #define YYNRULES 113
! 338: /* YYNRULES -- Number of states. */
! 339: #define YYNSTATES 280
! 340:
! 341: /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
! 342: #define YYUNDEFTOK 2
! 343: #define YYMAXUTOK 307
1.5 noro 344:
1.8 ! noro 345: #define YYTRANSLATE(YYX) \
! 346: ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1.5 noro 347:
1.8 ! noro 348: /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
! 349: static const unsigned char yytranslate[] =
1.5 noro 350: {
351: 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
352: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
353: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
354: 2, 2, 2, 64, 2, 2, 70, 56, 61, 2,
355: 67, 68, 53, 51, 71, 52, 2, 54, 2, 2,
356: 2, 2, 2, 2, 2, 2, 2, 2, 59, 69,
357: 75, 57, 76, 58, 2, 2, 2, 2, 2, 2,
358: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
359: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
360: 2, 73, 2, 74, 55, 2, 60, 2, 2, 2,
361: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
362: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
363: 2, 2, 2, 65, 72, 66, 2, 2, 2, 2,
364: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
365: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
366: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
367: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
368: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
369: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
370: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
371: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
372: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
373: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
374: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
375: 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1.8 ! noro 376: 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
! 377: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
! 378: 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
! 379: 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
! 380: 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
! 381: 45, 46, 47, 48, 49, 50, 62, 63
1.5 noro 382: };
383:
384: #if YYDEBUG
1.8 ! noro 385: /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
! 386: YYRHS. */
! 387: static const unsigned short yyprhs[] =
! 388: {
! 389: 0, 0, 3, 5, 7, 8, 9, 15, 16, 17,
! 390: 23, 24, 25, 31, 35, 42, 45, 47, 50, 53,
! 391: 56, 60, 66, 74, 84, 90, 98, 107, 114, 115,
! 392: 116, 117, 130, 134, 137, 140, 142, 144, 145, 147,
! 393: 151, 153, 157, 159, 163, 165, 169, 170, 173, 174,
! 394: 176, 178, 182, 184, 188, 190, 192, 196, 198, 200,
! 395: 202, 204, 206, 208, 210, 215, 222, 229, 236, 244,
! 396: 249, 253, 262, 267, 274, 282, 287, 292, 297, 301,
! 397: 303, 308, 312, 314, 320, 324, 328, 331, 334, 338,
! 398: 341, 344, 348, 352, 356, 360, 364, 368, 372, 375,
! 399: 379, 383, 386, 390, 394, 398, 402, 406, 410, 416,
! 400: 420, 425, 430, 436
1.5 noro 401: };
1.8 ! noro 402:
! 403: /* YYRHS -- A `-1'-separated list of the rules' RHS. */
! 404: static const yysigned_char yyrhs[] =
1.5 noro 405: {
1.8 ! noro 406: 78, 0, -1, 79, -1, 89, -1, -1, -1, 11,
! 407: 80, 94, 81, 89, -1, -1, -1, 12, 82, 94,
! 408: 83, 89, -1, -1, -1, 13, 84, 94, 85, 89,
! 409: -1, 14, 93, 89, -1, 3, 99, 65, 92, 66,
! 410: 89, -1, 102, 89, -1, 91, -1, 27, 89, -1,
! 411: 29, 89, -1, 28, 89, -1, 28, 102, 89, -1,
! 412: 25, 67, 96, 68, 79, -1, 25, 67, 96, 68,
! 413: 79, 26, 79, -1, 24, 67, 96, 69, 96, 69,
! 414: 96, 68, 79, -1, 23, 67, 96, 68, 79, -1,
! 415: 22, 79, 23, 67, 96, 68, 89, -1, 47, 67,
! 416: 96, 68, 59, 57, 102, 89, -1, 8, 47, 67,
! 417: 96, 68, 89, -1, -1, -1, -1, 7, 47, 86,
! 418: 67, 87, 96, 88, 68, 90, 65, 95, 66, -1,
! 419: 9, 47, 89, -1, 10, 89, -1, 1, 89, -1,
! 420: 69, -1, 70, -1, -1, 48, -1, 65, 95, 66,
! 421: -1, 99, -1, 92, 71, 99, -1, 47, -1, 93,
! 422: 71, 47, -1, 46, -1, 94, 71, 46, -1, -1,
! 423: 95, 79, -1, -1, 97, -1, 102, -1, 97, 71,
! 424: 102, -1, 100, -1, 98, 71, 100, -1, 46, -1,
! 425: 47, -1, 99, 57, 102, -1, 48, -1, 45, -1,
! 426: 6, -1, 34, -1, 35, -1, 36, -1, 47, -1,
! 427: 47, 67, 96, 68, -1, 47, 67, 96, 72, 98,
! 428: 68, -1, 31, 67, 47, 71, 96, 68, -1, 32,
! 429: 67, 47, 71, 96, 68, -1, 47, 65, 96, 66,
! 430: 67, 96, 68, -1, 37, 67, 99, 68, -1, 37,
! 431: 67, 68, -1, 33, 67, 102, 71, 102, 71, 102,
! 432: 68, -1, 30, 67, 47, 68, -1, 30, 67, 47,
! 433: 71, 96, 68, -1, 67, 53, 102, 68, 67, 96,
! 434: 68, -1, 46, 67, 96, 68, -1, 18, 67, 102,
! 435: 68, -1, 19, 67, 102, 68, -1, 67, 102, 68,
! 436: -1, 46, -1, 101, 73, 102, 74, -1, 101, 4,
! 437: 99, -1, 101, -1, 67, 3, 99, 68, 101, -1,
! 438: 102, 57, 102, -1, 102, 50, 102, -1, 102, 49,
! 439: -1, 49, 102, -1, 73, 96, 74, -1, 51, 102,
! 440: -1, 52, 102, -1, 102, 51, 102, -1, 102, 52,
! 441: 102, -1, 102, 53, 102, -1, 102, 54, 102, -1,
! 442: 102, 56, 102, -1, 102, 55, 102, -1, 102, 15,
! 443: 102, -1, 64, 102, -1, 102, 16, 102, -1, 102,
! 444: 17, 102, -1, 43, 102, -1, 102, 38, 102, -1,
! 445: 102, 39, 102, -1, 102, 40, 102, -1, 102, 41,
! 446: 102, -1, 102, 42, 102, -1, 102, 44, 102, -1,
! 447: 102, 58, 102, 59, 102, -1, 75, 96, 76, -1,
! 448: 5, 67, 99, 68, -1, 20, 67, 102, 68, -1,
! 449: 73, 96, 72, 102, 74, -1, 60, 102, -1
1.1 noro 450: };
1.5 noro 451:
1.8 ! noro 452: /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
! 453: static const unsigned short yyrline[] =
1.5 noro 454: {
1.8 ! noro 455: 0, 130, 130, 139, 141, 141, 141, 143, 143, 143,
! 456: 145, 145, 145, 147, 149, 151, 153, 155, 157, 159,
! 457: 161, 163, 165, 167, 169, 171, 173, 175, 177, 177,
! 458: 177, 177, 183, 189, 191, 194, 196, 200, 201, 204,
! 459: 207, 209, 212, 214, 217, 219, 223, 224, 228, 229,
! 460: 232, 234, 237, 239, 242, 244, 247, 250, 252, 254,
! 461: 256, 258, 260, 262, 283, 290, 297, 303, 309, 314,
! 462: 318, 322, 326, 333, 340, 344, 358, 360, 362, 364,
! 463: 377, 387, 390, 392, 394, 396, 398, 400, 402, 404,
! 464: 406, 408, 410, 412, 414, 416, 418, 420, 422, 424,
! 465: 426, 428, 430, 432, 434, 436, 438, 440, 442, 444,
! 466: 446, 448, 450, 452
1.1 noro 467: };
1.5 noro 468: #endif
469:
1.8 ! noro 470: #if YYDEBUG || YYERROR_VERBOSE
! 471: /* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
! 472: First, the terminals, then, starting at YYNTOKENS, nonterminals. */
1.5 noro 473: static const char *const yytname[] =
474: {
1.8 ! noro 475: "$end", "error", "$undefined", "STRUCT", "POINT", "NEWSTRUCT", "ANS",
1.5 noro 476: "FDEF", "PFDEF", "MODDEF", "MODEND", "GLOBAL", "MGLOBAL", "LOCAL",
477: "LOCALF", "CMP", "OR", "AND", "CAR", "CDR", "QUOTED", "COLONCOLON",
478: "DO", "WHILE", "FOR", "IF", "ELSE", "BREAK", "RETURN", "CONTINUE",
479: "PARIF", "MAP", "RECMAP", "TIMER", "GF2NGEN", "GFPNGEN", "GFSNGEN",
480: "GETOPT", "FOP_AND", "FOP_OR", "FOP_IMPL", "FOP_REPL", "FOP_EQUIV",
481: "FOP_NOT", "LOP", "FORMULA", "UCASE", "LCASE", "STR", "SELF", "BOPASS",
482: "'+'", "'-'", "'*'", "'/'", "'^'", "'%'", "'='", "'?'", "':'", "'`'",
483: "'&'", "PLUS", "MINUS", "'!'", "'{'", "'}'", "'('", "')'", "';'", "'$'",
1.8 ! noro 484: "','", "'|'", "'['", "']'", "'<'", "'>'", "$accept", "start", "stat",
! 485: "@1", "@2", "@3", "@4", "@5", "@6", "@7", "@8", "@9", "tail", "desc",
! 486: "complex", "members", "vars", "pvars", "stats", "node", "_node",
! 487: "optlist", "rawstr", "opt", "pexpr", "expr", 0
1.1 noro 488: };
1.5 noro 489: #endif
490:
1.8 ! noro 491: # ifdef YYPRINT
! 492: /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
! 493: token YYLEX-NUM. */
! 494: static const unsigned short yytoknum[] =
! 495: {
! 496: 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
! 497: 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
! 498: 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
! 499: 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
! 500: 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
! 501: 305, 43, 45, 42, 47, 94, 37, 61, 63, 58,
! 502: 96, 38, 306, 307, 33, 123, 125, 40, 41, 59,
! 503: 36, 44, 124, 91, 93, 60, 62
! 504: };
! 505: # endif
! 506:
! 507: /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
! 508: static const unsigned char yyr1[] =
1.5 noro 509: {
1.8 ! noro 510: 0, 77, 78, 79, 80, 81, 79, 82, 83, 79,
! 511: 84, 85, 79, 79, 79, 79, 79, 79, 79, 79,
! 512: 79, 79, 79, 79, 79, 79, 79, 79, 86, 87,
! 513: 88, 79, 79, 79, 79, 89, 89, 90, 90, 91,
! 514: 92, 92, 93, 93, 94, 94, 95, 95, 96, 96,
! 515: 97, 97, 98, 98, 99, 99, 100, 101, 101, 101,
1.5 noro 516: 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
517: 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
1.8 ! noro 518: 101, 101, 102, 102, 102, 102, 102, 102, 102, 102,
! 519: 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
! 520: 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
! 521: 102, 102, 102, 102
1.1 noro 522: };
1.5 noro 523:
1.8 ! noro 524: /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
! 525: static const unsigned char yyr2[] =
1.5 noro 526: {
1.8 ! noro 527: 0, 2, 1, 1, 0, 0, 5, 0, 0, 5,
! 528: 0, 0, 5, 3, 6, 2, 1, 2, 2, 2,
! 529: 3, 5, 7, 9, 5, 7, 8, 6, 0, 0,
! 530: 0, 12, 3, 2, 2, 1, 1, 0, 1, 3,
! 531: 1, 3, 1, 3, 1, 3, 0, 2, 0, 1,
! 532: 1, 3, 1, 3, 1, 1, 3, 1, 1, 1,
! 533: 1, 1, 1, 1, 4, 6, 6, 6, 7, 4,
! 534: 3, 8, 4, 6, 7, 4, 4, 4, 3, 1,
! 535: 4, 3, 1, 5, 3, 3, 2, 2, 3, 2,
! 536: 2, 3, 3, 3, 3, 3, 3, 3, 2, 3,
! 537: 3, 2, 3, 3, 3, 3, 3, 3, 5, 3,
! 538: 4, 4, 5, 2
1.1 noro 539: };
1.5 noro 540:
1.8 ! noro 541: /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
! 542: STATE-NUM when YYTABLE doesn't specify something else to do. Zero
! 543: means the default is an error. */
! 544: static const unsigned char yydefact[] =
! 545: {
! 546: 0, 0, 0, 0, 59, 0, 0, 0, 0, 4,
! 547: 7, 10, 0, 0, 0, 0, 0, 0, 0, 0,
! 548: 0, 0, 0, 0, 0, 0, 0, 60, 61, 62,
! 549: 0, 0, 58, 79, 63, 57, 0, 0, 0, 0,
! 550: 0, 46, 0, 35, 36, 48, 48, 0, 2, 3,
! 551: 16, 82, 0, 34, 54, 55, 0, 0, 28, 0,
! 552: 0, 33, 0, 0, 0, 42, 0, 0, 0, 0,
! 553: 0, 48, 48, 48, 17, 63, 19, 0, 18, 0,
! 554: 0, 0, 0, 0, 101, 48, 48, 48, 87, 89,
! 555: 90, 113, 98, 0, 0, 0, 0, 0, 49, 50,
! 556: 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,
! 557: 0, 0, 0, 86, 0, 0, 0, 0, 0, 0,
! 558: 0, 0, 0, 15, 0, 0, 0, 48, 32, 44,
! 559: 5, 8, 11, 0, 13, 0, 0, 0, 0, 0,
! 560: 0, 0, 48, 20, 0, 0, 0, 0, 70, 0,
! 561: 0, 0, 0, 39, 47, 0, 0, 78, 0, 88,
! 562: 0, 109, 81, 0, 97, 99, 100, 102, 103, 104,
! 563: 105, 106, 107, 85, 91, 92, 93, 94, 96, 95,
! 564: 84, 0, 0, 40, 110, 29, 0, 0, 0, 0,
! 565: 0, 43, 76, 77, 111, 48, 0, 48, 0, 0,
! 566: 72, 48, 48, 48, 0, 69, 75, 0, 64, 0,
! 567: 0, 0, 0, 51, 80, 0, 0, 0, 48, 0,
! 568: 45, 6, 9, 12, 0, 24, 0, 21, 64, 0,
! 569: 0, 0, 0, 48, 0, 0, 0, 52, 0, 83,
! 570: 48, 112, 108, 14, 41, 30, 27, 0, 48, 0,
! 571: 73, 66, 67, 0, 0, 0, 65, 0, 0, 0,
! 572: 0, 25, 0, 22, 0, 68, 0, 53, 56, 74,
! 573: 37, 0, 71, 26, 38, 0, 23, 46, 0, 31
1.1 noro 574: };
1.5 noro 575:
1.8 ! noro 576: /* YYDEFGOTO[NTERM-NUM]. */
1.5 noro 577: static const short yydefgoto[] =
578: {
1.8 ! noro 579: -1, 47, 154, 62, 188, 63, 189, 64, 190, 126,
! 580: 218, 260, 49, 275, 50, 182, 66, 130, 93, 97,
! 581: 98, 235, 236, 237, 51, 99
1.1 noro 582: };
1.5 noro 583:
1.8 ! noro 584: /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
! 585: STATE-NUM. */
! 586: #define YYPACT_NINF -65
1.5 noro 587: static const short yypact[] =
588: {
1.8 ! noro 589: 465, -36, 8, -64, -65, -27, 19, 26, -36, -65,
! 590: -65, -65, 33, -16, 21, 24, 465, 56, 60, 64,
! 591: -36, 586, -36, 67, 68, 70, 78, -65, -65, -65,
! 592: 80, 696, -65, 81, 25, -65, 696, 696, 696, 696,
! 593: 696, -65, 536, -65, -65, 696, 696, 133, -65, -65,
! 594: -65, -2, 853, -65, -65, -65, 84, 8, -65, 86,
! 595: -36, -65, 100, 100, 100, -65, -12, 696, 696, 696,
! 596: 132, 696, 696, 696, -65, 61, -65, 853, -65, 112,
! 597: 114, 115, 696, -33, 1173, 696, 696, 696, 118, -26,
! 598: -26, 1173, 118, 323, 8, 696, 897, -9, 92, 1113,
! 599: 101, -65, 8, 696, 696, 696, 696, 696, 696, 696,
! 600: 696, 696, 696, -65, 696, 696, 696, 696, 696, 696,
! 601: 696, 696, 696, -65, 8, 108, 111, 696, -65, -65,
! 602: 109, 109, 109, 134, -65, 928, 959, 990, 120, 123,
! 603: 110, 127, 696, -65, -19, 129, 130, 765, -65, 135,
! 604: 139, 116, -53, -65, -65, 140, 1021, -65, 696, -65,
! 605: 696, -65, -65, 249, 23, 262, 87, 1234, 1217, 1192,
! 606: 173, 45, -8, 1113, -26, -26, -45, -45, -45, -45,
! 607: 1113, 1083, -60, -65, -65, -65, 141, 156, -36, -36,
! 608: -36, -65, -65, -65, -65, 696, 465, 696, 465, -50,
! 609: -65, 696, 696, 696, 696, -65, -65, 143, 155, 8,
! 610: 138, 149, 734, 1113, -65, 696, -36, 8, 696, -36,
! 611: -65, -65, -65, -65, 150, -65, 161, 193, -65, 163,
! 612: 164, 165, 809, 696, 177, -18, 178, -65, 646, -2,
! 613: 696, -65, 1143, -65, -65, -65, -65, -36, 696, 465,
! 614: -65, -65, -65, 696, 168, 696, -65, 8, 696, 169,
! 615: 171, -65, 172, -65, 1052, -65, 853, -65, 1113, -65,
! 616: 194, 465, -65, -65, -65, 176, -65, -65, 394, -65
1.1 noro 617: };
1.5 noro 618:
1.8 ! noro 619: /* YYPGOTO[NTERM-NUM]. */
! 620: static const yysigned_char yypgoto[] =
1.5 noro 621: {
1.8 ! noro 622: -65, -65, 1, -65, -65, -65, -65, -65, -65, -65,
! 623: -65, -65, 4, -65, -65, -65, -65, 66, -34, 79,
! 624: -65, -65, 30, -13, 35, 0
1.1 noro 625: };
1.5 noro 626:
1.8 ! noro 627: /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
! 628: positive, shift that token. If negative, reduce the rule which
! 629: number is the opposite. If zero, do what YYDEFACT says.
! 630: If YYTABLE_NINF, syntax error. */
! 631: #define YYTABLE_NINF -1
! 632: static const unsigned short yytable[] =
! 633: {
! 634: 52, 48, 102, 57, 113, 53, 216, 104, 105, 106,
! 635: 119, 217, 61, 54, 55, 208, 52, 70, 228, 209,
! 636: 58, 77, 209, 113, 74, 76, 78, 117, 118, 119,
! 637: 120, 84, 56, 43, 44, 148, 88, 89, 90, 91,
! 638: 92, 113, 96, 115, 116, 117, 118, 119, 120, 200,
! 639: 256, 67, 201, 257, 54, 55, 123, 43, 44, 133,
! 640: 104, 105, 106, 158, 128, 159, 59, 135, 136, 137,
! 641: 134, 103, 113, 60, 115, 116, 117, 118, 119, 120,
! 642: 65, 143, 147, 107, 108, 109, 110, 125, 68, 112,
! 643: 86, 69, 87, 52, 113, 156, 115, 116, 117, 118,
! 644: 119, 120, 104, 163, 164, 165, 166, 167, 168, 169,
! 645: 170, 171, 172, 149, 173, 174, 175, 176, 177, 178,
! 646: 179, 180, 181, 71, 155, 100, 86, 72, 142, 131,
! 647: 132, 73, 162, 101, 79, 80, 113, 81, 115, 116,
! 648: 117, 118, 119, 120, 4, 82, 129, 83, 85, 124,
! 649: 139, 140, 141, 127, 183, 138, 13, 14, 212, 144,
! 650: 213, 145, 146, 160, 150, 151, 152, 113, 23, 24,
! 651: 25, 26, 27, 28, 29, 30, 184, 161, 185, 197,
! 652: 187, 191, 207, 32, 33, 75, 35, 195, 104, 105,
! 653: 106, 196, 221, 222, 223, 198, 52, 225, 52, 227,
! 654: 202, 203, 220, 205, 232, 238, 186, 206, 210, 219,
! 655: 233, 107, 108, 109, 234, 242, 240, 112, 247, 249,
! 656: 243, 199, 113, 246, 115, 116, 117, 118, 119, 120,
! 657: 248, 250, 251, 252, 255, 258, 265, 269, 96, 270,
! 658: 271, 277, 274, 278, 267, 239, 0, 244, 0, 52,
! 659: 263, 261, 0, 264, 0, 266, 0, 0, 268, 0,
! 660: 0, 0, 0, 0, 104, 105, 106, 0, 0, 0,
! 661: 273, 52, 276, 0, 224, 0, 226, 104, 52, 106,
! 662: 229, 230, 231, 0, 0, 0, 0, 107, 108, 109,
! 663: 110, 111, 0, 112, 0, 0, 0, 245, 113, 114,
! 664: 115, 116, 117, 118, 119, 120, 121, 122, 0, 0,
! 665: 0, 113, 254, 115, 116, 117, 118, 119, 120, 259,
! 666: 0, 0, 0, 214, 1, 0, 2, 262, 3, 4,
1.5 noro 667: 5, 6, 7, 8, 9, 10, 11, 12, 0, 0,
668: 0, 13, 14, 15, 0, 16, 17, 18, 19, 0,
669: 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
670: 30, 0, 0, 0, 0, 0, 31, 0, 32, 33,
671: 34, 35, 36, 0, 37, 38, 0, 0, 0, 0,
1.8 ! noro 672: 0, 0, 0, 39, 0, 0, 0, 40, 41, 153,
1.5 noro 673: 42, 0, 43, 44, 0, 1, 45, 2, 46, 3,
674: 4, 5, 6, 7, 8, 9, 10, 11, 12, 0,
675: 0, 0, 13, 14, 15, 0, 16, 17, 18, 19,
676: 0, 20, 21, 22, 23, 24, 25, 26, 27, 28,
677: 29, 30, 0, 0, 0, 0, 0, 31, 0, 32,
678: 33, 34, 35, 36, 0, 37, 38, 0, 0, 0,
679: 0, 0, 0, 0, 39, 0, 0, 0, 40, 41,
1.8 ! noro 680: 279, 42, 0, 43, 44, 0, 1, 45, 2, 46,
! 681: 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
! 682: 0, 0, 0, 13, 14, 15, 0, 16, 17, 18,
! 683: 19, 0, 20, 21, 22, 23, 24, 25, 26, 27,
1.5 noro 684: 28, 29, 30, 0, 0, 0, 0, 0, 31, 0,
1.8 ! noro 685: 32, 33, 34, 35, 36, 0, 37, 38, 0, 0,
1.5 noro 686: 0, 0, 0, 0, 0, 39, 0, 0, 0, 40,
1.8 ! noro 687: 41, 0, 42, 0, 43, 44, 0, 0, 45, 94,
! 688: 46, 3, 4, 0, 0, 0, 0, 0, 0, 0,
! 689: 0, 0, 0, 0, 13, 14, 15, 0, 0, 0,
! 690: 0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
! 691: 27, 28, 29, 30, 0, 0, 0, 0, 0, 31,
! 692: 0, 32, 33, 75, 35, 36, 0, 37, 38, 95,
! 693: 0, 3, 4, 0, 0, 0, 39, 0, 0, 0,
! 694: 40, 0, 0, 42, 13, 14, 15, 0, 0, 45,
! 695: 0, 46, 0, 0, 0, 0, 23, 24, 25, 26,
! 696: 27, 28, 29, 30, 0, 0, 0, 0, 0, 31,
! 697: 0, 32, 33, 75, 35, 36, 0, 37, 38, 0,
! 698: 0, 0, 0, 0, 0, 0, 39, 0, 0, 0,
! 699: 40, 3, 4, 42, 0, 43, 44, 0, 0, 45,
! 700: 0, 46, 0, 0, 13, 14, 15, 0, 0, 0,
! 701: 0, 0, 0, 0, 0, 0, 23, 24, 25, 26,
! 702: 27, 28, 29, 30, 0, 0, 0, 0, 0, 31,
! 703: 0, 32, 33, 75, 35, 36, 0, 37, 38, 95,
! 704: 0, 3, 4, 0, 0, 0, 39, 0, 0, 0,
! 705: 40, 0, 0, 42, 13, 14, 15, 0, 0, 45,
! 706: 0, 46, 0, 0, 0, 0, 23, 24, 25, 26,
! 707: 27, 28, 29, 30, 0, 0, 0, 0, 0, 31,
! 708: 0, 32, 33, 75, 35, 36, 0, 37, 38, 104,
! 709: 105, 106, 0, 0, 0, 0, 39, 0, 0, 0,
! 710: 40, 0, 0, 42, 0, 0, 0, 0, 0, 45,
! 711: 0, 46, 107, 108, 109, 110, 111, 0, 112, 0,
! 712: 104, 105, 106, 113, 114, 115, 116, 117, 118, 119,
! 713: 120, 121, 122, 0, 0, 0, 0, 0, 0, 0,
! 714: 0, 0, 0, 107, 108, 109, 110, 111, 241, 112,
! 715: 0, 0, 0, 0, 113, 114, 115, 116, 117, 118,
! 716: 119, 120, 121, 122, 104, 105, 106, 0, 0, 0,
! 717: 0, 0, 0, 0, 0, 0, 204, 0, 0, 0,
! 718: 0, 0, 0, 0, 0, 0, 0, 107, 108, 109,
! 719: 110, 111, 0, 112, 0, 0, 0, 0, 113, 114,
! 720: 115, 116, 117, 118, 119, 120, 121, 122, 104, 105,
! 721: 106, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 722: 253, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 723: 0, 107, 108, 109, 110, 111, 0, 112, 0, 0,
! 724: 0, 0, 113, 114, 115, 116, 117, 118, 119, 120,
! 725: 121, 122, 104, 105, 106, 0, 0, 0, 0, 0,
! 726: 0, 0, 43, 44, 0, 0, 0, 0, 0, 0,
! 727: 0, 0, 0, 0, 0, 107, 108, 109, 110, 111,
! 728: 0, 112, 0, 104, 105, 106, 113, 114, 115, 116,
! 729: 117, 118, 119, 120, 121, 122, 0, 0, 0, 0,
! 730: 0, 0, 0, 0, 0, 157, 107, 108, 109, 110,
! 731: 111, 0, 112, 0, 104, 105, 106, 113, 114, 115,
! 732: 116, 117, 118, 119, 120, 121, 122, 0, 0, 0,
! 733: 0, 0, 0, 0, 0, 0, 192, 107, 108, 109,
! 734: 110, 111, 0, 112, 0, 104, 105, 106, 113, 114,
! 735: 115, 116, 117, 118, 119, 120, 121, 122, 0, 0,
! 736: 0, 0, 0, 0, 0, 0, 0, 193, 107, 108,
! 737: 109, 110, 111, 0, 112, 0, 104, 105, 106, 113,
! 738: 114, 115, 116, 117, 118, 119, 120, 121, 122, 0,
! 739: 0, 0, 0, 0, 0, 0, 0, 0, 194, 107,
! 740: 108, 109, 110, 111, 0, 112, 0, 104, 105, 106,
! 741: 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
! 742: 0, 0, 0, 0, 0, 0, 0, 0, 0, 211,
! 743: 107, 108, 109, 110, 111, 0, 112, 0, 104, 105,
! 744: 106, 113, 114, 115, 116, 117, 118, 119, 120, 121,
! 745: 122, 0, 0, 0, 0, 0, 0, 0, 0, 0,
! 746: 272, 107, 108, 109, 110, 111, 0, 112, 104, 105,
! 747: 106, 0, 113, 114, 115, 116, 117, 118, 119, 120,
! 748: 121, 122, 215, 0, 0, 0, 0, 0, 0, 0,
! 749: 0, 107, 108, 109, 110, 111, 0, 112, 104, 105,
! 750: 106, 0, 113, 114, 115, 116, 117, 118, 119, 120,
! 751: 121, 122, 0, 0, 0, 0, 0, 0, 0, 0,
! 752: 0, 107, 108, 109, 110, 111, 0, 112, 104, 105,
! 753: 106, 0, 113, 0, 115, 116, 117, 118, 119, 120,
! 754: 0, 122, 0, 0, 0, 0, 0, 104, 105, 106,
! 755: 0, 107, 108, 109, 110, 111, 0, 112, 0, 0,
! 756: 0, 0, 113, 0, 115, 116, 117, 118, 119, 120,
! 757: 107, 108, 104, 105, 106, 0, 112, 0, 0, 0,
! 758: 0, 113, 0, 115, 116, 117, 118, 119, 120, 104,
! 759: 105, 106, 0, 0, 0, 107, 0, 0, 0, 0,
! 760: 0, 112, 0, 0, 0, 0, 113, 0, 115, 116,
! 761: 117, 118, 119, 120, 0, 0, 0, 0, 112, 0,
! 762: 0, 0, 0, 113, 0, 115, 116, 117, 118, 119,
! 763: 120
1.5 noro 764: };
765:
766: static const short yycheck[] =
767: {
1.8 ! noro 768: 0, 0, 4, 67, 49, 1, 66, 15, 16, 17,
! 769: 55, 71, 8, 46, 47, 68, 16, 16, 68, 72,
! 770: 47, 21, 72, 49, 20, 21, 22, 53, 54, 55,
! 771: 56, 31, 2, 69, 70, 68, 36, 37, 38, 39,
! 772: 40, 49, 42, 51, 52, 53, 54, 55, 56, 68,
! 773: 68, 67, 71, 71, 46, 47, 52, 69, 70, 71,
! 774: 15, 16, 17, 72, 60, 74, 47, 67, 68, 69,
! 775: 66, 73, 49, 47, 51, 52, 53, 54, 55, 56,
! 776: 47, 77, 82, 38, 39, 40, 41, 57, 67, 44,
! 777: 65, 67, 67, 93, 49, 95, 51, 52, 53, 54,
! 778: 55, 56, 15, 103, 104, 105, 106, 107, 108, 109,
! 779: 110, 111, 112, 83, 114, 115, 116, 117, 118, 119,
! 780: 120, 121, 122, 67, 94, 46, 65, 67, 67, 63,
! 781: 64, 67, 102, 0, 67, 67, 49, 67, 51, 52,
! 782: 53, 54, 55, 56, 6, 67, 46, 67, 67, 65,
! 783: 71, 72, 73, 67, 124, 23, 18, 19, 158, 47,
! 784: 160, 47, 47, 71, 85, 86, 87, 49, 30, 31,
! 785: 32, 33, 34, 35, 36, 37, 68, 76, 67, 69,
! 786: 71, 47, 66, 45, 46, 47, 48, 67, 15, 16,
! 787: 17, 68, 188, 189, 190, 68, 196, 196, 198, 198,
! 788: 71, 71, 46, 68, 204, 67, 127, 68, 68, 68,
! 789: 67, 38, 39, 40, 59, 215, 67, 44, 68, 26,
! 790: 216, 142, 49, 219, 51, 52, 53, 54, 55, 56,
! 791: 69, 68, 68, 68, 57, 57, 68, 68, 238, 68,
! 792: 68, 65, 48, 277, 257, 210, -1, 217, -1, 249,
! 793: 249, 247, -1, 253, -1, 255, -1, -1, 258, -1,
! 794: -1, -1, -1, -1, 15, 16, 17, -1, -1, -1,
! 795: 266, 271, 271, -1, 195, -1, 197, 15, 278, 17,
! 796: 201, 202, 203, -1, -1, -1, -1, 38, 39, 40,
! 797: 41, 42, -1, 44, -1, -1, -1, 218, 49, 50,
! 798: 51, 52, 53, 54, 55, 56, 57, 58, -1, -1,
! 799: -1, 49, 233, 51, 52, 53, 54, 55, 56, 240,
! 800: -1, -1, -1, 74, 1, -1, 3, 248, 5, 6,
1.5 noro 801: 7, 8, 9, 10, 11, 12, 13, 14, -1, -1,
802: -1, 18, 19, 20, -1, 22, 23, 24, 25, -1,
803: 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
804: 37, -1, -1, -1, -1, -1, 43, -1, 45, 46,
805: 47, 48, 49, -1, 51, 52, -1, -1, -1, -1,
806: -1, -1, -1, 60, -1, -1, -1, 64, 65, 66,
807: 67, -1, 69, 70, -1, 1, 73, 3, 75, 5,
808: 6, 7, 8, 9, 10, 11, 12, 13, 14, -1,
809: -1, -1, 18, 19, 20, -1, 22, 23, 24, 25,
810: -1, 27, 28, 29, 30, 31, 32, 33, 34, 35,
811: 36, 37, -1, -1, -1, -1, -1, 43, -1, 45,
812: 46, 47, 48, 49, -1, 51, 52, -1, -1, -1,
813: -1, -1, -1, -1, 60, -1, -1, -1, 64, 65,
1.8 ! noro 814: 66, 67, -1, 69, 70, -1, 1, 73, 3, 75,
! 815: 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
! 816: -1, -1, -1, 18, 19, 20, -1, 22, 23, 24,
! 817: 25, -1, 27, 28, 29, 30, 31, 32, 33, 34,
1.5 noro 818: 35, 36, 37, -1, -1, -1, -1, -1, 43, -1,
819: 45, 46, 47, 48, 49, -1, 51, 52, -1, -1,
820: -1, -1, -1, -1, -1, 60, -1, -1, -1, 64,
1.8 ! noro 821: 65, -1, 67, -1, 69, 70, -1, -1, 73, 3,
! 822: 75, 5, 6, -1, -1, -1, -1, -1, -1, -1,
! 823: -1, -1, -1, -1, 18, 19, 20, -1, -1, -1,
! 824: -1, -1, -1, -1, -1, -1, 30, 31, 32, 33,
! 825: 34, 35, 36, 37, -1, -1, -1, -1, -1, 43,
! 826: -1, 45, 46, 47, 48, 49, -1, 51, 52, 53,
! 827: -1, 5, 6, -1, -1, -1, 60, -1, -1, -1,
! 828: 64, -1, -1, 67, 18, 19, 20, -1, -1, 73,
! 829: -1, 75, -1, -1, -1, -1, 30, 31, 32, 33,
! 830: 34, 35, 36, 37, -1, -1, -1, -1, -1, 43,
! 831: -1, 45, 46, 47, 48, 49, -1, 51, 52, -1,
! 832: -1, -1, -1, -1, -1, -1, 60, -1, -1, -1,
! 833: 64, 5, 6, 67, -1, 69, 70, -1, -1, 73,
! 834: -1, 75, -1, -1, 18, 19, 20, -1, -1, -1,
! 835: -1, -1, -1, -1, -1, -1, 30, 31, 32, 33,
! 836: 34, 35, 36, 37, -1, -1, -1, -1, -1, 43,
! 837: -1, 45, 46, 47, 48, 49, -1, 51, 52, 53,
! 838: -1, 5, 6, -1, -1, -1, 60, -1, -1, -1,
! 839: 64, -1, -1, 67, 18, 19, 20, -1, -1, 73,
! 840: -1, 75, -1, -1, -1, -1, 30, 31, 32, 33,
! 841: 34, 35, 36, 37, -1, -1, -1, -1, -1, 43,
! 842: -1, 45, 46, 47, 48, 49, -1, 51, 52, 15,
! 843: 16, 17, -1, -1, -1, -1, 60, -1, -1, -1,
! 844: 64, -1, -1, 67, -1, -1, -1, -1, -1, 73,
! 845: -1, 75, 38, 39, 40, 41, 42, -1, 44, -1,
! 846: 15, 16, 17, 49, 50, 51, 52, 53, 54, 55,
! 847: 56, 57, 58, -1, -1, -1, -1, -1, -1, -1,
! 848: -1, -1, -1, 38, 39, 40, 41, 42, 74, 44,
! 849: -1, -1, -1, -1, 49, 50, 51, 52, 53, 54,
! 850: 55, 56, 57, 58, 15, 16, 17, -1, -1, -1,
! 851: -1, -1, -1, -1, -1, -1, 71, -1, -1, -1,
! 852: -1, -1, -1, -1, -1, -1, -1, 38, 39, 40,
! 853: 41, 42, -1, 44, -1, -1, -1, -1, 49, 50,
! 854: 51, 52, 53, 54, 55, 56, 57, 58, 15, 16,
! 855: 17, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 856: 71, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 857: -1, 38, 39, 40, 41, 42, -1, 44, -1, -1,
1.5 noro 858: -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
859: 57, 58, 15, 16, 17, -1, -1, -1, -1, -1,
1.8 ! noro 860: -1, -1, 69, 70, -1, -1, -1, -1, -1, -1,
1.5 noro 861: -1, -1, -1, -1, -1, 38, 39, 40, 41, 42,
862: -1, 44, -1, 15, 16, 17, 49, 50, 51, 52,
863: 53, 54, 55, 56, 57, 58, -1, -1, -1, -1,
864: -1, -1, -1, -1, -1, 68, 38, 39, 40, 41,
865: 42, -1, 44, -1, 15, 16, 17, 49, 50, 51,
866: 52, 53, 54, 55, 56, 57, 58, -1, -1, -1,
867: -1, -1, -1, -1, -1, -1, 68, 38, 39, 40,
868: 41, 42, -1, 44, -1, 15, 16, 17, 49, 50,
869: 51, 52, 53, 54, 55, 56, 57, 58, -1, -1,
870: -1, -1, -1, -1, -1, -1, -1, 68, 38, 39,
871: 40, 41, 42, -1, 44, -1, 15, 16, 17, 49,
872: 50, 51, 52, 53, 54, 55, 56, 57, 58, -1,
873: -1, -1, -1, -1, -1, -1, -1, -1, 68, 38,
1.8 ! noro 874: 39, 40, 41, 42, -1, 44, -1, 15, 16, 17,
1.5 noro 875: 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
1.8 ! noro 876: -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
! 877: 38, 39, 40, 41, 42, -1, 44, -1, 15, 16,
! 878: 17, 49, 50, 51, 52, 53, 54, 55, 56, 57,
! 879: 58, -1, -1, -1, -1, -1, -1, -1, -1, -1,
! 880: 68, 38, 39, 40, 41, 42, -1, 44, 15, 16,
! 881: 17, -1, 49, 50, 51, 52, 53, 54, 55, 56,
! 882: 57, 58, 59, -1, -1, -1, -1, -1, -1, -1,
! 883: -1, 38, 39, 40, 41, 42, -1, 44, 15, 16,
! 884: 17, -1, 49, 50, 51, 52, 53, 54, 55, 56,
! 885: 57, 58, -1, -1, -1, -1, -1, -1, -1, -1,
! 886: -1, 38, 39, 40, 41, 42, -1, 44, 15, 16,
! 887: 17, -1, 49, -1, 51, 52, 53, 54, 55, 56,
! 888: -1, 58, -1, -1, -1, -1, -1, 15, 16, 17,
! 889: -1, 38, 39, 40, 41, 42, -1, 44, -1, -1,
! 890: -1, -1, 49, -1, 51, 52, 53, 54, 55, 56,
! 891: 38, 39, 15, 16, 17, -1, 44, -1, -1, -1,
! 892: -1, 49, -1, 51, 52, 53, 54, 55, 56, 15,
! 893: 16, 17, -1, -1, -1, 38, -1, -1, -1, -1,
! 894: -1, 44, -1, -1, -1, -1, 49, -1, 51, 52,
! 895: 53, 54, 55, 56, -1, -1, -1, -1, 44, -1,
! 896: -1, -1, -1, 49, -1, 51, 52, 53, 54, 55,
! 897: 56
1.1 noro 898: };
1.5 noro 899:
1.8 ! noro 900: /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
! 901: symbol of state STATE-NUM. */
! 902: static const unsigned char yystos[] =
1.5 noro 903: {
1.8 ! noro 904: 0, 1, 3, 5, 6, 7, 8, 9, 10, 11,
! 905: 12, 13, 14, 18, 19, 20, 22, 23, 24, 25,
! 906: 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
! 907: 37, 43, 45, 46, 47, 48, 49, 51, 52, 60,
! 908: 64, 65, 67, 69, 70, 73, 75, 78, 79, 89,
! 909: 91, 101, 102, 89, 46, 47, 99, 67, 47, 47,
! 910: 47, 89, 80, 82, 84, 47, 93, 67, 67, 67,
! 911: 79, 67, 67, 67, 89, 47, 89, 102, 89, 67,
! 912: 67, 67, 67, 67, 102, 67, 65, 67, 102, 102,
! 913: 102, 102, 102, 95, 3, 53, 102, 96, 97, 102,
! 914: 96, 0, 4, 73, 15, 16, 17, 38, 39, 40,
! 915: 41, 42, 44, 49, 50, 51, 52, 53, 54, 55,
! 916: 56, 57, 58, 89, 65, 99, 86, 67, 89, 46,
! 917: 94, 94, 94, 71, 89, 102, 102, 102, 23, 96,
! 918: 96, 96, 67, 89, 47, 47, 47, 102, 68, 99,
! 919: 96, 96, 96, 66, 79, 99, 102, 68, 72, 74,
! 920: 71, 76, 99, 102, 102, 102, 102, 102, 102, 102,
! 921: 102, 102, 102, 102, 102, 102, 102, 102, 102, 102,
! 922: 102, 102, 92, 99, 68, 67, 96, 71, 81, 83,
! 923: 85, 47, 68, 68, 68, 67, 68, 69, 68, 96,
! 924: 68, 71, 71, 71, 71, 68, 68, 66, 68, 72,
! 925: 68, 68, 102, 102, 74, 59, 66, 71, 87, 68,
! 926: 46, 89, 89, 89, 96, 79, 96, 79, 68, 96,
! 927: 96, 96, 102, 67, 59, 98, 99, 100, 67, 101,
! 928: 67, 74, 102, 89, 99, 96, 89, 68, 69, 26,
! 929: 68, 68, 68, 71, 96, 57, 68, 71, 57, 96,
! 930: 88, 89, 96, 79, 102, 68, 102, 100, 102, 68,
! 931: 68, 68, 68, 89, 48, 90, 79, 65, 95, 66
1.1 noro 932: };
1.5 noro 933:
934: #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
935: # define YYSIZE_T __SIZE_TYPE__
936: #endif
937: #if ! defined (YYSIZE_T) && defined (size_t)
938: # define YYSIZE_T size_t
1.1 noro 939: #endif
1.5 noro 940: #if ! defined (YYSIZE_T)
941: # if defined (__STDC__) || defined (__cplusplus)
942: # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
943: # define YYSIZE_T size_t
944: # endif
945: #endif
946: #if ! defined (YYSIZE_T)
947: # define YYSIZE_T unsigned int
948: #endif
949:
950: #define yyerrok (yyerrstatus = 0)
951: #define yyclearin (yychar = YYEMPTY)
1.8 ! noro 952: #define YYEMPTY (-2)
1.5 noro 953: #define YYEOF 0
1.8 ! noro 954:
1.5 noro 955: #define YYACCEPT goto yyacceptlab
1.8 ! noro 956: #define YYABORT goto yyabortlab
1.5 noro 957: #define YYERROR goto yyerrlab1
1.8 ! noro 958:
! 959:
1.5 noro 960: /* Like YYERROR except do call yyerror. This remains here temporarily
961: to ease the transition to the new meaning of YYERROR, for GCC.
962: Once GCC version 2 has supplanted version 1, this can go. */
1.8 ! noro 963:
1.5 noro 964: #define YYFAIL goto yyerrlab
1.8 ! noro 965:
1.5 noro 966: #define YYRECOVERING() (!!yyerrstatus)
1.8 ! noro 967:
1.5 noro 968: #define YYBACKUP(Token, Value) \
969: do \
970: if (yychar == YYEMPTY && yylen == 1) \
971: { \
972: yychar = (Token); \
973: yylval = (Value); \
1.8 ! noro 974: yytoken = YYTRANSLATE (yychar); \
1.5 noro 975: YYPOPSTACK; \
976: goto yybackup; \
977: } \
978: else \
979: { \
1.8 ! noro 980: yyerror ("syntax error: cannot back up");\
1.5 noro 981: YYERROR; \
982: } \
983: while (0)
984:
985: #define YYTERROR 1
986: #define YYERRCODE 256
987:
988: /* YYLLOC_DEFAULT -- Compute the default location (before the actions
1.8 ! noro 989: are run). */
1.5 noro 990:
991: #ifndef YYLLOC_DEFAULT
1.8 ! noro 992: # define YYLLOC_DEFAULT(Current, Rhs, N) \
! 993: Current.first_line = Rhs[1].first_line; \
! 994: Current.first_column = Rhs[1].first_column; \
! 995: Current.last_line = Rhs[N].last_line; \
! 996: Current.last_column = Rhs[N].last_column;
1.5 noro 997: #endif
998:
999: /* YYLEX -- calling `yylex' with the right arguments. */
1000:
1.8 ! noro 1001: #ifdef YYLEX_PARAM
! 1002: # define YYLEX yylex (YYLEX_PARAM)
! 1003: #else
! 1004: # define YYLEX yylex ()
! 1005: #endif
1.5 noro 1006:
1007: /* Enable debugging if requested. */
1.1 noro 1008: #if YYDEBUG
1.5 noro 1009:
1010: # ifndef YYFPRINTF
1011: # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
1012: # define YYFPRINTF fprintf
1013: # endif
1014:
1015: # define YYDPRINTF(Args) \
1016: do { \
1017: if (yydebug) \
1018: YYFPRINTF Args; \
1019: } while (0)
1.8 ! noro 1020:
! 1021: # define YYDSYMPRINT(Args) \
! 1022: do { \
! 1023: if (yydebug) \
! 1024: yysymprint Args; \
! 1025: } while (0)
! 1026:
! 1027: # define YYDSYMPRINTF(Title, Token, Value, Location) \
! 1028: do { \
! 1029: if (yydebug) \
! 1030: { \
! 1031: YYFPRINTF (stderr, "%s ", Title); \
! 1032: yysymprint (stderr, \
! 1033: Token, Value); \
! 1034: YYFPRINTF (stderr, "\n"); \
! 1035: } \
! 1036: } while (0)
! 1037:
! 1038: /*------------------------------------------------------------------.
! 1039: | yy_stack_print -- Print the state stack from its BOTTOM up to its |
! 1040: | TOP (cinluded). |
! 1041: `------------------------------------------------------------------*/
! 1042:
! 1043: #if defined (__STDC__) || defined (__cplusplus)
! 1044: static void
! 1045: yy_stack_print (short *bottom, short *top)
! 1046: #else
! 1047: static void
! 1048: yy_stack_print (bottom, top)
! 1049: short *bottom;
! 1050: short *top;
! 1051: #endif
! 1052: {
! 1053: YYFPRINTF (stderr, "Stack now");
! 1054: for (/* Nothing. */; bottom <= top; ++bottom)
! 1055: YYFPRINTF (stderr, " %d", *bottom);
! 1056: YYFPRINTF (stderr, "\n");
! 1057: }
! 1058:
! 1059: # define YY_STACK_PRINT(Bottom, Top) \
! 1060: do { \
! 1061: if (yydebug) \
! 1062: yy_stack_print ((Bottom), (Top)); \
! 1063: } while (0)
! 1064:
! 1065:
! 1066: /*------------------------------------------------.
! 1067: | Report that the YYRULE is going to be reduced. |
! 1068: `------------------------------------------------*/
! 1069:
! 1070: #if defined (__STDC__) || defined (__cplusplus)
! 1071: static void
! 1072: yy_reduce_print (int yyrule)
! 1073: #else
! 1074: static void
! 1075: yy_reduce_print (yyrule)
! 1076: int yyrule;
! 1077: #endif
! 1078: {
! 1079: int yyi;
! 1080: unsigned int yylno = yyrline[yyrule];
! 1081: YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
! 1082: yyrule - 1, yylno);
! 1083: /* Print the symbols being reduced, and their result. */
! 1084: for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
! 1085: YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
! 1086: YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
! 1087: }
! 1088:
! 1089: # define YY_REDUCE_PRINT(Rule) \
! 1090: do { \
! 1091: if (yydebug) \
! 1092: yy_reduce_print (Rule); \
! 1093: } while (0)
! 1094:
1.5 noro 1095: /* Nonzero means print parse trace. It is left uninitialized so that
1096: multiple parsers can coexist. */
1097: int yydebug;
1098: #else /* !YYDEBUG */
1099: # define YYDPRINTF(Args)
1.8 ! noro 1100: # define YYDSYMPRINT(Args)
! 1101: # define YYDSYMPRINTF(Title, Token, Value, Location)
! 1102: # define YY_STACK_PRINT(Bottom, Top)
! 1103: # define YY_REDUCE_PRINT(Rule)
1.5 noro 1104: #endif /* !YYDEBUG */
1105:
1.8 ! noro 1106:
1.5 noro 1107: /* YYINITDEPTH -- initial size of the parser's stacks. */
1108: #ifndef YYINITDEPTH
1109: # define YYINITDEPTH 200
1110: #endif
1111:
1112: /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
1113: if the built-in stack extension method is used).
1114:
1115: Do not make this value too large; the results are undefined if
1116: SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
1117: evaluated with infinite-precision integer arithmetic. */
1118:
1119: #if YYMAXDEPTH == 0
1120: # undef YYMAXDEPTH
1121: #endif
1122:
1123: #ifndef YYMAXDEPTH
1124: # define YYMAXDEPTH 10000
1.1 noro 1125: #endif
1.8 ! noro 1126:
1.5 noro 1127:
1.8 ! noro 1128:
! 1129: #if YYERROR_VERBOSE
1.5 noro 1130:
1131: # ifndef yystrlen
1132: # if defined (__GLIBC__) && defined (_STRING_H)
1133: # define yystrlen strlen
1134: # else
1135: /* Return the length of YYSTR. */
1136: static YYSIZE_T
1137: # if defined (__STDC__) || defined (__cplusplus)
1138: yystrlen (const char *yystr)
1139: # else
1140: yystrlen (yystr)
1141: const char *yystr;
1142: # endif
1143: {
1144: register const char *yys = yystr;
1145:
1146: while (*yys++ != '\0')
1147: continue;
1148:
1149: return yys - yystr - 1;
1150: }
1151: # endif
1152: # endif
1153:
1154: # ifndef yystpcpy
1155: # if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
1156: # define yystpcpy stpcpy
1157: # else
1158: /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
1159: YYDEST. */
1160: static char *
1161: # if defined (__STDC__) || defined (__cplusplus)
1162: yystpcpy (char *yydest, const char *yysrc)
1163: # else
1164: yystpcpy (yydest, yysrc)
1165: char *yydest;
1166: const char *yysrc;
1167: # endif
1168: {
1169: register char *yyd = yydest;
1170: register const char *yys = yysrc;
1171:
1172: while ((*yyd++ = *yys++) != '\0')
1173: continue;
1174:
1175: return yyd - 1;
1176: }
1177: # endif
1178: # endif
1.8 ! noro 1179:
! 1180: #endif /* !YYERROR_VERBOSE */
! 1181:
! 1182:
! 1183:
! 1184: #if YYDEBUG
! 1185: /*--------------------------------.
! 1186: | Print this symbol on YYOUTPUT. |
! 1187: `--------------------------------*/
! 1188:
! 1189: #if defined (__STDC__) || defined (__cplusplus)
! 1190: static void
! 1191: yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
! 1192: #else
! 1193: static void
! 1194: yysymprint (yyoutput, yytype, yyvaluep)
! 1195: FILE *yyoutput;
! 1196: int yytype;
! 1197: YYSTYPE *yyvaluep;
1.1 noro 1198: #endif
1.8 ! noro 1199: {
! 1200: /* Pacify ``unused variable'' warnings. */
! 1201: (void) yyvaluep;
! 1202:
! 1203: if (yytype < YYNTOKENS)
! 1204: {
! 1205: YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
! 1206: # ifdef YYPRINT
! 1207: YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
! 1208: # endif
! 1209: }
! 1210: else
! 1211: YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
! 1212:
! 1213: switch (yytype)
! 1214: {
! 1215: default:
! 1216: break;
! 1217: }
! 1218: YYFPRINTF (yyoutput, ")");
! 1219: }
! 1220:
! 1221: #endif /* ! YYDEBUG */
! 1222: /*-----------------------------------------------.
! 1223: | Release the memory associated to this symbol. |
! 1224: `-----------------------------------------------*/
! 1225:
! 1226: #if defined (__STDC__) || defined (__cplusplus)
! 1227: static void
! 1228: yydestruct (int yytype, YYSTYPE *yyvaluep)
! 1229: #else
! 1230: static void
! 1231: yydestruct (yytype, yyvaluep)
! 1232: int yytype;
! 1233: YYSTYPE *yyvaluep;
! 1234: #endif
! 1235: {
! 1236: /* Pacify ``unused variable'' warnings. */
! 1237: (void) yyvaluep;
! 1238:
! 1239: switch (yytype)
! 1240: {
! 1241:
! 1242: default:
! 1243: break;
! 1244: }
! 1245: }
1.5 noro 1246:
1247:
1.8 ! noro 1248: /* Prevent warnings from -Wmissing-prototypes. */
1.5 noro 1249:
1250: #ifdef YYPARSE_PARAM
1251: # if defined (__STDC__) || defined (__cplusplus)
1.8 ! noro 1252: int yyparse (void *YYPARSE_PARAM);
1.5 noro 1253: # else
1.8 ! noro 1254: int yyparse ();
1.5 noro 1255: # endif
1.8 ! noro 1256: #else /* ! YYPARSE_PARAM */
! 1257: #if defined (__STDC__) || defined (__cplusplus)
1.5 noro 1258: int yyparse (void);
1.8 ! noro 1259: #else
! 1260: int yyparse ();
1.1 noro 1261: #endif
1.8 ! noro 1262: #endif /* ! YYPARSE_PARAM */
1.5 noro 1263:
1264:
1.8 ! noro 1265:
! 1266: /* The lookahead symbol. */
! 1267: int yychar;
! 1268:
! 1269: /* The semantic value of the lookahead symbol. */
! 1270: YYSTYPE yylval;
! 1271:
! 1272: /* Number of syntax errors so far. */
1.1 noro 1273: int yynerrs;
1274:
1.5 noro 1275:
1276:
1.8 ! noro 1277: /*----------.
! 1278: | yyparse. |
! 1279: `----------*/
1.5 noro 1280:
1.8 ! noro 1281: #ifdef YYPARSE_PARAM
! 1282: # if defined (__STDC__) || defined (__cplusplus)
! 1283: int yyparse (void *YYPARSE_PARAM)
! 1284: # else
! 1285: int yyparse (YYPARSE_PARAM)
! 1286: void *YYPARSE_PARAM;
! 1287: # endif
! 1288: #else /* ! YYPARSE_PARAM */
! 1289: #if defined (__STDC__) || defined (__cplusplus)
! 1290: int
! 1291: yyparse (void)
! 1292: #else
! 1293: int
! 1294: yyparse ()
1.1 noro 1295:
1.8 ! noro 1296: #endif
! 1297: #endif
1.1 noro 1298: {
1.8 ! noro 1299:
1.5 noro 1300: register int yystate;
1301: register int yyn;
1302: int yyresult;
1303: /* Number of tokens to shift before error messages enabled. */
1304: int yyerrstatus;
1305: /* Lookahead token as an internal (translated) token number. */
1.8 ! noro 1306: int yytoken = 0;
1.5 noro 1307:
1308: /* Three stacks and their tools:
1309: `yyss': related to states,
1310: `yyvs': related to semantic values,
1311: `yyls': related to locations.
1312:
1313: Refer to the stacks thru separate pointers, to allow yyoverflow
1314: to reallocate them elsewhere. */
1315:
1.8 ! noro 1316: /* The state stack. */
1.5 noro 1317: short yyssa[YYINITDEPTH];
1318: short *yyss = yyssa;
1319: register short *yyssp;
1320:
1321: /* The semantic value stack. */
1322: YYSTYPE yyvsa[YYINITDEPTH];
1323: YYSTYPE *yyvs = yyvsa;
1324: register YYSTYPE *yyvsp;
1325:
1326:
1.8 ! noro 1327:
! 1328: #define YYPOPSTACK (yyvsp--, yyssp--)
1.5 noro 1329:
1330: YYSIZE_T yystacksize = YYINITDEPTH;
1331:
1332: /* The variables used to return semantic value and location from the
1333: action routines. */
1334: YYSTYPE yyval;
1.8 ! noro 1335:
1.5 noro 1336:
1337: /* When reducing, the number of symbols on the RHS of the reduced
1.8 ! noro 1338: rule. */
1.5 noro 1339: int yylen;
1340:
1341: YYDPRINTF ((stderr, "Starting parse\n"));
1342:
1343: yystate = 0;
1344: yyerrstatus = 0;
1345: yynerrs = 0;
1346: yychar = YYEMPTY; /* Cause a token to be read. */
1347:
1348: /* Initialize stack pointers.
1349: Waste one element of value and location stack
1350: so that they stay on the same level as the state stack.
1351: The wasted elements are never initialized. */
1.1 noro 1352:
1.5 noro 1353: yyssp = yyss;
1354: yyvsp = yyvs;
1.8 ! noro 1355:
1.5 noro 1356: goto yysetstate;
1357:
1358: /*------------------------------------------------------------.
1359: | yynewstate -- Push a new state, which is found in yystate. |
1360: `------------------------------------------------------------*/
1361: yynewstate:
1362: /* In all cases, when you get here, the value and location stacks
1363: have just been pushed. so pushing a state here evens the stacks.
1364: */
1365: yyssp++;
1.1 noro 1366:
1.5 noro 1367: yysetstate:
1368: *yyssp = yystate;
1369:
1.8 ! noro 1370: if (yyss + yystacksize - 1 <= yyssp)
1.1 noro 1371: {
1.5 noro 1372: /* Get the current used size of the three stacks, in elements. */
1373: YYSIZE_T yysize = yyssp - yyss + 1;
1374:
1375: #ifdef yyoverflow
1376: {
1377: /* Give user a chance to reallocate the stack. Use copies of
1378: these so that the &'s don't force the real ones into
1379: memory. */
1380: YYSTYPE *yyvs1 = yyvs;
1381: short *yyss1 = yyss;
1382:
1.8 ! noro 1383:
1.5 noro 1384: /* Each stack pointer address is followed by the size of the
1.8 ! noro 1385: data in use in that stack, in bytes. This used to be a
! 1386: conditional around just the two extra args, but that might
! 1387: be undefined if yyoverflow is a macro. */
1.5 noro 1388: yyoverflow ("parser stack overflow",
1389: &yyss1, yysize * sizeof (*yyssp),
1390: &yyvs1, yysize * sizeof (*yyvsp),
1.8 ! noro 1391:
1.5 noro 1392: &yystacksize);
1.8 ! noro 1393:
1.5 noro 1394: yyss = yyss1;
1395: yyvs = yyvs1;
1396: }
1397: #else /* no yyoverflow */
1398: # ifndef YYSTACK_RELOCATE
1399: goto yyoverflowlab;
1400: # else
1401: /* Extend the stack our own way. */
1.8 ! noro 1402: if (YYMAXDEPTH <= yystacksize)
1.5 noro 1403: goto yyoverflowlab;
1404: yystacksize *= 2;
1.8 ! noro 1405: if (YYMAXDEPTH < yystacksize)
1.5 noro 1406: yystacksize = YYMAXDEPTH;
1407:
1408: {
1409: short *yyss1 = yyss;
1410: union yyalloc *yyptr =
1411: (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
1412: if (! yyptr)
1413: goto yyoverflowlab;
1414: YYSTACK_RELOCATE (yyss);
1415: YYSTACK_RELOCATE (yyvs);
1.8 ! noro 1416:
! 1417: # undef YYSTACK_RELOCATE
1.5 noro 1418: if (yyss1 != yyssa)
1419: YYSTACK_FREE (yyss1);
1420: }
1421: # endif
1422: #endif /* no yyoverflow */
1423:
1424: yyssp = yyss + yysize - 1;
1425: yyvsp = yyvs + yysize - 1;
1.8 ! noro 1426:
1.5 noro 1427:
1428: YYDPRINTF ((stderr, "Stack size increased to %lu\n",
1429: (unsigned long int) yystacksize));
1430:
1.8 ! noro 1431: if (yyss + yystacksize - 1 <= yyssp)
1.5 noro 1432: YYABORT;
1.1 noro 1433: }
1.5 noro 1434:
1435: YYDPRINTF ((stderr, "Entering state %d\n", yystate));
1436:
1437: goto yybackup;
1438:
1439: /*-----------.
1440: | yybackup. |
1441: `-----------*/
1442: yybackup:
1443:
1444: /* Do appropriate processing given the current state. */
1445: /* Read a lookahead token if we need one and don't already have one. */
1446: /* yyresume: */
1447:
1448: /* First try to decide what to do without reference to lookahead token. */
1449:
1450: yyn = yypact[yystate];
1.8 ! noro 1451: if (yyn == YYPACT_NINF)
1.5 noro 1452: goto yydefault;
1453:
1454: /* Not known => get a lookahead token if don't already have one. */
1455:
1.8 ! noro 1456: /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
1.5 noro 1457: if (yychar == YYEMPTY)
1.1 noro 1458: {
1.5 noro 1459: YYDPRINTF ((stderr, "Reading a token: "));
1460: yychar = YYLEX;
1.1 noro 1461: }
1.5 noro 1462:
1.8 ! noro 1463: if (yychar <= YYEOF)
1.1 noro 1464: {
1.8 ! noro 1465: yychar = yytoken = YYEOF;
1.5 noro 1466: YYDPRINTF ((stderr, "Now at end of input.\n"));
1.1 noro 1467: }
1.5 noro 1468: else
1.1 noro 1469: {
1.8 ! noro 1470: yytoken = YYTRANSLATE (yychar);
! 1471: YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
1.1 noro 1472: }
1.5 noro 1473:
1.8 ! noro 1474: /* If the proper action on seeing token YYTOKEN is to reduce or to
! 1475: detect an error, take that action. */
! 1476: yyn += yytoken;
! 1477: if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
1.5 noro 1478: goto yydefault;
1479: yyn = yytable[yyn];
1.8 ! noro 1480: if (yyn <= 0)
1.1 noro 1481: {
1.8 ! noro 1482: if (yyn == 0 || yyn == YYTABLE_NINF)
1.5 noro 1483: goto yyerrlab;
1484: yyn = -yyn;
1485: goto yyreduce;
1486: }
1487:
1488: if (yyn == YYFINAL)
1489: YYACCEPT;
1490:
1491: /* Shift the lookahead token. */
1.8 ! noro 1492: YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
1.5 noro 1493:
1494: /* Discard the token being shifted unless it is eof. */
1495: if (yychar != YYEOF)
1496: yychar = YYEMPTY;
1497:
1498: *++yyvsp = yylval;
1.8 ! noro 1499:
1.5 noro 1500:
1501: /* Count tokens shifted since error; after three, turn off error
1502: status. */
1503: if (yyerrstatus)
1504: yyerrstatus--;
1505:
1506: yystate = yyn;
1507: goto yynewstate;
1508:
1509:
1510: /*-----------------------------------------------------------.
1511: | yydefault -- do the default action for the current state. |
1512: `-----------------------------------------------------------*/
1513: yydefault:
1514: yyn = yydefact[yystate];
1515: if (yyn == 0)
1516: goto yyerrlab;
1517: goto yyreduce;
1518:
1519:
1520: /*-----------------------------.
1521: | yyreduce -- Do a reduction. |
1522: `-----------------------------*/
1.1 noro 1523: yyreduce:
1.5 noro 1524: /* yyn is the number of a rule to reduce with. */
1525: yylen = yyr2[yyn];
1526:
1527: /* If YYLEN is nonzero, implement the default value of the action:
1528: `$$ = $1'.
1529:
1.8 ! noro 1530: Otherwise, the following line sets YYVAL to garbage.
! 1531: This behavior is undocumented and Bison
1.5 noro 1532: users should not rely upon it. Assigning to YYVAL
1533: unconditionally makes the parser a bit smaller, and it avoids a
1534: GCC warning that YYVAL may be used uninitialized. */
1535: yyval = yyvsp[1-yylen];
1536:
1537:
1.8 ! noro 1538: YY_REDUCE_PRINT (yyn);
! 1539: switch (yyn)
! 1540: {
! 1541: case 2:
1.4 noro 1542: #line 131 "parse.y"
1.8 ! noro 1543: {
1.5 noro 1544: parse_snode = yyvsp[0].s;
1545: if ( yychar >= 0 )
1546: fprintf(stderr,
1547: "Warning: a token was wasted after an 'if' statement without 'else'.\n");
1548: YYACCEPT;
1549: }
1550: break;
1.8 ! noro 1551:
! 1552: case 3:
1.5 noro 1553: #line 140 "parse.y"
1.8 ! noro 1554: { yyval.s = 0; }
1.5 noro 1555: break;
1.8 ! noro 1556:
! 1557: case 4:
1.5 noro 1558: #line 141 "parse.y"
1.8 ! noro 1559: { gdef=1; }
1.5 noro 1560: break;
1.8 ! noro 1561:
! 1562: case 5:
1.5 noro 1563: #line 141 "parse.y"
1.8 ! noro 1564: { gdef=0; }
1.5 noro 1565: break;
1.8 ! noro 1566:
! 1567: case 6:
1.5 noro 1568: #line 142 "parse.y"
1.8 ! noro 1569: { yyval.s = 0; NOPR; }
1.5 noro 1570: break;
1.8 ! noro 1571:
! 1572: case 7:
1.5 noro 1573: #line 143 "parse.y"
1.8 ! noro 1574: { mgdef=1; }
1.5 noro 1575: break;
1.8 ! noro 1576:
! 1577: case 8:
1.5 noro 1578: #line 143 "parse.y"
1.8 ! noro 1579: { mgdef=0; }
1.5 noro 1580: break;
1.8 ! noro 1581:
! 1582: case 9:
1.5 noro 1583: #line 144 "parse.y"
1.8 ! noro 1584: { yyval.s = 0; NOPR; }
1.5 noro 1585: break;
1.8 ! noro 1586:
! 1587: case 10:
1.5 noro 1588: #line 145 "parse.y"
1.8 ! noro 1589: { ldef=1; }
1.5 noro 1590: break;
1.8 ! noro 1591:
! 1592: case 11:
1.5 noro 1593: #line 145 "parse.y"
1.8 ! noro 1594: { ldef=0; }
1.5 noro 1595: break;
1.8 ! noro 1596:
! 1597: case 12:
1.5 noro 1598: #line 146 "parse.y"
1.8 ! noro 1599: { yyval.s = 0; NOPR; }
1.5 noro 1600: break;
1.8 ! noro 1601:
! 1602: case 13:
1.5 noro 1603: #line 148 "parse.y"
1.8 ! noro 1604: { appenduflist(yyvsp[-1].n); yyval.s = 0; NOPR; }
1.5 noro 1605: break;
1.8 ! noro 1606:
! 1607: case 14:
1.5 noro 1608: #line 150 "parse.y"
1.8 ! noro 1609: { structdef(yyvsp[-4].p,yyvsp[-2].n); yyval.s = 0; NOPR; }
1.5 noro 1610: break;
1.8 ! noro 1611:
! 1612: case 15:
1.5 noro 1613: #line 152 "parse.y"
1.8 ! noro 1614: { yyval.s = mksnode(1,S_SINGLE,yyvsp[-1].f); }
1.5 noro 1615: break;
1.8 ! noro 1616:
! 1617: case 16:
1.5 noro 1618: #line 154 "parse.y"
1.8 ! noro 1619: { yyval.s = yyvsp[0].s; }
1.5 noro 1620: break;
1.8 ! noro 1621:
! 1622: case 17:
1.5 noro 1623: #line 156 "parse.y"
1.8 ! noro 1624: { yyval.s = mksnode(0,S_BREAK); }
1.5 noro 1625: break;
1.8 ! noro 1626:
! 1627: case 18:
1.5 noro 1628: #line 158 "parse.y"
1.8 ! noro 1629: { yyval.s = mksnode(0,S_CONTINUE); }
1.5 noro 1630: break;
1.8 ! noro 1631:
! 1632: case 19:
1.5 noro 1633: #line 160 "parse.y"
1.8 ! noro 1634: { yyval.s = mksnode(1,S_RETURN,0); }
1.5 noro 1635: break;
1.8 ! noro 1636:
! 1637: case 20:
1.5 noro 1638: #line 162 "parse.y"
1.8 ! noro 1639: { yyval.s = mksnode(1,S_RETURN,yyvsp[-1].f); }
1.5 noro 1640: break;
1.8 ! noro 1641:
! 1642: case 21:
1.5 noro 1643: #line 164 "parse.y"
1.8 ! noro 1644: { yyval.s = mksnode(4,S_IFELSE,yyvsp[-4].i,yyvsp[-2].n,yyvsp[0].s,0); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5 noro 1645: break;
1.8 ! noro 1646:
! 1647: case 22:
1.5 noro 1648: #line 166 "parse.y"
1.8 ! noro 1649: { yyval.s = mksnode(4,S_IFELSE,yyvsp[-6].i,yyvsp[-4].n,yyvsp[-2].s,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5 noro 1650: break;
1.8 ! noro 1651:
! 1652: case 23:
1.5 noro 1653: #line 168 "parse.y"
1.8 ! noro 1654: { yyval.s = mksnode(5,S_FOR,yyvsp[-8].i,yyvsp[-6].n,yyvsp[-4].n?yyvsp[-4].n:ONENODE,yyvsp[-2].n,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5 noro 1655: break;
1.8 ! noro 1656:
! 1657: case 24:
1.5 noro 1658: #line 170 "parse.y"
1.8 ! noro 1659: { yyval.s = mksnode(5,S_FOR,yyvsp[-4].i,0,yyvsp[-2].n,0,yyvsp[0].s); yyvsp[0].s?yyval.s->ln=yyvsp[0].s->ln:0; NOPR; }
1.5 noro 1660: break;
1.8 ! noro 1661:
! 1662: case 25:
1.5 noro 1663: #line 172 "parse.y"
1.8 ! noro 1664: { yyval.s = mksnode(3,S_DO,yyvsp[-6].i,yyvsp[-5].s,yyvsp[-2].n); NOPR; }
1.5 noro 1665: break;
1.8 ! noro 1666:
! 1667: case 26:
1.5 noro 1668: #line 174 "parse.y"
1.8 ! noro 1669: { yyval.s = mksnode(3,S_PFDEF,yyvsp[-7].p,yyvsp[-5].n,yyvsp[-1].f); NOPR; }
1.5 noro 1670: break;
1.8 ! noro 1671:
! 1672: case 27:
1.5 noro 1673: #line 176 "parse.y"
1.8 ! noro 1674: { yyval.s = mksnode(3,S_PFDEF,yyvsp[-4].p,yyvsp[-2].n,0); NOPR; }
1.5 noro 1675: break;
1.8 ! noro 1676:
! 1677: case 28:
1.5 noro 1678: #line 177 "parse.y"
1.8 ! noro 1679: { mkpvs(yyvsp[0].p); }
1.5 noro 1680: break;
1.8 ! noro 1681:
! 1682: case 29:
1.5 noro 1683: #line 177 "parse.y"
1.8 ! noro 1684: { ldef = 1; }
1.5 noro 1685: break;
1.8 ! noro 1686:
! 1687: case 30:
1.5 noro 1688: #line 177 "parse.y"
1.8 ! noro 1689: { ldef = -1; }
1.5 noro 1690: break;
1.8 ! noro 1691:
! 1692: case 31:
1.5 noro 1693: #line 178 "parse.y"
1.8 ! noro 1694: {
1.4 noro 1695: mkuf(yyvsp[-10].p,asir_infile->name,yyvsp[-6].n,
1696: mksnode(1,S_CPLX,yyvsp[-1].n),yyvsp[-11].i,asir_infile->ln,yyvsp[-3].p,CUR_MODULE);
1.8 ! noro 1697: yyval.s = 0; NOPR;
1.1 noro 1698: }
1.5 noro 1699: break;
1.8 ! noro 1700:
! 1701: case 32:
1.5 noro 1702: #line 184 "parse.y"
1.8 ! noro 1703: {
! 1704: CUR_MODULE = mkmodule(yyvsp[-1].p);
! 1705: MPVS = CUR_MODULE->pvs;
! 1706: yyval.s = mksnode(1,S_MODULE,CUR_MODULE); NOPR;
! 1707: }
1.5 noro 1708: break;
1.8 ! noro 1709:
! 1710: case 33:
! 1711: #line 190 "parse.y"
! 1712: { CUR_MODULE = 0; MPVS = 0; yyval.s = mksnode(1,S_MODULE,0); NOPR; }
1.5 noro 1713: break;
1.8 ! noro 1714:
! 1715: case 34:
! 1716: #line 192 "parse.y"
! 1717: { yyerrok; yyval.s = 0; }
1.5 noro 1718: break;
1.8 ! noro 1719:
! 1720: case 35:
! 1721: #line 195 "parse.y"
! 1722: { if ( main_parser ) prresult = 1; }
1.5 noro 1723: break;
1.8 ! noro 1724:
! 1725: case 36:
! 1726: #line 197 "parse.y"
! 1727: { if ( main_parser ) prresult = 0; }
1.5 noro 1728: break;
1.8 ! noro 1729:
! 1730: case 37:
! 1731: #line 200 "parse.y"
! 1732: { yyval.p = 0; }
1.5 noro 1733: break;
1.8 ! noro 1734:
! 1735: case 38:
! 1736: #line 202 "parse.y"
! 1737: { yyval.p = yyvsp[0].p; }
1.5 noro 1738: break;
1.8 ! noro 1739:
! 1740: case 39:
! 1741: #line 205 "parse.y"
! 1742: { yyval.s = mksnode(1,S_CPLX,yyvsp[-1].n); }
1.5 noro 1743: break;
1.8 ! noro 1744:
! 1745: case 40:
! 1746: #line 208 "parse.y"
! 1747: { MKNODE(yyval.n,yyvsp[0].p,0); }
1.5 noro 1748: break;
1.8 ! noro 1749:
! 1750: case 41:
! 1751: #line 210 "parse.y"
! 1752: { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
1.5 noro 1753: break;
1.8 ! noro 1754:
! 1755: case 42:
! 1756: #line 213 "parse.y"
! 1757: { MKNODE(yyval.n,yyvsp[0].p,0); }
1.5 noro 1758: break;
1.8 ! noro 1759:
! 1760: case 43:
! 1761: #line 215 "parse.y"
! 1762: { appendtonode(yyvsp[-2].n,yyvsp[0].p,&yyval.n); }
1.5 noro 1763: break;
1.8 ! noro 1764:
! 1765: case 44:
! 1766: #line 218 "parse.y"
! 1767: { val = (pointer)makepvar(yyvsp[0].p); MKNODE(yyval.n,val,0); }
1.5 noro 1768: break;
1.8 ! noro 1769:
! 1770: case 45:
! 1771: #line 220 "parse.y"
! 1772: { appendtonode(yyvsp[-2].n,(pointer)makepvar(yyvsp[0].p),&yyval.n); }
1.5 noro 1773: break;
1.8 ! noro 1774:
! 1775: case 46:
! 1776: #line 223 "parse.y"
! 1777: { yyval.n = 0; }
1.5 noro 1778: break;
1.8 ! noro 1779:
! 1780: case 47:
! 1781: #line 225 "parse.y"
! 1782: { appendtonode(yyvsp[-1].n,(pointer)yyvsp[0].s,&yyval.n); }
1.5 noro 1783: break;
1.8 ! noro 1784:
! 1785: case 48:
! 1786: #line 228 "parse.y"
! 1787: { yyval.n = 0; }
1.5 noro 1788: break;
1.8 ! noro 1789:
! 1790: case 49:
! 1791: #line 230 "parse.y"
! 1792: { yyval.n = yyvsp[0].n; }
1.5 noro 1793: break;
1.8 ! noro 1794:
! 1795: case 50:
! 1796: #line 233 "parse.y"
! 1797: { MKNODE(yyval.n,yyvsp[0].f,0); }
1.5 noro 1798: break;
1.8 ! noro 1799:
! 1800: case 51:
! 1801: #line 235 "parse.y"
! 1802: { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
1.5 noro 1803: break;
1.8 ! noro 1804:
! 1805: case 52:
! 1806: #line 238 "parse.y"
! 1807: { MKNODE(yyval.n,yyvsp[0].f,0); }
1.5 noro 1808: break;
1.8 ! noro 1809:
! 1810: case 53:
! 1811: #line 240 "parse.y"
! 1812: { appendtonode(yyvsp[-2].n,(pointer)yyvsp[0].f,&yyval.n); }
1.5 noro 1813: break;
1.8 ! noro 1814:
! 1815: case 54:
! 1816: #line 243 "parse.y"
! 1817: { yyval.p = yyvsp[0].p; }
1.5 noro 1818: break;
1.8 ! noro 1819:
! 1820: case 55:
! 1821: #line 245 "parse.y"
! 1822: { yyval.p = yyvsp[0].p; }
1.5 noro 1823: break;
1.8 ! noro 1824:
! 1825: case 56:
! 1826: #line 248 "parse.y"
! 1827: { yyval.f = mkfnode(2,I_OPT,yyvsp[-2].p,yyvsp[0].f); }
1.5 noro 1828: break;
1.8 ! noro 1829:
! 1830: case 57:
1.5 noro 1831: #line 251 "parse.y"
1.8 ! noro 1832: { yyval.f = mkfnode(1,I_STR,yyvsp[0].p); }
1.5 noro 1833: break;
1.8 ! noro 1834:
! 1835: case 58:
1.5 noro 1836: #line 253 "parse.y"
1.8 ! noro 1837: { yyval.f = mkfnode(1,I_FORMULA,yyvsp[0].p); }
1.5 noro 1838: break;
1.8 ! noro 1839:
! 1840: case 59:
1.5 noro 1841: #line 255 "parse.y"
1.8 ! noro 1842: { yyval.f = mkfnode(1,I_ANS,yyvsp[0].i); }
1.5 noro 1843: break;
1.8 ! noro 1844:
! 1845: case 60:
1.5 noro 1846: #line 257 "parse.y"
1.8 ! noro 1847: { yyval.f = mkfnode(0,I_GF2NGEN); }
1.5 noro 1848: break;
1.8 ! noro 1849:
! 1850: case 61:
1.5 noro 1851: #line 259 "parse.y"
1.8 ! noro 1852: { yyval.f = mkfnode(0,I_GFPNGEN); }
! 1853: break;
! 1854:
! 1855: case 62:
! 1856: #line 261 "parse.y"
! 1857: { yyval.f = mkfnode(0,I_GFSNGEN); }
! 1858: break;
! 1859:
! 1860: case 63:
! 1861: #line 263 "parse.y"
! 1862: {
1.1 noro 1863: FUNC f;
1864:
1865: searchf(noargsysf,yyvsp[0].p,&f);
1866: if ( f )
1867: yyval.f = mkfnode(2,I_FUNC,f,0);
1868: else {
1869: searchc(yyvsp[0].p,&f);
1870: if ( f )
1871: yyval.f = mkfnode(2,I_FUNC,f,mkfnode(1,I_LIST,0));
1872: else {
1.7 noro 1873: gen_searchf_searchonly(yyvsp[0].p,(FUNC *)&f);
1.1 noro 1874: if ( f )
1875: makesrvar(f,(P *)&val);
1876: else
1877: makevar(yyvsp[0].p,(P *)&val);
1878: yyval.f = mkfnode(1,I_FORMULA,val);
1879: }
1880: }
1881: }
1.5 noro 1882: break;
1.8 ! noro 1883:
! 1884: case 64:
! 1885: #line 284 "parse.y"
! 1886: {
1.3 noro 1887: gen_searchf(yyvsp[-3].p,(FUNC *)&val);
1.4 noro 1888: print_crossref(val);
1.1 noro 1889: yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
1890: }
1.5 noro 1891: break;
1.8 ! noro 1892:
! 1893: case 65:
! 1894: #line 291 "parse.y"
! 1895: {
1.3 noro 1896: gen_searchf(yyvsp[-5].p,(FUNC *)&val);
1.4 noro 1897: print_crossref(val);
1.1 noro 1898: yyval.f = mkfnode(3,I_FUNC_OPT,val,
1899: mkfnode(1,I_LIST,yyvsp[-3].n),mkfnode(1,I_LIST,yyvsp[-1].n));
1900: }
1.5 noro 1901: break;
1.8 ! noro 1902:
! 1903: case 66:
! 1904: #line 298 "parse.y"
! 1905: {
1.3 noro 1906: gen_searchf(yyvsp[-3].p,(FUNC *)&val);
1.4 noro 1907: print_crossref(val);
1.3 noro 1908: yyval.f = mkfnode(2,I_MAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
1909: }
1.5 noro 1910: break;
1.8 ! noro 1911:
! 1912: case 67:
! 1913: #line 304 "parse.y"
! 1914: {
1.3 noro 1915: gen_searchf(yyvsp[-3].p,(FUNC *)&val);
1.4 noro 1916: print_crossref(val);
1.3 noro 1917: yyval.f = mkfnode(2,I_RECMAP,val,mkfnode(1,I_LIST,yyvsp[-1].n));
1918: }
1.5 noro 1919: break;
1.8 ! noro 1920:
! 1921: case 68:
! 1922: #line 310 "parse.y"
! 1923: {
1.1 noro 1924: searchpf(yyvsp[-6].p,(FUNC *)&val);
1.8 ! noro 1925: yyval.f = mkfnode(3,I_PFDERIV,val,mkfnode(1,I_LIST,yyvsp[-1].n),mkfnode(1,I_LIST,yyvsp[-4].n));
1.1 noro 1926: }
1.5 noro 1927: break;
1.8 ! noro 1928:
! 1929: case 69:
! 1930: #line 315 "parse.y"
! 1931: {
1.3 noro 1932: yyval.f = mkfnode(2,I_GETOPT,yyvsp[-1].p);
1933: }
1.5 noro 1934: break;
1.8 ! noro 1935:
! 1936: case 70:
! 1937: #line 319 "parse.y"
! 1938: {
1.3 noro 1939: yyval.f = mkfnode(2,I_GETOPT,0);
1.1 noro 1940: }
1.5 noro 1941: break;
1.8 ! noro 1942:
! 1943: case 71:
! 1944: #line 323 "parse.y"
! 1945: {
1.3 noro 1946: yyval.f = mkfnode(3,I_TIMER,yyvsp[-5].f,yyvsp[-3].f,yyvsp[-1].f);
1.1 noro 1947: }
1.5 noro 1948: break;
1.8 ! noro 1949:
! 1950: case 72:
! 1951: #line 327 "parse.y"
! 1952: {
1.3 noro 1953: searchf(parif,yyvsp[-1].p,(FUNC *)&val);
1954: if ( !val )
1955: mkparif(yyvsp[-1].p,(FUNC *)&val);
1956: yyval.f = mkfnode(2,I_FUNC,val,0);
1.1 noro 1957: }
1.5 noro 1958: break;
1.8 ! noro 1959:
! 1960: case 73:
! 1961: #line 334 "parse.y"
! 1962: {
1.1 noro 1963: searchf(parif,yyvsp[-3].p,(FUNC *)&val);
1964: if ( !val )
1965: mkparif(yyvsp[-3].p,(FUNC *)&val);
1966: yyval.f = mkfnode(2,I_FUNC,val,mkfnode(1,I_LIST,yyvsp[-1].n));
1967: }
1.5 noro 1968: break;
1.8 ! noro 1969:
! 1970: case 74:
! 1971: #line 341 "parse.y"
! 1972: {
1.1 noro 1973: yyval.f = mkfnode(2,I_IFUNC,yyvsp[-4].f,mkfnode(1,I_LIST,yyvsp[-1].n));
1974: }
1.5 noro 1975: break;
1.8 ! noro 1976:
! 1977: case 75:
! 1978: #line 345 "parse.y"
! 1979: {
! 1980: if ( main_parser || allow_create_var )
! 1981: t = mkfnode(2,I_PVAR,makepvar(yyvsp[-3].p),0);
! 1982: else {
! 1983: ind = searchpvar(yyvsp[-3].p);
! 1984: if ( ind == -1 ) {
! 1985: fprintf(stderr,"%s : no such variable.\n",yyvsp[-3].p);
! 1986: YYABORT;
! 1987: } else
! 1988: t = mkfnode(2,I_PVAR,ind,0);
! 1989: }
! 1990: yyval.f = mkfnode(2,I_IFUNC,t,mkfnode(1,I_LIST,yyvsp[-1].n));
! 1991: }
! 1992: break;
! 1993:
! 1994: case 76:
! 1995: #line 359 "parse.y"
! 1996: { yyval.f = mkfnode(1,I_CAR,yyvsp[-1].f); }
1.5 noro 1997: break;
1.8 ! noro 1998:
! 1999: case 77:
! 2000: #line 361 "parse.y"
! 2001: { yyval.f = mkfnode(1,I_CDR,yyvsp[-1].f); }
1.5 noro 2002: break;
1.8 ! noro 2003:
! 2004: case 78:
! 2005: #line 363 "parse.y"
! 2006: { yyval.f = mkfnode(1,I_PAREN,yyvsp[-1].f); }
1.5 noro 2007: break;
1.8 ! noro 2008:
! 2009: case 79:
! 2010: #line 365 "parse.y"
! 2011: {
1.4 noro 2012: if ( main_parser || allow_create_var )
1.1 noro 2013: yyval.f = mkfnode(2,I_PVAR,makepvar(yyvsp[0].p),0);
2014: else {
2015: ind = searchpvar(yyvsp[0].p);
2016: if ( ind == -1 ) {
2017: fprintf(stderr,"%s : no such variable.\n",yyvsp[0].p);
2018: YYABORT;
2019: } else
2020: yyval.f = mkfnode(2,I_PVAR,ind,0);
2021: }
2022: }
1.5 noro 2023: break;
1.8 ! noro 2024:
! 2025: case 80:
! 2026: #line 378 "parse.y"
! 2027: {
1.1 noro 2028: if ( yyvsp[-3].f->id == I_PVAR || yyvsp[-3].f->id == I_INDEX ) {
2029: appendtonode((NODE)yyvsp[-3].f->arg[1],(pointer)yyvsp[-1].f,&a);
2030: yyvsp[-3].f->arg[1] = (pointer)a; yyval.f = yyvsp[-3].f;
2031: } else {
2032: MKNODE(a,yyvsp[-1].f,0);
2033: yyval.f = mkfnode(2,I_INDEX,(pointer)yyvsp[-3].f,a);
2034: }
2035: }
1.5 noro 2036: break;
1.8 ! noro 2037:
! 2038: case 81:
! 2039: #line 388 "parse.y"
! 2040: { yyval.f = mkfnode(2,I_POINT,yyvsp[-2].f,yyvsp[0].p); }
1.5 noro 2041: break;
1.8 ! noro 2042:
! 2043: case 82:
1.6 noro 2044: #line 391 "parse.y"
1.8 ! noro 2045: { yyval.f = yyvsp[0].f; }
1.5 noro 2046: break;
1.8 ! noro 2047:
! 2048: case 83:
1.6 noro 2049: #line 393 "parse.y"
1.8 ! noro 2050: { yyval.f = mkfnode(3,I_CAST,structtoindex(yyvsp[-2].p),yyvsp[0].f,0); }
1.5 noro 2051: break;
1.8 ! noro 2052:
! 2053: case 84:
1.6 noro 2054: #line 395 "parse.y"
1.8 ! noro 2055: { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2056: break;
1.8 ! noro 2057:
! 2058: case 85:
1.6 noro 2059: #line 397 "parse.y"
1.8 ! noro 2060: { yyval.f = mkfnode(2,I_ASSPVAR,yyvsp[-2].f,mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f)); }
1.5 noro 2061: break;
1.8 ! noro 2062:
! 2063: case 86:
1.6 noro 2064: #line 399 "parse.y"
1.8 ! noro 2065: { yyval.f = mkfnode(2,I_POSTSELF,yyvsp[0].p,yyvsp[-1].f); }
1.5 noro 2066: break;
1.8 ! noro 2067:
! 2068: case 87:
1.6 noro 2069: #line 401 "parse.y"
1.8 ! noro 2070: { yyval.f = mkfnode(2,I_PRESELF,yyvsp[-1].p,yyvsp[0].f); }
1.5 noro 2071: break;
1.8 ! noro 2072:
! 2073: case 88:
1.6 noro 2074: #line 403 "parse.y"
1.8 ! noro 2075: { yyval.f = mkfnode(1,I_LIST,yyvsp[-1].n); }
1.5 noro 2076: break;
1.8 ! noro 2077:
! 2078: case 89:
1.6 noro 2079: #line 405 "parse.y"
1.8 ! noro 2080: { yyval.f = yyvsp[0].f; }
1.5 noro 2081: break;
1.8 ! noro 2082:
! 2083: case 90:
1.6 noro 2084: #line 407 "parse.y"
1.8 ! noro 2085: { yyval.f = mkfnode(1,I_MINUS,yyvsp[0].f); }
1.5 noro 2086: break;
1.8 ! noro 2087:
! 2088: case 91:
1.6 noro 2089: #line 409 "parse.y"
1.8 ! noro 2090: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2091: break;
1.8 ! noro 2092:
! 2093: case 92:
1.6 noro 2094: #line 411 "parse.y"
1.8 ! noro 2095: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2096: break;
1.8 ! noro 2097:
! 2098: case 93:
1.6 noro 2099: #line 413 "parse.y"
1.8 ! noro 2100: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2101: break;
1.8 ! noro 2102:
! 2103: case 94:
1.6 noro 2104: #line 415 "parse.y"
1.8 ! noro 2105: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2106: break;
1.8 ! noro 2107:
! 2108: case 95:
1.6 noro 2109: #line 417 "parse.y"
1.8 ! noro 2110: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2111: break;
1.8 ! noro 2112:
! 2113: case 96:
1.6 noro 2114: #line 419 "parse.y"
1.8 ! noro 2115: { yyval.f = mkfnode(3,I_BOP,yyvsp[-1].p,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2116: break;
1.8 ! noro 2117:
! 2118: case 97:
1.6 noro 2119: #line 421 "parse.y"
1.8 ! noro 2120: { yyval.f = mkfnode(3,I_COP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2121: break;
1.8 ! noro 2122:
! 2123: case 98:
1.6 noro 2124: #line 423 "parse.y"
1.8 ! noro 2125: { yyval.f = mkfnode(1,I_NOT,yyvsp[0].f); }
1.5 noro 2126: break;
1.8 ! noro 2127:
! 2128: case 99:
1.6 noro 2129: #line 425 "parse.y"
1.8 ! noro 2130: { yyval.f = mkfnode(2,I_OR,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2131: break;
1.8 ! noro 2132:
! 2133: case 100:
1.6 noro 2134: #line 427 "parse.y"
1.8 ! noro 2135: { yyval.f = mkfnode(2,I_AND,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2136: break;
1.8 ! noro 2137:
! 2138: case 101:
1.6 noro 2139: #line 429 "parse.y"
1.8 ! noro 2140: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[0].f,0); }
1.5 noro 2141: break;
1.8 ! noro 2142:
! 2143: case 102:
1.6 noro 2144: #line 431 "parse.y"
1.8 ! noro 2145: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
1.5 noro 2146: break;
1.8 ! noro 2147:
! 2148: case 103:
1.6 noro 2149: #line 433 "parse.y"
1.8 ! noro 2150: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 2151: break;
! 2152:
! 2153: case 104:
! 2154: #line 435 "parse.y"
! 2155: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 2156: break;
! 2157:
! 2158: case 105:
! 2159: #line 437 "parse.y"
! 2160: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 2161: break;
! 2162:
! 2163: case 106:
! 2164: #line 439 "parse.y"
! 2165: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 2166: break;
! 2167:
! 2168: case 107:
! 2169: #line 441 "parse.y"
! 2170: { yyval.f = mkfnode(3,I_LOP,yyvsp[-1].i,yyvsp[-2].f,yyvsp[0].f); }
! 2171: break;
! 2172:
! 2173: case 108:
! 2174: #line 443 "parse.y"
! 2175: { yyval.f = mkfnode(3,I_CE,yyvsp[-4].f,yyvsp[-2].f,yyvsp[0].f); }
! 2176: break;
! 2177:
! 2178: case 109:
! 2179: #line 445 "parse.y"
! 2180: { yyval.f = mkfnode(1,I_EV,yyvsp[-1].n); }
! 2181: break;
! 2182:
! 2183: case 110:
! 2184: #line 447 "parse.y"
! 2185: { yyval.f = mkfnode(1,I_NEWCOMP,(int)structtoindex(yyvsp[-1].p)); }
! 2186: break;
! 2187:
! 2188: case 111:
! 2189: #line 449 "parse.y"
! 2190: { MKQUOTE(quote,yyvsp[-1].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }
! 2191: break;
! 2192:
! 2193: case 112:
! 2194: #line 451 "parse.y"
! 2195: { yyval.f = mkfnode(2,I_CONS,yyvsp[-3].n,yyvsp[-1].f); }
! 2196: break;
! 2197:
! 2198: case 113:
! 2199: #line 453 "parse.y"
! 2200: { MKQUOTE(quote,yyvsp[0].f); yyval.f = mkfnode(1,I_FORMULA,(pointer)quote); }
1.5 noro 2201: break;
2202:
2203:
1.8 ! noro 2204: }
! 2205:
! 2206: /* Line 999 of yacc.c. */
! 2207: #line 2208 "y.tab.c"
1.5 noro 2208:
2209: yyvsp -= yylen;
2210: yyssp -= yylen;
2211:
1.8 ! noro 2212:
! 2213: YY_STACK_PRINT (yyss, yyssp);
1.5 noro 2214:
2215: *++yyvsp = yyval;
1.8 ! noro 2216:
1.5 noro 2217:
2218: /* Now `shift' the result of the reduction. Determine what state
2219: that goes to, based on the state we popped back to and the rule
2220: number reduced by. */
2221:
2222: yyn = yyr1[yyn];
2223:
1.8 ! noro 2224: yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
! 2225: if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
1.5 noro 2226: yystate = yytable[yystate];
2227: else
1.8 ! noro 2228: yystate = yydefgoto[yyn - YYNTOKENS];
1.5 noro 2229:
2230: goto yynewstate;
2231:
2232:
2233: /*------------------------------------.
2234: | yyerrlab -- here on detecting error |
2235: `------------------------------------*/
2236: yyerrlab:
2237: /* If not already recovering from an error, report this error. */
2238: if (!yyerrstatus)
2239: {
2240: ++yynerrs;
1.8 ! noro 2241: #if YYERROR_VERBOSE
1.5 noro 2242: yyn = yypact[yystate];
2243:
1.8 ! noro 2244: if (YYPACT_NINF < yyn && yyn < YYLAST)
1.5 noro 2245: {
2246: YYSIZE_T yysize = 0;
1.8 ! noro 2247: int yytype = YYTRANSLATE (yychar);
! 2248: const char* yyprefix;
1.5 noro 2249: char *yymsg;
1.8 ! noro 2250: int yyx;
1.5 noro 2251:
2252: /* Start YYX at -YYN if negative to avoid negative indexes in
2253: YYCHECK. */
1.8 ! noro 2254: int yyxbegin = yyn < 0 ? -yyn : 0;
! 2255:
! 2256: /* Stay within bounds of both yycheck and yytname. */
! 2257: int yychecklim = YYLAST - yyn;
! 2258: int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
! 2259: int yycount = 0;
! 2260:
! 2261: yyprefix = ", expecting ";
! 2262: for (yyx = yyxbegin; yyx < yyxend; ++yyx)
! 2263: if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
! 2264: {
! 2265: yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
! 2266: yycount += 1;
! 2267: if (yycount == 5)
! 2268: {
! 2269: yysize = 0;
! 2270: break;
! 2271: }
! 2272: }
! 2273: yysize += (sizeof ("syntax error, unexpected ")
! 2274: + yystrlen (yytname[yytype]));
1.5 noro 2275: yymsg = (char *) YYSTACK_ALLOC (yysize);
2276: if (yymsg != 0)
2277: {
1.8 ! noro 2278: char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
! 2279: yyp = yystpcpy (yyp, yytname[yytype]);
1.5 noro 2280:
2281: if (yycount < 5)
2282: {
1.8 ! noro 2283: yyprefix = ", expecting ";
! 2284: for (yyx = yyxbegin; yyx < yyxend; ++yyx)
! 2285: if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
1.5 noro 2286: {
1.8 ! noro 2287: yyp = yystpcpy (yyp, yyprefix);
1.5 noro 2288: yyp = yystpcpy (yyp, yytname[yyx]);
1.8 ! noro 2289: yyprefix = " or ";
1.5 noro 2290: }
2291: }
2292: yyerror (yymsg);
2293: YYSTACK_FREE (yymsg);
2294: }
2295: else
1.8 ! noro 2296: yyerror ("syntax error; also virtual memory exhausted");
1.5 noro 2297: }
2298: else
1.8 ! noro 2299: #endif /* YYERROR_VERBOSE */
! 2300: yyerror ("syntax error");
1.5 noro 2301: }
2302:
2303:
1.8 ! noro 2304:
1.5 noro 2305: if (yyerrstatus == 3)
1.1 noro 2306: {
1.5 noro 2307: /* If just tried and failed to reuse lookahead token after an
2308: error, discard it. */
2309:
1.8 ! noro 2310: /* Return failure if at end of input. */
1.5 noro 2311: if (yychar == YYEOF)
1.8 ! noro 2312: {
! 2313: /* Pop the error token. */
! 2314: YYPOPSTACK;
! 2315: /* Pop the rest of the stack. */
! 2316: while (yyss < yyssp)
! 2317: {
! 2318: YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
! 2319: yydestruct (yystos[*yyssp], yyvsp);
! 2320: YYPOPSTACK;
! 2321: }
! 2322: YYABORT;
! 2323: }
! 2324:
! 2325: YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
! 2326: yydestruct (yytoken, &yylval);
1.5 noro 2327: yychar = YYEMPTY;
1.8 ! noro 2328:
1.5 noro 2329: }
2330:
2331: /* Else will try to reuse lookahead token after shifting the error
2332: token. */
1.8 ! noro 2333: goto yyerrlab1;
1.5 noro 2334:
2335:
1.8 ! noro 2336: /*----------------------------------------------------.
! 2337: | yyerrlab1 -- error raised explicitly by an action. |
! 2338: `----------------------------------------------------*/
! 2339: yyerrlab1:
! 2340: yyerrstatus = 3; /* Each real token shifted decrements this. */
1.5 noro 2341:
1.8 ! noro 2342: for (;;)
1.5 noro 2343: {
1.8 ! noro 2344: yyn = yypact[yystate];
! 2345: if (yyn != YYPACT_NINF)
! 2346: {
! 2347: yyn += YYTERROR;
! 2348: if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
! 2349: {
! 2350: yyn = yytable[yyn];
! 2351: if (0 < yyn)
! 2352: break;
! 2353: }
! 2354: }
1.5 noro 2355:
1.8 ! noro 2356: /* Pop the current state because it cannot handle the error token. */
! 2357: if (yyssp == yyss)
! 2358: YYABORT;
1.5 noro 2359:
1.8 ! noro 2360: YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
! 2361: yydestruct (yystos[yystate], yyvsp);
! 2362: yyvsp--;
! 2363: yystate = *--yyssp;
1.5 noro 2364:
1.8 ! noro 2365: YY_STACK_PRINT (yyss, yyssp);
1.1 noro 2366: }
1.5 noro 2367:
2368: if (yyn == YYFINAL)
2369: YYACCEPT;
2370:
2371: YYDPRINTF ((stderr, "Shifting error token, "));
2372:
2373: *++yyvsp = yylval;
1.8 ! noro 2374:
1.5 noro 2375:
2376: yystate = yyn;
2377: goto yynewstate;
2378:
2379:
2380: /*-------------------------------------.
2381: | yyacceptlab -- YYACCEPT comes here. |
2382: `-------------------------------------*/
2383: yyacceptlab:
2384: yyresult = 0;
2385: goto yyreturn;
2386:
2387: /*-----------------------------------.
2388: | yyabortlab -- YYABORT comes here. |
2389: `-----------------------------------*/
2390: yyabortlab:
2391: yyresult = 1;
2392: goto yyreturn;
2393:
1.8 ! noro 2394: #ifndef yyoverflow
! 2395: /*----------------------------------------------.
! 2396: | yyoverflowlab -- parser overflow comes here. |
! 2397: `----------------------------------------------*/
1.5 noro 2398: yyoverflowlab:
2399: yyerror ("parser stack overflow");
2400: yyresult = 2;
2401: /* Fall through. */
1.8 ! noro 2402: #endif
1.5 noro 2403:
2404: yyreturn:
2405: #ifndef yyoverflow
2406: if (yyss != yyssa)
2407: YYSTACK_FREE (yyss);
2408: #endif
2409: return yyresult;
1.1 noro 2410: }
1.8 ! noro 2411:
! 2412:
! 2413: #line 455 "parse.y"
! 2414:
1.5 noro 2415:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>