Subversion Repositories tendra.SVN

Rev

Rev 2 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 7u83 1
/*
2
 * Automatically generated from the files:
3
 *	/u/g/release/Source/src/producers/cpp/syntax/syntax.sid
4
 * and
5
 *	/u/g/release/Source/src/producers/cpp/syntax/syntax.act
6
 * by:
7
 *	sid
8
 */
9
 
10
/* BEGINNING OF HEADER */
11
 
12
#define __SID_SPLIT
13
 
14
/*
15
    		 Crown Copyright (c) 1997, 1998
16
 
17
    This TenDRA(r) Computer Program is subject to Copyright
18
    owned by the United Kingdom Secretary of State for Defence
19
    acting through the Defence Evaluation and Research Agency
20
    (DERA).  It is made available to Recipients with a
21
    royalty-free licence for its use, reproduction, transfer
22
    to other parties and amendment for any purpose not excluding
23
    product development provided that any such use et cetera
24
    shall be deemed to be acceptance of the following conditions:-
25
 
26
        (1) Its Recipients shall ensure that this Notice is
27
        reproduced upon any copies or amended versions of it;
28
 
29
        (2) Any amended version of it shall be clearly marked to
30
        show both the nature of and the organisation responsible
31
        for the relevant amendment or amendments;
32
 
33
        (3) Its onward transfer from a recipient to another
34
        party shall be deemed to be that party's acceptance of
35
        these conditions;
36
 
37
        (4) DERA gives no warranty or assurance as to its
38
        quality or suitability for any purpose and DERA accepts
39
        no liability whatsoever in relation to any use to which
40
        it may be put.
41
*/
42
 
43
 
44
#include "config.h"
45
#include "c_types.h"
46
#include "ctype_ops.h"
47
#include "exp_ops.h"
48
#include "hashid_ops.h"
49
#include "id_ops.h"
50
#include "nspace_ops.h"
51
#include "type_ops.h"
52
#include "error.h"
53
#include "catalog.h"
54
#include "option.h"
55
#include "access.h"
56
#include "allocate.h"
57
#include "assign.h"
58
#include "basetype.h"
59
#include "cast.h"
60
#include "chktype.h"
61
#include "class.h"
62
#include "constant.h"
63
#include "construct.h"
64
#include "convert.h"
65
#include "declare.h"
66
#include "derive.h"
67
#include "dump.h"
68
#include "exception.h"
69
#include "expression.h"
70
#include "function.h"
71
#include "hash.h"
72
#include "identifier.h"
73
#include "initialise.h"
74
#include "inttype.h"
75
#include "label.h"
76
#include "lex.h"
77
#include "literal.h"
78
#include "member.h"
79
#include "namespace.h"
80
#include "parse.h"
81
#include "pragma.h"
82
#include "predict.h"
83
#include "preproc.h"
84
#include "redeclare.h"
85
#include "rewrite.h"
86
#include "statement.h"
87
#include "symbols.h"
88
#include "template.h"
89
#include "tokdef.h"
90
#include "token.h"
91
#include "typeid.h"
92
#include "variable.h"
93
 
94
 
95
/*
96
    COMPOUND TYPE ALIASES
97
 
98
    These are the aliases for the compound types used in the parser.
99
*/
100
 
101
typedef LIST ( EXP ) SID_LIST_EXP ;
102
typedef LIST ( TYPE ) SID_LIST_TYPE ;
103
 
104
 
105
/*
106
    FUNCTION DECLARATIONS
107
 
108
    The function declarations are included at this point so that the
109
    type definitions are in scope.
110
*/
111
 
112
#include "syntax.h"
113
 
114
 
115
/*
116
    COMPILATION MODE
117
 
118
    The output of sid is automatically generated.  Hence it is not
119
    necessarily appropriate to apply the same level of checking to this
120
    as to the rest of the program.  These pragmas describe the relaxations
121
    allowed for the sid output.
122
*/
123
 
124
#if FS_TENDRA
125
#pragma TenDRA begin
126
#pragma TenDRA const conditional allow
127
#pragma TenDRA unreachable code allow
128
#pragma TenDRA variable analysis off
129
#endif
130
 
131
 
132
 
133
void
134
ZR842 PROTO_Z ()
135
{
136
    if ((CURRENT_TERMINAL) == 354) {
137
	return;
138
    }
139
    {
140
	DECL_SPEC ZI493;
141
	int ZI844;
142
	NAMESPACE ZI425;
143
	IDENTIFIER ZI820;
144
	IDENTIFIER ZI419;
145
 
146
	{
147
	    switch (CURRENT_TERMINAL) {
148
	      case 155:
149
		{
150
		    ADVANCE_LEXER;
151
		    {
152
 (ZI844) = 1 ; 
153
		    }
154
		    ZR1328 (&ZI493);
155
		    if ((CURRENT_TERMINAL) == 354) {
156
			RESTORE_LEXER;
157
			goto ZL1;
158
		    }
159
		}
160
		break;
161
	      case 142: case 143: case 144:
162
		{
163
		    ZR827 (&ZI493);
164
		    ZR1327 (&ZI844);
165
		    if ((CURRENT_TERMINAL) == 354) {
166
			RESTORE_LEXER;
167
			goto ZL1;
168
		    }
169
		}
170
		break;
171
	      default:
172
		{
173
		    {
174
 (ZI493) = dspec_none ; 
175
		    }
176
		    {
177
 (ZI844) = 0 ; 
178
		    }
179
		}
180
		break;
181
	    }
182
	}
183
	ZR428 (&ZI425);
184
	ZR508 (&ZI820);
185
	if ((CURRENT_TERMINAL) == 354) {
186
	    RESTORE_LEXER;
187
	    goto ZL1;
188
	}
189
	{
190
 
191
    (ZI419) = check_id ( (ZI425), (ZI820), 0 ) ;
192
    last_namespace = (ZI425) ;
193
	}
194
	{
195
 
196
    add_base_class ( (ZI419), (ZI493), (ZI844) ) ;
197
	}
198
    }
199
    return;
200
  ZL1:;
201
    SAVE_LEXER (354);
202
    return;
203
}
204
 
205
void
206
ZR1284 PROTO_N ((ZO431))
207
  PROTO_T (EXP *ZO431)
208
{
209
    EXP ZI431;
210
 
211
    switch (CURRENT_TERMINAL) {
212
      case 1: case 2: case 3: case 5: case 6:
213
      case 7: case 141: case 147:
214
	{
215
	    ZR1268 (&ZI431);
216
	    if ((CURRENT_TERMINAL) == 354) {
217
		RESTORE_LEXER;
218
		goto ZL1;
219
	    }
220
	}
221
	break;
222
      case 131: case 140:
223
	{
224
	    int ZI456;
225
 
226
	    {
227
 (ZI456) = 1 ; 
228
	    }
229
	    ZR1430 (&ZI456, &ZI431);
230
	    if ((CURRENT_TERMINAL) == 354) {
231
		RESTORE_LEXER;
232
		goto ZL1;
233
	    }
234
	}
235
	break;
236
      case 354:
237
	return;
238
      default:
239
	goto ZL1;
240
    }
241
    goto ZL0;
242
  ZL1:;
243
    SAVE_LEXER (354);
244
    return;
245
  ZL0:;
246
    *ZO431 = ZI431;
247
}
248
 
249
void
250
ZR1008 PROTO_N ((ZI689, ZI511, ZI497, ZI670))
251
  PROTO_T (DECL_SPEC ZI689 X BASE_TYPE ZI511 X TYPE ZI497 X ACCESS_LIST ZI670)
252
{
253
    if ((CURRENT_TERMINAL) == 354) {
254
	return;
255
    }
256
    {
257
	TYPE ZI414;
258
	IDENTIFIER ZI419;
259
	int ZI558;
260
	IDENTIFIER ZI459;
261
	EXP ZI431;
262
 
263
	ZR950 (ZI497, &ZI414, &ZI419, &ZI558);
264
	if ((CURRENT_TERMINAL) == 354) {
265
	    RESTORE_LEXER;
266
	    goto ZL1;
267
	}
268
	{
269
 
270
    if ( type_tag ( (ZI414) ) == type_func_tag ) {
271
	/* Look ahead for function definitions */
272
	int def = predict_func_defn () ;
273
	if ( def & !have_func_declarator ) adjust_param ( (ZI414) ) ;
274
	(ZI459) = make_func_decl ( (ZI689), (ZI414), (ZI419), def ) ;
275
	is_function_next = def ;
276
    } else {
277
	int def = predict_obj_defn () ;
278
	(ZI459) = make_object_decl ( (ZI689), (ZI414), (ZI419), def ) ;
279
	is_function_next = 0 ;
280
    }
281
    if ( IS_id_type_alias ( (ZI459) ) ) {
282
	BASE_TYPE bs = DEREF_btype ( id_type_alias_rep ( (ZI459) ) ) ;
283
	bs |= (ZI511) ;
284
	COPY_btype ( id_type_alias_rep ( (ZI459) ), bs ) ;
285
    }
286
    have_type_declaration = TYPE_DECL_NONE ;
287
    have_func_declarator = 0 ;
288
	}
289
	{
290
 
291
    IGNORE clear_access ( (ZI459), &(ZI670) ) ;
292
	}
293
	{
294
 
295
    if ( crt_access_list.pending ) {
296
	IGNORE report_access ( (ZI459) ) ;
297
    }
298
	}
299
	ZR1004 (ZI558, ZI459, &ZI431);
300
	if ((CURRENT_TERMINAL) == 354) {
301
	    RESTORE_LEXER;
302
	    goto ZL1;
303
	}
304
	{
305
 
306
    int def = init_object ( (ZI459), (ZI431) ) ;
307
    if ( do_dump ) dump_declare ( (ZI459), &decl_loc, def ) ;
308
	}
309
	{
310
 
311
    if ( crt_access_list.pending ) {
312
	IGNORE report_access ( (ZI459) ) ;
313
    }
314
	}
315
	{
316
 
317
    end_declarator ( (ZI459), 1 ) ;
318
	}
319
    }
320
    return;
321
  ZL1:;
322
    SAVE_LEXER (354);
323
    return;
324
}
325
 
326
void
327
ZR1033 PROTO_N ((ZI414, ZI689, ZO431))
328
  PROTO_T (TYPE ZI414 X DECL_SPEC ZI689 X EXP *ZO431)
329
{
330
    EXP ZI431;
331
 
332
    if ((CURRENT_TERMINAL) == 354) {
333
	return;
334
    }
335
    {
336
	BASE_TYPE ZI1248;
337
	TYPE ZI1249;
338
	CV_SPEC ZI1250;
339
	DECL_SPEC ZI1251;
340
	BASE_TYPE ZI511;
341
	TYPE ZI875;
342
	CV_SPEC ZI876;
343
	DECL_SPEC ZI909;
344
	DECL_SPEC ZI911;
345
 
346
	{
347
 
348
    /* Resolve declaration-specifiers from other declarators */
349
    (ZI0) = predict_dspec ( 0 ) ;
350
	}
351
	if (!ZI0)
352
	    goto ZL2;
353
	ZR906 (ZI414, &ZI1248, &ZI1249, &ZI1250, &ZI1251);
354
	ZR917 (&ZI414, &ZI1248, &ZI1249, &ZI1250, &ZI1251, &ZI511, &ZI875, &ZI876, &ZI909);
355
	if ((CURRENT_TERMINAL) == 354) {
356
	    RESTORE_LEXER;
357
	    goto ZL1;
358
	}
359
	{
360
 
361
    /* Combine two declaration specifiers */
362
    DECL_SPEC d = ( ( (ZI689) & (ZI909) ) & dspec_duplicate ) ;
363
    if ( d ) report ( crt_loc, ERR_dcl_spec_dup ( d ) ) ;
364
    (ZI911) = ( (ZI689) | (ZI909) ) ;
365
	}
366
	ZR1252 (&ZI414, &ZI511, &ZI875, &ZI876, &ZI911);
367
	if ((CURRENT_TERMINAL) == 354) {
368
	    RESTORE_LEXER;
369
	    goto ZL1;
370
	}
371
	{
372
 
373
    (ZI431) = NULL_exp ;
374
	}
375
	goto ZL0;
376
    }
377
    /*UNREACHED*/
378
  ZL2:;
379
    switch (CURRENT_TERMINAL) {
380
      case 105:
381
	{
382
	    ZR1062 (ZI414, ZI689, &ZI431);
383
	    if ((CURRENT_TERMINAL) == 354) {
384
		RESTORE_LEXER;
385
		goto ZL1;
386
	    }
387
	}
388
	break;
389
      case 134: case 147:
390
	{
391
	    ZR1072 (ZI414, ZI689, &ZI431);
392
	    if ((CURRENT_TERMINAL) == 354) {
393
		RESTORE_LEXER;
394
		goto ZL1;
395
	    }
396
	}
397
	break;
398
      case 1: case 2: case 3: case 4: case 5:
399
      case 6: case 7: case 8: case 9: case 10:
400
      case 11: case 33: case 65: case 77: case 78:
401
      case 83: case 141:
402
	{
403
	    BASE_TYPE ZI511;
404
	    TYPE ZI875;
405
	    CV_SPEC ZI1253;
406
 
407
	    {
408
 (ZI511) = btype_none ; 
409
	    }
410
	    {
411
 
412
    (ZI875) = NULL_type ;
413
	    }
414
	    {
415
 (ZI1253) = cv_none ; 
416
	    }
417
	    ZR1254 (&ZI414, &ZI689, &ZI511, &ZI875, &ZI1253, &ZI431);
418
	    if ((CURRENT_TERMINAL) == 354) {
419
		RESTORE_LEXER;
420
		goto ZL1;
421
	    }
422
	}
423
	break;
424
      case 126: case 139: case 154:
425
	{
426
	    {
427
 
428
    if ( !IS_NULL_type ( (ZI414) ) ) report ( crt_loc, ERR_temp_decl_bad () ) ;
429
    UNUSED ( (ZI689) ) ;
430
	    }
431
	    ZR1077 (&ZI431);
432
	    if ((CURRENT_TERMINAL) == 354) {
433
		RESTORE_LEXER;
434
		goto ZL1;
435
	    }
436
	}
437
	break;
438
      default:
439
	goto ZL1;
440
    }
441
    goto ZL0;
442
  ZL1:;
443
    SAVE_LEXER (354);
444
    return;
445
  ZL0:;
446
    *ZO431 = ZI431;
447
}
448
 
449
void
450
ZR1286 PROTO_N ((ZO431))
451
  PROTO_T (EXP *ZO431)
452
{
453
    EXP ZI431;
454
 
455
    if ((CURRENT_TERMINAL) == 354) {
456
	return;
457
    }
458
    {
459
	TYPE ZI414;
460
	int ZI551;
461
	EXP ZI493;
462
 
463
	{
464
 
465
    /* Resolve type-ids from expressions */
466
    (ZI0) = predict_typeid ( 0 ) ;
467
	}
468
	if (!ZI0)
469
	    goto ZL2;
470
	ZR548 (&ZI414, &ZI551);
471
	switch (CURRENT_TERMINAL) {
472
	  case 39:
473
	    break;
474
	  case 354:
475
	    RESTORE_LEXER;
476
	    goto ZL1;
477
	  default:
478
	    goto ZL1;
479
	}
480
	ADVANCE_LEXER;
481
	ZR581 (&ZI493);
482
	if ((CURRENT_TERMINAL) == 354) {
483
	    RESTORE_LEXER;
484
	    goto ZL1;
485
	}
486
	{
487
 
488
    /* n is the number of type definitions in t */
489
    (ZI431) = make_cast_exp ( (ZI414), (ZI493), (ZI551) ) ;
490
	}
491
	goto ZL0;
492
    }
493
    /*UNREACHED*/
494
  ZL2:;
495
    switch (CURRENT_TERMINAL) {
496
      case 1: case 2: case 3: case 5: case 6:
497
      case 7: case 8: case 9: case 17: case 18:
498
      case 19: case 20: case 21: case 22: case 23:
499
      case 25: case 33: case 43: case 59: case 61:
500
      case 62: case 65: case 69: case 71: case 78:
501
      case 83: case 85: case 97: case 102: case 106:
502
      case 110: case 111: case 114: case 115: case 116:
503
      case 122: case 123: case 127: case 130: case 131:
504
      case 132: case 135: case 140: case 141: case 145:
505
      case 146: case 148: case 149: case 150: case 152:
506
      case 156: case 170: case 184: case 205: case 209:
507
      case 285: case 297: case 298: case 323: case 329:
508
      case 345:
509
	{
510
	    EXP ZI493;
511
	    EXP ZI1278;
512
 
513
	    {
514
 
515
    IGNORE incr_value ( OPT_VAL_paren_depth ) ;
516
	    }
517
	    ZR491 (&ZI493);
518
	    if ((CURRENT_TERMINAL) == 354) {
519
		RESTORE_LEXER;
520
		goto ZL1;
521
	    }
522
	    {
523
 
524
    (ZI1278) = make_paren_exp ( (ZI493) ) ;
525
    decr_value ( OPT_VAL_paren_depth ) ;
526
	    }
527
	    switch (CURRENT_TERMINAL) {
528
	      case 39:
529
		break;
530
	      default:
531
		goto ZL1;
532
	    }
533
	    ADVANCE_LEXER;
534
	    ZR1240 (ZI1278, &ZI431);
535
	    if ((CURRENT_TERMINAL) == 354) {
536
		RESTORE_LEXER;
537
		goto ZL1;
538
	    }
539
	}
540
	break;
541
      default:
542
	goto ZL1;
543
    }
544
    goto ZL0;
545
  ZL1:;
546
    SAVE_LEXER (354);
547
    return;
548
  ZL0:;
549
    *ZO431 = ZI431;
550
}
551
 
552
void
553
ZR1002 PROTO_N ((ZI459, ZO497))
554
  PROTO_T (IDENTIFIER ZI459 X SID_LIST_EXP *ZO497)
555
{
556
    SID_LIST_EXP ZI497;
557
 
558
    if ((CURRENT_TERMINAL) == 354) {
559
	return;
560
    }
561
    {
562
	EXP ZI431;
563
	SID_LIST_EXP ZI480;
564
 
565
	ZR649 (&ZI431);
566
	if ((CURRENT_TERMINAL) == 354) {
567
	    RESTORE_LEXER;
568
	    goto ZL1;
569
	}
570
	{
571
 
572
    if ( crt_access_list.pending ) {
573
	IGNORE report_access ( (ZI459) ) ;
574
    }
575
	}
576
	{
577
	    switch (CURRENT_TERMINAL) {
578
	      case 42:
579
		{
580
		    ADVANCE_LEXER;
581
		    ZR1002 (ZI459, &ZI480);
582
		    if ((CURRENT_TERMINAL) == 354) {
583
			RESTORE_LEXER;
584
			goto ZL1;
585
		    }
586
		}
587
		break;
588
	      default:
589
		{
590
		    {
591
 
592
    (ZI480) = NULL_list ( EXP ) ;
593
		    }
594
		}
595
		break;
596
	    }
597
	}
598
	{
599
 
600
    CONS_exp ( (ZI431), (ZI480), (ZI497) ) ;
601
	}
602
    }
603
    goto ZL0;
604
  ZL1:;
605
    SAVE_LEXER (354);
606
    return;
607
  ZL0:;
608
    *ZO497 = ZI497;
609
}
610
 
611
void
612
ZR776 PROTO_N ((ZO431))
613
  PROTO_T (EXP *ZO431)
