Annotation of researchv10no/cmd/cfront/ooptcfront/y.tab.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.