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/common/parse/psyntax.sid
4
 * and
5
 *	/u/g/release/Source/src/producers/common/parse/psyntax.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 "exp_ops.h"
47
#include "hashid_ops.h"
48
#include "id_ops.h"
49
#include "tok_ops.h"
50
#include "type_ops.h"
51
#include "error.h"
52
#include "catalog.h"
53
#include "option.h"
54
#include "access.h"
55
#include "allocate.h"
56
#include "assign.h"
57
#include "basetype.h"
58
#include "cast.h"
59
#include "chktype.h"
60
#include "class.h"
61
#include "constant.h"
62
#include "construct.h"
63
#include "convert.h"
64
#include "declare.h"
65
#include "derive.h"
66
#include "exception.h"
67
#include "expression.h"
68
#include "function.h"
69
#include "hash.h"
70
#include "identifier.h"
71
#include "initialise.h"
72
#include "inttype.h"
73
#include "label.h"
74
#include "lex.h"
75
#include "literal.h"
76
#include "member.h"
77
#include "namespace.h"
78
#include "parse.h"
79
#include "pragma.h"
80
#include "predict.h"
81
#include "preproc.h"
82
#include "printf.h"
83
#include "redeclare.h"
84
#include "rewrite.h"
85
#include "statement.h"
86
#include "symbols.h"
87
#include "template.h"
88
#include "tokdef.h"
89
#include "token.h"
90
#include "typeid.h"
91
#include "variable.h"
92
 
93
 
94
/*
95
    COMPOUND TYPE ALIASES
96
 
97
    These are the aliases for the compound types used in the parser.
98
*/
99
 
100
typedef LIST ( IDENTIFIER ) SID_LIST_ID ;
101
 
102
 
103
/*
104
     DECLARE FUNCTIONS
105
 
106
     The function declarations are included at this point so that the
107
     type definitions are in scope.
108
*/
109
 
110
#include "psyntax.h"
111
extern void parse_tok_type PROTO_S ( ( TYPE * ) ) ;
112
extern void parse_mem_type PROTO_S ( ( TYPE * ) ) ;
113
extern void parse_operator PROTO_S ( ( IDENTIFIER * ) ) ;
114
 
115
 
116
/*
117
    COMPILATION MODE
118
 
119
    The output of sid is automatically generated.  Hence it is not
120
    necessarily appropriate to apply the same level of checking to this
121
    as to the rest of the program.  These pragmas describe the relaxations
122
    allowed for the sid output.
123
*/
124
 
125
#if FS_TENDRA
126
#pragma TenDRA begin
127
#pragma TenDRA variable analysis off
128
#ifndef OLD_PRODUCER
129
#pragma TenDRA unreachable code allow
130
#endif
131
#endif
132
 
133
 
134
 
135
void
136
XR550 PROTO_N ((XO397))
137
  PROTO_T (int *XO397)
138
{
139
    int XI397;
140
 
141
    switch (CURRENT_TERMINAL) {
142
      case 126:
143
	{
144
	    ADVANCE_LEXER;
145
	    {
146
 (XI397) = lex_asm ; 
147
	    }
148
	}
149
	break;
150
      case 205:
151
	{
152
	    ADVANCE_LEXER;
153
	    XR852 (&XI397);
154
	    if ((CURRENT_TERMINAL) == 354) {
155
		RESTORE_LEXER;
156
		goto XL1;
157
	    }
158
	}
159
	break;
160
      case 216:
161
	{
162
	    ADVANCE_LEXER;
163
	    {
164
 (XI397) = lex_exhaustive ; 
165
	    }
166
	}
167
	break;
168
      case 222:
169
	{
170
	    ADVANCE_LEXER;
171
	    switch (CURRENT_TERMINAL) {
172
	      case 248:
173
		break;
174
	      default:
175
		goto XL1;
176
	    }
177
	    ADVANCE_LEXER;
178
	    switch (CURRENT_TERMINAL) {
179
	      case 96:
180
		break;
181
	      default:
182
		goto XL1;
183
	    }
184
	    ADVANCE_LEXER;
185
	    {
186
 (XI397) = lex_fall ; 
187
	    }
188
	}
189
	break;
190
      case 137:
191
	{
192
	    ADVANCE_LEXER;
193
	    {
194
 (XI397) = lex_inline ; 
195
	    }
196
	}
197
	break;
198
      case 141:
199
	{
200
	    ADVANCE_LEXER;
201
	    {
202
 
203
    (XI397) = crt_lex_token ;
204
    if ( (XI397) >= FIRST_SYMBOL && (XI397) <= LAST_SYMBOL ) crt_lex_token = lex_plus ;
205
	    }
206
	    switch (CURRENT_TERMINAL) {
207
	      case 69:
208
		break;
209
	      default:
210
		goto XL1;
211
	    }
212
	    ADVANCE_LEXER;
213
	}
214
	break;
215
      case 297:
216
	{
217
	    ADVANCE_LEXER;
218
	    XR853 (&XI397);
219
	    if ((CURRENT_TERMINAL) == 354) {
220
		RESTORE_LEXER;
221
		goto XL1;
222
	    }
223
	}
224
	break;
225
      case 312:
226
	{
227
	    ADVANCE_LEXER;
228
	    switch (CURRENT_TERMINAL) {
229
	      case 291:
230
		break;
231
	      default:
232
		goto XL1;
233
	    }
234
	    ADVANCE_LEXER;
235
	    {
236
 (XI397) = lex_representation ; 
237
	    }
238
	}
239
	break;
240
      case 331:
241
	{
242
	    ADVANCE_LEXER;
243
	    {
244
 (XI397) = lex_weak ; 
245
	    }
246
	}
247
	break;
248
      case 250:
249
	{
250
	    IDENTIFIER XI375;
251
 
252
	    XR549 (&XI375);
253
	    if ((CURRENT_TERMINAL) == 354) {
254
		RESTORE_LEXER;
255
		goto XL1;
256
	    }
257
	    {
258
 
259
    (XI397) = find_keyword ( (XI375) ) ;
260
	    }
261
	}
262
	break;
263
      case 354:
264
	return;
265
      default:
266
	goto XL1;
267
    }
268
    goto XL0;
269
  XL1:;
270
    SAVE_LEXER (354);
271
    return;
272
  XL0:;
273
    *XO397 = XI397;
274
}
275
 
