Subversion Repositories tendra.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

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