614
{
615
    EXP ZI431;
616
 
617
    switch (CURRENT_TERMINAL) {
618
      case 288:
619
	{
620
	    EXP ZI493;
621
 
622
	    ADVANCE_LEXER;
623
	    {
624
 unreached_code = 0 ; 
625
	    }
626
	    ZR661 (&ZI493);
627
	    if ((CURRENT_TERMINAL) == 354) {
628
		RESTORE_LEXER;
629
		goto ZL1;
630
	    }
631
	    {
632
 
633
    (ZI431) = make_reach_stmt ( (ZI493), 1 ) ;
634
	    }
635
	}
636
	break;
637
      case 322:
638
	{
639
	    EXP ZI493;
640
 
641
	    ADVANCE_LEXER;
642
	    {
643
 unreached_code = 1 ; 
644
	    }
645
	    ZR661 (&ZI493);
646
	    if ((CURRENT_TERMINAL) == 354) {
647
		RESTORE_LEXER;
648
		goto ZL1;
649
	    }
650
	    {
651
 
652
    (ZI431) = make_reach_stmt ( (ZI493), 0 ) ;
653
	    }
654
	}
655
	break;
656
      case 354:
657
	return;
658
      default:
659
	goto ZL1;
660
    }
661
    goto ZL0;
662
  ZL1:;
663
    SAVE_LEXER (354);
664
    return;
665
  ZL0:;
666
    *ZO431 = ZI431;
667
}
668
 
669
void
670
ZR1161 PROTO_N ((ZI1157, ZI1158, ZO1159, ZO1160))
671
  PROTO_T (TYPE ZI1157 X IDENTIFIER ZI1158 X TYPE *ZO1159 X IDENTIFIER *ZO1160)
672
{
673
    TYPE ZI1159;
674
    IDENTIFIER ZI1160;
675
 
676
  ZL2_1161:;
677
    switch (CURRENT_TERMINAL) {
678
      case 65: case 66: case 331:
679
	{
680
	    IDENTIFIER ZI419;
681
	    QUALIFIER ZI455;
682
	    int ZI456;
683
	    TYPE ZI480;
684
	    TYPE ZI414;
685
 
686
	    ZI419 = ZI1158;
687
	    {
688
 
689
    (ZI455) = crt_id_qualifier ;
690
    (ZI456) = crt_templ_qualifier ;
691
	    }
692
	    ZR952 (&ZI480);
693
	    if ((CURRENT_TERMINAL) == 354) {
694
		RESTORE_LEXER;
695
		goto ZL1;
696
	    }
697
	    {
698
 
699
    crt_id_qualifier = (ZI455) ;
700
    crt_templ_qualifier = (ZI456) ;
701
	    }
702
	    {
703
 
704
    (ZI414) = ( IS_NULL_type ( (ZI1157) ) ? (ZI480) : inject_pre_type ( (ZI1157), (ZI480), 0 ) ) ;
705
	    }
706
	    ZI1157 = ZI414;
707
	    ZI1158 = ZI419;
708
	    goto ZL2_1161;
709
	}
710
	/*UNREACHED*/
711
      default:
712
	{
713
	    ZI1159 = ZI1157;
714
	    ZI1160 = ZI1158;
715
	}
716
	break;
717
      case 354:
718
	return;
719
    }
720
    goto ZL0;
721
  ZL1:;
722
    SAVE_LEXER (354);
723
    return;
724
  ZL0:;
725
    *ZO1159 = ZI1159;
726
    *ZO1160 = ZI1160;
727
}
728
 
729
void
730
ZR503 PROTO_N ((ZO419))
731
  PROTO_T (IDENTIFIER *ZO419)
732
{
733
    IDENTIFIER ZI419;
734
 
735
    if ((CURRENT_TERMINAL) == 354) {
736
	return;
737
    }
738
    {
739
	NAMESPACE ZI425;
740
	IDENTIFIER ZI460;
741
 
742
	switch (CURRENT_TERMINAL) {
743
	  case 9:
744
	    {
745
 
746
    ZI425 = crt_token->pp_data.ns ;
747
	    }
748
	    break;
749
	  default:
750
	    goto ZL1;
751
	}
752
	ADVANCE_LEXER;
753
	{
754
	    switch (CURRENT_TERMINAL) {
755
	      case 7:
756
		{
757
		    {
758
 
759
    IDENTIFIER id = crt_token->pp_data.tok.id ;
760
    PPTOKEN *args = crt_token->pp_data.tok.args ;
761
    ZI460 = parse_type_template ( id, args, 0 ) ;
762
    crt_templ_qualifier = 1 ;
763
    RESCAN_LEXER ;
764
		    }
765
		    ADVANCE_LEXER;
766
		}
767
		break;
768
	      case 2:
769
		{
770
		    {
771
 
772
    ZI460 = crt_token->pp_data.id.use ;
773
		    }
774
		    ADVANCE_LEXER;
775
		}
776
		break;
777
	      default:
778
		goto ZL1;
779
	    }
780
	}
781
	{
782
 
783
    crt_id_qualifier = qual_full ;
784
    qual_namespace = (ZI425) ;
785
	}
786
	{
787
 
788
    (ZI419) = check_id ( (ZI425), (ZI460), 0 ) ;
789
    last_namespace = (ZI425) ;
790
	}
791
    }
792
    goto ZL0;
793
  ZL1:;
794
    SAVE_LEXER (354);
795
    return;
796
  ZL0:;
797
    *ZO419 = ZI419;
798
}
799
 
800
void
801
ZR1019 PROTO_N ((ZI558, ZO431, ZO459))
802
  PROTO_T (EXP ZI558 X EXP *ZO431 X EXP *ZO459)
803
{
804
    EXP ZI431;
805
    EXP ZI459;
806
 
807
    switch (CURRENT_TERMINAL) {
808
      case 41:
809
	{
810
	    NAMESPACE ZI512;
811
	    int ZI456;
812
 
813
	    ADVANCE_LEXER;
814
	    {
815
 
816
    (ZI512) = ctor_begin () ;
817
	    }
818
	    {
819
		switch (CURRENT_TERMINAL) {
820
		  case 1: case 2: case 3: case 4: case 7:
821
		  case 8: case 9: case 65: case 83:
822
		    {
823
			ZR1017 (ZI512);
824
			if ((CURRENT_TERMINAL) == 354) {
825
			    RESTORE_LEXER;
826
			    goto ZL1;
827
			}
828
			{
829
 (ZI456) = 1 ; 
830
			}
831
		    }
832
		    break;
833
		  default:
834
		    {
835
			{
836
 (ZI456) = 0 ; 
837
			}
838
		    }
839
		    break;
840
		}
841
	    }
842
	    {
843
 
844
    (ZI431) = ctor_end ( (ZI512), (ZI558), (ZI456) ) ;
845
	    }
846
	    {
847
 
848
    (ZI459) = NULL_exp ;
849
	    }
850
	}
851
	break;
852
      default:
853
	{
854
	    {
855
 
856
    (ZI459) = NULL_exp ;
857
    (ZI431) = ctor_none ( (ZI558), &(ZI459) ) ;
858
	    }
859
	}
860
	break;
861
      case 354:
862
	return;
863
    }
864
    goto ZL0;
865
  ZL1:;
866
    SAVE_LEXER (354);
867
    return;
868
  ZL0:;
869
    *ZO431 = ZI431;
870
    *ZO459 = ZI459;
871
}
872
 
873
void
874
ZR1289 PROTO_N ((ZI1287, ZO431))
875
  PROTO_T (EXP *ZI1287 X EXP *ZO431)
876
{
877
    EXP ZI431;
878
 
879
    switch (CURRENT_TERMINAL) {
880
      case 42:
881
	{
882
	    SID_LIST_EXP ZI480;
883
	    SID_LIST_EXP ZI497;
884
 
885
	    ADVANCE_LEXER;
886
	    ZR648 (&ZI480);
887
	    if ((CURRENT_TERMINAL) == 354) {
888
		RESTORE_LEXER;
889
		goto ZL1;
890
	    }
891
	    {
892
 
893
    CONS_exp ( (*ZI1287), (ZI480), (ZI497) ) ;
894
	    }
895
	    {
896
 
897
    (ZI431) = make_comma_exp ( (ZI497) ) ;
898
	    }
899
	}
900
	break;
901
      default:
902
	{
903
	    ZI431 = *ZI1287;
904
	}
905
	break;
906
      case 354:
907
	return;
908
    }
909
    goto ZL0;
910
  ZL1:;
911
    SAVE_LEXER (354);
912
    return;
913
  ZL0:;
914
    *ZO431 = ZI431;
915
}
916
 
917
void
918
ZR472 PROTO_N ((ZO419))
919
  PROTO_T (IDENTIFIER *ZO419)
920
{
921
    IDENTIFIER ZI419;
922
 
923
    if ((CURRENT_TERMINAL) == 354) {
924
	return;
925
    }
926
    {
927
	IDENTIFIER ZI460;
928
 
929
	{
930
	    switch (CURRENT_TERMINAL) {
931
	      case 7:
932
		{
933
		    {
934
 
935
    IDENTIFIER id = crt_token->pp_data.tok.id ;
936
    PPTOKEN *args = crt_token->pp_data.tok.args ;
937
    ZI460 = parse_type_template ( id, args, 0 ) ;
938
    crt_templ_qualifier = 1 ;
939
    RESCAN_LEXER ;
940
		    }
941
		    ADVANCE_LEXER;
942
		}
943
		break;
944
	      case 2:
945
		{
946
		    {
947
 
948
    ZI460 = crt_token->pp_data.id.use ;
949
		    }
950
		    ADVANCE_LEXER;
951
		}
952
		break;
953
	      default:
954
		goto ZL1;
955
	    }
956
	}
957
	{
958
 
959
    (ZI419) = (ZI460) ;
960
    crt_id_qualifier = qual_none ;
961
    last_namespace = crt_namespace ;
962
	}
963
    }
964
    goto ZL0;
965
  ZL1:;
966
    SAVE_LEXER (354);
967
    return;
968
  ZL0:;
969
    *ZO419 = ZI419;
970
}
971
 
972
void
973
ZR761 PROTO_N ((ZI554, ZO459))
974
  PROTO_T (int ZI554 X IDENTIFIER *ZO459)
975
{
976
    IDENTIFIER ZI459;
977
 
978
    if ((CURRENT_TERMINAL) == 354) {
979
	return;
980
    }
981
    {
982
	TYPE ZI574;
983
	BASE_TYPE ZI874;
984
	TYPE ZI1597;
985
	CV_SPEC ZI1598;
986
	BASE_TYPE ZI511;
987
	TYPE ZI875;
988
	CV_SPEC ZI876;
989
	DECL_SPEC ZI909;
990
	TYPE ZI879;
991
	DECL_SPEC ZI911;
992
	TYPE ZI414;
993
	IDENTIFIER ZI419;
994
	int ZI557;
995
 
996
	{
997
 
998
    /* Resolve type-specifiers from other declarators */
999
    (ZI0) = predict_tspec ( 0 ) ;
1000
	}
1001
	if (!ZI0)
1002
	    goto ZL2;
1003
	{
1004
 
1005
    (ZI574) = NULL_type ;
1006
	}
1007
	ZR872 (ZI574, &ZI874, &ZI1597, &ZI1598);
1008
	ZR885 (&ZI874, &ZI1597, &ZI1598, &ZI511, &ZI875, &ZI876);
1009
	if ((CURRENT_TERMINAL) == 354) {
1010
	    RESTORE_LEXER;
1011
	    goto ZL1;
1012
	}
1013
	{
1014
 (ZI909) = dspec_none ; 
1015
	}
1016
	{
1017
 
1018
    /* Complete a declaration specifier and a type */
1019
    (ZI911) = complete_dspec ( (ZI909), (ZI511), (ZI875), (ZI876) ) ;
1020
    (ZI879) = complete_pre_type ( (ZI511), (ZI875), (ZI876), 0 ) ;
1021
    have_type_specifier = 0 ;
1022
	}
1023
	{
1024
 
1025
    crt_templ_qualifier = 0 ;
1026
	}
1027
	ZR961 (ZI879, &ZI414, &ZI419);
1028
	if ((CURRENT_TERMINAL) == 354) {
1029
	    RESTORE_LEXER;
1030
	    goto ZL1;
1031
	}
1032
	{
1033
 
1034
    (ZI557) = no_type_defns - (ZI554) ;
1035
	}
1036
	{
1037
 
1038
    (ZI459) = make_except_decl ( (ZI911), (ZI414), (ZI419), (ZI557) ) ;
1039
    have_type_declaration = TYPE_DECL_NONE ;
1040
    have_func_declarator = 0 ;
1041
	}
1042
	goto ZL0;
1043
    }
1044
    /*UNREACHED*/
1045
  ZL2:;
1046
    switch (CURRENT_TERMINAL) {
1047
      case 47: case 209:
1048
	{
1049
	    {
1050
		switch (CURRENT_TERMINAL) {
1051
		  case 47:
1052
		    {
1053
			ADVANCE_LEXER;
1054
		    }
1055
		    break;
1056
		  case 209:
1057
		    {
1058
			ADVANCE_LEXER;
1059
		    }
1060
		    break;
1061
		  default:
1062
		    goto ZL1;
1063
		}
1064
	    }
1065
	    {
1066
 
1067
    (ZI459) = NULL_id ;
1068
	    }
1069
	}
1070
	break;
1071
      default:
1072
	goto ZL1;
1073
    }
1074
    goto ZL0;
1075
  ZL1:;
1076
    SAVE_LEXER (354);
1077
    return;
1078
  ZL0:;
1079
    *ZO459 = ZI459;
1080
}
1081
 
1082
void
1083
ZR817 PROTO_N ((ZO816))
1084
  PROTO_T (BASE_TYPE *ZO816)
1085
{
1086
    BASE_TYPE ZI816;
1087
 
1088
    switch (CURRENT_TERMINAL) {
1089
      case 129:
1090
	{
1091
	    ADVANCE_LEXER;
1092
	    {
1093
 (ZI816) = btype_class ; 
1094
	    }
1095
	}
1096
	break;
1097
      case 118:
1098
	{
1099
	    ADVANCE_LEXER;
1100
	    {
1101
 (ZI816) = btype_struct ; 
1102
	    }
1103
	}
1104
	break;
1105
      case 121:
1106
	{
1107
	    ADVANCE_LEXER;
1108
	    {
1109
 (ZI816) = btype_union ; 
1110
	    }
1111
	}
1112
	break;
1113
      case 354:
1114
	return;
1115
      default:
1116
	goto ZL1;
1117
    }
1118
    goto ZL0;
1119
  ZL1:;
1120
    SAVE_LEXER (354);
1121
    return;
1122
  ZL0:;
1123
    *ZO816 = ZI816;
1124
}
1125
 
1126
void
1127
ZR999 PROTO_N ((ZI459, ZO497))
1128
  PROTO_T (IDENTIFIER ZI459 X SID_LIST_EXP *ZO497)
1129
{
1130
    SID_LIST_EXP ZI497;
1131
 
1132
    if ((CURRENT_TERMINAL) == 354) {
1133
	return;
1134
    }
1135
    {
1136
	EXP ZI456;
1137
	EXP ZI493;
1138
	SID_LIST_EXP ZI480;
1139
 
1140
	ZR998 (ZI459, &ZI456);
1141
	if ((CURRENT_TERMINAL) == 354) {
1142
	    RESTORE_LEXER;
1143
	    goto ZL1;
1144
	}
1145
	{
1146
 
1147
    MAKE_exp_location ( type_void, crt_loc, (ZI456), (ZI493) ) ;
1148
	}
1149
	{
1150
	    switch (CURRENT_TERMINAL) {
1151
	      case 42:
1152
		{
1153
		    ADVANCE_LEXER;
1154
		    ZR1001 (&ZI459, &ZI480);
1155
		    if ((CURRENT_TERMINAL) == 354) {
1156
			RESTORE_LEXER;
1157
			goto ZL1;
1158
		    }
1159
		}
1160
		break;
1161
	      default:
1162
		{
1163
		    {
1164
 
1165
    (ZI480) = NULL_list ( EXP ) ;
1166
		    }
1167
		}
1168
		break;
1169
	    }
1170
	}
1171
	{
1172
 
1173
    CONS_exp ( (ZI493), (ZI480), (ZI497) ) ;
1174
	}
1175
    }
1176
    goto ZL0;
1177
  ZL1:;
1178
    SAVE_LEXER (354);
1179
    return;
1180
  ZL0:;
1181
    *ZO497 = ZI497;
1182
}
1183
 
1184
void
1185
ZR1290 PROTO_N ((ZI493, ZO497))
1186
  PROTO_T (EXP *ZI493 X SID_LIST_EXP *ZO497)
1187
{
1188
    SID_LIST_EXP ZI497;
1189
 
1190
    switch (CURRENT_TERMINAL) {
1191
      case 42:
1192
	{
1193
	    SID_LIST_EXP ZI480;
1194
 
1195
	    ADVANCE_LEXER;
1196
	    ZR648 (&ZI480);
1197
	    if ((CURRENT_TERMINAL) == 354) {
1198
		RESTORE_LEXER;
1199
		goto ZL1;
1200
	    }
1201
	    {
1202
 
1203
    CONS_exp ( (*ZI493), (ZI480), (ZI497) ) ;
1204
	    }
1205
	}
1206
	break;
1207
      default:
1208
	{
1209
	    SID_LIST_EXP ZI480;
1210
 
1211
	    {
1212
 
1213
    (ZI480) = NULL_list ( EXP ) ;
1214
	    }
1215
	    {
1216
 
1217
    CONS_exp ( (*ZI493), (ZI480), (ZI497) ) ;
1218
	    }
1219
	}
1220
	break;
1221
      case 354:
1222
	return;
1223
    }
1224
    goto ZL0;
1225
  ZL1:;
1226
    SAVE_LEXER (354);
1227
    return;
1228
  ZL0:;
1229
    *ZO497 = ZI497;
1230
}
1231
 
1232
void
1233
ZR834 PROTO_N ((ZO1166))
1234
  PROTO_T (EXP *ZO1166)
1235
{
1236
    EXP ZI1166;
1237
 
1238
    if ((CURRENT_TERMINAL) == 354) {
1239
	return;
1240
    }
1241
    {
1242
	EXP ZI558;
1243
	EXP ZI497;
1244
 
1245
	switch (CURRENT_TERMINAL) {
1246
	  case 26:
1247
	    {
1248
 
1249
    ZI558 = crt_token->pp_data.exp ;
1250
	    }
1251
	    break;
1252
	  default:
1253
	    goto ZL1;
1254
	}
1255
	ADVANCE_LEXER;
1256
	{
1257
 
1258
    EXP c = crt_hash_cond ;
1259
    crt_hash_cond = make_if_cond ( (ZI558), c ) ;
1260
    (ZI497) = c ;
1261
	}
1262
	{
1263
 
1264
    target_decl ( lex_if, (ZI558) ) ;
1265
	}
1266
	ZR833 ();
1267
	ZR1167 (ZI497, &ZI1166);
1268
	if ((CURRENT_TERMINAL) == 354) {
1269
	    RESTORE_LEXER;
1270
	    goto ZL1;
1271
	}
1272
    }
1273
    goto ZL0;
1274
  ZL1:;
1275
    SAVE_LEXER (354);
1276
    return;
1277
  ZL0:;
1278
    *ZO1166 = ZI1166;
1279
}
1280
 
