|
|
1.1 ! root 1: ! 2: # line 24 "gram.y" ! 3: #include "cfront.h" ! 4: #include "size.h" ! 5: ! 6: extern int ansi_opt; ! 7: #define YYMAXDEPTH 600 ! 8: ! 9: static init_seen = 0; ! 10: static cdi = 0; ! 11: static Pnlist cd = 0, cd_vec[BLMAX]; ! 12: static char stmt_seen = 0, stmt_vec[BLMAX]; ! 13: ! 14: //local class ! 15: //static Plist tn_vec[BLMAX]; ! 16: extern Plist local_blk; // put in cfront.h ! 17: static Plist tn_vec[BLMAX], lcl_tn_vec[BLMAX], lcl_blk_vec[BLMAX]; ! 18: extern void local_restore(); ! 19: extern void local_name(); ! 20: ! 21: static Pname err_name = 0; ! 22: ! 23: // fcts put into norm2.c just to get them out of gram.y ! 24: void sig_name(Pname); ! 25: Ptype tok_to_type(TOK); ! 26: void memptrdcl(Pname, Pname, Ptype, Pname); ! 27: ! 28: static Pptr doptr(TOK p, TOK t) ! 29: { ! 30: Pptr r = new ptr(p,0); ! 31: switch (t) { ! 32: case CONST: ! 33: r->rdo = 1; ! 34: // if (p == RPTR) error('w',"redundant `const' after &"); ! 35: break; ! 36: case VOLATILE: ! 37: error('w',"\"volatile\" not implemented (ignored)"); ! 38: break; ! 39: default: ! 40: error("syntax error: *%k",t); ! 41: } ! 42: return r; ! 43: } ! 44: ! 45: static Pbcl dobase(TOK pr, Pname n, TOK v = 0) ! 46: { ! 47: Pbcl b = new basecl(0,0); ! 48: ! 49: if (pr == PROTECTED) { ! 50: pr = PUBLIC; ! 51: error("protectedBC"); ! 52: } ! 53: b->ppp = pr; // save protection indicator ! 54: ! 55: if (n) { ! 56: if (n->base != TNAME) { ! 57: error("BN%n not aTN",n); ! 58: return 0; ! 59: } ! 60: ! 61: Pbase bt = Pbase(n->tp); ! 62: while (bt->base == TYPE) bt = Pbase(bt->b_name->tp); ! 63: ! 64: if (bt->base != COBJ) { ! 65: error("BN%n not aCN",n); ! 66: return 0; ! 67: } ! 68: ! 69: if (v) { ! 70: if (v != VIRTUAL) error("syntax error:%k inBCD",v); ! 71: b->base = VIRTUAL; ! 72: } ! 73: else ! 74: b->base = NAME; ! 75: ! 76: b->bclass = Pclass(bt->b_name->tp); ! 77: } ! 78: ! 79: return b; ! 80: } ! 81: ! 82: ! 83: #define lex_unget(x) back = x ! 84: ! 85: #define Ndata(a,b) b->normalize(Pbase(a),0,0) ! 86: #define Ncast(a,b) b->normalize(Pbase(a),0,1) ! 87: #define Nfct(a,b,c) b->normalize(Pbase(a),Pblock(c),0) ! 88: #define Ncopy(n) (n->base==TNAME)?new name(n->string):n ! 89: ! 90: #define Finit(p) Pfct(p)->f_init ! 91: #define Fargdcl(p,q,r) Pfct(p)->argdcl(q,r) ! 92: #define Freturns(p) Pfct(p)->returns ! 93: #define Vtype(v) Pvec(v)->typ ! 94: #define Ptyp(p) Pptr(p)->typ ! 95: ! 96: /* avoid redefinitions */ ! 97: #undef EOFTOK ! 98: #undef ASM ! 99: #undef BREAK ! 100: #undef CASE ! 101: #undef CONTINUE ! 102: #undef DEFAULT ! 103: #undef DELETE ! 104: #undef DO ! 105: #undef ELSE ! 106: #undef ENUM ! 107: #undef FOR ! 108: #undef FORTRAN ! 109: #undef GOTO ! 110: #undef IF ! 111: #undef NEW ! 112: #undef OPERATOR ! 113: #undef RETURN ! 114: #undef SIZEOF ! 115: #undef SWITCH ! 116: #undef THIS ! 117: #undef WHILE ! 118: #undef LP ! 119: #undef RP ! 120: #undef LB ! 121: #undef RB ! 122: #undef REF ! 123: #undef DOT ! 124: #undef NOT ! 125: #undef COMPL ! 126: #undef MUL ! 127: #undef AND ! 128: #undef PLUS ! 129: #undef MINUS ! 130: #undef ER ! 131: #undef OR ! 132: #undef ANDAND ! 133: #undef OROR ! 134: #undef QUEST ! 135: #undef COLON ! 136: #undef ASSIGN ! 137: #undef CM ! 138: #undef SM ! 139: #undef LC ! 140: #undef RC ! 141: #undef ID ! 142: #undef STRING ! 143: #undef ICON ! 144: #undef FCON ! 145: #undef CCON ! 146: #undef ZERO ! 147: #undef ASOP ! 148: #undef RELOP ! 149: #undef EQUOP ! 150: #undef DIVOP ! 151: #undef SHIFTOP ! 152: #undef ICOP ! 153: #undef TYPE ! 154: #undef TNAME ! 155: #undef EMPTY ! 156: #undef NO_ID ! 157: #undef NO_EXPR ! 158: #undef ELLIPSIS ! 159: #undef AGGR ! 160: #undef MEM ! 161: #undef MEMPTR ! 162: #undef PR ! 163: #undef TSCOPE ! 164: #undef DECL_MARKER ! 165: #undef REFMUL ! 166: #undef LDOUBLE ! 167: #undef LINKAGE ! 168: #undef LOCAL ! 169: ! 170: # line 192 "gram.y" ! 171: typedef union { ! 172: char* s; ! 173: TOK t; ! 174: int i; ! 175: loc l; ! 176: Pname pn; ! 177: Ptype pt; ! 178: Pexpr pe; ! 179: Pstmt ps; ! 180: Pbase pb; ! 181: Pnlist nl; ! 182: Pslist sl; ! 183: Pelist el; ! 184: Pbcl pbc; ! 185: Pptr pp; ! 186: PP p; // fudge: pointer to all class node objects ! 187: } YYSTYPE; ! 188: ! 189: # line 210 "gram.y" ! 190: extern YYSTYPE yylval, yyval; ! 191: extern int yyparse(); ! 192: ! 193: // interface to lalex/tlex ! 194: extern TOK la_look(); ! 195: extern void la_backup( TOK, YYSTYPE ); ! 196: extern int la_cast(); ! 197: extern int la_decl(); ! 198: extern TOK lalex(); ! 199: ! 200: extern int declTag; // !1: inline, virtual mod permitted ! 201: Ptype in_typedef = 0; // catch redefinition of TNAME ! 202: Pname in_tag = 0; // handle complex typedefs: int (*)() ! 203: extern int defer_check; // redefinition typedef check delay ! 204: ! 205: extern int must_be_id; // !0, TNAME => ID, i.e., int X ! 206: int DECL_TYPE = 0; // lalex() wants this set for global x(*fp)() ! 207: int in_arg_list=0; // !0 when parsing argument list ! 208: int in_class_decl=0; // !0 when parsing class definition ! 209: int in_mem_fct=0; // !0 when parsing member function definition ! 210: ! 211: #define yylex lalex ! 212: #define NEXTTOK() ( (yychar==-1) ? (yychar=yylex(),yychar) : yychar ) ! 213: #define EXPECT_ID() must_be_id = 1 ! 214: #define NOT_EXPECT_ID() must_be_id = 0 ! 215: ! 216: Pname syn() ! 217: { ! 218: ll: ! 219: switch (yyparse()) { ! 220: case 0: return 0; // EOF ! 221: case 1: goto ll; // no action needed ! 222: default: return yyval.pn; ! 223: } ! 224: } ! 225: ! 226: # define EOFTOK 0 ! 227: # define ASM 1 ! 228: # define BREAK 3 ! 229: # define CASE 4 ! 230: # define CONTINUE 7 ! 231: # define DEFAULT 8 ! 232: # define DELETE 9 ! 233: # define DO 10 ! 234: # define ELSE 12 ! 235: # define ENUM 13 ! 236: # define FOR 16 ! 237: # define FORTRAN 17 ! 238: # define GOTO 19 ! 239: # define IF 20 ! 240: # define NEW 23 ! 241: # define OPERATOR 24 ! 242: # define RETURN 28 ! 243: # define SIZEOF 30 ! 244: # define SWITCH 33 ! 245: # define THIS 34 ! 246: # define WHILE 39 ! 247: # define LP 40 ! 248: # define RP 41 ! 249: # define LB 42 ! 250: # define RB 43 ! 251: # define REF 44 ! 252: # define DOT 45 ! 253: # define NOT 46 ! 254: # define COMPL 47 ! 255: # define MUL 50 ! 256: # define AND 52 ! 257: # define PLUS 54 ! 258: # define MINUS 55 ! 259: # define ER 64 ! 260: # define OR 65 ! 261: # define ANDAND 66 ! 262: # define OROR 67 ! 263: # define QUEST 68 ! 264: # define COLON 69 ! 265: # define ASSIGN 70 ! 266: # define CM 71 ! 267: # define SM 72 ! 268: # define LC 73 ! 269: # define RC 74 ! 270: # define MEMPTR 173 ! 271: # define ID 80 ! 272: # define STRING 81 ! 273: # define ICON 82 ! 274: # define FCON 83 ! 275: # define CCON 84 ! 276: # define ZERO 86 ! 277: # define ASOP 90 ! 278: # define RELOP 91 ! 279: # define EQUOP 92 ! 280: # define DIVOP 93 ! 281: # define SHIFTOP 94 ! 282: # define ICOP 95 ! 283: # define TYPE 97 ! 284: # define TNAME 123 ! 285: # define EMPTY 124 ! 286: # define NO_ID 125 ! 287: # define NO_EXPR 126 ! 288: # define ELLIPSIS 155 ! 289: # define AGGR 156 ! 290: # define MEM 160 ! 291: # define PR 175 ! 292: # define TSCOPE 178 ! 293: # define DECL_MARKER 179 ! 294: # define REFMUL 180 ! 295: # define LDOUBLE 181 ! 296: # define LINKAGE 182 ! 297: # define LOCAL 183 ! 298: #define yyclearin yychar = -1 ! 299: #define yyerrok yyerrflag = 0 ! 300: extern int yychar; ! 301: extern short yyerrflag; ! 302: #ifndef YYMAXDEPTH ! 303: #define YYMAXDEPTH 150 ! 304: #endif ! 305: YYSTYPE yylval, yyval; ! 306: # define YYERRCODE 256 ! 307: ! 308: # line 1697 "gram.y" ! 309: ! 310: ! 311: static void ! 312: check_cast() ! 313: /* ! 314: Lookahead to direct parsing of cast ! 315: la_cast() returns 1 if lookahead sees an ambiguous old-style C cast. ! 316: */ ! 317: { ! 318: switch( NEXTTOK() ) { ! 319: case TYPE: case TNAME: ! 320: if ( la_look() == LP && la_cast() ) { ! 321: must_be_id = 0; ! 322: yychar = DECL_MARKER; ! 323: } ! 324: } ! 325: } ! 326: ! 327: static void ! 328: check_decl() ! 329: /* ! 330: Lookahead to direct parsing of local/arg type declarations ! 331: la_decl() returns 1 if lookahead sees a declaration. ! 332: */ ! 333: { ! 334: ! 335: switch( NEXTTOK() ) { ! 336: case TYPE: case TNAME: ! 337: if ( la_look() == LP && la_decl() ) { ! 338: must_be_id = 0; ! 339: DECL_TYPE=yychar; ! 340: yychar = DECL_MARKER; ! 341: } ! 342: } ! 343: } ! 344: ! 345: static void ! 346: check_tag() ! 347: /* ! 348: Allow the case of inline/virtual/overload as ! 349: modifiers of return type of form struct/class/union x foo() ! 350: SM, COLON, LC ==> real class declaration, not return type ! 351: */ ! 352: { ! 353: switch ( NEXTTOK() ) { ! 354: case SM: case COLON: case LC: ! 355: declTag = 1; ! 356: break; ! 357: default: ! 358: declTag = 0; ! 359: break; ! 360: } ! 361: } ! 362: ! 363: short yyexca[] ={ ! 364: -1, 1, ! 365: 0, -1, ! 366: -2, 0, ! 367: -1, 39, ! 368: 71, 22, ! 369: 72, 22, ! 370: -2, 21, ! 371: -1, 54, ! 372: 155, 309, ! 373: -2, 246, ! 374: -1, 59, ! 375: 13, 303, ! 376: 97, 303, ! 377: 123, 303, ! 378: 155, 303, ! 379: 156, 303, ! 380: 179, 303, ! 381: 182, 303, ! 382: -2, 246, ! 383: -1, 106, ! 384: 73, 56, ! 385: -2, 53, ! 386: -1, 231, ! 387: 13, 294, ! 388: 97, 294, ! 389: 123, 294, ! 390: 156, 294, ! 391: 179, 294, ! 392: 182, 294, ! 393: -2, 246, ! 394: -1, 254, ! 395: 1, 151, ! 396: 3, 151, ! 397: 4, 151, ! 398: 7, 151, ! 399: 8, 151, ! 400: 9, 151, ! 401: 10, 151, ! 402: 13, 151, ! 403: 16, 151, ! 404: 19, 151, ! 405: 20, 151, ! 406: 23, 151, ! 407: 24, 151, ! 408: 28, 151, ! 409: 30, 151, ! 410: 33, 151, ! 411: 34, 151, ! 412: 39, 151, ! 413: 40, 151, ! 414: 46, 151, ! 415: 47, 151, ! 416: 50, 151, ! 417: 52, 151, ! 418: 54, 151, ! 419: 55, 151, ! 420: 72, 151, ! 421: 73, 151, ! 422: 80, 151, ! 423: 81, 151, ! 424: 82, 151, ! 425: 83, 151, ! 426: 84, 151, ! 427: 86, 151, ! 428: 95, 151, ! 429: 97, 151, ! 430: 123, 151, ! 431: 156, 151, ! 432: 160, 151, ! 433: 178, 151, ! 434: 179, 151, ! 435: 182, 151, ! 436: -2, 0, ! 437: -1, 316, ! 438: 13, 294, ! 439: 97, 294, ! 440: 123, 294, ! 441: 156, 294, ! 442: 179, 294, ! 443: 182, 294, ! 444: -2, 246, ! 445: }; ! 446: # define YYNPROD 322 ! 447: # define YYLAST 2323 ! 448: short yyact[]={ ! 449: ! 450: 123, 253, 150, 7, 454, 8, 160, 55, 256, 159, ! 451: 285, 52, 258, 19, 325, 328, 193, 267, 337, 233, ! 452: 12, 73, 22, 60, 257, 162, 74, 58, 192, 134, ! 453: 125, 16, 180, 156, 400, 44, 34, 230, 136, 333, ! 454: 34, 109, 109, 23, 26, 111, 106, 112, 61, 20, ! 455: 65, 60, 109, 72, 262, 58, 45, 149, 288, 109, ! 456: 31, 20, 54, 148, 109, 18, 48, 25, 20, 20, ! 457: 28, 152, 29, 385, 164, 120, 60, 274, 259, 60, ! 458: 58, 164, 167, 58, 110, 110, 330, 104, 54, 49, ! 459: 103, 102, 247, 169, 172, 110, 28, 108, 29, 465, ! 460: 47, 109, 110, 511, 109, 478, 9, 110, 184, 424, ! 461: 114, 185, 10, 181, 194, 248, 54, 251, 359, 54, ! 462: 21, 401, 218, 198, 21, 12, 234, 235, 236, 237, ! 463: 238, 239, 240, 241, 242, 152, 287, 361, 263, 381, ! 464: 144, 27, 471, 71, 110, 201, 154, 110, 109, 205, ! 465: 154, 113, 346, 27, 20, 229, 245, 246, 453, 63, ! 466: 27, 27, 244, 232, 243, 290, 20, 249, 364, 235, ! 467: 254, 189, 250, 197, 290, 44, 356, 289, 269, 33, ! 468: 36, 283, 344, 33, 199, 195, 37, 44, 355, 34, ! 469: 293, 110, 211, 30, 279, 181, 45, 265, 35, 294, ! 470: 338, 20, 24, 107, 286, 153, 24, 278, 45, 153, ! 471: 357, 34, 186, 270, 276, 339, 316, 264, 187, 30, ! 472: 20, 282, 312, 291, 292, 26, 461, 320, 295, 296, ! 473: 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, ! 474: 307, 308, 309, 310, 234, 311, 27, 326, 25, 54, ! 475: 317, 34, 245, 314, 31, 318, 44, 321, 27, 329, ! 476: 315, 232, 323, 34, 28, 324, 29, 151, 44, 331, ! 477: 177, 345, 343, 21, 332, 347, 459, 45, 231, 348, ! 478: 31, 173, 164, 269, 269, 334, 335, 351, 352, 45, ! 479: 28, 340, 29, 27, 268, 21, 117, 118, 62, 154, ! 480: 358, 360, 53, 280, 56, 191, 56, 362, 57, 465, ! 481: 57, 69, 27, 463, 464, 174, 62, 363, 270, 270, ! 482: 268, 154, 119, 228, 54, 224, 523, 225, 227, 403, ! 483: 63, 396, 33, 372, 50, 21, 374, 350, 383, 367, ! 484: 326, 373, 379, 329, 329, 376, 377, 21, 382, 34, ! 485: 368, 378, 471, 469, 33, 24, 386, 371, 153, 347, ! 486: 347, 154, 145, 348, 348, 388, 389, 394, 390, 370, ! 487: 286, 353, 391, 154, 392, 384, 31, 24, 223, 455, ! 488: 153, 372, 342, 145, 374, 374, 28, 30, 29, 273, ! 489: 28, 393, 29, 260, 33, 228, 404, 224, 26, 225, ! 490: 227, 196, 397, 432, 416, 414, 33, 408, 415, 398, ! 491: 232, 407, 176, 30, 31, 480, 268, 24, 143, 155, ! 492: 153, 25, 12, 456, 28, 458, 29, 405, 457, 24, ! 493: 330, 481, 153, 42, 406, 232, 31, 69, 452, 143, ! 494: 28, 341, 29, 252, 251, 38, 522, 28, 51, 29, ! 495: 223, 222, 205, 515, 17, 485, 203, 204, 493, 266, ! 496: 460, 322, 26, 432, 432, 432, 432, 432, 432, 432, ! 497: 432, 432, 432, 432, 432, 432, 432, 432, 432, 491, ! 498: 489, 487, 319, 434, 513, 25, 492, 69, 115, 486, ! 499: 479, 488, 33, 490, 178, 211, 209, 71, 36, 465, ! 500: 26, 205, 336, 463, 464, 203, 204, 483, 512, 30, ! 501: 284, 190, 261, 30, 510, 46, 35, 221, 64, 36, ! 502: 179, 222, 432, 25, 517, 531, 518, 530, 520, 157, ! 503: 31, 222, 56, 534, 36, 226, 57, 35, 161, 99, ! 504: 525, 135, 471, 527, 211, 13, 158, 30, 410, 31, ! 505: 526, 56, 35, 409, 528, 57, 64, 402, 39, 535, ! 506: 349, 281, 53, 30, 56, 67, 70, 380, 57, 40, ! 507: 30, 537, 494, 495, 496, 497, 498, 499, 500, 501, ! 508: 502, 503, 504, 505, 506, 507, 508, 509, 429, 183, ! 509: 425, 422, 116, 105, 426, 423, 430, 428, 36, 66, ! 510: 34, 32, 26, 419, 465, 14, 427, 417, 463, 464, ! 511: 124, 145, 1, 255, 2, 412, 35, 133, 31, 0, ! 512: 420, 142, 0, 0, 0, 25, 418, 148, 28, 0, ! 513: 29, 529, 0, 130, 131, 0, 36, 126, 59, 127, ! 514: 56, 129, 128, 0, 57, 472, 470, 471, 469, 0, ! 515: 0, 465, 399, 56, 35, 463, 464, 57, 17, 411, ! 516: 254, 0, 121, 200, 0, 0, 34, 421, 140, 138, ! 517: 139, 141, 53, 137, 56, 69, 124, 145, 57, 31, ! 518: 387, 56, 132, 133, 413, 57, 0, 142, 0, 0, ! 519: 0, 34, 472, 148, 471, 469, 0, 0, 200, 130, ! 520: 131, 68, 0, 126, 0, 127, 0, 129, 128, 0, ! 521: 166, 205, 0, 0, 0, 203, 204, 275, 330, 465, ! 522: 0, 466, 0, 463, 464, 0, 163, 0, 28, 0, ! 523: 29, 0, 0, 143, 140, 138, 139, 141, 36, 137, ! 524: 53, 354, 56, 33, 375, 56, 57, 431, 132, 57, ! 525: 165, 30, 212, 121, 211, 209, 35, 34, 0, 0, ! 526: 472, 470, 471, 469, 0, 35, 24, 124, 145, 153, ! 527: 0, 34, 0, 0, 133, 42, 166, 0, 142, 53, ! 528: 175, 56, 0, 0, 148, 57, 0, 0, 0, 0, ! 529: 130, 131, 0, 0, 126, 0, 127, 0, 129, 128, ! 530: 0, 266, 0, 0, 0, 0, 0, 95, 28, 33, ! 531: 29, 0, 0, 122, 0, 0, 0, 0, 0, 0, ! 532: 0, 94, 0, 0, 143, 140, 138, 139, 141, 0, ! 533: 137, 35, 24, 0, 33, 153, 0, 0, 87, 132, ! 534: 88, 165, 96, 0, 89, 90, 0, 0, 77, 0, ! 535: 78, 30, 75, 76, 0, 42, 0, 46, 0, 0, ! 536: 0, 0, 80, 79, 85, 86, 0, 166, 93, 97, ! 537: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 538: 0, 266, 0, 0, 0, 0, 0, 121, 92, 84, ! 539: 82, 83, 81, 91, 0, 100, 0, 0, 0, 0, ! 540: 33, 124, 145, 0, 122, 465, 0, 466, 133, 463, ! 541: 464, 205, 142, 206, 33, 203, 204, 0, 148, 468, ! 542: 467, 101, 35, 24, 130, 131, 153, 0, 126, 0, ! 543: 127, 30, 129, 128, 0, 0, 0, 46, 0, 0, ! 544: 0, 0, 0, 0, 0, 0, 472, 470, 471, 469, ! 545: 0, 163, 212, 210, 211, 209, 0, 0, 143, 140, ! 546: 138, 139, 141, 0, 137, 0, 0, 0, 121, 0, ! 547: 0, 0, 0, 132, 0, 146, 0, 0, 98, 0, ! 548: 0, 0, 124, 145, 0, 0, 205, 0, 0, 133, ! 549: 203, 204, 0, 142, 0, 0, 0, 0, 0, 148, ! 550: 170, 147, 0, 0, 0, 130, 131, 0, 0, 168, ! 551: 0, 127, 0, 129, 128, 0, 0, 0, 0, 465, ! 552: 0, 466, 0, 463, 464, 0, 0, 212, 210, 211, ! 553: 209, 0, 163, 468, 121, 0, 0, 0, 122, 143, ! 554: 140, 138, 139, 141, 0, 137, 0, 0, 124, 145, ! 555: 0, 0, 0, 430, 132, 133, 35, 0, 0, 142, ! 556: 472, 470, 471, 469, 0, 148, 0, 124, 145, 0, ! 557: 0, 130, 131, 0, 133, 126, 0, 127, 142, 129, ! 558: 128, 0, 0, 0, 148, 0, 0, 0, 0, 0, ! 559: 130, 131, 0, 0, 126, 0, 127, 0, 129, 128, ! 560: 0, 0, 0, 0, 0, 143, 140, 138, 139, 141, ! 561: 0, 137, 0, 0, 0, 0, 0, 0, 0, 122, ! 562: 132, 0, 146, 0, 143, 140, 138, 139, 141, 0, ! 563: 137, 0, 171, 124, 145, 0, 0, 35, 0, 132, ! 564: 133, 146, 0, 0, 142, 0, 0, 0, 147, 0, ! 565: 148, 0, 514, 0, 0, 0, 130, 131, 0, 0, ! 566: 126, 0, 127, 0, 129, 128, 0, 147, 0, 205, ! 567: 0, 206, 0, 203, 204, 0, 0, 0, 0, 0, ! 568: 0, 0, 0, 208, 207, 122, 0, 0, 0, 0, ! 569: 143, 140, 138, 139, 141, 0, 137, 0, 0, 0, ! 570: 0, 0, 0, 35, 431, 132, 0, 146, 124, 145, ! 571: 212, 210, 211, 209, 0, 133, 0, 0, 0, 142, ! 572: 0, 0, 35, 0, 0, 148, 0, 482, 0, 0, ! 573: 0, 130, 131, 147, 0, 126, 0, 127, 0, 129, ! 574: 128, 0, 0, 465, 0, 466, 0, 463, 464, 0, ! 575: 0, 0, 0, 0, 0, 0, 0, 468, 467, 473, ! 576: 474, 477, 0, 0, 0, 143, 140, 138, 139, 141, ! 577: 220, 137, 124, 145, 0, 0, 0, 0, 0, 133, ! 578: 132, 0, 146, 142, 472, 470, 471, 469, 35, 148, ! 579: 0, 313, 0, 0, 0, 130, 131, 0, 0, 126, ! 580: 0, 127, 0, 129, 128, 0, 0, 0, 147, 0, ! 581: 4, 11, 0, 0, 0, 0, 0, 0, 0, 0, ! 582: 0, 0, 0, 34, 0, 0, 0, 0, 0, 143, ! 583: 140, 138, 139, 141, 26, 137, 0, 0, 0, 0, ! 584: 0, 0, 124, 145, 132, 220, 146, 0, 0, 133, ! 585: 31, 0, 0, 142, 0, 0, 0, 25, 0, 148, ! 586: 28, 219, 29, 35, 0, 130, 131, 0, 0, 126, ! 587: 0, 127, 147, 129, 128, 0, 0, 0, 0, 0, ! 588: 0, 0, 3, 0, 6, 0, 0, 0, 0, 0, ! 589: 17, 0, 0, 0, 0, 0, 0, 0, 0, 143, ! 590: 140, 138, 139, 141, 0, 137, 465, 21, 466, 220, ! 591: 463, 464, 0, 0, 132, 0, 146, 0, 0, 0, ! 592: 468, 467, 473, 474, 477, 0, 462, 35, 0, 0, ! 593: 0, 0, 0, 15, 0, 0, 0, 0, 0, 0, ! 594: 0, 0, 147, 0, 124, 145, 475, 472, 470, 471, ! 595: 469, 133, 0, 0, 0, 142, 0, 0, 0, 0, ! 596: 0, 148, 0, 0, 0, 0, 33, 130, 131, 0, ! 597: 36, 126, 0, 127, 0, 129, 128, 0, 0, 220, ! 598: 0, 0, 0, 30, 0, 0, 0, 0, 35, 24, ! 599: 0, 0, 5, 0, 121, 0, 0, 35, 0, 0, ! 600: 0, 143, 140, 138, 139, 141, 0, 137, 124, 145, ! 601: 0, 0, 0, 0, 0, 133, 132, 0, 146, 142, ! 602: 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, ! 603: 0, 130, 131, 0, 0, 126, 34, 127, 0, 129, ! 604: 128, 0, 0, 0, 147, 0, 0, 26, 205, 0, ! 605: 206, 0, 203, 204, 0, 0, 0, 0, 163, 0, ! 606: 0, 0, 208, 31, 0, 143, 140, 138, 139, 141, ! 607: 25, 137, 0, 28, 0, 29, 0, 124, 145, 0, ! 608: 132, 220, 0, 0, 133, 0, 0, 0, 142, 212, ! 609: 210, 211, 209, 0, 148, 0, 0, 182, 0, 35, ! 610: 130, 131, 0, 17, 126, 34, 127, 0, 129, 128, ! 611: 0, 0, 0, 205, 0, 206, 26, 203, 204, 0, ! 612: 21, 0, 0, 0, 0, 0, 0, 208, 207, 213, ! 613: 214, 217, 31, 202, 272, 140, 138, 139, 141, 25, ! 614: 137, 0, 28, 0, 29, 122, 15, 0, 0, 132, ! 615: 0, 146, 0, 215, 212, 210, 211, 209, 124, 145, ! 616: 0, 49, 0, 35, 41, 133, 0, 0, 0, 142, ! 617: 0, 0, 47, 0, 0, 148, 0, 147, 0, 33, ! 618: 0, 130, 131, 36, 0, 0, 0, 0, 0, 42, ! 619: 0, 0, 0, 0, 0, 0, 30, 0, 188, 0, ! 620: 0, 35, 24, 0, 0, 153, 0, 0, 0, 0, ! 621: 0, 0, 0, 0, 220, 43, 140, 138, 139, 141, ! 622: 0, 137, 0, 0, 0, 0, 0, 0, 0, 0, ! 623: 132, 450, 35, 440, 446, 0, 0, 441, 447, 0, ! 624: 439, 0, 0, 0, 0, 0, 437, 0, 33, 442, ! 625: 435, 0, 36, 0, 0, 0, 0, 0, 443, 0, ! 626: 0, 0, 0, 436, 0, 30, 0, 536, 0, 438, ! 627: 35, 46, 0, 0, 0, 0, 205, 0, 206, 0, ! 628: 203, 204, 0, 0, 0, 0, 0, 0, 0, 0, ! 629: 208, 207, 213, 214, 217, 220, 202, 216, 0, 451, ! 630: 0, 0, 433, 0, 445, 0, 0, 0, 0, 0, ! 631: 444, 0, 0, 35, 0, 0, 215, 212, 210, 211, ! 632: 209, 205, 0, 206, 0, 203, 204, 448, 0, 0, ! 633: 0, 0, 0, 0, 0, 208, 207, 213, 214, 217, ! 634: 0, 202, 216, 533, 0, 532, 0, 0, 0, 0, ! 635: 0, 0, 205, 449, 206, 0, 203, 204, 0, 0, ! 636: 0, 215, 212, 210, 211, 209, 208, 207, 213, 214, ! 637: 217, 0, 202, 216, 0, 0, 524, 0, 0, 0, ! 638: 0, 0, 0, 205, 0, 206, 0, 203, 204, 0, ! 639: 0, 0, 215, 212, 210, 211, 209, 208, 207, 213, ! 640: 214, 217, 0, 202, 216, 0, 0, 0, 0, 0, ! 641: 0, 0, 0, 0, 465, 0, 466, 0, 463, 464, ! 642: 0, 0, 0, 215, 212, 210, 211, 209, 468, 467, ! 643: 473, 474, 477, 521, 462, 476, 0, 0, 0, 0, ! 644: 0, 0, 0, 0, 0, 205, 0, 206, 0, 203, ! 645: 204, 0, 0, 0, 475, 472, 470, 471, 469, 208, ! 646: 207, 213, 214, 217, 519, 202, 216, 516, 0, 0, ! 647: 0, 0, 0, 0, 0, 0, 205, 0, 206, 0, ! 648: 203, 204, 0, 0, 0, 215, 212, 210, 211, 209, ! 649: 208, 207, 213, 214, 217, 0, 202, 216, 0, 0, ! 650: 0, 0, 0, 0, 0, 0, 0, 205, 0, 206, ! 651: 0, 203, 204, 0, 0, 0, 215, 212, 210, 211, ! 652: 209, 208, 207, 213, 214, 217, 0, 202, 216, 484, ! 653: 0, 395, 0, 0, 0, 0, 0, 0, 205, 0, ! 654: 206, 0, 203, 204, 0, 0, 0, 215, 212, 210, ! 655: 211, 209, 208, 207, 213, 214, 217, 0, 202, 216, ! 656: 0, 0, 369, 0, 0, 0, 0, 0, 0, 205, ! 657: 0, 206, 0, 203, 204, 0, 0, 0, 215, 212, ! 658: 210, 211, 209, 208, 207, 213, 214, 217, 0, 202, ! 659: 216, 0, 0, 366, 0, 0, 0, 0, 0, 0, ! 660: 205, 0, 206, 0, 203, 204, 0, 0, 0, 215, ! 661: 212, 210, 211, 209, 208, 207, 213, 214, 217, 0, ! 662: 202, 216, 0, 0, 0, 0, 0, 0, 0, 0, ! 663: 0, 205, 0, 206, 0, 203, 204, 0, 0, 0, ! 664: 215, 212, 210, 211, 209, 208, 207, 213, 214, 217, ! 665: 365, 202, 216, 327, 0, 0, 0, 0, 0, 0, ! 666: 0, 0, 205, 0, 206, 0, 203, 204, 0, 0, ! 667: 0, 215, 212, 210, 211, 209, 208, 207, 213, 214, ! 668: 217, 0, 202, 216, 0, 0, 271, 0, 0, 0, ! 669: 0, 0, 0, 205, 0, 206, 0, 203, 204, 0, ! 670: 0, 0, 215, 212, 210, 211, 209, 208, 207, 213, ! 671: 214, 217, 0, 202, 216, 0, 0, 0, 0, 0, ! 672: 0, 0, 0, 0, 465, 0, 466, 0, 463, 464, ! 673: 0, 0, 0, 215, 212, 210, 211, 209, 468, 467, ! 674: 473, 474, 477, 0, 462, 476, 0, 465, 0, 466, ! 675: 0, 463, 464, 0, 0, 205, 0, 206, 0, 203, ! 676: 204, 468, 467, 473, 475, 472, 470, 471, 469, 208, ! 677: 207, 213, 214, 217, 0, 0, 0, 0, 205, 0, ! 678: 206, 0, 203, 204, 0, 0, 0, 0, 472, 470, ! 679: 471, 469, 208, 207, 213, 0, 212, 210, 211, 209, ! 680: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ! 681: 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, ! 682: 210, 211, 209 }; ! 683: short yypact[]={ ! 684: ! 685: 1310,-1000,-1000,-1000,-1000, 113,-1000,-1000,-1000,-1000, ! 686: -1000, 405,1592, 262,-1000, 598,-1000, 271, 476, 578, ! 687: 374,-1000,-1000,-1000,-1000, -70, 798,-1000, -6, -7, ! 688: -10,-1000,-1000, 24, -28,-1000,-1000,-1000, 29, 522, ! 689: 225,-1000,-1000, 598,-1000,-1000,-1000, 253,-1000,1025, ! 690: -1000, 198,-1000, 378, 653,-1000,1025,-1000,-1000, 959, ! 691: -1000, 250, 201,-1000, 270,-1000,-1000, 632, 598,-1000, ! 692: 739, 598,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, ! 693: -1000,-1000,-1000,-1000,-1000,-1000,-1000, 371, 227,-1000, ! 694: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, 397, ! 695: -1000,-1000,-1000,-1000,-1000,1523, 236,-1000,-1000,-1000, ! 696: -1000, 34, 112,-1000, 360, 198, 878, 20,-1000,1025, ! 697: 1563,1319, 508, 355, 238,1421,1421,1421,1421,1421, ! 698: 1421,1421,1421,1421,-1000,-1000, 744,-1000,-1000,-1000, ! 699: -1000,-1000,-1000,-1000, 68, 798, 404, 403,-1000, 97, ! 700: -1000, -16,1592,-1000,-1000, -19, 352, -17, 146,-1000, ! 701: -1000,-1000,1563, 878, 336, 404, 403,2143,1554, 348, ! 702: -20, 374,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, ! 703: -1000, 340,-1000,-1000,-1000, 135, 122,-1000, 234, 438, ! 704: 108, -39, 103,-1000, 153, 34, 118, 97,-1000,-1000, ! 705: 522,1563,1025,1025,1025,1025,1025,1025,1025,1025, ! 706: 1025,1025,1025,1025,1025,1025,1025,1025, 355,1025, ! 707: 428,1249, 176,-1000,1025, 359,1421, 338, 878,-1000, ! 708: -1000,1485, 250, 758, 283, 355, 355, 355, 355, 283, ! 709: 283, 283, 283,1635,2112, 678,-1000, 798, -84,-1000, ! 710: -1000, 878, 878,-1000, -56, 144,-1000, 878, 401,-1000, ! 711: -1000, 341, 27,-1000, 878, 78,-1000, 490,-1000, 214, ! 712: 240,-1000, 330,-1000,-1000, 700,-1000,-1000,-1000,-1000, ! 713: -1000, 116, 104,-1000, 139,-1000,-1000, 21, -38,-1000, ! 714: 34,1025, 94,-1000,-1000,1563, 99, 99,-1000, 936, ! 715: 1498, 861, 451, 661,-1000, 402,1119,2228,1563,1563, ! 716: 2081,2050, 355,1025,-1000,-1000,1485,2019,-1000,-1000, ! 717: 283,-1000,-1000, 328, 316, 264, 340,-1000, 703, 390, ! 718: 46,-1000,-1000,-1000, 310, 301,-1000,-1000, 65, -16, ! 719: 297, 878, -24,-1000,-1000,-1000,-1000,-1000,-1000, 878, ! 720: -1000, 509, 639, 396, 396,-1000,-1000, -39,-1000, -21, ! 721: -1000, -21,-1000,1563,-1000,1025,1421,1988, 290,-1000, ! 722: -1000, 23,-1000, 264,-1000,-1000, 264, 611,-1000,-1000, ! 723: 47,-1000,-1000,-1000, 288,-1000,-1000,-1000,-1000,-1000, ! 724: -1000,-1000,-1000,2205, 355,1421, 23,-1000,-1000, 509, ! 725: -1000,-1000, 587,-1000, 355,-1000,-1000,-1000,-1000,-1000, ! 726: 1730,-1000,1025, 77,-1000,-1000,-1000, 339, 339, 388, ! 727: 339, 207,-1000, 157,2174,-1000,-1000, 25,-1000, 375, ! 728: 1185, 498, 355,-1000,-1000,-1000,-1000,-1000,-1000,-1000, ! 729: -1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000,-1000, ! 730: -1000,-1000,1957, 97,-1000,1025,-1000,-1000,-1000,-1000, ! 731: 1025,-1000,1044,1044,1044,1044,1044,1044,1044,1044, ! 732: 1044,1044,1044,1044,1044,1044,1044,1044,-1000,-1000, ! 733: 22, 355,1025,1110,-1000,-1000, 441,1926,-1000,-1000, ! 734: -1000,-1000,1895,-1000,1356, 49, 49,-1000, 554, 969, ! 735: 669, 449, 601,-1000, 259, 855,2197,1356,1356,1864, ! 736: 407, 285,1833, 355,1025,-1000,-1000,1025,-1000,-1000, ! 737: -1000,1044, 339,-1000,1421,1802,-1000,1771,-1000,1193, ! 738: -1000, 355,1421,1025, 355,1726,-1000,-1000 }; ! 739: short yypgo[]={ ! 740: ! 741: 0, 614, 112, 106, 5, 448, 57, 613, 8, 2, ! 742: 612, 7, 13, 19, 605, 43, 28, 16, 12, 601, ! 743: 22, 593, 589, 66, 569, 31, 545, 6, 567, 34, ! 744: 557, 1, 553, 548, 546, 33, 25, 109, 0, 29, ! 745: 541, 15, 30, 32, 26, 539, 17, 9, 538, 11, ! 746: 529, 14, 37, 4, 140, 65, 21, 512, 511, 510, ! 747: 10, 48, 502, 490, 483, 480, 479, 460, 458, 38 }; ! 748: short yyr1[]={ ! 749: ! 750: 0, 10, 10, 10, 10, 10, 1, 1, 1, 1, ! 751: 1, 2, 4, 3, 6, 6, 7, 7, 8, 8, ! 752: 5, 5, 23, 23, 23, 23, 24, 24, 9, 9, ! 753: 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, ! 754: 13, 13, 15, 15, 15, 15, 16, 16, 17, 17, ! 755: 17, 20, 20, 20, 20, 58, 58, 59, 59, 60, ! 756: 60, 60, 60, 60, 19, 19, 18, 18, 21, 21, ! 757: 22, 22, 22, 22, 22, 22, 22, 22, 22, 25, ! 758: 25, 25, 25, 56, 56, 56, 56, 56, 56, 56, ! 759: 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, ! 760: 56, 56, 56, 56, 56, 56, 56, 55, 55, 55, ! 761: 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, ! 762: 26, 26, 26, 26, 26, 26, 26, 26, 26, 46, ! 763: 46, 46, 46, 46, 46, 46, 51, 51, 51, 41, ! 764: 41, 41, 41, 41, 43, 43, 28, 28, 29, 30, ! 765: 53, 62, 31, 31, 31, 33, 33, 33, 33, 63, ! 766: 33, 33, 64, 64, 64, 64, 64, 64, 64, 64, ! 767: 64, 64, 64, 64, 64, 64, 64, 64, 64, 32, ! 768: 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ! 769: 65, 32, 32, 66, 32, 67, 32, 68, 32, 35, ! 770: 34, 34, 27, 27, 37, 37, 37, 37, 37, 37, ! 771: 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, ! 772: 37, 37, 37, 37, 37, 36, 36, 36, 36, 36, ! 773: 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, ! 774: 36, 36, 36, 36, 36, 36, 36, 38, 38, 38, ! 775: 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, ! 776: 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, ! 777: 38, 38, 38, 38, 38, 38, 38, 40, 40, 40, ! 778: 40, 40, 40, 40, 54, 54, 39, 39, 39, 39, ! 779: 39, 39, 39, 42, 69, 45, 45, 45, 45, 44, ! 780: 52, 48, 48, 61, 49, 49, 50, 50, 47, 47, ! 781: 57, 57, 57, 12, 12, 12, 12, 12, 12, 12, ! 782: 11, 11 }; ! 783: short yyr2[]={ ! 784: ! 785: 0, 1, 1, 1, 2, 1, 1, 1, 1, 1, ! 786: 5, 2, 5, 4, 2, 0, 1, 3, 3, 4, ! 787: 2, 0, 1, 3, 2, 3, 1, 3, 3, 2, ! 788: 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, ! 789: 2, 2, 4, 5, 2, 2, 1, 3, 1, 3, ! 790: 0, 3, 4, 2, 2, 2, 0, 1, 3, 1, ! 791: 2, 2, 3, 3, 2, 4, 1, 1, 2, 0, ! 792: 1, 2, 2, 1, 1, 1, 2, 3, 3, 1, ! 793: 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, ! 794: 1, 1, 1, 1, 1, 2, 2, 1, 1, 1, ! 795: 1, 1, 1, 1, 1, 1, 1, 1, 2, 3, ! 796: 2, 3, 4, 2, 4, 6, 4, 3, 4, 6, ! 797: 1, 3, 2, 2, 2, 2, 2, 2, 3, 1, ! 798: 2, 0, 2, 2, 2, 3, 0, 2, 2, 0, ! 799: 2, 2, 4, 4, 0, 2, 0, 2, 2, 0, ! 800: 3, 0, 4, 2, 3, 1, 1, 1, 2, 0, ! 801: 5, 4, 1, 1, 1, 1, 1, 1, 1, 1, ! 802: 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, ! 803: 2, 1, 3, 3, 1, 1, 1, 3, 5, 3, ! 804: 0, 9, 3, 0, 4, 0, 5, 0, 4, 1, ! 805: 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, ! 806: 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, ! 807: 2, 5, 3, 6, 1, 3, 3, 3, 3, 3, ! 808: 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, ! 809: 5, 2, 5, 3, 6, 1, 0, 2, 2, 3, ! 810: 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, ! 811: 2, 2, 4, 3, 3, 3, 3, 3, 1, 1, ! 812: 3, 1, 1, 1, 1, 1, 1, 4, 4, 5, ! 813: 5, 6, 6, 4, 1, 1, 1, 2, 2, 3, ! 814: 2, 3, 3, 4, 1, 1, 1, 2, 2, 2, ! 815: 2, 2, 4, 1, 4, 5, 3, 1, 1, 0, ! 816: 0, 1, 2, 1, 1, 2, 2, 2, 1, 2, ! 817: 3, 1 }; ! 818: short yychk[]={ ! 819: ! 820: -1000, -10, -1, 72, 0, 182, 74, -9, -4, -3, ! 821: -2, 1, -13, -26, -14, 123, -25, 80, -55, -12, ! 822: -61, 97, -20, -15, 179, 47, 24, -54, 50, 52, ! 823: 173, 40, -19, 156, 13, 178, 160, 73, 40, -26, ! 824: -24, 72, 97, 123, -20, -15, 179, 80, -23, 69, ! 825: 72, -5, -49, 40, -61, -11, 42, 46, -49, 40, ! 826: -11, -61, 45, -54, 80, -25, 123, -26, 123, 97, ! 827: -26, 123, 123, -56, -44, 54, 55, 50, 52, 65, ! 828: 64, 94, 92, 93, 91, 66, 67, 40, 42, 46, ! 829: 47, 95, 90, 70, 23, 9, 44, 71, 180, -45, ! 830: 97, 123, 97, 97, 97, -21, -18, 179, 73, 80, ! 831: 123, 73, -18, 179, 81, -5, 70, 71, 72, 69, ! 832: -36, 9, 160, -38, 23, -42, 50, 52, 55, 54, ! 833: 46, 47, 95, 30, -39, -40, -69, 86, 82, 83, ! 834: 81, 84, 34, 80, -54, 24, 97, 123, 40, -6, ! 835: -9, 69, -13, 182, 123, 41, -35, -50, -34, -47, ! 836: -27, -48, -36, 73, -13, 97, 123, -36, 50, -35, ! 837: 41, 173, -25, 80, 45, 41, 41, 43, 97, 123, ! 838: -43, -12, 74, -22, -9, -4, -3, -2, 175, -55, ! 839: -58, 69, -16, -17, 80, 73, 41, -6, -27, -23, ! 840: -26, -36, 70, 54, 55, 50, 52, 65, 64, 94, ! 841: 92, 93, 91, 66, 67, 90, 71, 68, -38, 42, ! 842: 160, 9, 23, 95, 42, 44, 180, 45, 40, -42, ! 843: -52, 40, -69, -13, -38, -38, -38, -38, -38, -38, ! 844: -38, -38, -38, -42, -36, -13, -18, 24, 47, -56, ! 845: -44, 40, 40, -31, 73, -7, -8, 40, -18, 97, ! 846: 41, -57, 71, 155, 71, -35, 123, -46, 80, -12, ! 847: -61, 43, 80, 41, 97, -26, -43, 97, 72, 72, ! 848: 69, 123, -25, 73, -59, -60, -18, 175, 97, 74, ! 849: 71, 70, -16, 72, -31, -36, -36, -36, -36, -36, ! 850: -36, -36, -36, -36, -36, -36, -36, -36, -36, -36, ! 851: -36, -36, -38, 42, -42, -52, 40, -36, -39, 123, ! 852: -38, -39, 123, -35, -35, -51, -12, 41, -41, -12, ! 853: 40, -56, -44, 123, -35, -35, -62, 74, 256, 71, ! 854: -35, 40, 41, -47, 155, -27, 74, -11, -49, 70, ! 855: 123, -46, -46, 41, 41, 72, 72, 71, -18, 97, ! 856: -18, 175, -17, -36, 74, 69, 43, -36, -35, 43, ! 857: 41, 41, -11, -51, -11, 41, -41, -41, 41, 41, ! 858: -28, 74, -8, 41, -35, 97, -27, 41, -49, -49, ! 859: -60, -18, -18, -36, -38, 43, 41, -42, -52, 41, ! 860: -29, 74, -30, 41, -38, -42, -52, -49, -11, -32, ! 861: -33, 72, 28, 97, -9, -4, -31, 20, 39, 16, ! 862: 33, 80, 4, 8, -37, 3, 7, 19, 10, 1, ! 863: 9, 160, -38, 72, -64, 20, 33, 16, 39, 10, ! 864: 3, 7, 19, 28, 80, 74, 4, 8, 97, 123, ! 865: 1, 69, -36, 81, -53, 40, -53, 40, -53, 69, ! 866: -67, 69, 70, 54, 55, 50, 52, 65, 64, 94, ! 867: 92, 93, 91, 66, 67, 90, 71, 68, 80, -63, ! 868: 40, -38, 42, 9, 72, -31, -29, -36, -29, -65, ! 869: -29, -66, -36, -68, -37, -37, -37, -37, -37, -37, ! 870: -37, -37, -37, -37, -37, -37, -37, -37, -37, -37, ! 871: -29, 81, -36, -38, 42, 12, 41, -29, -29, 69, ! 872: -29, 69, 39, 41, 43, -36, -29, -36, -29, -37, ! 873: -53, -38, 43, 72, -38, -36, 41, -29 }; ! 874: short yydef[]={ ! 875: ! 876: 0, -2, 1, 2, 3, 31, 5, 6, 7, 8, ! 877: 9, 0, 0, 21, 36, 32, 120, 79, 0, 0, ! 878: 0, 30, 33, 34, 35, 0, 0, 107, 313, 314, ! 879: 318, 303, 69, 0, 0, 284, 285, 4, 0, -2, ! 880: 0, 29, 37, 38, 39, 40, 41, 79, 26, 246, ! 881: 11, 15, 110, 303, -2, 127, 246, 321, 113, -2, ! 882: 126, 309, 0, 108, 79, 122, 123, 124, 125, 316, ! 883: 0, 0, 80, 81, 82, 83, 84, 85, 86, 87, ! 884: 88, 89, 90, 91, 92, 93, 94, 0, 0, 97, ! 885: 98, 99, 100, 101, 102, 103, 104, 105, 106, 144, ! 886: 295, 296, 315, 317, 319, 0, -2, 54, 64, 66, ! 887: 67, 50, 44, 45, 0, 15, 246, 0, 28, 246, ! 888: 24, 0, 285, 245, 0, 0, 0, 0, 0, 0, ! 889: 0, 0, 0, 0, 268, 269, 246, 271, 272, 273, ! 890: 274, 275, 276, 286, 0, 0, 0, 0, 294, 0, ! 891: 20, 0, 0, 31, 32, 111, 0, 310, 199, 307, ! 892: 200, 308, 202, 246, 131, 30, 32, 0, 0, 0, ! 893: 117, 0, 121, 79, 109, 128, 95, 96, 297, 298, ! 894: 299, 144, 51, 68, 70, 74, 73, 75, 0, 0, ! 895: 0, 0, 0, 46, 48, 50, 0, 0, 25, 27, ! 896: 22, 23, 246, 246, 246, 246, 246, 246, 246, 246, ! 897: 246, 246, 246, 246, 246, 246, 246, 246, 241, 246, ! 898: 285, 0, 0, 251, 246, 0, 0, 0, 246, 247, ! 899: 248, -2, 0, 136, 252, 253, 254, 255, 256, 257, ! 900: 258, 259, 260, 261, 0, 139, 287, 0, 0, 288, ! 901: 290, 246, 246, 13, -2, 14, 16, 246, 0, 112, ! 902: 114, 0, 309, 311, 246, 0, 38, 301, 129, 131, ! 903: 131, 320, 286, 116, 118, 0, 145, 52, 71, 72, ! 904: 76, 123, 122, 65, 55, 57, 59, 0, 0, 42, ! 905: 50, 246, 0, 10, 12, 225, 226, 227, 228, 229, ! 906: 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, ! 907: 0, 0, 243, 246, 249, 250, -2, 0, 263, 265, ! 908: 264, 266, 267, 0, 0, 300, 136, 270, 0, 139, ! 909: 139, 289, 291, 292, 0, 0, 146, 153, 0, 0, ! 910: 0, 246, 304, 306, 312, 201, 203, 133, 134, 246, ! 911: 130, 132, 0, 0, 0, 77, 78, 0, 60, 0, ! 912: 61, 0, 47, 49, 43, 246, 0, 0, 0, 262, ! 913: 283, 0, 138, 137, 141, 293, 140, 0, 277, 278, ! 914: 149, 154, 17, 18, 0, 305, 302, 135, 115, 119, ! 915: 58, 62, 63, 240, 242, 0, 0, 279, 280, 0, ! 916: 147, 152, 0, 19, 244, 281, 282, 142, 143, 148, ! 917: 0, 181, 246, 30, 184, 185, 186, 0, 0, 0, ! 918: 0, 286, 195, 0, 155, 156, 157, 0, 159, 0, ! 919: 0, 285, 224, 179, 180, 162, 163, 164, 165, 166, ! 920: 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, ! 921: 177, 178, 0, 0, 149, 246, 149, 190, 149, 193, ! 922: 246, 197, 0, 0, 0, 0, 0, 0, 0, 0, ! 923: 0, 0, 0, 0, 0, 0, 0, 0, 158, 149, ! 924: 0, 220, 246, 0, 182, 183, 187, 0, 189, 149, ! 925: 192, 149, 0, 149, 204, 205, 206, 207, 208, 209, ! 926: 210, 211, 212, 213, 214, 215, 216, 217, 218, 0, ! 927: 0, 0, 0, 222, 246, 149, 150, 246, 194, 149, ! 928: 198, 0, 0, 161, 0, 0, 188, 0, 196, 219, ! 929: 160, 221, 0, 246, 223, 0, 149, 191 }; ! 930: # ifdef YYDEBUG ! 931: # include "y.debug" ! 932: # endif ! 933: ! 934: # define YYFLAG -1000 ! 935: # define YYERROR goto yyerrlab ! 936: # define YYACCEPT return(0) ! 937: # define YYABORT return(1) ! 938: ! 939: /* parser for yacc output */ ! 940: ! 941: #ifdef YYDEBUG ! 942: int yydebug = 0; /* 1 for debugging */ ! 943: #endif ! 944: YYSTYPE yyv[YYMAXDEPTH]; /* where the values are stored */ ! 945: int yychar = -1; /* current input token number */ ! 946: int yynerrs = 0; /* number of errors */ ! 947: short yyerrflag = 0; /* error recovery flag */ ! 948: ! 949: yyparse() ! 950: { short yys[YYMAXDEPTH]; ! 951: int yyj, yym; ! 952: register YYSTYPE *yypvt; ! 953: register int yystate, yyn; ! 954: register short *yyps; ! 955: register YYSTYPE *yypv; ! 956: register short *yyxi; ! 957: ! 958: yystate = 0; ! 959: yychar = -1; ! 960: yynerrs = 0; ! 961: yyerrflag = 0; ! 962: yyps= &yys[-1]; ! 963: yypv= &yyv[-1]; ! 964: ! 965: yystack: /* put a state and value onto the stack */ ! 966: #ifdef YYDEBUG ! 967: if(yydebug >= 3) ! 968: if(yychar < 0 || yytoknames[yychar] == 0) ! 969: printf("char %d in %s", yychar, yystates[yystate]); ! 970: else ! 971: printf("%s in %s", yytoknames[yychar], yystates[yystate]); ! 972: #endif ! 973: if( ++yyps >= &yys[YYMAXDEPTH] ) { ! 974: yyerror( "yacc stack overflow" ); ! 975: return(1); ! 976: } ! 977: *yyps = yystate; ! 978: ++yypv; ! 979: *yypv = yyval; ! 980: yynewstate: ! 981: yyn = yypact[yystate]; ! 982: if(yyn <= YYFLAG) goto yydefault; /* simple state */ ! 983: if(yychar<0) { ! 984: yychar = yylex(); ! 985: #ifdef YYDEBUG ! 986: if(yydebug >= 2) { ! 987: if(yychar <= 0) ! 988: printf("lex EOF\n"); ! 989: else if(yytoknames[yychar]) ! 990: printf("lex %s\n", yytoknames[yychar]); ! 991: else ! 992: printf("lex (%c)\n", yychar); ! 993: } ! 994: #endif ! 995: if(yychar < 0) ! 996: yychar = 0; ! 997: } ! 998: if((yyn += yychar) < 0 || yyn >= YYLAST) ! 999: goto yydefault; ! 1000: if( yychk[ yyn=yyact[ yyn ] ] == yychar ){ /* valid shift */ ! 1001: yychar = -1; ! 1002: yyval = yylval; ! 1003: yystate = yyn; ! 1004: if( yyerrflag > 0 ) --yyerrflag; ! 1005: goto yystack; ! 1006: } ! 1007: yydefault: ! 1008: /* default state action */ ! 1009: if( (yyn=yydef[yystate]) == -2 ) { ! 1010: if(yychar < 0) { ! 1011: yychar = yylex(); ! 1012: #ifdef YYDEBUG ! 1013: if(yydebug >= 2) ! 1014: if(yychar < 0) ! 1015: printf("lex EOF\n"); ! 1016: else ! 1017: printf("lex %s\n", yytoknames[yychar]); ! 1018: #endif ! 1019: if(yychar < 0) ! 1020: yychar = 0; ! 1021: } ! 1022: /* look through exception table */ ! 1023: for(yyxi=yyexca; (*yyxi!= (-1)) || (yyxi[1]!=yystate); ! 1024: yyxi += 2 ) ; /* VOID */ ! 1025: while( *(yyxi+=2) >= 0 ){ ! 1026: if( *yyxi == yychar ) break; ! 1027: } ! 1028: if( (yyn = yyxi[1]) < 0 ) return(0); /* accept */ ! 1029: } ! 1030: if( yyn == 0 ){ /* error */ ! 1031: /* error ... attempt to resume parsing */ ! 1032: switch( yyerrflag ){ ! 1033: case 0: /* brand new error */ ! 1034: #ifdef YYDEBUG ! 1035: yyerror("syntax error\n%s", yystates[yystate]); ! 1036: if(yytoknames[yychar]) ! 1037: yyerror("saw %s\n", yytoknames[yychar]); ! 1038: else if(yychar >= ' ' && yychar < '\177') ! 1039: yyerror("saw `%c'\n", yychar); ! 1040: else if(yychar == 0) ! 1041: yyerror("saw EOF\n"); ! 1042: else ! 1043: yyerror("saw char 0%o\n", yychar); ! 1044: #else ! 1045: yyerror( "syntax error" ); ! 1046: #endif ! 1047: yyerrlab: ! 1048: ++yynerrs; ! 1049: case 1: ! 1050: case 2: /* incompletely recovered error ... try again */ ! 1051: yyerrflag = 3; ! 1052: /* find a state where "error" is a legal shift action */ ! 1053: while ( yyps >= yys ) { ! 1054: yyn = yypact[*yyps] + YYERRCODE; ! 1055: if( yyn>= 0 && yyn < YYLAST && yychk[yyact[yyn]] == YYERRCODE ){ ! 1056: yystate = yyact[yyn]; /* simulate a shift of "error" */ ! 1057: goto yystack; ! 1058: } ! 1059: yyn = yypact[*yyps]; ! 1060: /* the current yyps has no shift onn "error", pop stack */ ! 1061: #ifdef YYDEBUG ! 1062: if( yydebug ) printf( "error recovery pops state %d, uncovers %d\n", *yyps, yyps[-1] ); ! 1063: #endif ! 1064: --yyps; ! 1065: --yypv; ! 1066: } ! 1067: /* there is no state on the stack with an error shift ... abort */ ! 1068: yyabort: ! 1069: return(1); ! 1070: case 3: /* no shift yet; clobber input char */ ! 1071: #ifdef YYDEBUG ! 1072: if( yydebug ) { ! 1073: printf("error recovery discards "); ! 1074: if(yytoknames[yychar]) ! 1075: printf("%s\n", yytoknames[yychar]); ! 1076: else if(yychar >= ' ' && yychar < '\177') ! 1077: printf("`%c'\n", yychar); ! 1078: else if(yychar == 0) ! 1079: printf("EOF\n"); ! 1080: else ! 1081: printf("char 0%o\n", yychar); ! 1082: } ! 1083: #endif ! 1084: if( yychar == 0 ) goto yyabort; /* don't discard EOF, quit */ ! 1085: yychar = -1; ! 1086: goto yynewstate; /* try again in the same state */ ! 1087: } ! 1088: } ! 1089: /* reduction by production yyn */ ! 1090: #ifdef YYDEBUG ! 1091: if(yydebug) { char *s; ! 1092: printf("reduce %d in:\n\t", yyn); ! 1093: for(s = yystates[yystate]; *s; s++) { ! 1094: putchar(*s); ! 1095: if(*s == '\n' && *(s+1)) ! 1096: putchar('\t'); ! 1097: } ! 1098: } ! 1099: #endif ! 1100: yyps -= yyr2[yyn]; ! 1101: yypvt = yypv; ! 1102: yypv -= yyr2[yyn]; ! 1103: yyval = yypv[1]; ! 1104: yym=yyn; ! 1105: /* consult goto table to find next state */ ! 1106: yyn = yyr1[yyn]; ! 1107: yyj = yypgo[yyn] + *yyps + 1; ! 1108: if( yyj>=YYLAST || yychk[ yystate = yyact[yyj] ] != -yyn ) yystate = yyact[yypgo[yyn]]; ! 1109: switch(yym){ ! 1110: ! 1111: case 1: ! 1112: # line 399 "gram.y" ! 1113: { return 2; } break; ! 1114: case 2: ! 1115: # line 400 "gram.y" ! 1116: { return 1; } break; ! 1117: case 3: ! 1118: # line 401 "gram.y" ! 1119: { return 0; } break; ! 1120: case 4: ! 1121: # line 403 "gram.y" ! 1122: { ! 1123: set_linkage(yypvt[-1].s); ! 1124: bl_level--; ! 1125: return 1; ! 1126: } break; ! 1127: case 5: ! 1128: # line 409 "gram.y" ! 1129: { ! 1130: set_linkage(0); ! 1131: bl_level++; ! 1132: return 1; ! 1133: } break; ! 1134: case 6: ! 1135: # line 417 "gram.y" ! 1136: { ! 1137: /* if function declartion with arguments ! 1138: * need to make sure modified_tn is traversed */ ! 1139: if ( yypvt[-0].pn != 0 ! 1140: && yypvt[-0].pn->tp->base == FCT ! 1141: && Pfct(yypvt[-0].pn->tp)->nargs !=0 ) ! 1142: goto mod; ! 1143: else { ! 1144: modified_tn = 0; ! 1145: if (yypvt[-0].pn==0) yyval.i = 1; ! 1146: } ! 1147: } break; ! 1148: case 7: ! 1149: # line 430 "gram.y" ! 1150: { goto mod; } break; ! 1151: case 8: ! 1152: # line 432 "gram.y" ! 1153: { goto mod; } break; ! 1154: case 9: ! 1155: # line 434 "gram.y" ! 1156: { mod: if (modified_tn) { ! 1157: restore(); ! 1158: modified_tn = 0; ! 1159: } ! 1160: local_blk = 0; ! 1161: if (local_tn) { ! 1162: extern void local_restore(); ! 1163: local_restore(); ! 1164: local_tn = 0; ! 1165: } ! 1166: } break; ! 1167: case 10: ! 1168: # line 446 "gram.y" ! 1169: { Pname n = new name(make_name('A')); ! 1170: n->tp = new basetype(ASM,0); ! 1171: Pbase(n->tp)->b_name = Pname(yypvt[-2].s); ! 1172: yyval.p = n; ! 1173: } break; ! 1174: case 11: ! 1175: # line 462 "gram.y" ! 1176: { ! 1177: Ptype t; ! 1178: /* fix: */ ! 1179: if (err_name == 0) err_name = yypvt[-1].pn; ! 1180: if (err_name == 0) { ! 1181: error("syntax error:TX"); ! 1182: yyval.p = Ndata(defa_type,err_name); ! 1183: } ! 1184: else if ((t=err_name->tp) == 0) { ! 1185: error("TX for%n",err_name); ! 1186: yyval.p = Ndata(defa_type,err_name); ! 1187: } ! 1188: else if (t->base==FCT) { ! 1189: if (Pfct(t)->returns==0) ! 1190: yyval.p = Nfct(defa_type,err_name,0); ! 1191: else ! 1192: yyval.p = Ndata(0,err_name); ! 1193: } ! 1194: else { ! 1195: error("syntax error:TX for%k%n",t->base,err_name); ! 1196: yyval.p = Ndata(defa_type,err_name); ! 1197: } ! 1198: err_name = 0; ! 1199: } break; ! 1200: case 12: ! 1201: # line 489 "gram.y" ! 1202: { Pname n = Nfct(yypvt[-4].p,yypvt[-3].pn,yypvt[-0].p); ! 1203: Fargdcl(n->tp,name_unlist(yypvt[-2].nl),n); ! 1204: Finit(n->tp) = yypvt[-1].pn; ! 1205: yyval.p = n; ! 1206: NOT_EXPECT_ID(); ! 1207: in_mem_fct = 0; ! 1208: } break; ! 1209: case 13: ! 1210: # line 499 "gram.y" ! 1211: { Pname n = Nfct(defa_type,yypvt[-3].pn,yypvt[-0].p); ! 1212: Fargdcl(n->tp,name_unlist(yypvt[-2].nl),n); ! 1213: Finit(n->tp) = yypvt[-1].pn; ! 1214: yyval.p = n; ! 1215: NOT_EXPECT_ID(); ! 1216: in_mem_fct = 0; ! 1217: } break; ! 1218: case 14: ! 1219: # line 509 "gram.y" ! 1220: { ! 1221: yyval.p = yypvt[-0].p; ! 1222: in_arg_list = 0; ! 1223: } break; ! 1224: case 15: ! 1225: # line 514 "gram.y" ! 1226: { yyval.p = 0; } break; ! 1227: case 16: ! 1228: # line 518 "gram.y" ! 1229: { yyval.p = yypvt[-0].p; } break; ! 1230: case 17: ! 1231: # line 520 "gram.y" ! 1232: { yyval.pn = yypvt[-0].pn; yyval.pn->n_list = yypvt[-2].pn; } break; ! 1233: case 18: ! 1234: # line 524 "gram.y" ! 1235: { ! 1236: yyval.pn = new name; ! 1237: yyval.pn->n_initializer = yypvt[-1].pe; ! 1238: } break; ! 1239: case 19: ! 1240: # line 529 "gram.y" ! 1241: { ! 1242: Pname n = Ncopy(yypvt[-3].pn); ! 1243: n->base = yypvt[-3].pn->base; ! 1244: n->n_initializer = yypvt[-1].pe; ! 1245: yyval.pn = n; ! 1246: } break; ! 1247: case 20: ! 1248: # line 552 "gram.y" ! 1249: { if (yypvt[-0].pn == 0) ! 1250: error("badAD"); ! 1251: else if (yypvt[-0].pn->tp->base == FCT) ! 1252: error("FD inAL (%n)",yypvt[-0].pn); ! 1253: else if (yypvt[-1].p) ! 1254: yypvt[-1].nl->add_list(yypvt[-0].pn); ! 1255: else ! 1256: yyval.nl = new nlist(yypvt[-0].pn); ! 1257: } break; ! 1258: case 21: ! 1259: # line 562 "gram.y" ! 1260: { ! 1261: yyval.p = 0; ! 1262: /* error( 'd', "arg_dcl_list: in_class_decl: %d", in_class_decl ); ! 1263: */ ! 1264: if ( in_class_decl ) in_mem_fct = 1; ! 1265: } break; ! 1266: case 23: ! 1267: # line 572 "gram.y" ! 1268: { yyval.p = yypvt[-2].pn; ! 1269: yyval.pn->tp = new basetype(FIELD,yypvt[-0].pn); ! 1270: } break; ! 1271: case 24: ! 1272: # line 576 "gram.y" ! 1273: { yyval.p = new name; ! 1274: yyval.pn->tp = new basetype(FIELD,yypvt[-0].pn); ! 1275: } break; ! 1276: case 25: ! 1277: # line 580 "gram.y" ! 1278: { Pexpr e = yypvt[-0].pe; ! 1279: if (e == dummy) error("emptyIr"); ! 1280: yypvt[-2].pn->n_initializer = e; ! 1281: init_seen = 0; ! 1282: } break; ! 1283: case 26: ! 1284: # line 588 "gram.y" ! 1285: { ! 1286: if (yypvt[-0].p) yyval.nl = new nlist(yypvt[-0].pn); ! 1287: if ( NEXTTOK() == CM && ! 1288: la_look() == TNAME ) ! 1289: EXPECT_ID(); ! 1290: } break; ! 1291: case 27: ! 1292: # line 595 "gram.y" ! 1293: { if (yypvt[-2].p) ! 1294: if (yypvt[-0].p) ! 1295: yypvt[-2].nl->add(yypvt[-0].pn); ! 1296: else ! 1297: error("DL syntax"); ! 1298: else { ! 1299: if (yypvt[-0].p) yyval.nl = new nlist(yypvt[-0].pn); ! 1300: error("DL syntax"); ! 1301: } ! 1302: } break; ! 1303: case 28: ! 1304: # line 608 "gram.y" ! 1305: { ! 1306: extern int co_hack; ! 1307: co_hack = 1; ! 1308: /*$$ = Ndata($1,name_unlist($<nl>2));*/ ! 1309: Pname n = Ndata(yypvt[-2].p,name_unlist(yypvt[-1].nl)); ! 1310: if ( in_typedef && in_tag ) { ! 1311: if ( n->tp->check( in_tag->tp, 0 )) ! 1312: error("%nredefined: previous: %t now: %t", in_tag, in_tag->tp, n->tp ); ! 1313: } ! 1314: in_typedef = 0; ! 1315: in_tag = 0; ! 1316: co_hack = 0; ! 1317: DECL_TYPE = 0; ! 1318: yyval.p = n; ! 1319: } break; ! 1320: case 29: ! 1321: # line 624 "gram.y" ! 1322: { ! 1323: yyval.p = yypvt[-1].pb->aggr(); ! 1324: DECL_TYPE = 0; ! 1325: ! 1326: } break; ! 1327: case 30: ! 1328: # line 633 "gram.y" ! 1329: { ! 1330: yyval.p = new basetype(yypvt[-0].t,0); ! 1331: if ( yypvt[-0].t == TYPEDEF ) in_typedef = yyval.pt; ! 1332: if (DECL_TYPE == -1) DECL_TYPE = 0; ! 1333: } break; ! 1334: case 31: ! 1335: # line 639 "gram.y" ! 1336: { yyval.p = new basetype(EXTERN,0); ! 1337: yyval.pb->b_linkage = yypvt[-0].s; ! 1338: if (DECL_TYPE == -1) DECL_TYPE = 0; ! 1339: } break; ! 1340: case 32: ! 1341: # line 644 "gram.y" ! 1342: { ! 1343: yyval.p = new basetype(TYPE,yypvt[-0].pn); ! 1344: if (DECL_TYPE == -1) DECL_TYPE = 0; ! 1345: } break; ! 1346: case 35: ! 1347: # line 651 "gram.y" ! 1348: { ! 1349: if (DECL_TYPE == TNAME) ! 1350: yyval.p = new basetype(TYPE,yypvt[-0].pn); ! 1351: else ! 1352: yyval.p = new basetype(yypvt[-0].t,0); ! 1353: DECL_TYPE = -1; ! 1354: } break; ! 1355: case 37: ! 1356: # line 662 "gram.y" ! 1357: { ! 1358: if ( DECL_TYPE != -1 ) ! 1359: yyval.p = yypvt[-1].pb->type_adj(yypvt[-0].t); ! 1360: DECL_TYPE = 0; ! 1361: } break; ! 1362: case 38: ! 1363: # line 668 "gram.y" ! 1364: { ! 1365: if ( DECL_TYPE != -1 ) ! 1366: yyval.p = yypvt[-1].pb->name_adj(yypvt[-0].pn); ! 1367: DECL_TYPE = 0; ! 1368: } break; ! 1369: case 39: ! 1370: # line 673 "gram.y" ! 1371: { yyval.p = yypvt[-1].pb->base_adj(yypvt[-0].pb); } break; ! 1372: case 40: ! 1373: # line 674 "gram.y" ! 1374: { yyval.p = yypvt[-1].pb->base_adj(yypvt[-0].pb); } break; ! 1375: case 41: ! 1376: # line 676 "gram.y" ! 1377: { ! 1378: if (DECL_TYPE == TYPE) ! 1379: yyval.p = yypvt[-1].pb->type_adj(yypvt[-0].t); ! 1380: else ! 1381: yyval.p = yypvt[-1].pb->name_adj(yypvt[-0].pn); ! 1382: DECL_TYPE = -1; ! 1383: } break; ! 1384: case 42: ! 1385: # line 688 "gram.y" ! 1386: { yyval.p = end_enum(0,yypvt[-1].pn); } break; ! 1387: case 43: ! 1388: # line 689 "gram.y" ! 1389: { yyval.p = end_enum(yypvt[-3].pn,yypvt[-1].pn); } break; ! 1390: case 44: ! 1391: # line 690 "gram.y" ! 1392: { yyval.pb = (Pbase)yypvt[-0].pn->tp;} break; ! 1393: case 45: ! 1394: # line 691 "gram.y" ! 1395: { yyval.pb = (Pbase)yypvt[-0].pn->tp;} break; ! 1396: case 46: ! 1397: # line 695 "gram.y" ! 1398: { if (yypvt[-0].p) yyval.nl = new nlist(yypvt[-0].pn); } break; ! 1399: case 47: ! 1400: # line 697 "gram.y" ! 1401: { if( yypvt[-0].p) ! 1402: if (yypvt[-2].p) ! 1403: yypvt[-2].nl->add(yypvt[-0].pn); ! 1404: else ! 1405: yyval.nl = new nlist(yypvt[-0].pn); ! 1406: } break; ! 1407: case 48: ! 1408: # line 706 "gram.y" ! 1409: { yyval.p = yypvt[-0].pn; yyval.pn->tp = moe_type; } break; ! 1410: case 49: ! 1411: # line 708 "gram.y" ! 1412: { yyval.p = yypvt[-2].pn; ! 1413: yyval.pn->tp = moe_type; ! 1414: yyval.pn->n_initializer = yypvt[-0].pe; ! 1415: } break; ! 1416: case 50: ! 1417: # line 713 "gram.y" ! 1418: { yyval.p = 0; } break; ! 1419: case 51: ! 1420: # line 717 "gram.y" ! 1421: { ! 1422: ccl->mem_list = name_unlist(yypvt[-1].nl); ! 1423: end_cl(); ! 1424: --in_class_decl; ! 1425: declTag = 1; ! 1426: } break; ! 1427: case 52: ! 1428: # line 724 "gram.y" ! 1429: { ! 1430: ccl->mem_list = name_unlist(yypvt[-2].nl); ! 1431: end_cl(); ! 1432: --in_class_decl; ! 1433: error("`;' or declaratorX afterCD"); ! 1434: lex_unget(yypvt[-0].t); ! 1435: /* lex_unget($4); but only one unget, sorry */ ! 1436: declTag = 1; ! 1437: } break; ! 1438: case 53: ! 1439: # line 734 "gram.y" ! 1440: { ! 1441: yyval.pb = (Pbase)yypvt[-0].pn->tp; ! 1442: check_tag(); ! 1443: } break; ! 1444: case 54: ! 1445: # line 740 "gram.y" ! 1446: { ! 1447: yyval.pb = (Pbase)yypvt[-0].pn->tp; ! 1448: check_tag(); ! 1449: ! 1450: } break; ! 1451: case 55: ! 1452: # line 747 "gram.y" ! 1453: { yyval.pbc = yypvt[-0].pbc; } break; ! 1454: case 56: ! 1455: # line 748 "gram.y" ! 1456: { yyval.pbc = 0; } break; ! 1457: case 58: ! 1458: # line 753 "gram.y" ! 1459: { if (yypvt[-0].pbc) { yyval.pbc = yypvt[-0].pbc; yyval.pbc->next = yypvt[-2].pbc; } } break; ! 1460: case 59: ! 1461: # line 756 "gram.y" ! 1462: { yyval.pbc = dobase(0,yypvt[-0].pn); } break; ! 1463: case 60: ! 1464: # line 757 "gram.y" ! 1465: { yyval.pbc = dobase(yypvt[-1].t,yypvt[-0].pn); } break; ! 1466: case 61: ! 1467: # line 758 "gram.y" ! 1468: { yyval.pbc = dobase(0,yypvt[-0].pn,yypvt[-1].t); } break; ! 1469: case 62: ! 1470: # line 759 "gram.y" ! 1471: { yyval.pbc = dobase(yypvt[-2].t,yypvt[-0].pn,yypvt[-1].t); } break; ! 1472: case 63: ! 1473: # line 760 "gram.y" ! 1474: { yyval.pbc = dobase(yypvt[-1].t,yypvt[-0].pn,yypvt[-2].t); } break; ! 1475: case 64: ! 1476: # line 764 "gram.y" ! 1477: { ! 1478: yyval.p = start_cl(yypvt[-1].t,0,0); ! 1479: ++in_class_decl; ! 1480: } break; ! 1481: case 65: ! 1482: # line 770 "gram.y" ! 1483: { ! 1484: yyval.p = start_cl(yypvt[-3].t,yypvt[-2].pn,yypvt[-1].pbc); ! 1485: ++in_class_decl; ! 1486: } break; ! 1487: case 66: ! 1488: # line 776 "gram.y" ! 1489: { yyval.p = yypvt[-0].pn; } break; ! 1490: case 68: ! 1491: # line 781 "gram.y" ! 1492: { ! 1493: if (yypvt[-0].p) { ! 1494: if (yypvt[-1].p) ! 1495: yypvt[-1].nl->add_list(yypvt[-0].pn); ! 1496: else ! 1497: yyval.nl = new nlist(yypvt[-0].pn); ! 1498: } ! 1499: } break; ! 1500: case 69: ! 1501: # line 790 "gram.y" ! 1502: { yyval.p = 0; } break; ! 1503: case 76: ! 1504: # line 800 "gram.y" ! 1505: { yyval.p = new name; ! 1506: yyval.pn->base = yypvt[-1].t; ! 1507: } break; ! 1508: case 77: ! 1509: # line 804 "gram.y" ! 1510: { Pname n = Ncopy(yypvt[-1].pn); ! 1511: n->n_qualifier = yypvt[-2].pn; ! 1512: n->base = PR; ! 1513: yyval.p = n; ! 1514: } break; ! 1515: case 78: ! 1516: # line 810 "gram.y" ! 1517: { Pname n = Ncopy(yypvt[-1].pn); ! 1518: if (n->n_oper == TYPE) { ! 1519: error('s',"visibilityD for conversion operator"); ! 1520: n->tp = Ptype(n->n_initializer); ! 1521: n->n_initializer = 0; ! 1522: n->n_oper = 0; ! 1523: sig_name(n); ! 1524: } ! 1525: n->n_qualifier = yypvt[-2].pn; ! 1526: n->base = PR; ! 1527: yyval.p = n; ! 1528: } break; ! 1529: case 79: ! 1530: # line 839 "gram.y" ! 1531: { yyval.p = yypvt[-0].pn; } break; ! 1532: case 80: ! 1533: # line 841 "gram.y" ! 1534: { yyval.p = Ncopy(yypvt[-0].pn); ! 1535: yyval.pn->n_oper = DTOR; ! 1536: } break; ! 1537: case 81: ! 1538: # line 845 "gram.y" ! 1539: { yyval.p = new name(oper_name(yypvt[-0].t)); ! 1540: yyval.pn->n_oper = yypvt[-0].t; ! 1541: } break; ! 1542: case 82: ! 1543: # line 849 "gram.y" ! 1544: { Pname n = yypvt[-0].pn; ! 1545: n->string = "_type"; ! 1546: n->n_oper = TYPE; ! 1547: n->n_initializer = Pexpr(n->tp); ! 1548: n->tp = 0; ! 1549: yyval.p = n; ! 1550: } break; ! 1551: case 95: ! 1552: # line 870 "gram.y" ! 1553: { yyval.t = CALL; } break; ! 1554: case 96: ! 1555: # line 871 "gram.y" ! 1556: { yyval.t = DEREF; } break; ! 1557: case 102: ! 1558: # line 877 "gram.y" ! 1559: { yyval.t = NEW; } break; ! 1560: case 103: ! 1561: # line 878 "gram.y" ! 1562: { yyval.t = DELETE; } break; ! 1563: case 104: ! 1564: # line 879 "gram.y" ! 1565: { yyval.t = REF; } break; ! 1566: case 105: ! 1567: # line 880 "gram.y" ! 1568: { yyval.t = CM; } break; ! 1569: case 106: ! 1570: # line 881 "gram.y" ! 1571: { yyval.t = REFMUL; ! 1572: if (yypvt[-0].t == DOT) error(".* cannot be overloaded"); ! 1573: } break; ! 1574: case 107: ! 1575: # line 886 "gram.y" ! 1576: { yyval.pn = yypvt[-0].pn; } break; ! 1577: case 108: ! 1578: # line 887 "gram.y" ! 1579: { error("CNs do not nest"); } break; ! 1580: case 109: ! 1581: # line 888 "gram.y" ! 1582: { error("CNs do not nest"); } break; ! 1583: case 110: ! 1584: # line 892 "gram.y" ! 1585: { Freturns(yypvt[-0].p) = yypvt[-1].pn->tp; ! 1586: yypvt[-1].pn->tp = yypvt[-0].pt; ! 1587: } break; ! 1588: case 111: ! 1589: # line 896 "gram.y" ! 1590: { yypvt[-2].pn->tp = new fct(yypvt[-2].pn->tp,0,1); ! 1591: } break; ! 1592: case 112: ! 1593: # line 900 "gram.y" ! 1594: { yypvt[-3].pn->tp = new fct(yypvt[-3].pn->tp,0,1); ! 1595: Pfct(yypvt[-3].pn->tp)->f_const = 1; ! 1596: } break; ! 1597: case 113: ! 1598: # line 904 "gram.y" ! 1599: { Pname n = yypvt[-1].pn; ! 1600: yyval.p = Ncopy(n); ! 1601: if (ccl && strcmp(n->string,ccl->string)) n->hide(); ! 1602: yyval.pn->n_oper = TNAME; ! 1603: Freturns(yypvt[-0].p) = yyval.pn->tp; ! 1604: yyval.pn->tp = yypvt[-0].pt; ! 1605: } break; ! 1606: case 114: ! 1607: # line 916 "gram.y" ! 1608: { ! 1609: yypvt[-3].pn->tp = new fct(yypvt[-3].pn->tp,yypvt[-1].pn,1); ! 1610: in_arg_list = 0; ! 1611: } break; ! 1612: case 115: ! 1613: # line 921 "gram.y" ! 1614: { ! 1615: Pptr p = new ptr( PTR, 0 ); ! 1616: Ptyp(p) = yypvt[-2].pn->tp; ! 1617: Freturns( yypvt[-0].p ) = Ptype(p); ! 1618: yypvt[-2].pn->tp = yypvt[-0].pt; ! 1619: yyval.p = yypvt[-2].pn; ! 1620: if (DECL_TYPE == -1) DECL_TYPE = 0; ! 1621: } break; ! 1622: case 116: ! 1623: # line 930 "gram.y" ! 1624: { yyval.p = Ncopy(yypvt[-3].pn); ! 1625: yyval.pn->n_oper = TNAME; ! 1626: yyval.pn->tp = new fct(0,yypvt[-1].pn,1); ! 1627: } break; ! 1628: case 117: ! 1629: # line 935 "gram.y" ! 1630: { yyval.p = Ncopy(yypvt[-2].pn); ! 1631: yyval.pn->n_oper = TNAME; ! 1632: yyval.pn->tp = new fct(0,0,1); ! 1633: } break; ! 1634: case 118: ! 1635: # line 941 "gram.y" ! 1636: { yyval.p = Ncopy(yypvt[-3].pn); ! 1637: yyval.pn->n_oper = TNAME; ! 1638: yyval.pn->tp = new fct(0,0,1); ! 1639: Pfct(yypvt[-3].pn->tp)->f_const = 1; ! 1640: } break; ! 1641: case 119: ! 1642: # line 947 "gram.y" ! 1643: { memptrdcl(yypvt[-3].pn,yypvt[-5].pn,yypvt[-0].pt,yypvt[-2].pn); ! 1644: yyval.p = yypvt[-2].p; ! 1645: } break; ! 1646: case 121: ! 1647: # line 952 "gram.y" ! 1648: { yyval.p = Ncopy(yypvt[-0].pn); ! 1649: yyval.pn->n_qualifier = yypvt[-2].pn; ! 1650: error(ansi_opt?0:'w',"anachronism `.' used for qualification; please use `::'"); ! 1651: } break; ! 1652: case 122: ! 1653: # line 957 "gram.y" ! 1654: { yyval.p = yypvt[-0].p; ! 1655: if ( yypvt[-1].pn != sta_name ) { ! 1656: set_scope(yypvt[-1].pn); ! 1657: yyval.pn->n_qualifier = yypvt[-1].pn; ! 1658: } ! 1659: } break; ! 1660: case 123: ! 1661: # line 964 "gram.y" ! 1662: { ! 1663: if ( yypvt[-1].pn == sta_name ) ! 1664: error( ":: applied to CN%n", yypvt[-0].pn ); ! 1665: yyval.p = Ncopy(yypvt[-0].pn); ! 1666: set_scope(yypvt[-1].pn); ! 1667: yyval.pn->n_oper = TNAME; ! 1668: yyval.pn->n_qualifier = yypvt[-1].pn; ! 1669: } break; ! 1670: case 124: ! 1671: # line 973 "gram.y" ! 1672: { Ptyp(yypvt[-1].p) = yypvt[-0].pn->tp; ! 1673: yypvt[-0].pn->tp = yypvt[-1].pt; ! 1674: yyval.p = yypvt[-0].p; ! 1675: } break; ! 1676: case 125: ! 1677: # line 978 "gram.y" ! 1678: { yyval.p = Ncopy(yypvt[-0].pn); ! 1679: yyval.pn->n_oper = TNAME; ! 1680: // cannot evaluate at this point: defer until data_dcl ! 1681: if ( in_typedef ) { ! 1682: defer_check = 1; ! 1683: in_tag = yypvt[-0].pn; ! 1684: } ! 1685: yypvt[-0].pn->hide(); ! 1686: defer_check = 0; ! 1687: yyval.pn->tp = yypvt[-1].pt; ! 1688: } break; ! 1689: case 126: ! 1690: # line 990 "gram.y" ! 1691: { yyval.p = Ncopy(yypvt[-1].pn); ! 1692: yyval.pn->n_oper = TNAME; ! 1693: if ( in_typedef ) { ! 1694: defer_check = 1; ! 1695: in_tag = yypvt[-0].pn; ! 1696: } ! 1697: yypvt[-1].pn->hide(); ! 1698: defer_check = 0; ! 1699: yyval.pn->tp = yypvt[-0].pt; ! 1700: } break; ! 1701: case 127: ! 1702: # line 1001 "gram.y" ! 1703: { Vtype(yypvt[-0].p) = yypvt[-1].pn->tp; ! 1704: yypvt[-1].pn->tp = yypvt[-0].pt; ! 1705: } break; ! 1706: case 128: ! 1707: # line 1018 "gram.y" ! 1708: { ! 1709: yyval.p = yypvt[-1].p; ! 1710: in_arg_list = 0; ! 1711: } break; ! 1712: case 129: ! 1713: # line 1025 "gram.y" ! 1714: { yyval.p = yypvt[-0].pn; } break; ! 1715: case 130: ! 1716: # line 1027 "gram.y" ! 1717: { yyval.p = Ncopy(yypvt[-0].pn); ! 1718: yyval.pn->n_oper = TNAME; ! 1719: yypvt[-0].pn->hide(); ! 1720: yyval.pn->tp = yypvt[-1].pt; ! 1721: } break; ! 1722: case 131: ! 1723: # line 1033 "gram.y" ! 1724: { ! 1725: yyval.p = new name; ! 1726: NOT_EXPECT_ID(); ! 1727: } break; ! 1728: case 132: ! 1729: # line 1038 "gram.y" ! 1730: { Ptyp(yypvt[-1].p) = yypvt[-0].pn->tp; ! 1731: yypvt[-0].pn->tp = (Ptype)yypvt[-1].p; ! 1732: yyval.p = yypvt[-0].p; ! 1733: } break; ! 1734: case 133: ! 1735: # line 1043 "gram.y" ! 1736: { Vtype(yypvt[-0].p) = yypvt[-1].pn->tp; ! 1737: yypvt[-1].pn->tp = (Ptype)yypvt[-0].p; ! 1738: } break; ! 1739: case 134: ! 1740: # line 1047 "gram.y" ! 1741: { Freturns(yypvt[-0].p) = yypvt[-1].pn->tp; ! 1742: yypvt[-1].pn->tp = (Ptype)yypvt[-0].p; ! 1743: } break; ! 1744: case 135: ! 1745: # line 1063 "gram.y" ! 1746: { ! 1747: // error('d', "arg_lp arg_decl rp in_arg_list: %d", in_arg_list ); ! 1748: yyval.p = yypvt[-1].p; ! 1749: in_arg_list = 0; ! 1750: } break; ! 1751: case 136: ! 1752: # line 1071 "gram.y" ! 1753: { yyval.p = new name; } break; ! 1754: case 137: ! 1755: # line 1073 "gram.y" ! 1756: { Ptyp(yypvt[-1].p) = yypvt[-0].pn->tp; ! 1757: yypvt[-0].pn->tp = (Ptype)yypvt[-1].p; ! 1758: yyval.p = yypvt[-0].p; ! 1759: NOT_EXPECT_ID(); ! 1760: } break; ! 1761: case 138: ! 1762: # line 1079 "gram.y" ! 1763: { Vtype(yypvt[-0].p) = yypvt[-1].pn->tp; ! 1764: yypvt[-1].pn->tp = (Ptype)yypvt[-0].p; ! 1765: } break; ! 1766: case 139: ! 1767: # line 1084 "gram.y" ! 1768: { yyval.p = new name; } break; ! 1769: case 140: ! 1770: # line 1086 "gram.y" ! 1771: { Ptyp(yypvt[-1].p) = yypvt[-0].pn->tp; ! 1772: yypvt[-0].pn->tp = (Ptype)yypvt[-1].p; ! 1773: yyval.p = yypvt[-0].p; ! 1774: NOT_EXPECT_ID(); ! 1775: } break; ! 1776: case 141: ! 1777: # line 1092 "gram.y" ! 1778: { Vtype(yypvt[-0].p) = yypvt[-1].pn->tp; ! 1779: yypvt[-1].pn->tp = (Ptype)yypvt[-0].p; ! 1780: } break; ! 1781: case 142: ! 1782: # line 1096 "gram.y" ! 1783: { Freturns(yypvt[-0].p) = yypvt[-2].pn->tp; ! 1784: yypvt[-2].pn->tp = yypvt[-0].pt; ! 1785: yyval.p = yypvt[-2].p; ! 1786: } break; ! 1787: case 143: ! 1788: # line 1101 "gram.y" ! 1789: { Vtype(yypvt[-0].p) = yypvt[-2].pn->tp; ! 1790: yypvt[-2].pn->tp = yypvt[-0].pt; ! 1791: yyval.p = yypvt[-2].p; ! 1792: } break; ! 1793: case 144: ! 1794: # line 1108 "gram.y" ! 1795: { yyval.p = new name; } break; ! 1796: case 145: ! 1797: # line 1110 "gram.y" ! 1798: { Ptyp(yypvt[-1].p) = yypvt[-0].pn->tp; ! 1799: yypvt[-0].pn->tp = (Ptype)yypvt[-1].p; ! 1800: yyval.p = yypvt[-0].p; ! 1801: } break; ! 1802: case 146: ! 1803: # line 1120 "gram.y" ! 1804: { ! 1805: yyval.p = 0; ! 1806: } break; ! 1807: case 147: ! 1808: # line 1124 "gram.y" ! 1809: { ! 1810: if (yypvt[-0].p) ! 1811: if (yypvt[-1].p) ! 1812: yypvt[-1].sl->add(yypvt[-0].ps); ! 1813: else { ! 1814: yyval.sl = new slist(yypvt[-0].ps); ! 1815: stmt_seen = 1; ! 1816: } ! 1817: } break; ! 1818: case 148: ! 1819: # line 1135 "gram.y" ! 1820: { ! 1821: yyval.p = yypvt[-0].p; ! 1822: if (yypvt[-0].p) stmt_seen = 1; ! 1823: } break; ! 1824: case 149: ! 1825: # line 1142 "gram.y" ! 1826: { ! 1827: yyval.p = 0; ! 1828: check_decl(); ! 1829: } break; ! 1830: case 150: ! 1831: # line 1149 "gram.y" ! 1832: { yyval.p = yypvt[-1].p; ! 1833: /* if ($<pe>$ == dummy) error("empty condition");*/ ! 1834: stmt_seen = 1; ! 1835: } break; ! 1836: case 151: ! 1837: # line 1156 "gram.y" ! 1838: { cd_vec[cdi] = cd; ! 1839: stmt_vec[cdi] = stmt_seen; ! 1840: tn_vec[cdi] = modified_tn; ! 1841: lcl_blk_vec[cdi++] = local_blk; ! 1842: lcl_tn_vec[cdi] = local_tn; ! 1843: local_blk = 0; ! 1844: local_tn = 0; ! 1845: cd = 0; ! 1846: stmt_seen = 0; ! 1847: modified_tn = 0; ! 1848: } break; ! 1849: case 152: ! 1850: # line 1168 "gram.y" ! 1851: { Pname n = name_unlist(cd); ! 1852: Pstmt ss = stmt_unlist(yypvt[-1].sl); ! 1853: yyval.p = new block(yypvt[-3].l,n,ss); ! 1854: if ( local_tn ) local_restore(); ! 1855: if ( local_blk ) local_name(); ! 1856: if (modified_tn) restore(); ! 1857: cd = cd_vec[--cdi]; ! 1858: stmt_seen = stmt_vec[cdi]; ! 1859: modified_tn = tn_vec[cdi]; ! 1860: local_tn = lcl_tn_vec[cdi]; ! 1861: local_blk = lcl_blk_vec[cdi]; ! 1862: if (cdi < 0) error('i',"block level(%d)",cdi); ! 1863: NOT_EXPECT_ID(); ! 1864: } break; ! 1865: case 153: ! 1866: # line 1183 "gram.y" ! 1867: { yyval.p = new block(yypvt[-1].l,0,0); NOT_EXPECT_ID();} break; ! 1868: case 154: ! 1869: # line 1185 "gram.y" ! 1870: { yyval.p = new block(yypvt[-2].l,0,0); NOT_EXPECT_ID();} break; ! 1871: case 155: ! 1872: # line 1189 "gram.y" ! 1873: { yyval.p = new estmt(SM,curloc,yypvt[-0].pe,0); } break; ! 1874: case 156: ! 1875: # line 1191 "gram.y" ! 1876: { yyval.p = new stmt(BREAK,yypvt[-0].l,0); } break; ! 1877: case 157: ! 1878: # line 1193 "gram.y" ! 1879: { yyval.p = new stmt(CONTINUE,yypvt[-0].l,0); } break; ! 1880: case 158: ! 1881: # line 1195 "gram.y" ! 1882: { yyval.p = new lstmt(GOTO,yypvt[-1].l,yypvt[-0].pn,0); } break; ! 1883: case 159: ! 1884: # line 1196 "gram.y" ! 1885: { stmt_seen=1; } break; ! 1886: case 160: ! 1887: # line 1197 "gram.y" ! 1888: { yyval.p = new estmt(DO,yypvt[-4].l,yypvt[-0].pe,yypvt[-2].ps); } break; ! 1889: case 161: ! 1890: # line 1199 "gram.y" ! 1891: { ! 1892: if (stmt_seen) ! 1893: yyval.p = new estmt(ASM,curloc,(Pexpr)yypvt[-1].s,0); ! 1894: else { ! 1895: Pname n = new name(make_name('A')); ! 1896: n->tp = new basetype(ASM,(Pname)yypvt[-1].s); ! 1897: if (cd) ! 1898: cd->add_list(n); ! 1899: else ! 1900: cd = new nlist(n); ! 1901: yyval.p = 0; ! 1902: } ! 1903: } break; ! 1904: case 180: ! 1905: # line 1235 "gram.y" ! 1906: { error("`;' missing afterS"); } break; ! 1907: case 181: ! 1908: # line 1237 "gram.y" ! 1909: { yyval.p = new estmt(SM,yypvt[-0].l,dummy,0); } break; ! 1910: case 182: ! 1911: # line 1239 "gram.y" ! 1912: { yyval.p = new estmt(RETURN,yypvt[-2].l,yypvt[-1].pe,0); } break; ! 1913: case 183: ! 1914: # line 1241 "gram.y" ! 1915: { ! 1916: error("local linkage specification"); ! 1917: yyval.p = yypvt[-0].pn; ! 1918: } break; ! 1919: case 184: ! 1920: # line 1246 "gram.y" ! 1921: { Pname n = yypvt[-0].pn; ! 1922: if (n) ! 1923: if (stmt_seen) { ! 1924: yyval.p = new block(n->where,n,0); ! 1925: yyval.ps->base = DCL; ! 1926: } ! 1927: else { ! 1928: if (cd) ! 1929: cd->add_list(n); ! 1930: else ! 1931: cd = new nlist(n); ! 1932: yyval.p = 0; ! 1933: } ! 1934: } break; ! 1935: case 185: ! 1936: # line 1261 "gram.y" ! 1937: { ! 1938: Pname n = yypvt[-0].pn; ! 1939: lex_unget(RC); ! 1940: error(&n->where,"%n's definition is nested (did you forget a ``}''?)",n); ! 1941: if (cd) ! 1942: cd->add_list(n); ! 1943: else ! 1944: cd = new nlist(n); ! 1945: yyval.p = 0; ! 1946: } break; ! 1947: case 187: ! 1948: # line 1273 "gram.y" ! 1949: { yyval.p = new ifstmt(yypvt[-2].l,yypvt[-1].pe,yypvt[-0].ps,0); } break; ! 1950: case 188: ! 1951: # line 1275 "gram.y" ! 1952: { yyval.p = new ifstmt(yypvt[-4].l,yypvt[-3].pe,yypvt[-2].ps,yypvt[-0].ps); } break; ! 1953: case 189: ! 1954: # line 1277 "gram.y" ! 1955: { yyval.p = new estmt(WHILE,yypvt[-2].l,yypvt[-1].pe,yypvt[-0].ps); } break; ! 1956: case 190: ! 1957: # line 1278 "gram.y" ! 1958: { stmt_seen=1; } break; ! 1959: case 191: ! 1960: # line 1279 "gram.y" ! 1961: { yyval.p = new forstmt(yypvt[-8].l,yypvt[-5].ps,yypvt[-4].pe,yypvt[-2].pe,yypvt[-0].ps); } break; ! 1962: case 192: ! 1963: # line 1281 "gram.y" ! 1964: { yyval.p = new estmt(SWITCH,yypvt[-2].l,yypvt[-1].pe,yypvt[-0].ps); } break; ! 1965: case 193: ! 1966: # line 1282 "gram.y" ! 1967: { yyval.p = yypvt[-1].pn; stmt_seen=1; } break; ! 1968: case 194: ! 1969: # line 1283 "gram.y" ! 1970: { Pname n = yypvt[-1].pn; ! 1971: yyval.p = new lstmt(LABEL,n->where,n,yypvt[-0].ps); ! 1972: } break; ! 1973: case 195: ! 1974: # line 1286 "gram.y" ! 1975: { stmt_seen=1; } break; ! 1976: case 196: ! 1977: # line 1287 "gram.y" ! 1978: { if (yypvt[-2].pe == dummy) error("empty case label"); ! 1979: yyval.p = new estmt(CASE,yypvt[-4].l,yypvt[-2].pe,yypvt[-0].ps); ! 1980: } break; ! 1981: case 197: ! 1982: # line 1290 "gram.y" ! 1983: { stmt_seen=1; } break; ! 1984: case 198: ! 1985: # line 1291 "gram.y" ! 1986: { yyval.p = new stmt(DEFAULT,yypvt[-3].l,yypvt[-0].ps); } break; ! 1987: case 199: ! 1988: # line 1298 "gram.y" ! 1989: { Pexpr e = expr_unlist(yypvt[-0].el); ! 1990: while (e && e->e1==dummy) { ! 1991: register Pexpr ee2 = e->e2; ! 1992: if (ee2) error("EX inEL"); ! 1993: delete e; ! 1994: e = ee2; ! 1995: } ! 1996: yyval.p = e; ! 1997: } break; ! 1998: case 200: ! 1999: # line 1309 "gram.y" ! 2000: { yyval.el = new elist(new expr(ELIST,yypvt[-0].pe,0)); } break; ! 2001: case 201: ! 2002: # line 1311 "gram.y" ! 2003: { yypvt[-2].el->add(new expr(ELIST,yypvt[-0].pe,0)); } break; ! 2004: case 203: ! 2005: # line 1316 "gram.y" ! 2006: { ! 2007: if ( in_arg_list ) ! 2008: error( "syntax error: IrL not permitted in AL" ); ! 2009: else ! 2010: init_seen = 1; ! 2011: Pexpr e; ! 2012: if (yypvt[-1].p) ! 2013: e = yypvt[-1].pe; ! 2014: else ! 2015: e = new expr(ELIST,dummy,0); ! 2016: yyval.p = new expr(ILIST,e,0); ! 2017: } break; ! 2018: case 204: ! 2019: # line 1331 "gram.y" ! 2020: { bbinop: yyval.p = new expr(yypvt[-1].t,yypvt[-2].pe,yypvt[-0].pe); } break; ! 2021: case 205: ! 2022: # line 1332 "gram.y" ! 2023: { goto bbinop; } break; ! 2024: case 206: ! 2025: # line 1333 "gram.y" ! 2026: { goto bbinop; } break; ! 2027: case 207: ! 2028: # line 1334 "gram.y" ! 2029: { goto bbinop; } break; ! 2030: case 208: ! 2031: # line 1335 "gram.y" ! 2032: { goto bbinop; } break; ! 2033: case 209: ! 2034: # line 1336 "gram.y" ! 2035: { goto bbinop; } break; ! 2036: case 210: ! 2037: # line 1337 "gram.y" ! 2038: { goto bbinop; } break; ! 2039: case 211: ! 2040: # line 1338 "gram.y" ! 2041: { goto bbinop; } break; ! 2042: case 212: ! 2043: # line 1339 "gram.y" ! 2044: { goto bbinop; } break; ! 2045: case 213: ! 2046: # line 1340 "gram.y" ! 2047: { goto bbinop; } break; ! 2048: case 214: ! 2049: # line 1341 "gram.y" ! 2050: { goto bbinop; } break; ! 2051: case 215: ! 2052: # line 1342 "gram.y" ! 2053: { goto bbinop; } break; ! 2054: case 216: ! 2055: # line 1343 "gram.y" ! 2056: { goto bbinop; } break; ! 2057: case 217: ! 2058: # line 1344 "gram.y" ! 2059: { goto bbinop; } break; ! 2060: case 218: ! 2061: # line 1345 "gram.y" ! 2062: { goto bbinop; } break; ! 2063: case 219: ! 2064: # line 1347 "gram.y" ! 2065: { yyval.p = new qexpr(yypvt[-4].pe,yypvt[-2].pe,yypvt[-0].pe); } break; ! 2066: case 220: ! 2067: # line 1349 "gram.y" ! 2068: { yyval.p = new expr(DELETE,yypvt[-0].pe,0); } break; ! 2069: case 221: ! 2070: # line 1351 "gram.y" ! 2071: { yyval.p = new expr(DELETE,yypvt[-0].pe,yypvt[-2].pe); } break; ! 2072: case 222: ! 2073: # line 1353 "gram.y" ! 2074: { yyval.p = new expr(GDELETE,yypvt[-0].pe,0); } break; ! 2075: case 223: ! 2076: # line 1355 "gram.y" ! 2077: { yyval.p = new expr(GDELETE,yypvt[-0].pe,yypvt[-2].pe); } break; ! 2078: case 225: ! 2079: # line 1360 "gram.y" ! 2080: { binop: yyval.p = new expr(yypvt[-1].t,yypvt[-2].pe,yypvt[-0].pe); } break; ! 2081: case 226: ! 2082: # line 1361 "gram.y" ! 2083: { goto binop; } break; ! 2084: case 227: ! 2085: # line 1362 "gram.y" ! 2086: { goto binop; } break; ! 2087: case 228: ! 2088: # line 1363 "gram.y" ! 2089: { goto binop; } break; ! 2090: case 229: ! 2091: # line 1364 "gram.y" ! 2092: { goto binop; } break; ! 2093: case 230: ! 2094: # line 1365 "gram.y" ! 2095: { goto binop; } break; ! 2096: case 231: ! 2097: # line 1366 "gram.y" ! 2098: { goto binop; } break; ! 2099: case 232: ! 2100: # line 1367 "gram.y" ! 2101: { goto binop; } break; ! 2102: case 233: ! 2103: # line 1368 "gram.y" ! 2104: { goto binop; } break; ! 2105: case 234: ! 2106: # line 1369 "gram.y" ! 2107: { goto binop; } break; ! 2108: case 235: ! 2109: # line 1370 "gram.y" ! 2110: { goto binop; } break; ! 2111: case 236: ! 2112: # line 1371 "gram.y" ! 2113: { goto binop; } break; ! 2114: case 237: ! 2115: # line 1372 "gram.y" ! 2116: { goto binop; } break; ! 2117: case 238: ! 2118: # line 1373 "gram.y" ! 2119: { goto binop; } break; ! 2120: case 239: ! 2121: # line 1374 "gram.y" ! 2122: { goto binop; } break; ! 2123: case 240: ! 2124: # line 1376 "gram.y" ! 2125: { yyval.p = new qexpr(yypvt[-4].pe,yypvt[-2].pe,yypvt[-0].pe); } break; ! 2126: case 241: ! 2127: # line 1378 "gram.y" ! 2128: { yyval.p = new expr(DELETE,yypvt[-0].pe,0); } break; ! 2129: case 242: ! 2130: # line 1380 "gram.y" ! 2131: { yyval.p = new expr(DELETE,yypvt[-0].pe,yypvt[-2].pe); } break; ! 2132: case 243: ! 2133: # line 1382 "gram.y" ! 2134: { yyval.p = new expr(GDELETE,yypvt[-0].pe,0); } break; ! 2135: case 244: ! 2136: # line 1384 "gram.y" ! 2137: { yyval.p = new expr(GDELETE,yypvt[-0].pe,yypvt[-2].pe); } break; ! 2138: case 245: ! 2139: # line 1385 "gram.y" ! 2140: { ! 2141: init_seen = 0; ! 2142: } break; ! 2143: case 246: ! 2144: # line 1389 "gram.y" ! 2145: { yyval.p = dummy; } break; ! 2146: case 247: ! 2147: # line 1392 "gram.y" ! 2148: { goto new1; } break; ! 2149: case 248: ! 2150: # line 1394 "gram.y" ! 2151: { new1: ! 2152: Ptype t = yypvt[-0].pn->tp; ! 2153: yyval.p = new texpr(NEW,t,0); ! 2154: } break; ! 2155: case 249: ! 2156: # line 1398 "gram.y" ! 2157: { goto new3; } break; ! 2158: case 250: ! 2159: # line 1400 "gram.y" ! 2160: { new3: ! 2161: Ptype t = yypvt[-0].pn->tp; ! 2162: yyval.p = new texpr(GNEW,t,0); ! 2163: } break; ! 2164: case 251: ! 2165: # line 1405 "gram.y" ! 2166: { yyval.p = new expr(yypvt[-0].t,yypvt[-1].pe,0); } break; ! 2167: case 252: ! 2168: # line 1407 "gram.y" ! 2169: { yyval.p = new texpr(CAST,yypvt[-1].pn->tp,yypvt[-0].pe); } break; ! 2170: case 253: ! 2171: # line 1409 "gram.y" ! 2172: { yyval.p = new expr(DEREF,yypvt[-0].pe,0); } break; ! 2173: case 254: ! 2174: # line 1411 "gram.y" ! 2175: { yyval.p = new expr(ADDROF,0,yypvt[-0].pe); } break; ! 2176: case 255: ! 2177: # line 1413 "gram.y" ! 2178: { yyval.p = new expr(UMINUS,0,yypvt[-0].pe); } break; ! 2179: case 256: ! 2180: # line 1415 "gram.y" ! 2181: { yyval.p = new expr(UPLUS,0,yypvt[-0].pe); } break; ! 2182: case 257: ! 2183: # line 1417 "gram.y" ! 2184: { yyval.p = new expr(NOT,0,yypvt[-0].pe); } break; ! 2185: case 258: ! 2186: # line 1419 "gram.y" ! 2187: { yyval.p = new expr(COMPL,0,yypvt[-0].pe); } break; ! 2188: case 259: ! 2189: # line 1421 "gram.y" ! 2190: { yyval.p = new expr(yypvt[-1].t,0,yypvt[-0].pe); } break; ! 2191: case 260: ! 2192: # line 1423 "gram.y" ! 2193: { yyval.p = new texpr(SIZEOF,0,yypvt[-0].pe); } break; ! 2194: case 261: ! 2195: # line 1425 "gram.y" ! 2196: { yyval.p = new texpr(SIZEOF,yypvt[-0].pn->tp,0); } break; ! 2197: case 262: ! 2198: # line 1427 "gram.y" ! 2199: { yyval.p = new expr(DEREF,yypvt[-3].pe,yypvt[-1].pe); } break; ! 2200: case 263: ! 2201: # line 1429 "gram.y" ! 2202: { yyval.p = new ref(REF,yypvt[-2].pe,yypvt[-0].pn); } break; ! 2203: case 264: ! 2204: # line 1431 "gram.y" ! 2205: { yyval.p = new expr(yypvt[-1].t,yypvt[-2].pe,yypvt[-0].pe); } break; ! 2206: case 265: ! 2207: # line 1433 "gram.y" ! 2208: { yyval.p = new ref(REF,yypvt[-2].pe,Ncopy(yypvt[-0].pn)); } break; ! 2209: case 266: ! 2210: # line 1435 "gram.y" ! 2211: { yyval.p = new ref(DOT,yypvt[-2].pe,yypvt[-0].pn); } break; ! 2212: case 267: ! 2213: # line 1437 "gram.y" ! 2214: { yyval.p = new ref(DOT,yypvt[-2].pe,Ncopy(yypvt[-0].pn)); } break; ! 2215: case 269: ! 2216: # line 1440 "gram.y" ! 2217: { ! 2218: if ( init_seen ) ! 2219: error( "syntax error:IrL illegal within ()"); ! 2220: } break; ! 2221: case 270: ! 2222: # line 1446 "gram.y" ! 2223: { yyval.p = yypvt[-1].p; } break; ! 2224: case 271: ! 2225: # line 1448 "gram.y" ! 2226: { yyval.p = zero; } break; ! 2227: case 272: ! 2228: # line 1450 "gram.y" ! 2229: { yyval.p = new expr(ICON,0,0); ! 2230: yyval.pe->string = yypvt[-0].s; ! 2231: } break; ! 2232: case 273: ! 2233: # line 1454 "gram.y" ! 2234: { yyval.p = new expr(FCON,0,0); ! 2235: yyval.pe->string = yypvt[-0].s; ! 2236: } break; ! 2237: case 274: ! 2238: # line 1458 "gram.y" ! 2239: { yyval.p = new expr(STRING,0,0); ! 2240: yyval.pe->string = yypvt[-0].s; ! 2241: } break; ! 2242: case 275: ! 2243: # line 1462 "gram.y" ! 2244: { yyval.p = new expr(CCON,0,0); ! 2245: yyval.pe->string = yypvt[-0].s; ! 2246: } break; ! 2247: case 276: ! 2248: # line 1466 "gram.y" ! 2249: { yyval.p = new expr(THIS,0,0); } break; ! 2250: case 277: ! 2251: # line 1470 "gram.y" ! 2252: { yyval.p = new texpr(VALUE,tok_to_type(yypvt[-3].t),yypvt[-1].pe); } break; ! 2253: case 278: ! 2254: # line 1472 "gram.y" ! 2255: { yyval.p = new texpr(VALUE,yypvt[-3].pn->tp,yypvt[-1].pe); } break; ! 2256: case 279: ! 2257: # line 1473 "gram.y" ! 2258: { goto new2; } break; ! 2259: case 280: ! 2260: # line 1475 "gram.y" ! 2261: { new2: ! 2262: Ptype t = yypvt[-0].pn->tp; ! 2263: yyval.p=new texpr(NEW,t,0); ! 2264: yyval.pe->e2 = yypvt[-2].pe; ! 2265: } break; ! 2266: case 281: ! 2267: # line 1480 "gram.y" ! 2268: { goto new4; } break; ! 2269: case 282: ! 2270: # line 1482 "gram.y" ! 2271: { new4: ! 2272: Ptype t = yypvt[-0].pn->tp; ! 2273: yyval.p = new texpr(GNEW,t,0); ! 2274: yyval.pe->e2 = yypvt[-2].pe; ! 2275: } break; ! 2276: case 283: ! 2277: # line 1488 "gram.y" ! 2278: { ! 2279: Pexpr ee = yypvt[-1].pe; ! 2280: Pexpr e = yypvt[-3].pe; ! 2281: if (e->base==NEW || e->base==GNEW) ! 2282: e->e1 = ee; ! 2283: else ! 2284: yyval.p = new call(e,ee); ! 2285: } break; ! 2286: case 284: ! 2287: # line 1499 "gram.y" ! 2288: { yyval.pn = yypvt[-0].pn; } break; ! 2289: case 285: ! 2290: # line 1501 "gram.y" ! 2291: { yyval.pn = sta_name; } break; ! 2292: case 286: ! 2293: # line 1506 "gram.y" ! 2294: { yyval.p = yypvt[-0].pn; } break; ! 2295: case 287: ! 2296: # line 1508 "gram.y" ! 2297: { yyval.p = Ncopy(yypvt[-0].pn); ! 2298: yyval.pn->n_qualifier = yypvt[-1].pn; ! 2299: } break; ! 2300: case 288: ! 2301: # line 1512 "gram.y" ! 2302: { yyval.p = new name(oper_name(yypvt[-0].t)); ! 2303: yyval.pn->n_oper = yypvt[-0].t; ! 2304: } break; ! 2305: case 289: ! 2306: # line 1516 "gram.y" ! 2307: { yyval.p = new name(oper_name(yypvt[-0].t)); ! 2308: yyval.pn->n_oper = yypvt[-0].t; ! 2309: yyval.pn->n_qualifier = yypvt[-2].pn; ! 2310: } break; ! 2311: case 290: ! 2312: # line 1521 "gram.y" ! 2313: { yyval.p = yypvt[-0].p; ! 2314: sig_name(yyval.pn); ! 2315: } break; ! 2316: case 291: ! 2317: # line 1525 "gram.y" ! 2318: { yyval.p = yypvt[-0].p; ! 2319: sig_name(yyval.pn); ! 2320: yyval.pn->n_qualifier = yypvt[-2].pn; ! 2321: } break; ! 2322: case 292: ! 2323: # line 1530 "gram.y" ! 2324: { ! 2325: if (strcmp(yypvt[-2].pn->string,yypvt[-0].pn->string)) error("syntax error: inconsistent destructor notation"); ! 2326: yyval.p = new name(oper_name(DTOR)); ! 2327: yyval.pn->n_oper = DTOR; ! 2328: yyval.pn->n_qualifier = yypvt[-2].pn; ! 2329: } break; ! 2330: case 293: ! 2331: # line 1542 "gram.y" ! 2332: { yyval.p = Ncast(yypvt[-2].p,yypvt[-1].pn); } break; ! 2333: case 294: ! 2334: # line 1545 "gram.y" ! 2335: { check_cast(); } break; ! 2336: case 295: ! 2337: # line 1549 "gram.y" ! 2338: { ! 2339: TOK t = yypvt[-0].t; ! 2340: ! 2341: switch (t) { ! 2342: case FRIEND: ! 2343: case OVERLOAD: ! 2344: case REGISTER: ! 2345: case STATIC: ! 2346: case EXTERN: ! 2347: case AUTO: ! 2348: case VIRTUAL: ! 2349: error("%k in operatorT",t); ! 2350: t = INT; ! 2351: ! 2352: } ! 2353: ! 2354: yyval.p = new basetype(t,0); ! 2355: ! 2356: } break; ! 2357: case 296: ! 2358: # line 1568 "gram.y" ! 2359: { yyval.p = new basetype(TYPE,yypvt[-0].pn); } break; ! 2360: case 297: ! 2361: # line 1570 "gram.y" ! 2362: { ! 2363: if ( DECL_TYPE != -1 ) ! 2364: yyval.p = yypvt[-1].pb->type_adj(yypvt[-0].t); ! 2365: DECL_TYPE = 0; ! 2366: } break; ! 2367: case 298: ! 2368: # line 1576 "gram.y" ! 2369: { ! 2370: if ( DECL_TYPE != -1 ) ! 2371: yyval.p = yypvt[-1].pb->name_adj(yypvt[-0].pn); ! 2372: DECL_TYPE = 0; ! 2373: } break; ! 2374: case 299: ! 2375: # line 1583 "gram.y" ! 2376: { yyval.p = Ncast(yypvt[-1].p,yypvt[-0].pn); } break; ! 2377: case 300: ! 2378: # line 1586 "gram.y" ! 2379: { yyval.p = Ncast(yypvt[-1].p,yypvt[-0].pn); } break; ! 2380: case 301: ! 2381: # line 1589 "gram.y" ! 2382: { yyval.p = Ndata(yypvt[-1].p,yypvt[-0].pn); } break; ! 2383: case 302: ! 2384: # line 1591 "gram.y" ! 2385: { yyval.p = Ndata(yypvt[-3].p,yypvt[-2].pn); ! 2386: yyval.pn->n_initializer = yypvt[-0].pe; ! 2387: } break; ! 2388: case 303: ! 2389: # line 1597 "gram.y" ! 2390: { ! 2391: check_decl(); ! 2392: in_arg_list=1; ! 2393: if ( in_class_decl ) in_mem_fct = 1; ! 2394: } break; ! 2395: case 304: ! 2396: # line 1605 "gram.y" ! 2397: { ! 2398: yyval.p = new fct(0,name_unlist(yypvt[-2].nl),yypvt[-1].t); ! 2399: if ( NEXTTOK() != COLON ) in_arg_list=0; ! 2400: } break; ! 2401: case 305: ! 2402: # line 1610 "gram.y" ! 2403: { ! 2404: yyval.p = new fct(0,name_unlist(yypvt[-3].nl),yypvt[-2].t); ! 2405: in_arg_list=0; ! 2406: if (yypvt[-0].t != CONST) ! 2407: if ( la_look() != SM ) { ! 2408: error("syntax error: unexpected%k (did you forget a `;'?)",yypvt[-0].t); ! 2409: { YYSTYPE y; y.t = SM; la_backup(SM,y); } ! 2410: lex_unget(yypvt[-0].t); ! 2411: } ! 2412: else error("syntax error: unexpected%k",yypvt[-0].t); ! 2413: Pfct(yyval.pt)->f_const = 1; ! 2414: } break; ! 2415: case 306: ! 2416: # line 1625 "gram.y" ! 2417: { ! 2418: if (yypvt[-0].p) ! 2419: if (yypvt[-2].p) ! 2420: yypvt[-2].nl->add(yypvt[-0].pn); ! 2421: else { ! 2422: error("AD syntax"); ! 2423: yyval.nl = new nlist(yypvt[-0].pn); ! 2424: } ! 2425: else ! 2426: error("AD syntax"); ! 2427: } break; ! 2428: case 307: ! 2429: # line 1637 "gram.y" ! 2430: { ! 2431: if (yypvt[-0].p) yyval.nl = new nlist(yypvt[-0].pn); ! 2432: } break; ! 2433: case 309: ! 2434: # line 1643 "gram.y" ! 2435: { yyval.p = 0; } break; ! 2436: case 310: ! 2437: # line 1647 "gram.y" ! 2438: { yyval.t = 1; } break; ! 2439: case 311: ! 2440: # line 1649 "gram.y" ! 2441: { yyval.t = ELLIPSIS; } break; ! 2442: case 312: ! 2443: # line 1651 "gram.y" ! 2444: { yyval.t = ELLIPSIS; } break; ! 2445: case 313: ! 2446: # line 1655 "gram.y" ! 2447: { ! 2448: yyval.p = new ptr(PTR,0); ! 2449: EXPECT_ID(); ! 2450: } break; ! 2451: case 314: ! 2452: # line 1660 "gram.y" ! 2453: { ! 2454: yyval.p = new ptr(RPTR,0); ! 2455: EXPECT_ID(); ! 2456: } break; ! 2457: case 315: ! 2458: # line 1665 "gram.y" ! 2459: { yyval.p = doptr(PTR,yypvt[-0].t); } break; ! 2460: case 316: ! 2461: # line 1667 "gram.y" ! 2462: { ! 2463: switch ( yypvt[-0].t ) { ! 2464: case CONST: ! 2465: yypvt[-1].pp->rdo = 1; break; ! 2466: case VOLATILE: ! 2467: error('w',"\"volatile\" not implemented (ignored)"); ! 2468: break; ! 2469: default: ! 2470: error( "syntax error: *%k", yypvt[-0].t ); ! 2471: } ! 2472: yyval.p = yypvt[-1].pp; ! 2473: } break; ! 2474: case 317: ! 2475: # line 1680 "gram.y" ! 2476: { yyval.p = doptr(RPTR,yypvt[-0].t); } break; ! 2477: case 318: ! 2478: # line 1682 "gram.y" ! 2479: { ! 2480: yyval.p = new ptr(PTR,0); ! 2481: yyval.pp->memof = Pclass(Pbase(yypvt[-0].pn->tp)->b_name->tp); ! 2482: EXPECT_ID(); ! 2483: } break; ! 2484: case 319: ! 2485: # line 1688 "gram.y" ! 2486: { yyval.p = doptr(PTR,yypvt[-0].t); ! 2487: yyval.pp->memof = Pclass(Pbase(yypvt[-1].pn->tp)->b_name->tp); ! 2488: } break; ! 2489: case 320: ! 2490: # line 1693 "gram.y" ! 2491: { yyval.p = new vec(0,yypvt[-1].pe!=dummy?yypvt[-1].pe:0 ); } break; ! 2492: case 321: ! 2493: # line 1694 "gram.y" ! 2494: { yyval.p = new vec(0,0); } break; ! 2495: } ! 2496: goto yystack; /* stack new state and value */ ! 2497: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.