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