1281
void
1282
parse_tok_type PROTO_N ((ZO414))
1283
  PROTO_T (TYPE *ZO414)
1284
{
1285
    TYPE ZI414;
1286
 
1287
    if ((CURRENT_TERMINAL) == 354) {
1288
	return;
1289
    }
1290
    {
1291
	BASE_TYPE ZI511;
1292
	TYPE ZI497;
1293
	CV_SPEC ZI783;
1294
	TYPE ZI480;
1295
 
1296
	ZR873 (&ZI511, &ZI497, &ZI783);
1297
	if ((CURRENT_TERMINAL) == 354) {
1298
	    RESTORE_LEXER;
1299
	    goto ZL1;
1300
	}
1301
	{
1302
 
1303
    (ZI480) = complete_pre_type ( (ZI511), (ZI497), (ZI783), 1 ) ;
1304
    have_type_specifier = 0 ;
1305
	}
1306
	ZR955 (ZI480, &ZI414);
1307
	if ((CURRENT_TERMINAL) == 354) {
1308
	    RESTORE_LEXER;
1309
	    goto ZL1;
1310
	}
1311
    }
1312
    goto ZL0;
1313
  ZL1:;
1314
    SAVE_LEXER (354);
1315
    return;
1316
  ZL0:;
1317
    *ZO414 = ZI414;
1318
}
1319
 
1320
void
1321
ZR1291 PROTO_N ((ZO431))
1322
  PROTO_T (EXP *ZO431)
1323
{
1324
    EXP ZI431;
1325
 
1326
    switch (CURRENT_TERMINAL) {
1327
      case 297:
1328
	{
1329
	    EXP ZI493;
1330
 
1331
	    ADVANCE_LEXER;
1332
	    ZR491 (&ZI493);
1333
	    if ((CURRENT_TERMINAL) == 354) {
1334
		RESTORE_LEXER;
1335
		goto ZL1;
1336
	    }
1337
	    {
1338
 
1339
    (ZI431) = make_set_exp ( (ZI493) ) ;
1340
	    }
1341
	    switch (CURRENT_TERMINAL) {
1342
	      case 346:
1343
		break;
1344
	      default:
1345
		goto ZL1;
1346
	    }
1347
	    ADVANCE_LEXER;
1348
	}
1349
	break;
1350
      case 323:
1351
	{
1352
	    EXP ZI493;
1353
 
1354
	    ADVANCE_LEXER;
1355
	    ZR491 (&ZI493);
1356
	    if ((CURRENT_TERMINAL) == 354) {
1357
		RESTORE_LEXER;
1358
		goto ZL1;
1359
	    }
1360
	    {
1361
 
1362
    (ZI431) = make_unused_exp ( (ZI493) ) ;
1363
	    }
1364
	    switch (CURRENT_TERMINAL) {
1365
	      case 346:
1366
		break;
1367
	      default:
1368
		goto ZL1;
1369
	    }
1370
	    ADVANCE_LEXER;
1371
	}
1372
	break;
1373
      case 354:
1374
	return;
1375
      default:
1376
	goto ZL1;
1377
    }
1378
    goto ZL0;
1379
  ZL1:;
1380
    SAVE_LEXER (354);
1381
    return;
1382
  ZL0:;
1383
    *ZO431 = ZI431;
1384
}
1385
 
1386
void
1387
ZR616 PROTO_Z ()
1388
{
1389
    switch (CURRENT_TERMINAL) {
1390
      case 48:
1391
	{
1392
	    ADVANCE_LEXER;
1393
	}
1394
	break;
1395
      case 63:
1396
	{
1397
	    {
1398
		{
1399
		    switch (CURRENT_TERMINAL) {
1400
		      case 63:
1401
			break;
1402
		      default:
1403
			goto ZL1;
1404
		    }
1405
		    ADVANCE_LEXER;
1406
		}
1407
	    }
1408
	}
1409
	break;
1410
      case 354:
1411
	return;
1412
      default:
1413
	goto ZL1;
1414
    }
1415
    return;
1416
  ZL1:;
1417
    SAVE_LEXER (354);
1418
    return;
1419
}
1420
 
1421
void
1422
ZR620 PROTO_N ((ZO1211))
1423
  PROTO_T (EXP *ZO1211)
1424
{
1425
    EXP ZI1211;
1426
 
1427
    if ((CURRENT_TERMINAL) == 354) {
1428
	return;
1429
    }
1430
    {
1431
	EXP ZI431;
1432
 
1433
	ZR617 (&ZI431);
1434
	ZR1212 (ZI431, &ZI1211);
1435
	if ((CURRENT_TERMINAL) == 354) {
1436
	    RESTORE_LEXER;
1437
	    goto ZL1;
1438
	}
1439
    }
1440
    goto ZL0;
1441
  ZL1:;
1442
    SAVE_LEXER (354);
1443
    return;
1444
  ZL0:;
1445
    *ZO1211 = ZI1211;
1446
}
1447
 
1448
void
1449
ZR1016 PROTO_N ((ZI512))
1450
  PROTO_T (NAMESPACE ZI512)
1451
{
1452
    switch (CURRENT_TERMINAL) {
1453
      case 65:
1454
	{
1455
	    SID_LIST_EXP ZI497;
1456
	    EXP ZI431;
1457
	    IDENTIFIER ZI419;
1458
 
1459
	    ADVANCE_LEXER;
1460
	    ZR500 (&ZI497);
1461
	    switch (CURRENT_TERMINAL) {
1462
	      case 39:
1463
		break;
1464
	      case 354:
1465
		RESTORE_LEXER;
1466
		goto ZL1;
1467
	      default:
1468
		goto ZL1;
1469
	    }
1470
	    ADVANCE_LEXER;
1471
	    {
1472
 
1473
    MAKE_exp_initialiser ( type_void, (ZI497), NULL_list ( OFFSET ), 0, 0, 0, (ZI431) ) ;
1474
	    }
1475
	    {
1476
 
1477
    (ZI419) = NULL_id ;
1478
    crt_id_qualifier = qual_none ;
1479
    qual_namespace = NULL_nspace ;
1480
	    }
1481
	    {
1482
 
1483
    ctor_initialise ( (ZI512), (ZI419), (ZI431) ) ;
1484
	    }
1485
	}
1486
	break;
1487
      case 1: case 2: case 3: case 4: case 7:
1488
      case 8: case 9: case 83:
1489
	{
1490
	    NAMESPACE ZI425;
1491
	    IDENTIFIER ZI820;
1492
	    IDENTIFIER ZI419;
1493
	    QUALIFIER ZI455;
1494
	    int ZI456;
1495
	    SID_LIST_EXP ZI497;
1496
	    EXP ZI431;
1497
 
1498
	    ZR428 (&ZI425);
1499
	    ZR508 (&ZI820);
1500
	    if ((CURRENT_TERMINAL) == 354) {
1501
		RESTORE_LEXER;
1502
		goto ZL1;
1503
	    }
1504
	    {
1505
 
1506
    (ZI419) = check_id ( (ZI425), (ZI820), 0 ) ;
1507
    last_namespace = (ZI425) ;
1508
	    }
1509
	    {
1510
 
1511
    (ZI455) = crt_id_qualifier ;
1512
    (ZI456) = crt_templ_qualifier ;
1513
	    }
1514
	    switch (CURRENT_TERMINAL) {
1515
	      case 65:
1516
		break;
1517
	      default:
1518
		goto ZL1;
1519
	    }
1520
	    ADVANCE_LEXER;
1521
	    ZR500 (&ZI497);
1522
	    switch (CURRENT_TERMINAL) {
1523
	      case 39:
1524
		break;
1525
	      case 354:
1526
		RESTORE_LEXER;
1527
		goto ZL1;
1528
	      default:
1529
		goto ZL1;
1530
	    }
1531
	    ADVANCE_LEXER;
1532
	    {
1533
 
1534
    crt_id_qualifier = (ZI455) ;
1535
    crt_templ_qualifier = (ZI456) ;
1536
	    }
1537
	    {
1538
 
1539
    MAKE_exp_initialiser ( type_void, (ZI497), NULL_list ( OFFSET ), 0, 0, 0, (ZI431) ) ;
1540
	    }
1541
	    {
1542
 
1543
    ctor_initialise ( (ZI512), (ZI419), (ZI431) ) ;
1544
	    }
1545
	}
1546
	break;
1547
      case 354:
1548
	return;
1549
      default:
1550
	goto ZL1;
1551
    }
1552
    return;
1553
  ZL1:;
1554
    SAVE_LEXER (354);
1555
    return;
1556
}
1557
 
1558
void
1559
ZR644 PROTO_N ((ZO431))
1560
  PROTO_T (EXP *ZO431)
1561
{
1562
    EXP ZI431;
1563
 
1564
    if ((CURRENT_TERMINAL) == 354) {
1565
	return;
1566
    }
1567
    {
1568
	switch (CURRENT_TERMINAL) {
1569
	  case 345:
1570
	    break;
1571
	  default:
1572
	    goto ZL1;
1573
	}
1574
	ADVANCE_LEXER;
1575
	ZR1291 (&ZI431);
1576
	if ((CURRENT_TERMINAL) == 354) {
1577
	    RESTORE_LEXER;
1578
	    goto ZL1;
1579
	}
1580
    }
1581
    goto ZL0;
1582
  ZL1:;
1583
    SAVE_LEXER (354);
1584
    return;
1585
  ZL0:;
1586
    *ZO431 = ZI431;
1587
}
1588
 
1589
void
1590
ZR1167 PROTO_N ((ZI1165, ZO1166))
1591
  PROTO_T (EXP ZI1165 X EXP *ZO1166)
1592
{
1593
    EXP ZI1166;
1594
 
1595
  ZL2_1167:;
1596
    switch (CURRENT_TERMINAL) {
1597
      case 27:
1598
	{
1599
	    EXP ZI497;
1600
	    EXP ZI558;
1601
 
1602
	    ZI497 = ZI1165;
1603
	    {
1604
 
1605
    ZI558 = crt_token->pp_data.exp ;
1606
	    }
1607
	    ADVANCE_LEXER;
1608
	    {
1609
 
1610
    EXP c = make_else_cond ( crt_hash_cond ) ;
1611
    crt_hash_cond = make_if_cond ( (ZI558), c ) ;
1612
	    }
1613
	    {
1614
 
1615
    target_decl ( lex_elif, (ZI558) ) ;
1616
	    }
1617
	    ZR833 ();
1618
	    if ((CURRENT_TERMINAL) == 354) {
1619
		RESTORE_LEXER;
1620
		goto ZL1;
1621
	    } else {
1622
		ZI1165 = ZI497;
1623
		goto ZL2_1167;
1624
	    }
1625
	}
1626
	/*UNREACHED*/
1627
      default:
1628
	{
1629
	    ZI1166 = ZI1165;
1630
	}
1631
	break;
1632
      case 354:
1633
	return;
1634
    }
1635
    goto ZL0;
1636
  ZL1:;
1637
    SAVE_LEXER (354);
1638
    return;
1639
  ZL0:;
1640
    *ZO1166 = ZI1166;
1641
}
1642
 
1643
void
1644
ZR583 PROTO_N ((ZO450))
1645
  PROTO_T (int *ZO450)
1646
{
1647
    int ZI450;
1648
 
1649
    if ((CURRENT_TERMINAL) == 354) {
1650
	return;
1651
    }
1652
    {
1653
	switch (CURRENT_TERMINAL) {
1654
	  case 131:
1655
	    break;
1656
	  default:
1657
	    goto ZL1;
1658
	}
1659
	ADVANCE_LEXER;
1660
	ZR1431 (&ZI450);
1661
	if ((CURRENT_TERMINAL) == 354) {
1662
	    RESTORE_LEXER;
1663
	    goto ZL1;
1664
	}
1665
    }
1666
    goto ZL0;
1667
  ZL1:;
1668
    SAVE_LEXER (354);
1669
    return;
1670
  ZL0:;
1671
    *ZO450 = ZI450;
1672
}
1673
 
1674
void
1675
parse_type_param PROTO_N ((ZO459))
1676
  PROTO_T (IDENTIFIER *ZO459)
1677
{
1678
    IDENTIFIER ZI459;
1679
 
1680
    switch (CURRENT_TERMINAL) {
1681
      case 147:
1682
	{
1683
	    int ZI431;
1684
	    TOKEN ZI497;
1685
	    TYPE ZI414;
1686
	    DECL_SPEC ZI689;
1687
	    TYPE ZI875;
1688
	    IDENTIFIER ZI419;
1689
	    IDENTIFIER ZI460;
1690
 
1691
	    ADVANCE_LEXER;
1692
	    {
1693
 (ZI431) = 0 ; 
1694
	    }
1695
	    {
1696
 
1697
    (ZI497) = template_params ( (ZI431) ) ;
1698
    RESCAN_LEXER ;
1699
	    }
1700
	    {
1701
 
1702
    (ZI414) = NULL_type ;
1703
	    }
1704
	    {
1705
 (ZI689) = dspec_none ; 
1706
	    }
1707
	    {
1708
 
1709
    (ZI875) = make_template_type ( (ZI497), (ZI414) ) ;
1710
	    }
1711
	    switch (CURRENT_TERMINAL) {
1712
	      case 129:
1713
		break;
1714
	      default:
1715
		goto ZL1;
1716
	    }
1717
	    ADVANCE_LEXER;
1718
	    ZR1115 (&ZI419);
1719
	    if ((CURRENT_TERMINAL) == 354) {
1720
		RESTORE_LEXER;
1721
		goto ZL1;
1722
	    }
1723
	    {
1724
 
1725
    (ZI459) = make_template_param ( (ZI875), (ZI419) ) ;
1726
    UNUSED ( (ZI689) ) ;
1727
	    }
1728
	    {
1729
		switch (CURRENT_TERMINAL) {
1730
		  case 36:
1731
		    {
1732
			IDENTIFIER ZI820;
1733
 
1734
			ADVANCE_LEXER;
1735
			{
1736
 
1737
    in_default_arg++ ;
1738
			}
1739
			ZR484 (&ZI820);
1740
			if ((CURRENT_TERMINAL) == 354) {
1741
			    RESTORE_LEXER;
1742
			    goto ZL1;
1743
			}
1744
			{
1745
 
1746
    (ZI460) = (ZI820) ;
1747
    crt_id_qualifier = qual_none ;
1748
    last_namespace = crt_namespace ;
1749
			}
1750
			{
1751
 
1752
    in_default_arg-- ;
1753
			}
1754
		    }
1755
		    break;
1756
		  default:
1757
		    {
1758
			{
1759
 
1760
    (ZI460) = NULL_id ;
1761
    crt_id_qualifier = qual_none ;
1762
    qual_namespace = NULL_nspace ;
1763
			}
1764
		    }
1765
		    break;
1766
		}
1767
	    }
1768
	    {
1769
 
1770
    init_template_param ( (ZI459), (ZI460) ) ;
1771
	    }
1772
	    {
1773
 
1774
    end_template ( (ZI497) ) ;
1775
	    }
1776
	    {
1777
 
1778
    RESCAN_LEXER ;
1779
	    }
1780
	}
1781
	break;
1782
      case 129: case 153:
1783
	{
1784
	    IDENTIFIER ZI419;
1785
	    TYPE ZI414;
1786
 
1787
	    {
1788
		switch (CURRENT_TERMINAL) {
1789
		  case 129:
1790
		    {
1791
			ADVANCE_LEXER;
1792
		    }
1793
		    break;
1794
		  case 153:
1795
		    {
1796
			ADVANCE_LEXER;
1797
		    }
1798
		    break;
1799
		  default:
1800
		    goto ZL1;
1801
		}
1802
	    }
1803
	    ZR1115 (&ZI419);
1804
	    if ((CURRENT_TERMINAL) == 354) {
1805
		RESTORE_LEXER;
1806
		goto ZL1;
1807
	    }
1808
	    {
1809
 
1810
    (ZI459) = make_type_param ( (ZI419) ) ;
1811
	    }
1812
	    {
1813
		switch (CURRENT_TERMINAL) {
1814
		  case 36:
1815
		    {
1816
			ADVANCE_LEXER;
1817
			{
1818
 
1819
    in_default_arg++ ;
1820
			}
1821
			parse_tok_type (&ZI414);
1822
			if ((CURRENT_TERMINAL) == 354) {
1823
			    RESTORE_LEXER;
1824
			    goto ZL1;
1825
			}
1826
			{
1827
 
1828
    in_default_arg-- ;
1829
			}
1830
			{
1831
 
1832
    object_type ( (ZI414), null_tag ) ;
1833
			}
1834
		    }
1835
		    break;
1836
		  default:
1837
		    {
1838
			{
1839
 
1840
    (ZI414) = NULL_type ;
1841
			}
1842
		    }
1843
		    break;
1844
		}
1845
	    }
1846
	    {
1847
 
1848
    init_type_param ( (ZI459), (ZI414) ) ;
1849
	    }
1850
	}
1851
	break;
1852
      case 354:
1853
	return;
1854
      default:
1855
	goto ZL1;
1856
    }
1857
    goto ZL0;
1858
  ZL1:;
1859
    {
1860
	{
1861
 
1862
    /* Syntax errors */
1863
    ERROR err = ERR_lex_parse ( crt_token ) ;
1864
    report ( crt_loc, err ) ;
1865
    have_syntax_error = 1 ;
1866
	}
1867
	{
1868
 
1869
    (ZI459) = NULL_id ;
1870
	}
1871
    }
1872
  ZL0:;
1873
    *ZO459 = ZI459;
1874
}
1875
 
1876
void
1877
ZR832 PROTO_N ((ZI414, ZI689))
1878
  PROTO_T (TYPE ZI414 X DECL_SPEC ZI689)