276
void
277
XR447 PROTO_N ((XO409))
278
  PROTO_T (DECL_SPEC *XO409)
279
{
280
    DECL_SPEC XI409;
281
 
282
    switch (CURRENT_TERMINAL) {
283
      case 142:
284
	{
285
	    ADVANCE_LEXER;
286
	    {
287
 (XI409) = dspec_private ; 
288
	    }
289
	}
290
	break;
291
      case 143:
292
	{
293
	    ADVANCE_LEXER;
294
	    {
295
 (XI409) = dspec_protected ; 
296
	    }
297
	}
298
	break;
299
      case 144:
300
	{
301
	    ADVANCE_LEXER;
302
	    {
303
 (XI409) = dspec_public ; 
304
	    }
305
	}
306
	break;
307
      default:
308
	{
309
	    {
310
 (XI409) = dspec_public ; 
311
	    }
312
	}
313
	break;
314
      case 354:
315
	return;
316
    }
317
    *XO409 = XI409;
318
}
319
 
320
void
321
XR757 PROTO_N ((XO708))
322
  PROTO_T (int *XO708)
323
{
324
    int XI708;
325
 
326
    if ((CURRENT_TERMINAL) == 354) {
327
	return;
328
    }
329
    {
330
	EXP XI448;
331
 
332
	switch (CURRENT_TERMINAL) {
333
	  case 214:
334
	    break;
335
	  default:
336
	    goto XL1;
337
	}
338
	ADVANCE_LEXER;
339
	{
340
	    switch (CURRENT_TERMINAL) {
341
	      case 19:
342
		{
343
		    {
344
 
345
    XI448 = crt_token->pp_data.exp ;
346
		    }
347
		    ADVANCE_LEXER;
348
		}
349
		break;
350
	      case 20:
351
		{
352
		    {
353
 
354
    XI448 = crt_token->pp_data.exp ;
355
		    }
356
		    ADVANCE_LEXER;
357
		}
358
		break;
359
	      default:
360
		goto XL1;
361
	    }
362
	}
363
	{
364
 
365
    STRING s = DEREF_str ( exp_string_lit_str ( (XI448) ) ) ;
366
    (XI708) = find_error_no ( s, 0 ) ;
367
    if ( (XI708) == -1 ) {
368
	report ( preproc_loc, ERR_pragma_error_bad ( s ) ) ;
369
    }
370
	}
371
    }
372
    goto XL0;
373
  XL1:;
374
    SAVE_LEXER (354);
375
    return;
376
  XL0:;
377
    *XO708 = XI708;
378
}
379
 
380
void
381
XR741 PROTO_N ((XO445))
382
  PROTO_T (unsigned *XO445)
383
{
384
    unsigned XI445;
385
 
386
    switch (CURRENT_TERMINAL) {
387
      case 178:
388
	{
389
	    ADVANCE_LEXER;
390
	    XR732 (&XI445);
391
	    if ((CURRENT_TERMINAL) == 354) {
392
		RESTORE_LEXER;
393
		goto XL1;
394
	    }
395
	}
396
	break;
397
      default:
398
	{
399
	    {
400
 (XI445) = CAST_EXPLICIT ; 
401
	    }
402
	}
403
	break;
404
      case 354:
405
	return;
406
    }
407
    goto XL0;
408
  XL1:;
409
    SAVE_LEXER (354);
410
    return;
411
  XL0:;
412
    *XO445 = XI445;
413
}
414
 
415
void
416
XR482 PROTO_Z ()
417
{
418
    if ((CURRENT_TERMINAL) == 354) {
419
	return;
420
    }
421
    {
422
	TYPE XI397;
423
	IDENTIFIER XI375;
424
 
425
	{
426
 
427
    in_token_decl = 1 ;
428
	}
429
	switch (CURRENT_TERMINAL) {
430
	  case 259:
431
	    break;
432
	  default:
433
	    goto XL1;
434
	}
435
	ADVANCE_LEXER;
436
	switch (CURRENT_TERMINAL) {
437
	  case 200:
438
	    break;
439
	  default:
440
	    goto XL1;
441
	}
442
	ADVANCE_LEXER;
443
	{
444
 
445
    (XI397) = type_error ;
446
    parse_tok_type ( &(XI397) ) ;
447
    object_type ( (XI397), null_tag ) ;
448
	}
449
	switch (CURRENT_TERMINAL) {
450
	  case 41:
451
	    break;
452
	  default:
453
	    goto XL1;
454
	}
455
	ADVANCE_LEXER;
456
	{
457
	    switch (CURRENT_TERMINAL) {
458
	      case 1:
459
		{
460
		    {
461
 
462
    XI375 = crt_token->pp_data.id.use ;
463
		    }
464
		    ADVANCE_LEXER;
465
		}
466
		break;
467
	      case 3:
468
		{
469
		    {
470
 
471
    XI375 = crt_token->pp_data.id.use ;
472
		    }
473
		    ADVANCE_LEXER;
474
		}
475
		break;
476
	      case 4:
477
		{
478
		    {
479
 
480
    XI375 = crt_token->pp_data.id.use ;
481
		    }
482
		    ADVANCE_LEXER;
483
		}
484
		break;
485
	      case 2:
486
		{
487
		    {
488
 
489
    XI375 = crt_token->pp_data.id.use ;
490
		    }
491
		    ADVANCE_LEXER;
492
		}
493
		break;
494
	      default:
495
		goto XL1;
496
	    }
497
	}
498
	{
499
 
500
    in_token_decl = 0 ;
501
	}
502
	{
503
 
504
    if ( define_mem_macro ( (XI375), (XI397) ) ) no_declarations++ ;
505
	}
506
    }
507
    return;
508
  XL1:;
509
    SAVE_LEXER (354);
510
    return;
511
}
512
 
513
void
514
XR495 PROTO_N ((XI409))
515
  PROTO_T (int XI409)
516
{
517
  XL2_495:;
518
    switch (CURRENT_TERMINAL) {
519
      case 1: case 2: case 3: case 4:
520
	{
521
	    IDENTIFIER XI375;
522
 
523
	    {
524
		switch (CURRENT_TERMINAL) {
525
		  case 1:
526
		    {
527
			{
528
 
529
    XI375 = crt_token->pp_data.id.use ;
530
			}
531
			ADVANCE_LEXER;
532
		    }
533
		    break;
534
		  case 3:
535
		    {
536
			{
537
 
538
    XI375 = crt_token->pp_data.id.use ;
539
			}
540
			ADVANCE_LEXER;
541
		    }
542
		    break;
543
		  case 4:
544
		    {
545
			{
546
 
547
    XI375 = crt_token->pp_data.id.use ;
548
			}
549
			ADVANCE_LEXER;
550
		    }
551
		    break;
552
		  case 2:
553
		    {
554
			{
555
 
556
    XI375 = crt_token->pp_data.id.use ;
557
			}
558
			ADVANCE_LEXER;
559
		    }
560
		    break;
561
		  default:
562
		    goto XL1;
563
		}
564
	    }
565
	    {
566
 
567
    preserve_id ( (XI375), (XI409) ) ;
568
	    }
569
	    goto XL2_495;
570
	}
571
	/*UNREACHED*/
572
      case 354:
573
	return;
574
      default:
575
	break;
576
    }
577
    return;
578
  XL1:;
579
    SAVE_LEXER (354);
580
    return;
581
}
582
 
583
void
584
XR507 PROTO_N ((XO377))
585
  PROTO_T (unsigned *XO377)