1879
{
1880
    if ((CURRENT_TERMINAL) == 354) {
1881
	return;
1882
    }
1883
  ZL2_832:;
1884
    {
1885
	BASE_TYPE ZI1335;
1886
	TYPE ZI1336;
1887
	CV_SPEC ZI1337;
1888
	DECL_SPEC ZI1338;
1889
	BASE_TYPE ZI511;
1890
	TYPE ZI875;
1891
	CV_SPEC ZI876;
1892
	DECL_SPEC ZI909;
1893
	DECL_SPEC ZI911;
1894
 
1895
	{
1896
 
1897
    /* Resolve declaration-specifiers from other declarators */
1898
    (ZI0) = predict_dspec ( 0 ) ;
1899
	}
1900
	if (!ZI0)
1901
	    goto ZL3;
1902
	ZR906 (ZI414, &ZI1335, &ZI1336, &ZI1337, &ZI1338);
1903
	ZR917 (&ZI414, &ZI1335, &ZI1336, &ZI1337, &ZI1338, &ZI511, &ZI875, &ZI876, &ZI909);
1904
	if ((CURRENT_TERMINAL) == 354) {
1905
	    RESTORE_LEXER;
1906
	    goto ZL1;
1907
	}
1908
	{
1909
 
1910
    /* Combine two declaration specifiers */
1911
    DECL_SPEC d = ( ( (ZI689) & (ZI909) ) & dspec_duplicate ) ;
1912
    if ( d ) report ( crt_loc, ERR_dcl_spec_dup ( d ) ) ;
1913
    (ZI911) = ( (ZI689) | (ZI909) ) ;
1914
	}
1915
	ZR1339 (&ZI414, &ZI511, &ZI875, &ZI876, &ZI911);
1916
	if ((CURRENT_TERMINAL) == 354) {
1917
	    RESTORE_LEXER;
1918
	    goto ZL1;
1919
	} else {
1920
	    goto ZL2_832;
1921
	}
1922
    }
1923
    /*UNREACHED*/
1924
  ZL3:;
1925
    switch (CURRENT_TERMINAL) {
1926
      case 142: case 143: case 144:
1927
	{
1928
	    DECL_SPEC ZI456;
1929
 
1930
	    ZR827 (&ZI456);
1931
	    switch (CURRENT_TERMINAL) {
1932
	      case 41:
1933
		break;
1934
	      case 354:
1935
		RESTORE_LEXER;
1936
		goto ZL1;
1937
	      default:
1938
		goto ZL1;
1939
	    }
1940
	    ADVANCE_LEXER;
1941
	    {
1942
 crt_access = (ZI456) ; 
1943
	    }
1944
	    goto ZL2_832;
1945
	}
1946
	/*UNREACHED*/
1947
      case 134: case 147:
1948
	{
1949
	    ZR1089 (ZI414, ZI689);
1950
	    if ((CURRENT_TERMINAL) == 354) {
1951
		RESTORE_LEXER;
1952
		goto ZL1;
1953
	    } else {
1954
		goto ZL2_832;
1955
	    }
1956
	}
1957
	/*UNREACHED*/
1958
      case 1: case 2: case 3: case 4: case 5:
1959
      case 6: case 7: case 8: case 9: case 10:
1960
      case 11: case 33: case 41: case 65: case 78:
1961
      case 83: case 141:
1962
	{
1963
	    BASE_TYPE ZI511;
1964
	    TYPE ZI875;
1965
	    CV_SPEC ZI876;
1966
	    DECL_SPEC ZI909;
1967
	    DECL_SPEC ZI911;
1968
	    TYPE ZI879;
1969
	    DECL_SPEC ZI1073;
1970
	    TYPE ZI1074;
1971
	    ACCESS_LIST ZI670;
1972
	    int ZI720;
1973
	    IDENTIFIER ZI459;
1974
 
1975
	    {
1976
 (ZI511) = btype_none ; 
1977
	    }
1978
	    {
1979
 
1980
    (ZI875) = NULL_type ;
1981
	    }
1982
	    {
1983
 (ZI876) = cv_none ; 
1984
	    }
1985
	    {
1986
 (ZI909) = dspec_none ; 
1987
	    }
1988
	    {
1989
 
1990
    /* Combine two declaration specifiers */
1991
    DECL_SPEC d = ( ( (ZI689) & (ZI909) ) & dspec_duplicate ) ;
1992
    if ( d ) report ( crt_loc, ERR_dcl_spec_dup ( d ) ) ;
1993
    (ZI911) = ( (ZI689) | (ZI909) ) ;
1994
	    }
1995
	    {
1996
 
1997
    /* Complete a declaration specifier and a type */
1998
    (ZI1073) = complete_dspec ( (ZI911), (ZI511), (ZI875), (ZI876) ) ;
1999
    (ZI879) = complete_pre_type ( (ZI511), (ZI875), (ZI876), 0 ) ;
2000
    have_type_specifier = 0 ;
2001
	    }
2002
	    {
2003
 
2004
    (ZI1074) = ( IS_NULL_type ( (ZI414) ) ? (ZI879) : inject_pre_type ( (ZI414), (ZI879), 1 ) ) ;
2005
	    }
2006
	    {
2007
 
2008
    save_access ( &(ZI670) ) ;
2009
	    }
2010
	    {
2011
 (ZI720) = 1 ; 
2012
	    }
2013
	    {
2014
 
2015
    crt_templ_qualifier = 0 ;
2016
	    }
2017
	    ZR1084 (ZI1073, ZI1074, ZI511, ZI670, ZI720, &ZI459);
2018
	    ZR1092 (&ZI511, &ZI1073, &ZI1074, &ZI670, &ZI459);
2019
	    if ((CURRENT_TERMINAL) == 354) {
2020
		RESTORE_LEXER;
2021
		goto ZL1;
2022
	    } else {
2023
		goto ZL2_832;
2024
	    }
2025
	}
2026
	/*UNREACHED*/
2027
      case 26: case 154:
2028
	{
2029
	    {
2030
 
2031
    if ( !IS_NULL_type ( (ZI414) ) ) report ( crt_loc, ERR_temp_decl_bad () ) ;
2032
    UNUSED ( (ZI689) ) ;
2033
	    }
2034
	    ZR1340 ();
2035
	    if ((CURRENT_TERMINAL) == 354) {
2036
		RESTORE_LEXER;
2037
		goto ZL1;
2038
	    } else {
2039
		goto ZL2_832;
2040
	    }
2041
	}
2042
	/*UNREACHED*/
2043
      case 77:
2044
	{
2045
	    TYPE ZI875;
2046
	    BASE_TYPE ZI511;
2047
	    CV_SPEC ZI876;
2048
 
2049
	    {
2050
 
2051
    (ZI875) = NULL_type ;
2052
	    }
2053
	    {
2054
 (ZI511) = btype_none ; 
2055
	    }
2056
	    {
2057
 (ZI876) = cv_none ; 
2058
	    }
2059
	    {
2060
 
2061
    IGNORE empty_decl ( (ZI689), (ZI414), (ZI511), (ZI875), (ZI876), last_lex_token, 1 ) ;
2062
    have_type_declaration = TYPE_DECL_NONE ;
2063
    have_func_declarator = 0 ;
2064
    have_type_specifier = 0 ;
2065
	    }
2066
	    ADVANCE_LEXER;
2067
	    goto ZL2_832;
2068
	}
2069
	/*UNREACHED*/
2070
      default:
2071
	break;
2072
    }
2073
    return;
2074
  ZL1:;
2075
    SAVE_LEXER (354);
2076
    return;
2077
}
2078
 
2079
void
2080
ZR413 PROTO_Z ()
2081
{
2082
    if ((CURRENT_TERMINAL) == 354) {
2083
	return;
2084
    }
2085
    {
2086
	switch (CURRENT_TERMINAL) {
2087
	  case 39:
2088
	    break;
2089
	  default:
2090
	    goto ZL1;
2091
	}
2092
	ADVANCE_LEXER;
2093
    }
2094
    return;
2095
  ZL1:;
2096
    {
2097
	int ZI414;
2098
 
2099
	{
2100
 (ZI414) = lex_close_Hround ; 
2101
	}
2102
	{
2103
 
2104
    /* Expected symbol */
2105
    int p = primary_form ( crt_lex_token ) ;
2106
    if ( p != (ZI414) ) report ( crt_loc, ERR_lex_expect ( (ZI414) ) ) ;
2107
	}
2108
    }
2109
}
2110
 
2111
void
2112
ZR553 PROTO_N ((ZI450, ZO431))
2113
  PROTO_T (int ZI450 X EXP *ZO431)
2114
{
2115
    EXP ZI431;
2116
 
2117
    if ((CURRENT_TERMINAL) == 354) {
2118
	return;
2119
    }
2120
    {
2121
	int ZI554;
2122
	int ZI555;
2123
	EXP ZI558;
2124
 
2125
	{
2126
 
2127
    suppress_usage++ ;
2128
	}
2129
	{
2130
 
2131
    (ZI554) = no_side_effects ;
2132
	}
2133
	{
2134
 
2135
    (ZI555) = no_type_defns ;
2136
	}
2137
	switch (CURRENT_TERMINAL) {
2138
	  case 65:
2139
	    break;
2140
	  default:
2141
	    goto ZL1;
2142
	}
2143
	ADVANCE_LEXER;
2144
	{
2145
	    {
2146
		TYPE ZI414;
2147
		int ZI559;
2148
 
2149
		{
2150
 
2151
    /* Resolve type-ids from expressions */
2152
    (ZI0) = predict_typeid ( 1 ) ;
2153
		}
2154
		if (!ZI0)
2155
		    goto ZL3;
2156
		ZR548 (&ZI414, &ZI559);
2157
		switch (CURRENT_TERMINAL) {
2158
		  case 39:
2159
		    break;
2160
		  case 354:
2161
		    RESTORE_LEXER;
2162
		    goto ZL1;
2163
		  default:
2164
		    goto ZL1;
2165
		}
2166
		ADVANCE_LEXER;
2167
		{
2168
 
2169
    (ZI558) = make_typeid_type ( (ZI450), (ZI414), (ZI559) ) ;
2170
		}
2171
		goto ZL2;
2172
	    }
2173
	    /*UNREACHED*/
2174
	  ZL3:;
2175
	    switch (CURRENT_TERMINAL) {
2176
	      case 1: case 2: case 3: case 5: case 6:
2177
	      case 7: case 8: case 9: case 17: case 18:
2178
	      case 19: case 20: case 21: case 22: case 23:
2179
	      case 25: case 33: case 43: case 59: case 61:
2180
	      case 62: case 65: case 69: case 71: case 78:
2181
	      case 83: case 85: case 97: case 102: case 106:
2182
	      case 110: case 111: case 114: case 115: case 116:
2183
	      case 122: case 123: case 127: case 130: case 131:
2184
	      case 132: case 135: case 140: case 141: case 145:
2185
	      case 146: case 148: case 149: case 150: case 152:
2186
	      case 156: case 170: case 184: case 205: case 209:
2187
	      case 285: case 297: case 298: case 323: case 329:
2188
	      case 345:
2189
		{
2190
		    EXP ZI493;
2191
		    int ZI557;
2192
 
2193
		    ZR491 (&ZI493);
2194
		    switch (CURRENT_TERMINAL) {
2195
		      case 39:
2196
			break;
2197
		      case 354:
2198
			RESTORE_LEXER;
2199
			goto ZL1;
2200
		      default:
2201
			goto ZL1;
2202
		    }
2203
		    ADVANCE_LEXER;
2204
		    {
2205
 
2206
    (ZI557) = no_side_effects - (ZI554) ;
2207
		    }
2208
		    {
2209
 
2210
    (ZI558) = make_typeid_exp ( (ZI450), (ZI493), (ZI557) ) ;
2211
		    }
2212
		}
2213
		break;
2214
	      default:
2215
		goto ZL1;
2216
	    }
2217
	  ZL2:;
2218
	}
2219
	{
2220
 
2221
    suppress_usage-- ;
2222
	}
2223
	ZI431 = ZI558;
2224
    }
2225
    goto ZL0;
2226
  ZL1:;
2227
    SAVE_LEXER (354);
2228
    return;
2229
  ZL0:;
2230
    *ZO431 = ZI431;
2231
}
2232
 
2233
void
2234
ZR593 PROTO_N ((ZI450, ZO431))
2235
  PROTO_T (int ZI450 X EXP *ZO431)