586
{
587
    unsigned XI377;
588
 
589
    switch (CURRENT_TERMINAL) {
590
      case 172:
591
	{
592
	    ADVANCE_LEXER;
593
	    {
594
 (XI377) = ( unsigned ) OPTION_OFF ; 
595
	    }
596
	}
597
	break;
598
      case 204:
599
	{
600
	    ADVANCE_LEXER;
601
	    {
602
 (XI377) = ( unsigned ) OPTION_ON ; 
603
	    }
604
	}
605
	break;
606
      case 270:
607
	{
608
	    ADVANCE_LEXER;
609
	    {
610
 (XI377) = ( unsigned ) OPTION_OFF ; 
611
	    }
612
	}
613
	break;
614
      case 271:
615
	{
616
	    ADVANCE_LEXER;
617
	    {
618
 (XI377) = ( unsigned ) OPTION_ON ; 
619
	    }
620
	}
621
	break;
622
      case 330:
623
	{
624
	    ADVANCE_LEXER;
625
	    {
626
 (XI377) = ( unsigned ) OPTION_WARN ; 
627
	    }
628
	}
629
	break;
630
      case 354:
631
	return;
632
      default:
633
	goto XL1;
634
    }
635
    goto XL0;
636
  XL1:;
637
    SAVE_LEXER (354);
638
    return;
639
  XL0:;
640
    *XO377 = XI377;
641
}
642
 
643
void
644
XR413 PROTO_N ((XO402))
645
  PROTO_T (SID_LIST_ID *XO402)
646
{
647
    SID_LIST_ID XI402;
648
 
649
    if ((CURRENT_TERMINAL) == 354) {
650
	return;
651
    }
652
    {
653
	IDENTIFIER XI375;
654
	SID_LIST_ID XI405;
655
 
656
	XR411 (&XI375);
657
	{
658
	    switch (CURRENT_TERMINAL) {
659
	      case 42:
660
		{
661
		    ADVANCE_LEXER;
662
		    XR831 (&XI405);
663
		    if ((CURRENT_TERMINAL) == 354) {
664
			RESTORE_LEXER;
665
			goto XL1;
666
		    }
667
		}
668
		break;
669
	      default:
670
		{
671
		    {
672
 
673
    (XI405) = NULL_list ( IDENTIFIER ) ;
674
		    }
675
		}
676
		break;
677
	      case 354:
678
		RESTORE_LEXER;
679
		goto XL1;
680
	    }
681
	}
682
	{
683
 
684
    CONS_id ( (XI375), (XI405), (XI402) ) ;
685
	}
686
    }
687
    goto XL0;
688
  XL1:;
689
    SAVE_LEXER (354);
690
    return;
691
  XL0:;
692
    *XO402 = XI402;
693
}
694
 
695
void
696
XR551 PROTO_Z ()
697
{
698
    switch (CURRENT_TERMINAL) {
699
      case 317:
700
	{
701
	    IDENTIFIER XI375;
702
 
703
	    ADVANCE_LEXER;
704
	    XR549 (&XI375);
705
	    if ((CURRENT_TERMINAL) == 354) {
706
		RESTORE_LEXER;
707
		goto XL1;
708
	    }
709
	    {
710
 
711
    undef_keyword ( (XI375) ) ;
712
	    }
713
	}
714
	break;
715
      case 250:
716
	{
717
	    IDENTIFIER XI375;
718
	    int XI397;
719
 
720
	    XR549 (&XI375);
721
	    switch (CURRENT_TERMINAL) {
722
	      case 107:
723
		break;
724
	      case 354:
725
		RESTORE_LEXER;
726
		goto XL1;
727
	      default:
728
		goto XL1;
729
	    }
730
	    ADVANCE_LEXER;
731
	    XR550 (&XI397);
732
	    if ((CURRENT_TERMINAL) == 354) {
733
		RESTORE_LEXER;
734
		goto XL1;
735
	    }
736
	    {
737
 
738
    define_keyword ( (XI375), (XI397) ) ;
739
	    }
740
	}
741
	break;
742
      case 354:
743
	return;
744
      default:
745
	goto XL1;
746
    }
747
    return;
748
  XL1:;
749
    SAVE_LEXER (354);
750
    return;
751
}
752
 
753
void
754
XR497 PROTO_Z ()
755
{
756
  XL2_497:;
757
    switch (CURRENT_TERMINAL) {
758
      case 1: case 2: case 3: case 4:
759
	{
760
	    IDENTIFIER XI375;
761
 
762
	    {
763
		switch (CURRENT_TERMINAL) {
764
		  case 1:
765
		    {
766
			{
767
 
768
    XI375 = crt_token->pp_data.id.use ;
769
			}
770
			ADVANCE_LEXER;
771
		    }
772
		    break;
773
		  case 3:
774
		    {
775
			{
776
 
777
    XI375 = crt_token->pp_data.id.use ;
778
			}
779
			ADVANCE_LEXER;
780
		    }
781
		    break;
782
		  case 4:
783
		    {
784
			{
785
 
786
    XI375 = crt_token->pp_data.id.use ;
787
			}
788
			ADVANCE_LEXER;
789
		    }
790
		    break;
791
		  case 2:
792
		    {
793
			{
794
 
795
    XI375 = crt_token->pp_data.id.use ;
796
			}
797
			ADVANCE_LEXER;
798
		    }
799
		    break;
800
		  default:
801
		    goto XL1;
802
		}
803
	    }
804
	    {
805
 
806
    preserve_id ( (XI375), lex_suspend ) ;
807
	    }
808
	    goto XL2_497;
809
	}
810
	/*UNREACHED*/
811
      case 354:
812
	return;
813
      default:
814
	break;
815
    }
816
    return;
817
  XL1:;
818
    SAVE_LEXER (354);
819
    return;
820
}
821
 