2236
{
2237
    EXP ZI431;
2238
 
2239
    if ((CURRENT_TERMINAL) == 354) {
2240
	return;
2241
    }
2242
    {
2243
	int ZI554;
2244
	int ZI555;
2245
	EXP ZI558;
2246
 
2247
	{
2248
 
2249
    suppress_usage++ ;
2250
	}
2251
	{
2252
 
2253
    (ZI554) = no_side_effects ;
2254
	}
2255
	{
2256
 
2257
    (ZI555) = no_type_defns ;
2258
	}
2259
	{
2260
	    switch (CURRENT_TERMINAL) {
2261
	      case 170:
2262
		{
2263
		    int ZI1414;
2264
		    EXP ZI493;
2265
		    int ZI557;
2266
		    int ZI559;
2267
		    TYPE ZI414;
2268
 
2269
		    ADVANCE_LEXER;
2270
		    {
2271
 (ZI1414) = lex_alignof ; 
2272
		    }
2273
		    ZR593 (ZI1414, &ZI493);
2274
		    if ((CURRENT_TERMINAL) == 354) {
2275
			RESTORE_LEXER;
2276
			goto ZL1;
2277
		    }
2278
		    {
2279
 
2280
    (ZI557) = no_side_effects - (ZI554) ;
2281
		    }
2282
		    {
2283
 
2284
    (ZI559) = no_type_defns - (ZI555) ;
2285
		    }
2286
		    {
2287
 
2288
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2289
		    }
2290
		    {
2291
 
2292
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2293
		    }
2294
		}
2295
		break;
2296
	      case 83:
2297
		{
2298
		    EXP ZI493;
2299
		    int ZI557;
2300
		    int ZI559;
2301
		    TYPE ZI414;
2302
 
2303
		    ADVANCE_LEXER;
2304
		    ZR1284 (&ZI493);
2305
		    if ((CURRENT_TERMINAL) == 354) {
2306
			RESTORE_LEXER;
2307
			goto ZL1;
2308
		    }
2309
		    {
2310
 
2311
    (ZI557) = no_side_effects - (ZI554) ;
2312
		    }
2313
		    {
2314
 
2315
    (ZI559) = no_type_defns - (ZI555) ;
2316
		    }
2317
		    {
2318
 
2319
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2320
		    }
2321
		    {
2322
 
2323
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2324
		    }
2325
		}
2326
		break;
2327
	      case 23:
2328
		{
2329
		    EXP ZI1279;
2330
		    EXP ZI493;
2331
		    int ZI557;
2332
		    int ZI559;
2333
		    TYPE ZI414;
2334
 
2335
		    {
2336
 
2337
    IDENTIFIER id = crt_token->pp_data.tok.id ;
2338
    PPTOKEN *args = crt_token->pp_data.tok.args ;
2339
    ZI1279 = parse_exp_token ( id, args ) ;
2340
    RESCAN_LEXER ;
2341
		    }
2342
		    ADVANCE_LEXER;
2343
		    ZR1240 (ZI1279, &ZI493);
2344
		    if ((CURRENT_TERMINAL) == 354) {
2345
			RESTORE_LEXER;
2346
			goto ZL1;
2347
		    }
2348
		    {
2349
 
2350
    (ZI557) = no_side_effects - (ZI554) ;
2351
		    }
2352
		    {
2353
 
2354
    (ZI559) = no_type_defns - (ZI555) ;
2355
		    }
2356
		    {
2357
 
2358
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2359
		    }
2360
		    {
2361
 
2362
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2363
		    }
2364
		}
2365
		break;
2366
	      case 25:
2367
		{
2368
		    TYPE ZI1265;
2369
		    BASE_TYPE ZI511;
2370
		    CV_SPEC ZI783;
2371
		    TYPE ZI1428;
2372
		    SID_LIST_EXP ZI497;
2373
		    EXP ZI1282;
2374
		    EXP ZI493;
2375
		    int ZI557;
2376
		    int ZI559;
2377
		    TYPE ZI414;
2378
 
2379
		    {
2380
 
2381
    IDENTIFIER id = crt_token->pp_data.tok.id ;
2382
    PPTOKEN *args = crt_token->pp_data.tok.args ;
2383
    ZI1265 = parse_type_token ( id, args ) ;
2384
    have_type_declaration = TYPE_DECL_NONE ;
2385
    have_type_specifier = 1 ;
2386
    RESCAN_LEXER ;
2387
		    }
2388
		    ADVANCE_LEXER;
2389
		    {
2390
 (ZI511) = btype_none ; 
2391
		    }
2392
		    {
2393
 (ZI783) = cv_none ; 
2394
		    }
2395
		    {
2396
 
2397
    (ZI1428) = complete_pre_type ( (ZI511), (ZI1265), (ZI783), 1 ) ;
2398
    have_type_specifier = 0 ;
2399
		    }
2400
		    switch (CURRENT_TERMINAL) {
2401
		      case 65:
2402
			break;
2403
		      default:
2404
			goto ZL1;
2405
		    }
2406
		    ADVANCE_LEXER;
2407
		    ZR500 (&ZI497);
2408
		    switch (CURRENT_TERMINAL) {
2409
		      case 39:
2410
			break;
2411
		      case 354:
2412
			RESTORE_LEXER;
2413
			goto ZL1;
2414
		      default:
2415
			goto ZL1;
2416
		    }
2417
		    ADVANCE_LEXER;
2418
		    {
2419
 
2420
    (ZI1282) = make_func_cast_exp ( (ZI1428), (ZI497) ) ;
2421
		    }
2422
		    ZR1240 (ZI1282, &ZI493);
2423
		    if ((CURRENT_TERMINAL) == 354) {
2424
			RESTORE_LEXER;
2425
			goto ZL1;
2426
		    }
2427
		    {
2428
 
2429
    (ZI557) = no_side_effects - (ZI554) ;
2430
		    }
2431
		    {
2432
 
2433
    (ZI559) = no_type_defns - (ZI555) ;
2434
		    }
2435
		    {
2436
 
2437
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2438
		    }
2439
		    {
2440
 
2441
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2442
		    }
2443
		}
2444
		break;
2445
	      case 130:
2446
		{
2447
		    TYPE ZI1417;
2448
		    EXP ZI1418;
2449
		    int ZI551;
2450
		    EXP ZI1271;
2451
		    EXP ZI493;
2452
		    int ZI557;
2453
		    int ZI559;
2454
		    TYPE ZI414;
2455
 
2456
		    ADVANCE_LEXER;
2457
		    ZR552 (&ZI1417, &ZI1418, &ZI551);
2458
		    if ((CURRENT_TERMINAL) == 354) {
2459
			RESTORE_LEXER;
2460
			goto ZL1;
2461
		    }
2462
		    {
2463
 
2464
    /* n is the number of type definitions in t */
2465
    (ZI1271) = make_const_cast_exp ( (ZI1417), (ZI1418), (ZI551) ) ;
2466
		    }
2467
		    ZR1240 (ZI1271, &ZI493);
2468
		    if ((CURRENT_TERMINAL) == 354) {
2469
			RESTORE_LEXER;
2470
			goto ZL1;
2471
		    }
2472
		    {
2473
 
2474
    (ZI557) = no_side_effects - (ZI554) ;
2475
		    }
2476
		    {
2477
 
2478
    (ZI559) = no_type_defns - (ZI555) ;
2479
		    }
2480
		    {
2481
 
2482
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2483
		    }
2484
		    {
2485
 
2486
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2487
		    }
2488
		}
2489
		break;
2490
	      case 132:
2491
		{
2492
		    TYPE ZI1423;
2493
		    EXP ZI1424;
2494
		    int ZI551;
2495
		    EXP ZI1274;
2496
		    EXP ZI493;
2497
		    int ZI557;
2498
		    int ZI559;
2499
		    TYPE ZI414;
2500
 
2501
		    ADVANCE_LEXER;
2502
		    ZR552 (&ZI1423, &ZI1424, &ZI551);
2503
		    if ((CURRENT_TERMINAL) == 354) {
2504
			RESTORE_LEXER;
2505
			goto ZL1;
2506
		    }
2507
		    {
2508
 
2509
    /* n is the number of type definitions in t */
2510
    (ZI1274) = make_dynamic_cast_exp ( (ZI1423), (ZI1424), (ZI551) ) ;
2511
		    }
2512
		    ZR1240 (ZI1274, &ZI493);
2513
		    if ((CURRENT_TERMINAL) == 354) {
2514
			RESTORE_LEXER;
2515
			goto ZL1;
2516
		    }
2517
		    {
2518
 
2519
    (ZI557) = no_side_effects - (ZI554) ;
2520
		    }
2521
		    {
2522
 
2523
    (ZI559) = no_type_defns - (ZI555) ;
2524
		    }
2525
		    {
2526
 
2527
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2528
		    }
2529
		    {
2530
 
2531
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2532
		    }
2533
		}
2534
		break;
2535
	      case 209:
2536
		{
2537
		    EXP ZI1277;
2538
		    EXP ZI493;
2539
		    int ZI557;
2540
		    int ZI559;
2541
		    TYPE ZI414;
2542
 
2543
		    ADVANCE_LEXER;
2544
		    {
2545
 
2546
    (ZI1277) = make_ellipsis_exp () ;
2547
		    }
2548
		    ZR1240 (ZI1277, &ZI493);
2549
		    if ((CURRENT_TERMINAL) == 354) {
2550
			RESTORE_LEXER;
2551
			goto ZL1;
2552
		    }
2553
		    {
2554
 
2555
    (ZI557) = no_side_effects - (ZI554) ;
2556
		    }
2557
		    {
2558
 
2559
    (ZI559) = no_type_defns - (ZI555) ;
2560
		    }
2561
		    {
2562
 
2563
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2564
		    }
2565
		    {
2566
 
2567
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2568
		    }
2569
		}
2570
		break;
2571
	      case 9:
2572
		{
2573
		    NAMESPACE ZI425;
2574
		    EXP ZI493;
2575
		    int ZI557;
2576
		    int ZI559;
2577
		    TYPE ZI414;
2578
 
2579
		    {
2580
 
2581
    ZI425 = crt_token->pp_data.ns ;
2582
		    }
2583
		    ADVANCE_LEXER;
2584
		    ZR1267 (&ZI425, &ZI493);
2585
		    if ((CURRENT_TERMINAL) == 354) {
2586
			RESTORE_LEXER;
2587
			goto ZL1;
2588
		    }
2589
		    {
2590
 
2591
    (ZI557) = no_side_effects - (ZI554) ;
2592
		    }
2593
		    {
2594
 
2595
    (ZI559) = no_type_defns - (ZI555) ;
2596
		    }
2597
		    {
2598
 
2599
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2600
		    }
2601
		    {
2602
 
2603
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2604
		    }
2605
		}
2606
		break;
2607
	      case 61:
2608
		{
2609
		    EXP ZI1407;
2610
		    EXP ZI493;
2611
		    int ZI557;
2612
		    int ZI559;
2613
		    TYPE ZI414;
2614
 
2615
		    ADVANCE_LEXER;
2616
		    ZR581 (&ZI1407);
2617
		    if ((CURRENT_TERMINAL) == 354) {
2618
			RESTORE_LEXER;
2619
			goto ZL1;
2620
		    }
2621
		    {
2622
 
2623
    (ZI493) = make_prefix_exp ( lex_minus_Hminus, (ZI1407) ) ;
2624
		    }
2625
		    {
2626
 
2627
    (ZI557) = no_side_effects - (ZI554) ;
2628
		    }
2629
		    {
2630
 
2631
    (ZI559) = no_type_defns - (ZI555) ;
2632
		    }
2633
		    {
2634
 
2635
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2636
		    }
2637
		    {
2638
 
2639
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2640
		    }
2641
		}
2642
		break;
2643
	      case 8:
2644
		{
2645
		    NAMESPACE ZI425;
2646
		    EXP ZI493;
2647
		    int ZI557;
2648
		    int ZI559;
2649
		    TYPE ZI414;
2650
 
2651
		    {
2652
 
2653
    ZI425 = crt_token->pp_data.ns ;
2654
		    }
2655
		    ADVANCE_LEXER;
2656
		    ZR1266 (&ZI425, &ZI493);
2657
		    if ((CURRENT_TERMINAL) == 354) {
2658
			RESTORE_LEXER;
2659
			goto ZL1;
2660
		    }
2661
		    {
2662
 
2663
    (ZI557) = no_side_effects - (ZI554) ;
2664
		    }
2665
		    {
2666
 
2667
    (ZI559) = no_type_defns - (ZI555) ;
2668
		    }
2669
		    {
2670
 
2671
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2672
		    }
2673
		    {
2674
 
2675
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2676
		    }
2677
		}
2678
		break;
2679
	      case 65:
2680
		{
2681
		    ADVANCE_LEXER;
2682
		    ZR1429 (&ZI450, &ZI554, &ZI555, &ZI558);
2683
		    if ((CURRENT_TERMINAL) == 354) {
2684
			RESTORE_LEXER;
2685
			goto ZL1;
2686
		    }
2687
		}
2688
		break;
2689
	      case 71:
2690
		{
2691
		    EXP ZI1406;
2692
		    EXP ZI493;
2693
		    int ZI557;
2694
		    int ZI559;
2695
		    TYPE ZI414;
2696
 
2697
		    ADVANCE_LEXER;
2698
		    ZR581 (&ZI1406);
2699
		    if ((CURRENT_TERMINAL) == 354) {
2700
			RESTORE_LEXER;
2701
			goto ZL1;
2702
		    }
2703
		    {
2704
 
2705
    (ZI493) = make_prefix_exp ( lex_plus_Hplus, (ZI1406) ) ;
2706
		    }
2707
		    {
2708
 
2709
    (ZI557) = no_side_effects - (ZI554) ;
2710
		    }
2711
		    {
2712
 
2713
    (ZI559) = no_type_defns - (ZI555) ;
2714
		    }
2715
		    {
2716
 
2717
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2718
		    }
2719
		    {
2720
 
2721
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2722
		    }
2723
		}
2724
		break;
2725
	      case 145:
2726
		{
2727
		    TYPE ZI1419;
2728
		    EXP ZI1420;
2729
		    int ZI551;
2730
		    EXP ZI1272;
2731
		    EXP ZI493;
2732
		    int ZI557;
2733
		    int ZI559;
2734
		    TYPE ZI414;
2735
 
2736
		    ADVANCE_LEXER;
2737
		    ZR552 (&ZI1419, &ZI1420, &ZI551);
2738
		    if ((CURRENT_TERMINAL) == 354) {
2739
			RESTORE_LEXER;
2740
			goto ZL1;
2741
		    }
2742
		    {
2743
 
2744
    /* n is the number of type definitions in t */
2745
    (ZI1272) = make_reinterp_cast_exp ( (ZI1419), (ZI1420), (ZI551) ) ;
2746
		    }
2747
		    ZR1240 (ZI1272, &ZI493);
2748
		    if ((CURRENT_TERMINAL) == 354) {
2749
			RESTORE_LEXER;
2750
			goto ZL1;
2751
		    }
2752
		    {
2753
 
2754
    (ZI557) = no_side_effects - (ZI554) ;
2755
		    }
2756
		    {
2757
 
2758
    (ZI559) = no_type_defns - (ZI555) ;
2759
		    }
2760
		    {
2761
 
2762
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2763
		    }
2764
		    {
2765
 
2766
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2767
		    }
2768
		}
2769
		break;
2770
	      case 116:
2771
		{
2772
		    int ZI1413;
2773
		    EXP ZI493;
2774
		    int ZI557;
2775
		    int ZI559;
2776
		    TYPE ZI414;
2777
 
2778
		    ADVANCE_LEXER;
2779
		    {
2780
 (ZI1413) = lex_sizeof ; 
2781
		    }
2782
		    ZR593 (ZI1413, &ZI493);
2783
		    if ((CURRENT_TERMINAL) == 354) {
2784
			RESTORE_LEXER;
2785
			goto ZL1;
2786
		    }
2787
		    {
2788
 
2789
    (ZI557) = no_side_effects - (ZI554) ;
2790
		    }
2791
		    {
2792
 
2793
    (ZI559) = no_type_defns - (ZI555) ;
2794
		    }
2795
		    {
2796
 
2797
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2798
		    }
2799
		    {
2800
 
2801
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2802
		    }
2803
		}
2804
		break;
2805
	      case 78:
2806
		{
2807
		    EXP ZI1408;
2808
		    EXP ZI493;
2809
		    int ZI557;
2810
		    int ZI559;
2811
		    TYPE ZI414;
2812
 
2813
		    ADVANCE_LEXER;
2814
		    ZR581 (&ZI1408);
2815
		    if ((CURRENT_TERMINAL) == 354) {
2816
			RESTORE_LEXER;
2817
			goto ZL1;
2818
		    }
2819
		    {
2820
 
2821
    (ZI493) = make_indir_exp ( (ZI1408) ) ;
2822
		    }
2823
		    {
2824
 
2825
    (ZI557) = no_side_effects - (ZI554) ;
2826
		    }
2827
		    {
2828
 
2829
    (ZI559) = no_type_defns - (ZI555) ;
2830
		    }
2831
		    {
2832
 
2833
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2834
		    }
2835
		    {
2836
 
2837
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2838
		    }
2839
		}
2840
		break;
2841
	      case 146:
2842
		{
2843
		    TYPE ZI1421;
2844
		    EXP ZI1422;
2845
		    int ZI551;
2846
		    EXP ZI1273;
2847
		    EXP ZI493;
2848
		    int ZI557;
2849
		    int ZI559;
2850
		    TYPE ZI414;
2851
 
2852
		    ADVANCE_LEXER;
2853
		    ZR552 (&ZI1421, &ZI1422, &ZI551);
2854
		    if ((CURRENT_TERMINAL) == 354) {
2855
			RESTORE_LEXER;
2856
			goto ZL1;
2857
		    }
2858
		    {
2859
 
2860
    (ZI1273) = make_static_cast_exp ( (ZI1421), (ZI1422), (ZI551) ) ;
2861
		    }
2862
		    ZR1240 (ZI1273, &ZI493);
2863
		    if ((CURRENT_TERMINAL) == 354) {
2864
			RESTORE_LEXER;
2865
			goto ZL1;
2866
		    }
2867
		    {
2868
 
2869
    (ZI557) = no_side_effects - (ZI554) ;
2870
		    }
2871
		    {
2872
 
2873
    (ZI559) = no_type_defns - (ZI555) ;
2874
		    }
2875
		    {
2876
 
2877
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2878
		    }
2879
		    {
2880
 
2881
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2882
		    }
2883
		}
2884
		break;
2885
	      case 148:
2886
		{
2887
		    EXP ZI1276;
2888
		    EXP ZI493;
2889
		    int ZI557;
2890
		    int ZI559;
2891
		    TYPE ZI414;
2892
 
2893
		    ADVANCE_LEXER;
2894
		    {
2895
 
2896
    (ZI1276) = make_this_exp () ;
2897
		    }
2898
		    ZR1240 (ZI1276, &ZI493);
2899
		    if ((CURRENT_TERMINAL) == 354) {
2900
			RESTORE_LEXER;
2901
			goto ZL1;
2902
		    }
2903
		    {
2904
 
2905
    (ZI557) = no_side_effects - (ZI554) ;
2906
		    }
2907
		    {
2908
 
2909
    (ZI559) = no_type_defns - (ZI555) ;
2910
		    }
2911
		    {
2912
 
2913
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2914
		    }
2915
		    {
2916
 
2917
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2918
		    }
2919
		}
2920
		break;
2921
	      case 152:
2922
		{
2923
		    int ZI1416;
2924
		    EXP ZI1270;
2925
		    EXP ZI493;
2926
		    int ZI557;
2927
		    int ZI559;
2928
		    TYPE ZI414;
2929
 
2930
		    ADVANCE_LEXER;
2931
		    {
2932
 (ZI1416) = lex_typeid ; 
2933
		    }
2934
		    ZR553 (ZI1416, &ZI1270);
2935
		    ZR1240 (ZI1270, &ZI493);
2936
		    if ((CURRENT_TERMINAL) == 354) {
2937
			RESTORE_LEXER;
2938
			goto ZL1;
2939
		    }
2940
		    {
2941
 
2942
    (ZI557) = no_side_effects - (ZI554) ;
2943
		    }
2944
		    {
2945
 
2946
    (ZI559) = no_type_defns - (ZI555) ;
2947
		    }
2948
		    {
2949
 
2950
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2951
		    }
2952
		    {
2953
 
2954
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2955
		    }
2956
		}
2957
		break;
2958
	      case 329:
2959
		{
2960
		    int ZI1415;
2961
		    EXP ZI1269;
2962
		    EXP ZI493;
2963
		    int ZI557;
2964
		    int ZI559;
2965
		    TYPE ZI414;
2966
 
2967
		    ADVANCE_LEXER;
2968
		    {
2969
 (ZI1415) = lex_vtable ; 
2970
		    }
2971
		    ZR553 (ZI1415, &ZI1269);
2972
		    ZR1240 (ZI1269, &ZI493);
2973
		    if ((CURRENT_TERMINAL) == 354) {
2974
			RESTORE_LEXER;
2975
			goto ZL1;
2976
		    }
2977
		    {
2978
 
2979
    (ZI557) = no_side_effects - (ZI554) ;
2980
		    }
2981
		    {
2982
 
2983
    (ZI559) = no_type_defns - (ZI555) ;
2984
		    }
2985
		    {
2986
 
2987
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
2988
		    }
2989
		    {
2990
 
2991
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
2992
		    }
2993
		}
2994
		break;
2995
	      case 33:
2996
		{
2997
		    EXP ZI1409;
2998
		    EXP ZI493;
2999
		    int ZI557;
3000
		    int ZI559;
3001
		    TYPE ZI414;
3002
 
3003
		    {
3004
			{
3005
			    switch (CURRENT_TERMINAL) {
3006
			      case 33:
3007
				break;
3008
			      default:
3009
				goto ZL1;
3010
			    }
3011
			    ADVANCE_LEXER;
3012
			}
3013
		    }
3014
		    ZR581 (&ZI1409);
3015
		    if ((CURRENT_TERMINAL) == 354) {
3016
			RESTORE_LEXER;
3017
			goto ZL1;
3018
		    }
3019
		    {
3020
 
3021
    (ZI493) = make_ref_exp ( (ZI1409), 0 ) ;
3022
		    }
3023
		    {
3024
 
3025
    (ZI557) = no_side_effects - (ZI554) ;
3026
		    }
3027
		    {
3028
 
3029
    (ZI559) = no_type_defns - (ZI555) ;
3030
		    }
3031
		    {
3032
 
3033
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3034
		    }
3035
		    {
3036
 
3037
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3038
		    }
3039
		}
3040
		break;
3041
	      case 97: case 102: case 106: case 110: case 111:
3042
	      case 114: case 115: case 122: case 123: case 127:
3043
	      case 156: case 184: case 285: case 298:
3044
		{
3045
		    BASE_TYPE ZI511;
3046
		    TYPE ZI1265;
3047
		    CV_SPEC ZI783;
3048
		    TYPE ZI1426;
3049
		    SID_LIST_EXP ZI497;
3050
		    EXP ZI1280;
3051
		    EXP ZI493;
3052
		    int ZI557;
3053
		    int ZI559;
3054
		    TYPE ZI414;
3055
 
3056
		    ZR509 (&ZI511);
3057
		    if ((CURRENT_TERMINAL) == 354) {
3058
			RESTORE_LEXER;
3059
			goto ZL1;
3060
		    }
3061
		    {
3062
 
3063
    (ZI1265) = NULL_type ;
3064
    have_type_specifier = 1 ;
3065
		    }
3066
		    {
3067
 (ZI783) = cv_none ; 
3068
		    }
3069
		    {
3070
 
3071
    (ZI1426) = complete_pre_type ( (ZI511), (ZI1265), (ZI783), 1 ) ;
3072
    have_type_specifier = 0 ;
3073
		    }
3074
		    switch (CURRENT_TERMINAL) {
3075
		      case 65:
3076
			break;
3077
		      default:
3078
			goto ZL1;
3079
		    }
3080
		    ADVANCE_LEXER;
3081
		    ZR500 (&ZI497);
3082
		    switch (CURRENT_TERMINAL) {
3083
		      case 39:
3084
			break;
3085
		      case 354:
3086
			RESTORE_LEXER;
3087
			goto ZL1;
3088
		      default:
3089
			goto ZL1;
3090
		    }
3091
		    ADVANCE_LEXER;
3092
		    {
3093
 
3094
    (ZI1280) = make_func_cast_exp ( (ZI1426), (ZI497) ) ;
3095
		    }
3096
		    ZR1240 (ZI1280, &ZI493);
3097
		    if ((CURRENT_TERMINAL) == 354) {
3098
			RESTORE_LEXER;
3099
			goto ZL1;
3100
		    }
3101
		    {
3102
 
3103
    (ZI557) = no_side_effects - (ZI554) ;
3104
		    }
3105
		    {
3106
 
3107
    (ZI559) = no_type_defns - (ZI555) ;
3108
		    }
3109
		    {
3110
 
3111
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3112
		    }
3113
		    {
3114
 
3115
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3116
		    }
3117
		}
3118
		break;
3119
	      case 17: case 18: case 19: case 20: case 21:
3120
	      case 22: case 135: case 150:
3121
		{
3122
		    EXP ZI1275;
3123
		    EXP ZI493;
3124
		    int ZI557;
3125
		    int ZI559;
3126
		    TYPE ZI414;
3127
 
3128
		    ZR437 (&ZI1275);
3129
		    ZR1240 (ZI1275, &ZI493);
3130
		    if ((CURRENT_TERMINAL) == 354) {
3131
			RESTORE_LEXER;
3132
			goto ZL1;
3133
		    }
3134
		    {
3135
 
3136
    (ZI557) = no_side_effects - (ZI554) ;
3137
		    }
3138
		    {
3139
 
3140
    (ZI559) = no_type_defns - (ZI555) ;
3141
		    }
3142
		    {
3143
 
3144
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3145
		    }
3146
		    {
3147
 
3148
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3149
		    }
3150
		}
3151
		break;
3152
	      case 62:
3153
		{
3154
		    EXP ZI1410;
3155
		    EXP ZI493;
3156
		    int ZI557;
3157
		    int ZI559;
3158
		    TYPE ZI414;
3159
 
3160
		    {
3161
			{
3162
			    switch (CURRENT_TERMINAL) {
3163
			      case 62:
3164
				break;
3165
			      default:
3166
				goto ZL1;
3167
			    }
3168
			    ADVANCE_LEXER;
3169
			}
3170
		    }
3171
		    ZR581 (&ZI1410);
3172
		    if ((CURRENT_TERMINAL) == 354) {
3173
			RESTORE_LEXER;
3174
			goto ZL1;
3175
		    }
3176
		    {
3177
 
3178
    (ZI493) = make_not_exp ( (ZI1410) ) ;
3179
		    }
3180
		    {
3181
 
3182
    (ZI557) = no_side_effects - (ZI554) ;
3183
		    }
3184
		    {
3185
 
3186
    (ZI559) = no_type_defns - (ZI555) ;
3187
		    }
3188
		    {
3189
 
3190
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3191
		    }
3192
		    {
3193
 
3194
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3195
		    }
3196
		}
3197
		break;
3198
	      case 1: case 3: case 5: case 6: case 141:
3199
		{
3200
		    IDENTIFIER ZI419;
3201
		    EXP ZI1283;
3202
		    EXP ZI493;
3203
		    int ZI557;
3204
		    int ZI559;
3205
		    TYPE ZI414;
3206
 
3207
		    ZR477 (&ZI419);
3208
		    if ((CURRENT_TERMINAL) == 354) {
3209
			RESTORE_LEXER;
3210
			goto ZL1;
3211
		    }
3212
		    {
3213
 
3214
    (ZI1283) = make_id_exp ( (ZI419) ) ;
3215
		    }
3216
		    ZR1240 (ZI1283, &ZI493);
3217
		    if ((CURRENT_TERMINAL) == 354) {
3218
			RESTORE_LEXER;
3219
			goto ZL1;
3220
		    }
3221
		    {
3222
 
3223
    (ZI557) = no_side_effects - (ZI554) ;
3224
		    }
3225
		    {
3226
 
3227
    (ZI559) = no_type_defns - (ZI555) ;
3228
		    }
3229
		    {
3230
 
3231
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3232
		    }
3233
		    {
3234
 
3235
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3236
		    }
3237
		}
3238
		break;
3239
	      case 2: case 7:
3240
		{
3241
		    IDENTIFIER ZI419;
3242
		    TYPE ZI1265;
3243
		    BASE_TYPE ZI511;
3244
		    CV_SPEC ZI783;
3245
		    TYPE ZI1427;
3246
		    SID_LIST_EXP ZI497;
3247
		    EXP ZI1281;
3248
		    EXP ZI493;
3249
		    int ZI557;
3250
		    int ZI559;
3251
		    TYPE ZI414;
3252
 
3253
		    ZR472 (&ZI419);
3254
		    if ((CURRENT_TERMINAL) == 354) {
3255
			RESTORE_LEXER;
3256
			goto ZL1;
3257
		    }
3258
		    {
3259
 
3260
    MAKE_type_pre ( cv_none, btype_alias, crt_id_qualifier, (ZI1265) ) ;
3261
    COPY_id ( type_name ( (ZI1265) ), (ZI419) ) ;
3262
    have_type_specifier = 1 ;
3263
		    }
3264
		    {
3265
 (ZI511) = btype_none ; 
3266
		    }
3267
		    {
3268
 (ZI783) = cv_none ; 
3269
		    }
3270
		    {
3271
 
3272
    (ZI1427) = complete_pre_type ( (ZI511), (ZI1265), (ZI783), 1 ) ;
3273
    have_type_specifier = 0 ;
3274
		    }
3275
		    switch (CURRENT_TERMINAL) {
3276
		      case 65:
3277
			break;
3278
		      default:
3279
			goto ZL1;
3280
		    }
3281
		    ADVANCE_LEXER;
3282
		    ZR500 (&ZI497);
3283
		    switch (CURRENT_TERMINAL) {
3284
		      case 39:
3285
			break;
3286
		      case 354:
3287
			RESTORE_LEXER;
3288
			goto ZL1;
3289
		      default:
3290
			goto ZL1;
3291
		    }
3292
		    ADVANCE_LEXER;
3293
		    {
3294
 
3295
    (ZI1281) = make_func_cast_exp ( (ZI1427), (ZI497) ) ;
3296
		    }
3297
		    ZR1240 (ZI1281, &ZI493);
3298
		    if ((CURRENT_TERMINAL) == 354) {
3299
			RESTORE_LEXER;
3300
			goto ZL1;
3301
		    }
3302
		    {
3303
 
3304
    (ZI557) = no_side_effects - (ZI554) ;
3305
		    }
3306
		    {
3307
 
3308
    (ZI559) = no_type_defns - (ZI555) ;
3309
		    }
3310
		    {
3311
 
3312
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3313
		    }
3314
		    {
3315
 
3316
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3317
		    }
3318
		}
3319
		break;
3320
	      case 131: case 140:
3321
		{
3322
		    int ZI456;
3323
		    EXP ZI493;
3324
		    int ZI557;
3325
		    int ZI559;
3326
		    TYPE ZI414;
3327
 
3328
		    {
3329
 (ZI456) = 0 ; 
3330
		    }
3331
		    ZR1430 (&ZI456, &ZI493);
3332
		    if ((CURRENT_TERMINAL) == 354) {
3333
			RESTORE_LEXER;
3334
			goto ZL1;
3335
		    }
3336
		    {
3337
 
3338
    (ZI557) = no_side_effects - (ZI554) ;
3339
		    }
3340
		    {
3341
 
3342
    (ZI559) = no_type_defns - (ZI555) ;
3343
		    }
3344
		    {
3345
 
3346
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3347
		    }
3348
		    {
3349
 
3350
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3351
		    }
3352
		}
3353
		break;
3354
	      case 43: case 59: case 69: case 85:
3355
		{
3356
		    int ZI1411;
3357
		    EXP ZI1412;
3358
		    EXP ZI493;
3359
		    int ZI557;
3360
		    int ZI559;
3361
		    TYPE ZI414;
3362
 
3363
		    {
3364
 (ZI1411) = crt_lex_token ; 
3365
		    }
3366
		    ZR596 ();
3367
		    ZR581 (&ZI1412);
3368
		    if ((CURRENT_TERMINAL) == 354) {
3369
			RESTORE_LEXER;
3370
			goto ZL1;
3371
		    }
3372
		    {
3373
 
3374
    (ZI493) = make_uminus_exp ( (ZI1411), (ZI1412) ) ;
3375
		    }
3376
		    {
3377
 
3378
    (ZI557) = no_side_effects - (ZI554) ;
3379
		    }
3380
		    {
3381
 
3382
    (ZI559) = no_type_defns - (ZI555) ;
3383
		    }
3384
		    {
3385
 
3386
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (ZI450) ) ;
3387
		    }
3388
		    {
3389
 
3390
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (ZI450) ) ;
3391
		    }
3392
		}
3393
		break;
3394
	      default:
3395
		goto ZL1;
3396
	    }
3397
	}