822
void
823
XR506 PROTO_N ((XO377))
824
  PROTO_T (unsigned *XO377)
825
{
826
    unsigned XI377;
827
 
828
    switch (CURRENT_TERMINAL) {
829
      case 172:
830
	{
831
	    ADVANCE_LEXER;
832
	    {
833
 (XI377) = ( unsigned ) OPTION_OFF ; 
834
	    }
835
	}
836
	break;
837
      case 204:
838
	{
839
	    ADVANCE_LEXER;
840
	    {
841
 (XI377) = ( unsigned ) OPTION_ON ; 
842
	    }
843
	}
844
	break;
845
      case 330:
846
	{
847
	    ADVANCE_LEXER;
848
	    {
849
 (XI377) = ( unsigned ) OPTION_WARN ; 
850
	    }
851
	}
852
	break;
853
      case 354:
854
	return;
855
      default:
856
	goto XL1;
857
    }
858
    goto XL0;
859
  XL1:;
860
    SAVE_LEXER (354);
861
    return;
862
  XL0:;
863
    *XO377 = XI377;
864
}
865
 
866
void
867
XR753 PROTO_N ((XO444))
868
  PROTO_T (EXP *XO444)
869
{
870
    EXP XI444;
871
 
872
    switch (CURRENT_TERMINAL) {
873
      case 178:
874
	{
875
	    ADVANCE_LEXER;
876
	    {
877
		switch (CURRENT_TERMINAL) {
878
		  case 17:
879
		    {
880
			{
881
 
882
    XI444 = crt_token->pp_data.exp ;
883
			}
884
			ADVANCE_LEXER;
885
		    }
886
		    break;
887
		  case 18:
888
		    {
889
			{
890
 
891
    XI444 = crt_token->pp_data.exp ;
892
			}
893
			ADVANCE_LEXER;
894
		    }
895
		    break;
896
		  default:
897
		    goto XL1;
898
		}
899
	    }
900
	    switch (CURRENT_TERMINAL) {
901
	      case 172:
902
		break;
903
	      default:
904
		goto XL1;
905
	    }
906
	    ADVANCE_LEXER;
907
	}
908
	break;
909
      case 204:
910
	{
911
	    ADVANCE_LEXER;
912
	    {
913
 
914
    (XI444) = NULL_exp ;
915
	    }
916
	}
917
	break;
918
      case 354:
919
	return;
920
      default:
921
	goto XL1;
922
    }
923
    goto XL0;
924
  XL1:;
925
    SAVE_LEXER (354);
926
    return;
927
  XL0:;
928
    *XO444 = XI444;
929
}
930
 
931
void
932
XR446 PROTO_N ((XO444, XO445))
933
  PROTO_T (int *XO444 X int *XO445)
934
{
935
    int XI444;
936
    int XI445;
937
 
938
    switch (CURRENT_TERMINAL) {
939
      case 98:
940
	{
941
	    ADVANCE_LEXER;
942
	    {
943
 (XI444) = 0 ; 
944
	    }
945
	    {
946
 (XI445) = 1 ; 
947
	    }
948
	}
949
	break;
950
      case 256:
951
	{
952
	    ADVANCE_LEXER;
953
	    {
954
 (XI444) = 1 ; 
955
	    }
956
	    {
957
 (XI445) = 0 ; 
958
	    }
959
	}
960
	break;
961
      case 294:
962
	{
963
	    ADVANCE_LEXER;
964
	    {
965
 (XI444) = 0 ; 
966
	    }
967
	    {
968
 (XI445) = 0 ; 
969
	    }
970
	}
971
	break;
972
      default:
973
	{
974
	    {
975
 (XI444) = 0 ; 
976
	    }
977
	    {
978
 (XI445) = 0 ; 
979
	    }
980
	}
981
	break;
982
      case 354:
983
	return;
984
    }
985
    *XO444 = XI444;
986
    *XO445 = XI445;
987
}
988
 
989
void
990
XR407 PROTO_N ((XI406, XO375))
991
  PROTO_T (SID_LIST_ID XI406 X IDENTIFIER *XO375)
992
{
993
    IDENTIFIER XI375;
994
 
995
    switch (CURRENT_TERMINAL) {
996
      case 217:
997
	{
998
	    IDENTIFIER XI401;
999
 
1000
	    ADVANCE_LEXER;
1001
	    {
1002
		switch (CURRENT_TERMINAL) {
1003
		  case 1:
1004
		    {
1005
			{
1006
 
1007
    XI401 = crt_token->pp_data.id.use ;
1008
			}
1009
			ADVANCE_LEXER;
1010
		    }
1011
		    break;
1012
		  case 3:
1013
		    {
1014
			{
1015
 
1016
    XI401 = crt_token->pp_data.id.use ;
1017
			}
1018
			ADVANCE_LEXER;
1019
		    }
1020
		    break;
1021
		  case 4:
1022
		    {
1023
			{
1024
 
1025
    XI401 = crt_token->pp_data.id.use ;
1026
			}
1027
			ADVANCE_LEXER;
1028
		    }
1029
		    break;
1030
		  case 2:
1031
		    {
1032
			{
1033
 
1034
    XI401 = crt_token->pp_data.id.use ;
1035
			}
1036
			ADVANCE_LEXER;
1037
		    }
1038
		    break;
1039
		  default:
1040
		    goto XL1;
1041
		}
1042
	    }
1043
	    {
1044
 
1045
    (XI375) = prog_tok_param ( (XI401), NULL_type, tok_exp_tag, (XI406) ) ;
1046
	    }
1047
	}
1048
	break;
1049
      case 260:
1050
	{
1051
	    TYPE XI397;
1052
	    IDENTIFIER XI401;
1053
 
1054
	    ADVANCE_LEXER;
1055
	    {
1056
 
1057
    (XI397) = type_error ;
1058
    parse_tok_type ( &(XI397) ) ;
1059
    object_type ( (XI397), null_tag ) ;
1060
	    }
1061
	    switch (CURRENT_TERMINAL) {
1062
	      case 41:
1063
		break;
1064
	      default:
1065
		goto XL1;
1066
	    }
1067
	    ADVANCE_LEXER;
1068
	    {
1069
		switch (CURRENT_TERMINAL) {
1070
		  case 1:
1071
		    {
1072
			{
1073
 
1074
    XI401 = crt_token->pp_data.id.use ;
1075
			}
1076
			ADVANCE_LEXER;
1077
		    }
1078
		    break;
1079
		  case 3:
1080
		    {
1081
			{
1082
 
1083
    XI401 = crt_token->pp_data.id.use ;
1084
			}
1085
			ADVANCE_LEXER;
1086
		    }
1087
		    break;
1088
		  case 4:
1089
		    {
1090
			{
1091
 
1092
    XI401 = crt_token->pp_data.id.use ;
1093
			}
1094
			ADVANCE_LEXER;
1095
		    }
1096
		    break;
1097
		  case 2:
1098
		    {
1099
			{
1100
 
1101
    XI401 = crt_token->pp_data.id.use ;
1102
			}
1103
			ADVANCE_LEXER;
1104
		    }
1105
		    break;
1106
		  default:
1107
		    goto XL1;
1108
		}
1109
	    }
1110
	    {
1111
 
1112
    (XI375) = prog_tok_param ( (XI401), (XI397), tok_member_tag, (XI406) ) ;
1113
	    }
1114
	}
1115
	break;
1116
      case 281:
1117
	{
1118
	    IDENTIFIER XI401;
1119
 
1120
	    ADVANCE_LEXER;
1121
	    {
1122
		switch (CURRENT_TERMINAL) {
1123
		  case 1:
1124
		    {
1125
			{
1126
 
1127
    XI401 = crt_token->pp_data.id.use ;
1128
			}
1129
			ADVANCE_LEXER;
1130
		    }
1131
		    break;
1132
		  case 3:
1133
		    {
1134
			{
1135
 
1136
    XI401 = crt_token->pp_data.id.use ;
1137
			}
1138
			ADVANCE_LEXER;
1139
		    }
1140
		    break;
1141
		  case 4:
1142
		    {
1143
			{
1144
 
1145
    XI401 = crt_token->pp_data.id.use ;
1146
			}
1147
			ADVANCE_LEXER;
1148
		    }
1149
		    break;
1150
		  case 2:
1151
		    {
1152
			{
1153
 
1154
    XI401 = crt_token->pp_data.id.use ;
1155
			}
1156
			ADVANCE_LEXER;
1157
		    }
1158
		    break;
1159
		  default:
1160
		    goto XL1;
1161
		}
1162
	    }
1163
	    {
1164
 
1165
    (XI375) = prog_tok_param ( (XI401), NULL_type, tok_proc_tag, (XI406) ) ;
1166
	    }
1167
	}
1168
	break;
1169
      case 302:
1170
	{
1171
	    IDENTIFIER XI401;
1172
 
1173
	    ADVANCE_LEXER;
1174
	    {
1175
		switch (CURRENT_TERMINAL) {
1176
		  case 1:
1177
		    {
1178
			{
1179
 
1180
    XI401 = crt_token->pp_data.id.use ;
1181
			}
1182
			ADVANCE_LEXER;
1183
		    }
1184
		    break;
1185
		  case 3:
1186
		    {
1187
			{
1188
 
1189
    XI401 = crt_token->pp_data.id.use ;
1190
			}
1191
			ADVANCE_LEXER;
1192
		    }
1193
		    break;
1194
		  case 4:
1195
		    {
1196
			{
1197
 
1198
    XI401 = crt_token->pp_data.id.use ;
1199
			}
1200
			ADVANCE_LEXER;
1201
		    }
1202
		    break;
1203
		  case 2:
1204
		    {
1205
			{
1206
 
1207
    XI401 = crt_token->pp_data.id.use ;
1208
			}
1209
			ADVANCE_LEXER;
1210
		    }
1211
		    break;
1212
		  default:
1213
		    goto XL1;
1214
		}
1215
	    }
1216
	    {
1217
 
1218
    (XI375) = prog_tok_param ( (XI401), NULL_type, tok_stmt_tag, (XI406) ) ;
1219
	    }
1220
	}
1221
	break;
1222
      case 313:
1223
	{
1224
	    TYPE XI397;
1225
 
1226
	    ADVANCE_LEXER;
1227
	    {
1228
 
1229
    (XI397) = type_error ;
1230
    parse_tok_type ( &(XI397) ) ;
1231
    object_type ( (XI397), null_tag ) ;
1232
	    }
1233
	    {
1234
 
1235
    IDENTIFIER tid = DEREF_id ( type_name ( (XI397) ) ) ;
1236
    (XI375) = prog_tok_param ( tid, (XI397), tok_type_tag, (XI406) ) ;
1237
	    }
1238
	}
1239
	break;
1240
      case 354:
1241
	return;
1242
      default:
1243
	goto XL1;
1244
    }
1245
    goto XL0;
1246
  XL1:;
1247
    SAVE_LEXER (354);
1248
    return;
1249
  XL0:;
1250
    *XO375 = XI375;
1251
}
1252
 