3398
	{
3399
 
3400
    suppress_usage-- ;
3401
	}
3402
	ZI431 = ZI558;
3403
    }
3404
    goto ZL0;
3405
  ZL1:;
3406
    SAVE_LEXER (354);
3407
    return;
3408
  ZL0:;
3409
    *ZO431 = ZI431;
3410
}
3411
 
3412
void
3413
ZR917 PROTO_N ((ZI574, ZI874, ZI875, ZI876, ZI909, ZO511, ZO414, ZO783, ZO689))
3414
  PROTO_T (TYPE *ZI574 X BASE_TYPE *ZI874 X TYPE *ZI875 X CV_SPEC *ZI876 X DECL_SPEC *ZI909 X BASE_TYPE *ZO511 X TYPE *ZO414 X CV_SPEC *ZO783 X DECL_SPEC *ZO689)
3415
{
3416
    BASE_TYPE ZI511;
3417
    TYPE ZI414;
3418
    CV_SPEC ZI783;
3419
    DECL_SPEC ZI689;
3420
 
3421
    if ((CURRENT_TERMINAL) == 354) {
3422
	return;
3423
    }
3424
    {
3425
	BASE_TYPE ZI1385;
3426
	TYPE ZI1386;
3427
	CV_SPEC ZI1387;
3428
	DECL_SPEC ZI1388;
3429
	BASE_TYPE ZI878;
3430
	TYPE ZI879;
3431
	CV_SPEC ZI880;
3432
	DECL_SPEC ZI911;
3433
 
3434
	{
3435
 
3436
    /* Resolve declaration-specifiers from other declarators */
3437
    (ZI0) = predict_dspec ( 0 ) ;
3438
	}
3439
	if (!ZI0)
3440
	    goto ZL2;
3441
	ZR906 (*ZI574, &ZI1385, &ZI1386, &ZI1387, &ZI1388);
3442
	ZR917 (ZI574, &ZI1385, &ZI1386, &ZI1387, &ZI1388, &ZI878, &ZI879, &ZI880, &ZI911);
3443
	if ((CURRENT_TERMINAL) == 354) {
3444
	    RESTORE_LEXER;
3445
	    goto ZL1;
3446
	}
3447
	{
3448
 
3449
    if ( (*ZI874) & (ZI878) ) {
3450
	(ZI511) = join_pre_types ( (*ZI874), (ZI878) ) ;
3451
    } else {
3452
	(ZI511) = ( (*ZI874) | (ZI878) ) ;
3453
    }
3454
	}
3455
	{
3456
 
3457
    /* Join two partial types */
3458
    if ( IS_NULL_type ( (*ZI875) ) ) {
3459
	(ZI414) = (ZI879) ;
3460
    } else if ( IS_NULL_type ( (ZI879) ) ) {
3461
	(ZI414) = (*ZI875) ;
3462
    } else {
3463
	report ( crt_loc, ERR_dcl_type_simple_many ( (*ZI875), (ZI879) ) ) ;
3464
	(ZI414) = (ZI879) ;
3465
    }
3466
	}
3467
	{
3468
 
3469
    CV_SPEC c = ( (*ZI876) & (ZI880) ) ;
3470
    if ( c ) report ( crt_loc, ERR_dcl_type_cv_dup ( c ) ) ;
3471
    (ZI783) = ( (*ZI876) | (ZI880) ) ;
3472
	}
3473
	{
3474
 
3475
    /* Combine two declaration specifiers */
3476
    DECL_SPEC d = ( ( (*ZI909) & (ZI911) ) & dspec_duplicate ) ;
3477
    if ( d ) report ( crt_loc, ERR_dcl_spec_dup ( d ) ) ;
3478
    (ZI689) = ( (*ZI909) | (ZI911) ) ;
3479
	}
3480
	goto ZL0;
3481
    }
3482
    /*UNREACHED*/
3483
  ZL2:;
3484
    switch (CURRENT_TERMINAL) {
3485
      default:
3486
	{
3487
	    ZI511 = *ZI874;
3488
	    ZI414 = *ZI875;
3489
	    ZI783 = *ZI876;
3490
	    ZI689 = *ZI909;
3491
	}
3492
	break;
3493
    }
3494
    goto ZL0;
3495
  ZL1:;
3496
    SAVE_LEXER (354);
3497
    return;
3498
  ZL0:;
3499
    *ZO511 = ZI511;
3500
    *ZO414 = ZI414;
3501
    *ZO783 = ZI783;
3502
    *ZO689 = ZI689;
3503
}
3504
 
3505
void
3506
ZR477 PROTO_N ((ZO419))
3507
  PROTO_T (IDENTIFIER *ZO419)
3508
{
3509
    IDENTIFIER ZI419;
3510
 
3511
    switch (CURRENT_TERMINAL) {
3512
      case 5:
3513
	{
3514
	    IDENTIFIER ZI478;
3515
 
3516
	    {
3517
 
3518
    ZI478 = crt_token->pp_data.id.use ;
3519
	    }
3520
	    ADVANCE_LEXER;
3521
	    {
3522
 
3523
    (ZI419) = check_id ( NULL_nspace, (ZI478), 0 ) ;
3524
    crt_id_qualifier = qual_none ;
3525
    last_namespace = crt_namespace ;
3526
	    }
3527
	}
3528
	break;
3529
      case 1:
3530
	{
3531
	    IDENTIFIER ZI478;
3532
 
3533
	    {
3534
 
3535
    ZI478 = crt_token->pp_data.id.use ;
3536
	    }
3537
	    ADVANCE_LEXER;
3538
	    {
3539
 
3540
    (ZI419) = (ZI478) ;
3541
    crt_id_qualifier = qual_none ;
3542
    last_namespace = crt_namespace ;
3543
	    }
3544
	}
3545
	break;
3546
      case 3:
3547
	{
3548
	    IDENTIFIER ZI478;
3549
 
3550
	    {
3551
 
3552
    ZI478 = crt_token->pp_data.id.use ;
3553
	    }
3554
	    ADVANCE_LEXER;
3555
	    {
3556
 
3557
    (ZI419) = (ZI478) ;
3558
    crt_id_qualifier = qual_none ;
3559
    last_namespace = crt_namespace ;
3560
	    }
3561
	}
3562
	break;
3563
      case 6:
3564
	{
3565
	    IDENTIFIER ZI478;
3566
 
3567
	    {
3568
 
3569
    IDENTIFIER id = crt_token->pp_data.tok.id ;
3570
    PPTOKEN *args = crt_token->pp_data.tok.args ;
3571
    ZI478 = parse_id_template ( id, args, 0 ) ;
3572
    crt_templ_qualifier = 1 ;
3573
    RESCAN_LEXER ;
3574
	    }
3575
	    ADVANCE_LEXER;
3576
	    {
3577
 
3578
    (ZI419) = check_id ( NULL_nspace, (ZI478), 0 ) ;
3579
    crt_id_qualifier = qual_none ;
3580
    last_namespace = crt_namespace ;
3581
	    }
3582
	}
3583
	break;
3584
      case 141:
3585
	{
3586
	    IDENTIFIER ZI478;
3587
 
3588
	    parse_operator (&ZI478);
3589
	    if ((CURRENT_TERMINAL) == 354) {
3590
		RESTORE_LEXER;
3591
		goto ZL1;
3592
	    }
3593
	    {
3594
 
3595
    (ZI419) = check_id ( NULL_nspace, (ZI478), 0 ) ;
3596
    crt_id_qualifier = qual_none ;
3597
    last_namespace = crt_namespace ;
3598
	    }
3599
	}
3600
	break;
3601
      case 354:
3602
	return;
3603
      default:
3604
	goto ZL1;
3605
    }
3606
    goto ZL0;
3607
  ZL1:;
3608
    SAVE_LEXER (354);
3609
    return;
3610
  ZL0:;
3611
    *ZO419 = ZI419;
3612
}
3613
 
3614
void
3615
ZR771 PROTO_N ((ZO431))
3616
  PROTO_T (EXP *ZO431)
3617
{
3618
    EXP ZI431;
3619
 
3620
    if ((CURRENT_TERMINAL) == 354) {
3621
	return;
3622
    }
3623
    {
3624
	int ZI670;
3625
	EXP ZI493;
3626
	EXP ZI456;
3627
	EXP ZI558;
3628
 
3629
	switch (CURRENT_TERMINAL) {
3630
	  case 151:
3631
	    break;
3632
	  default:
3633
	    goto ZL1;
3634
	}
3635
	ADVANCE_LEXER;
3636
	{
3637
 
3638
    (ZI670) = unreached_code ;
3639
    if ( (ZI670) ) {
3640
	if ( !unreached_last ) {
3641
	    report ( crt_loc, ERR_stmt_stmt_unreach () ) ;
3642
	    unreached_last = 1 ;
3643
	}
3644
    } else {
3645
	unreached_last = 0 ;
3646
    }
3647
	}
3648
	{
3649
 
3650
    (ZI493) = begin_try_stmt ( 0 ) ;
3651
	}
3652
	ZR678 (&ZI456);
3653
	if ((CURRENT_TERMINAL) == 354) {
3654
	    RESTORE_LEXER;
3655
	    goto ZL1;
3656
	}
3657
	{
3658
 
3659
    (ZI558) = cont_try_stmt ( (ZI493), (ZI456) ) ;
3660
	}
3661
	ZR770 (ZI558);
3662
	if ((CURRENT_TERMINAL) == 354) {
3663
	    RESTORE_LEXER;
3664
	    goto ZL1;
3665
	}
3666
	{
3667
 unreached_prev = (ZI670) ; 
3668
	}
3669
	{
3670
 
3671
    (ZI431) = end_try_stmt ( (ZI558), 0 ) ;
3672
	}
3673
	{
3674
 
3675
    unreached_fall = 1 ;
3676
	}
3677
    }
3678
    goto ZL0;
3679
  ZL1:;
3680
    SAVE_LEXER (354);
3681
    return;
3682
  ZL0:;
3683
    *ZO431 = ZI431;
3684
}
3685
 
3686
void
3687
ZR1072 PROTO_N ((ZI414, ZI689, ZO431))
3688
  PROTO_T (TYPE ZI414 X DECL_SPEC ZI689 X EXP *ZO431)
3689
{
3690
    EXP ZI431;
3691
 
3692
    if ((CURRENT_TERMINAL) == 354) {
3693
	return;
3694
    }
3695
    {
3696
	int ZI714;
3697
	TOKEN ZI497;
3698
	TYPE ZI875;
3699
 
3700
	ZR1110 (&ZI714);
3701
	switch (CURRENT_TERMINAL) {
3702
	  case 147:
3703
	    break;
3704
	  case 354:
3705
	    RESTORE_LEXER;
3706
	    goto ZL1;
3707
	  default:
3708
	    goto ZL1;
3709
	}
3710
	ADVANCE_LEXER;
3711
	{
3712
 
3713
    (ZI497) = template_params ( (ZI714) ) ;
3714
    RESCAN_LEXER ;
3715
	}
3716
	{
3717
 
3718
    (ZI875) = make_template_type ( (ZI497), (ZI414) ) ;
3719
	}
3720
	ZR1033 (ZI875, ZI689, &ZI431);
3721
	if ((CURRENT_TERMINAL) == 354) {
3722
	    RESTORE_LEXER;
3723
	    goto ZL1;
3724
	}
3725
	{
3726
 
3727
    end_template ( (ZI497) ) ;
3728
	}
3729
	{
3730
 
3731
    RESCAN_LEXER ;
3732
	}
3733
    }
3734
    goto ZL0;
3735
  ZL1:;
3736
    SAVE_LEXER (354);
3737
    return;
3738
  ZL0:;
3739
    *ZO431 = ZI431;
3740
}
3741
 
3742
void
3743
ZR1429 PROTO_N ((ZI450, ZI554, ZI555, ZO558))
3744
  PROTO_T (int *ZI450 X int *ZI554 X int *ZI555 X EXP *ZO558)
3745
{
3746
    EXP ZI558;
3747
 
3748
    if ((CURRENT_TERMINAL) == 354) {
3749
	return;
3750
    }
3751
    {
3752
	TYPE ZI414;
3753
	int ZI559;
3754
	EXP ZI493;
3755
 
3756
	{
3757
 
3758
    /* Resolve type-ids from expressions */
3759
    (ZI0) = predict_typeid ( 1 ) ;
3760
	}
3761
	if (!ZI0)
3762
	    goto ZL2;
3763
	ZR548 (&ZI414, &ZI559);
3764
	if ((CURRENT_TERMINAL) == 354) {
3765
	    RESTORE_LEXER;
3766
	    goto ZL1;
3767
	}
3768
	{
3769
 
3770
    (ZI493) = NULL_exp ;
3771
	}
3772
	{
3773
 
3774
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (*ZI450) ) ;
3775
	}
3776
	switch (CURRENT_TERMINAL) {
3777
	  case 39:
3778
	    break;
3779
	  default:
3780
	    goto ZL1;
3781
	}
3782
	ADVANCE_LEXER;
3783
	goto ZL0;
3784
    }
3785
    /*UNREACHED*/
3786
  ZL2:;
3787
    switch (CURRENT_TERMINAL) {
3788
      case 1: case 2: case 3: case 5: case 6:
3789
      case 7: case 8: case 9: case 17: case 18:
3790
      case 19: case 20: case 21: case 22: case 23:
3791
      case 25: case 33: case 43: case 59: case 61:
3792
      case 62: case 65: case 69: case 71: case 78:
3793
      case 83: case 85: case 97: case 102: case 106:
3794
      case 110: case 111: case 114: case 115: case 116:
3795
      case 122: case 123: case 127: case 130: case 131:
3796
      case 132: case 135: case 140: case 141: case 145:
3797
      case 146: case 148: case 149: case 150: case 152:
3798
      case 156: case 170: case 184: case 205: case 209:
3799
      case 285: case 297: case 298: case 323: case 329:
3800
      case 345:
3801
	{
3802
	    EXP ZI1425;
3803
	    EXP ZI1278;
3804
	    EXP ZI493;
3805
	    int ZI557;
3806
	    int ZI559;
3807
	    TYPE ZI414;
3808
 
3809
	    {
3810
 
3811
    IGNORE incr_value ( OPT_VAL_paren_depth ) ;
3812
	    }
3813
	    ZR491 (&ZI1425);
3814
	    if ((CURRENT_TERMINAL) == 354) {
3815
		RESTORE_LEXER;
3816
		goto ZL1;
3817
	    }
3818
	    {
3819
 
3820
    (ZI1278) = make_paren_exp ( (ZI1425) ) ;
3821
    decr_value ( OPT_VAL_paren_depth ) ;
3822
	    }
3823
	    switch (CURRENT_TERMINAL) {
3824
	      case 39:
3825
		break;
3826
	      default:
3827
		goto ZL1;
3828
	    }
3829
	    ADVANCE_LEXER;
3830
	    ZR1240 (ZI1278, &ZI493);
3831
	    if ((CURRENT_TERMINAL) == 354) {
3832
		RESTORE_LEXER;
3833
		goto ZL1;
3834
	    }
3835
	    {
3836
 
3837
    (ZI557) = no_side_effects - (*ZI554) ;
3838
	    }
3839
	    {
3840
 
3841
    (ZI559) = no_type_defns - (*ZI555) ;
3842
	    }
3843
	    {
3844
 
3845
    (ZI414) = typeof_exp ( &(ZI493), (ZI557), (*ZI450) ) ;
3846
	    }
3847
	    {
3848
 
3849
    (ZI558) = make_sizeof_exp ( (ZI414), (ZI493), (ZI559), (*ZI450) ) ;
3850
	    }
3851
	}
3852
	break;
3853
      default:
3854
	goto ZL1;
3855
    }