1253
void
1254
XR396 PROTO_N ((XO400))
1255
  PROTO_T (TOKEN *XO400)
1256
{
1257
    TOKEN XI400;
1258
 
1259
    switch (CURRENT_TERMINAL) {
1260
      case 176:
1261
	{
1262
	    ADVANCE_LEXER;
1263
	    {
1264
 
1265
    (XI400) = make_type_token ( btype_arith ) ;
1266
	    }
1267
	}
1268
	break;
1269
      case 187:
1270
	{
1271
	    ADVANCE_LEXER;
1272
	    {
1273
 
1274
    (XI400) = make_type_token ( btype_lang ) ;
1275
	    }
1276
	}
1277
	break;
1278
      case 217:
1279
	{
1280
	    int XI444;
1281
	    int XI445;
1282
	    TYPE XI397;
1283
 
1284
	    ADVANCE_LEXER;
1285
	    XR446 (&XI444, &XI445);
1286
	    switch (CURRENT_TERMINAL) {
1287
	      case 41:
1288
		break;
1289
	      case 354:
1290
		RESTORE_LEXER;
1291
		goto XL1;
1292
	      default:
1293
		goto XL1;
1294
	    }
1295
	    ADVANCE_LEXER;
1296
	    {
1297
 
1298
    (XI397) = type_error ;
1299
    parse_tok_type ( &(XI397) ) ;
1300
    object_type ( (XI397), null_tag ) ;
1301
	    }
1302
	    switch (CURRENT_TERMINAL) {
1303
	      case 41:
1304
		break;
1305
	      default:
1306
		goto XL1;
1307
	    }
1308
	    ADVANCE_LEXER;
1309
	    {
1310
 
1311
    (XI400) = make_exp_token ( (XI397), (XI444), (XI445) ) ;
1312
	    }
1313
	}
1314
	break;
1315
      case 224:
1316
	{
1317
	    ADVANCE_LEXER;
1318
	    {
1319
 
1320
    (XI400) = make_type_token ( btype_float ) ;
1321
	    }
1322
	}
1323
	break;
1324
      case 226:
1325
	{
1326
	    TYPE XI397;
1327
 
1328
	    ADVANCE_LEXER;
1329
	    {
1330
 
1331
    (XI397) = type_error ;
1332
    parse_tok_type ( &(XI397) ) ;
1333
    object_type ( (XI397), id_function_tag ) ;
1334
	    }
1335
	    switch (CURRENT_TERMINAL) {
1336
	      case 41:
1337
		break;
1338
	      default:
1339
		goto XL1;
1340
	    }
1341
	    ADVANCE_LEXER;
1342
	    {
1343
 
1344
    (XI400) = make_func_token ( (XI397) ) ;
1345
	    }
1346
	}
1347
	break;
1348
      case 249:
1349
	{
1350
	    ADVANCE_LEXER;
1351
	    {
1352
 
1353
    MAKE_tok_snat ( NULL_nat, (XI400) ) ;
1354
	    }
1355
	}
1356
	break;
1357
      case 260:
1358
	{
1359
	    DECL_SPEC XI409;
1360
	    TYPE XI397;
1361
	    TYPE XI448;
1362
 
1363
	    ADVANCE_LEXER;
1364
	    XR447 (&XI409);
1365
	    if ((CURRENT_TERMINAL) == 354) {
1366
		RESTORE_LEXER;
1367
		goto XL1;
1368
	    }
1369
	    {
1370
 
1371
    (XI397) = type_error ;
1372
    parse_mem_type ( &(XI397) ) ;
1373
    object_type ( (XI397), null_tag ) ;
1374
	    }
1375
	    switch (CURRENT_TERMINAL) {
1376
	      case 41:
1377
		break;
1378
	      default:
1379
		goto XL1;
1380
	    }
1381
	    ADVANCE_LEXER;
1382
	    {
1383
 
1384
    (XI448) = type_error ;
1385
    parse_tok_type ( &(XI448) ) ;
1386
    object_type ( (XI448), null_tag ) ;
1387
	    }
1388
	    switch (CURRENT_TERMINAL) {
1389
	      case 41:
1390
		break;
1391
	      default:
1392
		goto XL1;
1393
	    }
1394
	    ADVANCE_LEXER;
1395
	    {
1396
 
1397
    (XI400) = make_member_token ( (XI397), (XI448), (XI409) ) ;
1398
	    }
1399
	}
1400
	break;
1401
      case 262:
1402
	{
1403
	    ADVANCE_LEXER;
1404
	    {
1405
 
1406
    MAKE_tok_nat ( NULL_nat, (XI400) ) ;
1407
	    }
1408
	}
1409
	break;
1410
      case 281:
1411
	{
1412
	    ADVANCE_LEXER;
1413
	    XR830 (&XI400);
1414
	    if ((CURRENT_TERMINAL) == 354) {
1415
		RESTORE_LEXER;
1416
		goto XL1;
1417
	    }
1418
	}
1419
	break;
1420
      case 295:
1421
	{
1422
	    ADVANCE_LEXER;
1423
	    {
1424
 
1425
    (XI400) = make_type_token ( btype_scalar ) ;
1426
	    }
1427
	}
1428
	break;
1429
      case 302:
1430
	{
1431
	    ADVANCE_LEXER;
1432
	    {
1433
 
1434
    MAKE_tok_stmt ( NULL_exp, (XI400) ) ;
1435
	    }
1436
	}
1437
	break;
1438
      case 304:
1439
	{
1440
	    ADVANCE_LEXER;
1441
	    {
1442
 
1443
    (XI400) = make_type_token ( btype_struct ) ;
1444
	    }
1445
	}
1446
	break;
1447
      case 313:
1448
	{
1449
	    ADVANCE_LEXER;
1450
	    {
1451
 
1452
    (XI400) = make_type_token ( btype_none ) ;
1453
	    }
1454
	}
1455
	break;
1456
      case 319:
1457
	{
1458
	    ADVANCE_LEXER;
1459
	    {
1460
 
1461
    (XI400) = make_type_token ( btype_union ) ;
1462
	    }
1463
	}
1464
	break;
1465
      case 327:
1466
	{
1467
	    ADVANCE_LEXER;
1468
	    XR829 (&XI400);
1469
	    if ((CURRENT_TERMINAL) == 354) {
1470
		RESTORE_LEXER;
1471
		goto XL1;
1472
	    }
1473
	}
1474
	break;
1475
      case 354:
1476
	return;
1477
      default:
1478
	goto XL1;
1479
    }
1480
    goto XL0;
1481
  XL1:;
1482
    SAVE_LEXER (354);
1483
    return;
1484
  XL0:;
1485
    *XO400 = XI400;
1486
}
1487
 
1488
void
1489
XR508 PROTO_N ((XO377))
1490
  PROTO_T (unsigned *XO377)
1491
{
1492
    unsigned XI377;
1493
 
1494
    switch (CURRENT_TERMINAL) {
1495
      case 330:
1496
	{
1497
	    ADVANCE_LEXER;
1498
	    {
1499
 (XI377) = ( unsigned ) OPTION_WARN ; 
1500
	    }
1501
	}
1502
	break;
1503
      default:
1504
	{
1505
	    {
1506
 (XI377) = ( unsigned ) OPTION_ON ; 
1507
	    }
1508
	}
1509
	break;
1510
      case 354:
1511
	return;
1512
    }
1513
    *XO377 = XI377;
1514
}
1515
 
1516
/* BEGINNING OF TRAILER */
1517
 
1518
 
1519
 
1520
/* END OF FILE */