3856
    goto ZL0;
3857
  ZL1:;
3858
    SAVE_LEXER (354);
3859
    return;
3860
  ZL0:;
3861
    *ZO558 = ZI558;
3862
}
3863
 
3864
void
3865
ZR959 PROTO_N ((ZO414, ZO419))
3866
  PROTO_T (TYPE *ZO414 X IDENTIFIER *ZO419)
3867
{
3868
    TYPE ZI414;
3869
    IDENTIFIER ZI419;
3870
 
3871
    if ((CURRENT_TERMINAL) == 354) {
3872
	return;
3873
    }
3874
    {
3875
	IDENTIFIER ZI1372;
3876
	TYPE ZI1373;
3877
 
3878
	{
3879
 
3880
    /* Resolve parameter declarators from type names */
3881
    (ZI0) = predict_param () ;
3882
	}
3883
	if (!ZI0)
3884
	    goto ZL2;
3885
	ZR942 (&ZI1372);
3886
	if ((CURRENT_TERMINAL) == 354) {
3887
	    RESTORE_LEXER;
3888
	    goto ZL1;
3889
	}
3890
	{
3891
 
3892
    (ZI1373) = NULL_type ;
3893
	}
3894
	{
3895
 
3896
    IDENTIFIER pid = underlying_id ( (ZI1372) ) ;
3897
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
3898
	}
3899
	ZR1161 (ZI1373, ZI1372, &ZI414, &ZI419);
3900
	if ((CURRENT_TERMINAL) == 354) {
3901
	    RESTORE_LEXER;
3902
	    goto ZL1;
3903
	}
3904
	goto ZL0;
3905
    }
3906
    /*UNREACHED*/
3907
  ZL2:;
3908
    switch (CURRENT_TERMINAL) {
3909
      case 65:
3910
	{
3911
	    ADVANCE_LEXER;
3912
	    ZR1371 (&ZI414, &ZI419);
3913
	    if ((CURRENT_TERMINAL) == 354) {
3914
		RESTORE_LEXER;
3915
		goto ZL1;
3916
	    }
3917
	}
3918
	break;
3919
      case 331:
3920
	{
3921
	    IDENTIFIER ZI1370;
3922
	    int ZI943;
3923
	    TYPE ZI1376;
3924
	    IDENTIFIER ZI1377;
3925
 
3926
	    ADVANCE_LEXER;
3927
	    switch (CURRENT_TERMINAL) {
3928
	      case 65:
3929
		break;
3930
	      default:
3931
		goto ZL1;
3932
	    }
3933
	    ADVANCE_LEXER;
3934
	    {
3935
 
3936
    (ZI1370) = NULL_id ;
3937
    crt_id_qualifier = qual_none ;
3938
    qual_namespace = NULL_nspace ;
3939
	    }
3940
	    {
3941
 (ZI943) = 1 ; 
3942
	    }
3943
	    {
3944
 
3945
    func_type_defn ( 0 ) ;
3946
    begin_param ( (ZI1370) ) ;
3947
    have_type_declaration = TYPE_DECL_NONE ;
3948
    have_func_declarator = 0 ;
3949
	    }
3950
	    ZR944 (ZI943, &ZI1376);
3951
	    if ((CURRENT_TERMINAL) == 354) {
3952
		RESTORE_LEXER;
3953
		goto ZL1;
3954
	    }
3955
	    {
3956
 
3957
    end_param () ;
3958
    have_type_declaration = TYPE_DECL_NONE ;
3959
    have_func_declarator = 1 ;
3960
	    }
3961
	    {
3962
 
3963
    HASHID nm = lookup_anon () ;
3964
    (ZI1377) = DEREF_id ( hashid_id ( nm ) ) ;
3965
    crt_id_qualifier = qual_none ;
3966
    qual_namespace = NULL_nspace ;
3967
	    }
3968
	    {
3969
 
3970
    IDENTIFIER pid = underlying_id ( (ZI1377) ) ;
3971
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
3972
	    }
3973
	    ZR1161 (ZI1376, ZI1377, &ZI414, &ZI419);
3974
	    if ((CURRENT_TERMINAL) == 354) {
3975
		RESTORE_LEXER;
3976
		goto ZL1;
3977
	    }
3978
	}
3979
	break;
3980
      case 66:
3981
	{
3982
	    EXP ZI431;
3983
	    TYPE ZI1374;
3984
	    IDENTIFIER ZI1375;
3985
 
3986
	    {
3987
		{
3988
		    switch (CURRENT_TERMINAL) {
3989
		      case 66:
3990
			break;
3991
		      default:
3992
			goto ZL1;
3993
		    }
3994
		    ADVANCE_LEXER;
3995
		}
3996
	    }
3997
	    ZR953 (&ZI431);
3998
	    if ((CURRENT_TERMINAL) == 354) {
3999
		RESTORE_LEXER;
4000
		goto ZL1;
4001
	    }
4002
	    {
4003
 
4004
    NAT n = make_array_dim ( (ZI431) ) ;
4005
    MAKE_type_array ( cv_none, NULL_type, n, (ZI1374) ) ;
4006
	    }
4007
	    {
4008
		{
4009
		    switch (CURRENT_TERMINAL) {
4010
		      case 40:
4011
			break;
4012
		      default:
4013
			goto ZL1;
4014
		    }
4015
		    ADVANCE_LEXER;
4016
		}
4017
	    }
4018
	    {
4019
 
4020
    HASHID nm = lookup_anon () ;
4021
    (ZI1375) = DEREF_id ( hashid_id ( nm ) ) ;
4022
    crt_id_qualifier = qual_none ;
4023
    qual_namespace = NULL_nspace ;
4024
	    }
4025
	    {
4026
 
4027
    IDENTIFIER pid = underlying_id ( (ZI1375) ) ;
4028
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
4029
	    }
4030
	    ZR1161 (ZI1374, ZI1375, &ZI414, &ZI419);
4031
	    if ((CURRENT_TERMINAL) == 354) {
4032
		RESTORE_LEXER;
4033
		goto ZL1;
4034
	    }
4035
	}
4036
	break;
4037
      case 10: case 11: case 33: case 78:
4038
	{
4039
	    TYPE ZI497;
4040
	    TYPE ZI480;
4041
 
4042
	    ZR926 (&ZI497);
4043
	    ZR959 (&ZI480, &ZI419);
4044
	    if ((CURRENT_TERMINAL) == 354) {
4045
		RESTORE_LEXER;
4046
		goto ZL1;
4047
	    }
4048
	    {
4049
 
4050
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 0 ) ) ;
4051
	    }
4052
	}
4053
	break;
4054
      default:
4055
	{
4056
	    {
4057
 
4058
    (ZI414) = NULL_type ;
4059
	    }
4060
	    {
4061
 
4062
    HASHID nm = lookup_anon () ;
4063
    (ZI419) = DEREF_id ( hashid_id ( nm ) ) ;
4064
    crt_id_qualifier = qual_none ;
4065
    qual_namespace = NULL_nspace ;
4066
	    }
4067
	    {
4068
 
4069
    IDENTIFIER pid = underlying_id ( (ZI419) ) ;
4070
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
4071
	    }
4072
	}
4073
	break;
4074
    }
4075
    goto ZL0;
4076
  ZL1:;
4077
    SAVE_LEXER (354);
4078
    return;
4079
  ZL0:;
4080
    *ZO414 = ZI414;
4081
    *ZO419 = ZI419;
4082
}
4083
 
4084
void
4085
ZR1430 PROTO_N ((ZI456, ZO431))
4086
  PROTO_T (int *ZI456 X EXP *ZO431)
4087
{
4088
    EXP ZI431;
4089
 
4090
    switch (CURRENT_TERMINAL) {
4091
      case 140:
4092
	{
4093
	    int ZI457;
4094
	    SID_LIST_EXP ZI497;
4095
	    TYPE ZI414;
4096
	    int ZI551;
4097
	    int ZI459;
4098
	    EXP ZI574;
4099
	    EXP ZI455;
4100
	    EXP ZI493;
4101
 
4102
	    ADVANCE_LEXER;
4103
	    {
4104
 
4105
    (ZI457) = have_type_declaration ;
4106
    have_type_declaration = TYPE_DECL_NONE ;
4107
	    }
4108
	    ZR571 (&ZI497, &ZI414, &ZI551);
4109
	    if ((CURRENT_TERMINAL) == 354) {
4110
		RESTORE_LEXER;
4111
		goto ZL1;
4112
	    }
4113
	    {
4114
 
4115
    int td = have_type_declaration ;
4116
    (ZI459) = 0 ;
4117
    if ( td != TYPE_DECL_NONE ) {
4118
	if ( td == TYPE_DECL_ELABORATE && found_elaborate_type ) {
4119
	    /* This is allowed */
4120
	    /* EMPTY */
4121
	} else {
4122
	    (ZI459) = 1 ;
4123
	}
4124
    }
4125
    have_type_declaration = (ZI457) ;
4126
	    }
4127
	    {
4128
 
4129
    (ZI574) = begin_new_try () ;
4130
	    }
4131
	    ZR569 (ZI414, &ZI455);
4132
	    if ((CURRENT_TERMINAL) == 354) {
4133
		RESTORE_LEXER;
4134
		goto ZL1;
4135
	    }
4136
	    {
4137
 
4138
    (ZI493) = end_new_try ( (ZI574), (ZI455) ) ;
4139
	    }
4140
	    {
4141
 
4142
    (ZI431) = make_new_exp ( (ZI414), (ZI551) + (ZI459), (*ZI456), (ZI497), (ZI493) ) ;
4143
	    }
4144
	}
4145
	break;
4146
      case 131:
4147
	{
4148
	    int ZI450;
4149
	    EXP ZI493;
4150
 
4151
	    ZR583 (&ZI450);
4152
	    ZR581 (&ZI493);
4153
	    if ((CURRENT_TERMINAL) == 354) {
4154
		RESTORE_LEXER;
4155
		goto ZL1;
4156
	    }
4157
	    {
4158
 
4159
    (ZI431) = make_delete_exp ( (ZI450), (*ZI456), (ZI493) ) ;
4160
	    }
4161
	}
4162
	break;
4163
      case 354:
4164
	return;
4165
      default:
4166
	goto ZL1;
4167
    }
4168
    goto ZL0;
4169
  ZL1:;
4170
    SAVE_LEXER (354);
4171
    return;
4172
  ZL0:;
4173
    *ZO431 = ZI431;
4174
}
4175
 
4176
void
4177
ZR1431 PROTO_N ((ZO450))
4178
  PROTO_T (int *ZO450)
4179
{
4180
    int ZI450;
4181
 
4182
    switch (CURRENT_TERMINAL) {
4183
      case 66:
4184
	{
4185
	    {
4186
		{
4187
		    switch (CURRENT_TERMINAL) {
4188
		      case 66:
4189
			break;
4190
		      default:
4191
			goto ZL1;
4192
		    }
4193
		    ADVANCE_LEXER;
4194
		}
4195
	    }
4196
	    ZR1432 (&ZI450);
4197
	    if ((CURRENT_TERMINAL) == 354) {
4198
		RESTORE_LEXER;
4199
		goto ZL1;
4200
	    }
4201
	}
4202
	break;
4203
      default:
4204
	{
4205
	    {
4206
 (ZI450) = lex_delete ; 
4207
	    }
4208
	}
4209
	break;
4210
      case 354:
4211
	return;
4212
    }
4213
    goto ZL0;
4214
  ZL1:;
4215
    SAVE_LEXER (354);
4216
    return;
4217
  ZL0:;
4218
    *ZO450 = ZI450;
4219
}
4220
 
4221
void
4222
ZR1177 PROTO_N ((ZI1171, ZI1172, ZI1173, ZO1174, ZO1175, ZO1176))
4223
  PROTO_T (TYPE ZI1171 X IDENTIFIER ZI1172 X int ZI1173 X TYPE *ZO1174 X IDENTIFIER *ZO1175 X int *ZO1176)
4224
{
4225
    TYPE ZI1174;
4226
    IDENTIFIER ZI1175;
4227
    int ZI1176;
4228
 
4229
  ZL2_1177:;
4230
    switch (CURRENT_TERMINAL) {
4231
      case 65: case 66: case 331:
4232
	{
4233
	    IDENTIFIER ZI419;
4234
	    QUALIFIER ZI455;
4235
	    int ZI493;
4236
	    TYPE ZI480;
4237
	    int ZI558;
4238
	    TYPE ZI414;
4239
 
4240
	    ZI419 = ZI1172;
4241
	    {
4242
 
4243
    (ZI455) = crt_id_qualifier ;
4244
    (ZI493) = crt_templ_qualifier ;
4245
	    }
4246
	    ZR946 (ZI419, &ZI480, &ZI558);
4247
	    if ((CURRENT_TERMINAL) == 354) {
4248
		RESTORE_LEXER;
4249
		goto ZL1;
4250
	    }
4251
	    {
4252
 
4253
    if ( (ZI1173) ) report ( crt_loc, ERR_dcl_init_bad () ) ;
4254
	    }
4255
	    {
4256
 
4257
    (ZI414) = ( IS_NULL_type ( (ZI1171) ) ? (ZI480) : inject_pre_type ( (ZI1171), (ZI480), 0 ) ) ;
4258
	    }
4259
	    {
4260
 
4261
    crt_id_qualifier = (ZI455) ;
4262
    crt_templ_qualifier = (ZI493) ;
4263
	    }
4264
	    ZI1171 = ZI414;
4265
	    ZI1172 = ZI419;
4266
	    ZI1173 = ZI558;
4267
	    goto ZL2_1177;
4268
	}
4269
	/*UNREACHED*/
4270
      default:
4271
	{
4272
	    ZI1174 = ZI1171;
4273
	    ZI1175 = ZI1172;
4274
	    ZI1176 = ZI1173;
4275
	}
4276
	break;
4277
      case 354:
4278
	return;
4279
    }
4280
    goto ZL0;
4281
  ZL1:;
4282
    SAVE_LEXER (354);
4283
    return;
4284
  ZL0:;
4285
    *ZO1174 = ZI1174;
4286
    *ZO1175 = ZI1175;
4287
    *ZO1176 = ZI1176;
4288
}
4289
 
4290
void
4291
ZR961 PROTO_N ((ZI497, ZO414, ZO419))
4292
  PROTO_T (TYPE ZI497 X TYPE *ZO414 X IDENTIFIER *ZO419)
4293
{
4294
    TYPE ZI414;
4295
    IDENTIFIER ZI419;
4296
 
4297
    if ((CURRENT_TERMINAL) == 354) {
4298
	return;
4299
    }
4300
    {
4301
	IDENTIFIER ZI1372;
4302
	TYPE ZI1373;
4303
	TYPE ZI480;
4304
 
4305
	{
4306
 
4307
    /* Resolve parameter declarators from type names */
4308
    (ZI0) = predict_param () ;
4309
	}
4310
	if (!ZI0)
4311
	    goto ZL2;
4312
	ZR942 (&ZI1372);
4313
	if ((CURRENT_TERMINAL) == 354) {
4314
	    RESTORE_LEXER;
4315
	    goto ZL1;
4316
	}
4317
	{
4318
 
4319
    (ZI1373) = NULL_type ;
4320
	}
4321
	{
4322
 
4323
    IDENTIFIER pid = underlying_id ( (ZI1372) ) ;
4324
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
4325
	}
4326
	ZR1161 (ZI1373, ZI1372, &ZI480, &ZI419);
4327
	if ((CURRENT_TERMINAL) == 354) {
4328
	    RESTORE_LEXER;
4329
	    goto ZL1;
4330
	}
4331
	{
4332
 
4333
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 1 ) ) ;
4334
	}
4335
	goto ZL0;
4336
    }
4337
    /*UNREACHED*/
4338
  ZL2:;
4339
    switch (CURRENT_TERMINAL) {
4340
      case 65:
4341
	{
4342
	    TYPE ZI480;
4343
 
4344
	    ADVANCE_LEXER;
4345
	    ZR1371 (&ZI480, &ZI419);
4346
	    if ((CURRENT_TERMINAL) == 354) {
4347
		RESTORE_LEXER;
4348
		goto ZL1;
4349
	    }
4350
	    {
4351
 
4352
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 1 ) ) ;
4353
	    }
4354
	}
4355
	break;
4356
      case 331:
4357
	{
4358
	    IDENTIFIER ZI1370;
4359
	    int ZI943;
4360
	    TYPE ZI1376;
4361
	    IDENTIFIER ZI1377;
4362
	    TYPE ZI480;
4363
 
4364
	    ADVANCE_LEXER;
4365
	    switch (CURRENT_TERMINAL) {
4366
	      case 65:
4367
		break;
4368
	      default:
4369
		goto ZL1;
4370
	    }
4371
	    ADVANCE_LEXER;
4372
	    {
4373
 
4374
    (ZI1370) = NULL_id ;
4375
    crt_id_qualifier = qual_none ;
4376
    qual_namespace = NULL_nspace ;
4377
	    }
4378
	    {
4379
 (ZI943) = 1 ; 
4380
	    }
4381
	    {
4382
 
4383
    func_type_defn ( 0 ) ;
4384
    begin_param ( (ZI1370) ) ;
4385
    have_type_declaration = TYPE_DECL_NONE ;
4386
    have_func_declarator = 0 ;
4387
	    }
4388
	    ZR944 (ZI943, &ZI1376);
4389
	    if ((CURRENT_TERMINAL) == 354) {
4390
		RESTORE_LEXER;
4391
		goto ZL1;
4392
	    }
4393
	    {
4394
 
4395
    end_param () ;
4396
    have_type_declaration = TYPE_DECL_NONE ;
4397
    have_func_declarator = 1 ;
4398
	    }
4399
	    {
4400
 
4401
    HASHID nm = lookup_anon () ;
4402
    (ZI1377) = DEREF_id ( hashid_id ( nm ) ) ;
4403
    crt_id_qualifier = qual_none ;
4404
    qual_namespace = NULL_nspace ;
4405
	    }
4406
	    {
4407
 
4408
    IDENTIFIER pid = underlying_id ( (ZI1377) ) ;
4409
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
4410
	    }
4411
	    ZR1161 (ZI1376, ZI1377, &ZI480, &ZI419);
4412
	    if ((CURRENT_TERMINAL) == 354) {
4413
		RESTORE_LEXER;
4414
		goto ZL1;
4415
	    }
4416
	    {
4417
 
4418
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 1 ) ) ;
4419
	    }
4420
	}
4421
	break;
4422
      case 66:
4423
	{
4424
	    EXP ZI431;
4425
	    TYPE ZI1374;
4426
	    IDENTIFIER ZI1375;
4427
	    TYPE ZI480;
4428
 
4429
	    {
4430
		{
4431
		    switch (CURRENT_TERMINAL) {
4432
		      case 66:
4433
			break;
4434
		      default:
4435
			goto ZL1;
4436
		    }
4437
		    ADVANCE_LEXER;
4438
		}
4439
	    }
4440
	    ZR953 (&ZI431);
4441
	    if ((CURRENT_TERMINAL) == 354) {
4442
		RESTORE_LEXER;
4443
		goto ZL1;
4444
	    }
4445
	    {
4446
 
4447
    NAT n = make_array_dim ( (ZI431) ) ;
4448
    MAKE_type_array ( cv_none, NULL_type, n, (ZI1374) ) ;
4449
	    }
4450
	    {
4451
		{
4452
		    switch (CURRENT_TERMINAL) {
4453
		      case 40:
4454
			break;
4455
		      default:
4456
			goto ZL1;
4457
		    }
4458
		    ADVANCE_LEXER;
4459
		}
4460
	    }
4461
	    {
4462
 
4463
    HASHID nm = lookup_anon () ;
4464
    (ZI1375) = DEREF_id ( hashid_id ( nm ) ) ;
4465
    crt_id_qualifier = qual_none ;
4466
    qual_namespace = NULL_nspace ;
4467
	    }
4468
	    {
4469
 
4470
    IDENTIFIER pid = underlying_id ( (ZI1375) ) ;
4471
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
4472
	    }
4473
	    ZR1161 (ZI1374, ZI1375, &ZI480, &ZI419);
4474
	    if ((CURRENT_TERMINAL) == 354) {
4475
		RESTORE_LEXER;
4476
		goto ZL1;
4477
	    }
4478
	    {
4479
 
4480
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 1 ) ) ;
4481
	    }
4482
	}
4483
	break;
4484
      case 10: case 11: case 33: case 78:
4485
	{
4486
	    TYPE ZI1378;
4487
	    TYPE ZI1379;
4488
	    TYPE ZI480;
4489
 
4490
	    ZR926 (&ZI1378);
4491
	    ZR959 (&ZI1379, &ZI419);
4492
	    if ((CURRENT_TERMINAL) == 354) {
4493
		RESTORE_LEXER;
4494
		goto ZL1;
4495
	    }
4496
	    {
4497
 
4498
    (ZI480) = ( IS_NULL_type ( (ZI1379) ) ? (ZI1378) : inject_pre_type ( (ZI1379), (ZI1378), 0 ) ) ;
4499
	    }
4500
	    {
4501
 
4502
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 1 ) ) ;
4503
	    }
4504
	}
4505
	break;
4506
      default:
4507
	{
4508
	    TYPE ZI480;
4509
 
4510
	    {
4511
 
4512
    (ZI480) = NULL_type ;
4513
	    }
4514
	    {
4515
 
4516
    HASHID nm = lookup_anon () ;
4517
    (ZI419) = DEREF_id ( hashid_id ( nm ) ) ;
4518
    crt_id_qualifier = qual_none ;
4519
    qual_namespace = NULL_nspace ;
4520
	    }
4521
	    {
4522
 
4523
    IDENTIFIER pid = underlying_id ( (ZI419) ) ;
4524
    DEREF_loc ( id_loc ( pid ), decl_loc ) ;
4525
	    }
4526
	    {
4527
 
4528
    (ZI414) = ( IS_NULL_type ( (ZI480) ) ? (ZI497) : inject_pre_type ( (ZI480), (ZI497), 1 ) ) ;
4529
	    }
4530
	}
4531
	break;
4532
    }
4533
    goto ZL0;
4534
  ZL1:;
4535
    SAVE_LEXER (354);
4536
    return;
4537
  ZL0:;
4538
    *ZO414 = ZI414;
4539
    *ZO419 = ZI419;
4540
}
4541
 
4542
void
4543
ZR1056 PROTO_N ((ZO431))
4544
  PROTO_T (EXP *ZO431)
4545
{
4546
    EXP ZI431;
4547
 
4548
    if ((CURRENT_TERMINAL) == 354) {
4549
	return;
4550
    }
4551
    {
4552
	EXP ZI493;
4553
	SID_LIST_EXP ZI497;
4554
 
4555
	switch (CURRENT_TERMINAL) {
4556
	  case 126:
4557
	    break;
4558
	  default:
4559
	    goto ZL1;
4560
	}
4561
	ADVANCE_LEXER;
4562
	switch (CURRENT_TERMINAL) {
4563
	  case 65:
4564
	    break;
4565
	  default:
4566
	    goto ZL1;
4567
	}
4568
	ADVANCE_LEXER;
4569
	{
4570
	    switch (CURRENT_TERMINAL) {
4571
	      case 19:
4572
		{
4573
		    {
4574
 
4575
    ZI493 = crt_token->pp_data.exp ;
4576
		    }
4577
		    ADVANCE_LEXER;
4578
		}
4579
		break;
4580
	      case 20:
4581
		{
4582
		    {
4583
 
4584
    ZI493 = crt_token->pp_data.exp ;
4585
		    }
4586
		    ADVANCE_LEXER;
4587
		}
4588
		break;
4589
	      default:
4590
		goto ZL1;
4591
	    }
4592
	}
4593
	ZR499 (&ZI497);
4594
	if ((CURRENT_TERMINAL) == 354) {
4595
	    RESTORE_LEXER;
4596
	    goto ZL1;
4597
	}
4598
	{
4599
 
4600
    (ZI431) = make_asm ( (ZI493), (ZI497) ) ;
4601
	}
4602
	switch (CURRENT_TERMINAL) {
4603
	  case 39:
4604
	    break;
4605
	  default:
4606
	    goto ZL1;
4607
	}
4608
	ADVANCE_LEXER;
4609
	ZR418 ();
4610
	if ((CURRENT_TERMINAL) == 354) {
4611
	    RESTORE_LEXER;
4612
	    goto ZL1;
4613
	}
4614
    }
4615
    goto ZL0;
4616
  ZL1:;
4617
    SAVE_LEXER (354);
4618
    return;
4619
  ZL0:;
4620
    *ZO431 = ZI431;
4621
}
4622
 
4623
void
4624
ZR1432 PROTO_N ((ZO450))
4625
  PROTO_T (int *ZO450)
4626
{
4627
    int ZI450;
4628
 
4629
    switch (CURRENT_TERMINAL) {
4630
      case 40:
4631
	{
4632
	    {
4633
		{
4634
		    switch (CURRENT_TERMINAL) {
4635
		      case 40:
4636
			break;
4637
		      default:
4638
			goto ZL1;
4639
		    }
4640
		    ADVANCE_LEXER;
4641
		}
4642
	    }
4643
	    {
4644
 (ZI450) = lex_delete_Harray ; 
4645
	    }
4646
	}
4647
	break;
4648
      case 1: case 2: case 3: case 5: case 6:
4649
      case 7: case 8: case 9: case 17: case 18:
4650
      case 19: case 20: case 21: case 22: case 23:
4651
      case 25: case 33: case 43: case 59: case 61:
4652
      case 62: case 65: case 69: case 71: case 78:
4653
      case 83: case 85: case 97: case 102: case 106:
4654
      case 110: case 111: case 114: case 115: case 116:
4655
      case 122: case 123: case 127: case 130: case 131:
4656
      case 132: case 135: case 140: case 141: case 145:
4657
      case 146: case 148: case 149: case 150: case 152:
4658
      case 156: case 170: case 184: case 205: case 209:
4659
      case 285: case 297: case 298: case 323: case 329:
4660
      case 345:
4661
	{
4662
	    EXP ZI431;
4663
 
4664
	    ZR491 (&ZI431);
4665
	    if ((CURRENT_TERMINAL) == 354) {
4666
		RESTORE_LEXER;
4667
		goto ZL1;
4668
	    }
4669
	    {
4670
 
4671
    /* Array size in 'delete []' */
4672
    old_delete_array ( (ZI431) ) ;
4673
	    }
4674
	    {
4675
		{
4676
		    switch (CURRENT_TERMINAL) {
4677
		      case 40:
4678
			break;
4679
		      default:
4680
			goto ZL1;
4681
		    }
4682
		    ADVANCE_LEXER;
4683
		}
4684
	    }
4685
	    {
4686
 (ZI450) = lex_delete_Harray ; 
4687
	    }
4688
	}
4689
	break;
4690
      case 354:
4691
	return;
4692
      default:
4693
	goto ZL1;
4694
    }
4695
    goto ZL0;
4696
  ZL1:;
4697
    SAVE_LEXER (354);
4698
    return;
4699
  ZL0:;
4700
    *ZO450 = ZI450;
4701
}
4702
 
4703
void
4704
ZR569 PROTO_N ((ZI414, ZO431))
4705
  PROTO_T (TYPE ZI414 X EXP *ZO431)
4706
{
4707
    EXP ZI431;
4708
 
4709
    switch (CURRENT_TERMINAL) {
4710
      case 65:
4711
	{
4712
	    SID_LIST_EXP ZI497;
4713
 
4714
	    ADVANCE_LEXER;
4715
	    ZR500 (&ZI497);
4716
	    switch (CURRENT_TERMINAL) {
4717
	      case 39:
4718
		break;
4719
	      case 354:
4720
		RESTORE_LEXER;
4721
		goto ZL1;
4722
	      default:
4723
		goto ZL1;
4724
	    }
4725
	    ADVANCE_LEXER;
4726
	    {
4727
 
4728
    (ZI431) = make_new_init ( (ZI414), (ZI497), 1 ) ;
4729
	    }
4730
	}
4731
	break;
4732
      default:
4733
	{
4734
	    {
4735
 
4736
    (ZI431) = make_new_init ( (ZI414), NULL_list ( EXP ), 0 ) ;
4737
	    }
4738
	}
4739
	break;
4740
      case 354:
4741
	return;
4742
    }
4743
    goto ZL0;
4744
  ZL1:;
4745
    SAVE_LEXER (354);
4746
    return;
4747
  ZL0:;
4748
    *ZO431 = ZI431;
4749
}
4750
 
4751
void
4752
ZR632 PROTO_N ((ZO431))
4753
  PROTO_T (EXP *ZO431)
4754
{
4755
    EXP ZI431;
4756
 
4757
    if ((CURRENT_TERMINAL) == 354) {
4758
	return;
4759
    }
4760
    {
4761
	EXP ZI1260;
4762
 
4763
	ZR630 (&ZI1260);
4764
	ZR1262 (&ZI1260, &ZI431);
4765
	if ((CURRENT_TERMINAL) == 354) {
4766
	    RESTORE_LEXER;
4767
	    goto ZL1;
4768
	}
4769
    }
4770
    goto ZL0;
4771
  ZL1:;
4772
    SAVE_LEXER (354);
4773
    return;
4774
  ZL0:;
4775
    *ZO431 = ZI431;
4776
}
4777
 
4778
void
4779
ZR944 PROTO_N ((ZI943, ZO414))
4780
  PROTO_T (int ZI943 X TYPE *ZO414)
4781
{
4782
    TYPE ZI414;
4783
 
4784
    if ((CURRENT_TERMINAL) == 354) {
4785
	return;
4786
    }
4787
    {
4788
	int ZI945;
4789
	CV_SPEC ZI783;
4790
	SID_LIST_TYPE ZI722;
4791
 
4792
	ZR941 (&ZI945);
4793
	switch (CURRENT_TERMINAL) {
4794
	  case 39:
4795
	    break;
4796
	  case 354:
4797
	    RESTORE_LEXER;
4798
	    goto ZL1;
4799
	  default:
4800
	    goto ZL1;
4801
	}
4802
	ADVANCE_LEXER;
4803
	ZR788 (&ZI783);
4804
	ZR939 (&ZI722);
4805
	if ((CURRENT_TERMINAL) == 354) {
4806
	    RESTORE_LEXER;
4807
	    goto ZL1;
4808
	}
4809
	{
4810
 
4811
    CV_SPEC cv = func_linkage ( (ZI783) ) ;
4812
    if ( (ZI943) ) (ZI945) |= FUNC_WEAK ;
4813
    (ZI414) = make_func_type ( NULL_type, (ZI945), cv, (ZI722) ) ;
4814
	}
4815
    }
4816
    goto ZL0;
4817
  ZL1:;
4818
    SAVE_LEXER (354);
4819
    return;
4820
  ZL0:;
4821
    *ZO414 = ZI414;
4822
}
4823
 
4824
void
4825
ZR1433 PROTO_N ((ZI419, ZO431))
4826
  PROTO_T (IDENTIFIER *ZI419 X EXP *ZO431)
4827
{
4828
    EXP ZI431;
4829
 
4830
    switch (CURRENT_TERMINAL) {
4831
      case 36:
4832
	{
4833
	    NAMESPACE ZI1047;
4834
	    IDENTIFIER ZI1048;
4835
	    IDENTIFIER ZI1049;
4836
	    NAMESPACE ZI425;
4837
 
4838
	    ADVANCE_LEXER;
4839
	    ZR428 (&ZI1047);
4840
	    ZR508 (&ZI1048);
4841
	    if ((CURRENT_TERMINAL) == 354) {
4842
		RESTORE_LEXER;
4843
		goto ZL1;
4844
	    }
4845
	    {
4846
 
4847
    (ZI1049) = check_id ( (ZI1047), (ZI1048), 0 ) ;
4848
    last_namespace = (ZI1047) ;
4849
	    }
4850
	    {
4851
 
4852
    (ZI425) = find_nspace_id ( (ZI1049) ) ;
4853
	    }
4854
	    {
4855
 
4856
    crt_id_qualifier = qual_none ;
4857
    crt_templ_qualifier = 0 ;
4858
    qual_namespace = NULL_nspace ;
4859
	    }
4860
	    {
4861
 
4862
    alias_namespace ( (*ZI419), (ZI425) ) ;
4863
	    }
4864
	    ZR418 ();
4865
	    if ((CURRENT_TERMINAL) == 354) {
4866
		RESTORE_LEXER;
4867
		goto ZL1;
4868
	    }
4869
	    {
4870
 
4871
    (ZI431) = NULL_exp ;
4872
	    }
4873
	}
4874
	break;
4875
      case 64:
4876
	{
4877
	    DECL_SPEC ZI689;
4878
	    TYPE ZI414;
4879
 
4880
	    {
4881
 
4882
    begin_namespace ( (*ZI419), 0 ) ;
4883
	    }
4884
	    {
4885
 (ZI689) = dspec_none ; 
4886
	    }
4887
	    {
4888
 
4889
    (ZI414) = NULL_type ;
4890
	    }
4891
	    {
4892
		{
4893
		    switch (CURRENT_TERMINAL) {
4894
		      case 64:
4895
			break;
4896
		      default:
4897
			goto ZL1;
4898
		    }
4899
		    ADVANCE_LEXER;
4900
		}
4901
	    }
4902
	    ZR1027 (ZI414, ZI689);
4903
	    if ((CURRENT_TERMINAL) == 354) {
4904
		RESTORE_LEXER;
4905
		goto ZL1;
4906
	    }
4907
	    {
4908
 
4909
    end_namespace ( 0 ) ;
4910
	    }
4911
	    {
4912
		{
4913
		    switch (CURRENT_TERMINAL) {
4914
		      case 38:
4915
			break;
4916
		      default:
4917
			goto ZL1;
4918
		    }
4919
		    ADVANCE_LEXER;
4920
		}
4921
	    }
4922
	    {
4923
 
4924
    RESCAN_LEXER ;
4925
	    }
4926
	    {
4927
 
4928
    (ZI431) = NULL_exp ;
4929
	    }
4930
	}
4931
	break;
4932
      case 354:
4933
	return;
4934
      default:
4935
	goto ZL1;
4936
    }
4937
    goto ZL0;
4938
  ZL1:;
4939
    SAVE_LEXER (354);
4940
    return;
4941
  ZL0:;
4942
    *ZO431 = ZI431;
4943
}
4944
 
4945
void
4946
ZR942 PROTO_N ((ZO419))
4947
  PROTO_T (IDENTIFIER *ZO419)
4948
{
4949
    IDENTIFIER ZI419;
4950
 
4951
    switch (CURRENT_TERMINAL) {
4952
      case 83:
4953
	{
4954
	    ADVANCE_LEXER;
4955
	    ZR1346 (&ZI419);
4956
	    if ((CURRENT_TERMINAL) == 354) {
4957
		RESTORE_LEXER;
4958
		goto ZL1;
4959
	    }
4960
	}
4961
	break;
4962
      case 9:
4963
	{
4964
	    NAMESPACE ZI425;
4965
 
4966
	    {
4967
 
4968
    ZI425 = crt_token->pp_data.ns ;
4969
	    }
4970
	    ADVANCE_LEXER;
4971
	    ZR1345 (&ZI425, &ZI419);
4972
	    if ((CURRENT_TERMINAL) == 354) {
4973
		RESTORE_LEXER;
4974
		goto ZL1;
4975
	    }
4976
	}
4977
	break;
4978
      case 8:
4979
	{
4980
	    NAMESPACE ZI425;
4981
 
4982
	    {
4983
 
4984
    ZI425 = crt_token->pp_data.ns ;
4985
	    }
4986
	    ADVANCE_LEXER;
4987
	    ZR1344 (&ZI425, &ZI419);
4988
	    if ((CURRENT_TERMINAL) == 354) {
4989
		RESTORE_LEXER;
4990
		goto ZL1;
4991
	    }
4992
	}
4993
	break;
4994
      case 4:
4995
	{
4996
	    IDENTIFIER ZI478;
4997
 
4998
	    {
4999
 
5000
    ZI478 = crt_token->pp_data.id.use ;
5001
	    }
5002
	    ADVANCE_LEXER;
5003
	    {
5004
 
5005
    (ZI419) = (ZI478) ;
5006
    crt_id_qualifier = qual_none ;
5007
    last_namespace = crt_namespace ;
5008
	    }
5009
	}
5010
	break;
5011
      case 1: case 3: case 5: case 6: case 141:
5012
	{
5013
	    ZR477 (&ZI419);
5014
	    if ((CURRENT_TERMINAL) == 354) {
5015
		RESTORE_LEXER;
5016
		goto ZL1;
5017
	    }
5018
	}
5019
	break;
5020
      case 2: case 7:
5021
	{
5022
	    IDENTIFIER ZI460;
5023
 
5024
	    ZR472 (&ZI460);
5025
	    if ((CURRENT_TERMINAL) == 354) {
5026
		RESTORE_LEXER;
5027
		goto ZL1;
5028
	    }
5029
	    {
5030
 
5031
    (ZI419) = constr_name ( last_namespace, (ZI460) ) ;
5032
	    }
5033
	}
5034
	break;
5035
      case 354:
5036
	return;
5037
      default:
5038
	goto ZL1;
5039
    }
5040
    goto ZL0;
5041
  ZL1:;
5042
    SAVE_LEXER (354);
5043
    return;
5044
  ZL0:;
5045
    *ZO419 = ZI419;
5046
}
5047
 
5048
/* END OF FILE */