-
Notifications
You must be signed in to change notification settings - Fork 1
/
y.output
6345 lines (4786 loc) · 208 KB
/
y.output
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Terminals unused in grammar
BAZINGA
State 22 conflicts: 1 shift/reduce
State 129 conflicts: 15 shift/reduce
State 130 conflicts: 37 shift/reduce
State 176 conflicts: 1 shift/reduce, 2 reduce/reduce
State 178 conflicts: 2 reduce/reduce
State 220 conflicts: 1 shift/reduce, 2 reduce/reduce
State 222 conflicts: 5 reduce/reduce
State 318 conflicts: 1 reduce/reduce
Grammar
0 $accept: translation_unit $end
1 primary_expression: IDENTIFIER
2 | NUMERAL
3 | CHARACTER
4 | WORD
5 | OPENPAR expression CLOSEPAR
6 postfix_expression: primary_expression
7 | postfix_expression OPENBRACKET expression CLOSEBRACKET
8 | postfix_expression OPENPAR CLOSEPAR
9 | postfix_expression OPENPAR argument_expression_list CLOSEPAR
10 | postfix_expression DOT IDENTIFIER
11 | postfix_expression ARROW IDENTIFIER
12 | postfix_expression PLUSPLUS
13 | postfix_expression MINUSMINUS
14 argument_expression_list: assignment_expression
15 | argument_expression_list COMMA assignment_expression
16 unary_expression: postfix_expression
17 | PLUSPLUS unary_expression
18 | MINUSMINUS unary_expression
19 | unary_operator cast_expression
20 | SIZEOF unary_expression
21 | SIZEOF OPENPAR type_name CLOSEPAR
22 unary_operator: STAR
23 | PLUS
24 | MINUS
25 | NOT
26 | ADDR
27 cast_expression: unary_expression
28 | OPENPAR type_name CLOSEPAR cast_expression
29 multiplicative_expression: cast_expression
30 | multiplicative_expression STAR cast_expression
31 | multiplicative_expression DIVIDE cast_expression
32 | multiplicative_expression MOD cast_expression
33 additive_expression: multiplicative_expression
34 | additive_expression PLUS multiplicative_expression
35 | additive_expression MINUS multiplicative_expression
36 relational_expression: additive_expression
37 | relational_expression LESS additive_expression
38 | relational_expression GREAT additive_expression
39 | relational_expression LESSEQUALS additive_expression
40 | relational_expression GREATEQUALS additive_expression
41 equality_expression: relational_expression
42 | equality_expression EQUALSEQUALS relational_expression
43 | equality_expression NOTEQUALS relational_expression
44 and_expression: equality_expression
45 exclusive_or_expression: and_expression
46 inclusive_or_expression: exclusive_or_expression
47 logical_and_expression: inclusive_or_expression
48 | logical_and_expression AND inclusive_or_expression
49 logical_or_expression: logical_and_expression
50 | logical_or_expression OR logical_and_expression
51 conditional_expression: logical_or_expression
52 assignment_expression: conditional_expression
53 | declaration_specifiers unary_expression assignment_operator assignment_expression
54 | unary_expression assignment_operator assignment_expression
55 assignment_operator: EQUALS
56 | MULEQUALS
57 | DIVEQUALS
58 | MODEQUALS
59 | PLUSEQUALS
60 | MINUSEQUALS
61 expression: assignment_expression
62 | expression COMMA assignment_expression
63 constant_expression: conditional_expression
64 declaration: declaration_specifiers SEMICOLON
65 | declaration_specifiers init_declarator_list SEMICOLON
66 declaration_specifiers: storage_class_specifier
67 | storage_class_specifier declaration_specifiers
68 | type_specifier STAR
69 | type_specifier
70 | type_specifier declaration_specifiers
71 | type_qualifier
72 | type_qualifier declaration_specifiers
73 init_declarator_list: init_declarator
74 | init_declarator_list COMMA init_declarator
75 init_declarator: declarator
76 | declarator EQUALS initializer
77 | declarator IDENTIFIER
78 storage_class_specifier: TYPEDEF
79 | STATIC
80 type_specifier: VOID
81 | CHAR
82 | SHORT
83 | INT
84 | LONG
85 | FLOAT
86 | DOUBLE
87 | SIGNED
88 | UNSIGNED
89 | struct_or_union_specifier
90 | enum_specifier
91 | include_statement
92 struct_or_union_specifier: struct_or_union IDENTIFIER OPENBRACE struct_declaration_list CLOSEBRACE
93 | struct_or_union OPENBRACE struct_declaration_list CLOSEBRACE
94 | struct_or_union IDENTIFIER
95 struct_or_union: STRUCT
96 struct_declaration_list: struct_declaration
97 | struct_declaration_list struct_declaration
98 struct_declaration: specifier_qualifier_list struct_declarator_list SEMICOLON
99 specifier_qualifier_list: type_specifier specifier_qualifier_list
100 | type_specifier
101 | type_qualifier specifier_qualifier_list
102 | type_qualifier
103 struct_declarator_list: struct_declarator
104 | struct_declarator_list COMMA struct_declarator
105 struct_declarator: declarator
106 | ':' constant_expression
107 | declarator ':' constant_expression
108 enum_specifier: ENUM OPENBRACE enumerator_list CLOSEBRACE
109 | ENUM IDENTIFIER OPENBRACE enumerator_list CLOSEBRACE
110 | ENUM IDENTIFIER
111 enumerator_list: enumerator
112 | enumerator_list COMMA enumerator
113 enumerator: IDENTIFIER
114 | IDENTIFIER EQUALS constant_expression
115 type_qualifier: CONST
116 declarator: pointer direct_declarator
117 | direct_declarator
118 direct_declarator: IDENTIFIER
119 | OPENPAR declarator CLOSEPAR
120 | direct_declarator OPENBRACKET constant_expression CLOSEBRACKET
121 | direct_declarator OPENBRACKET CLOSEBRACKET
122 | direct_declarator OPENPAR parameter_type_list CLOSEPAR
123 | direct_declarator OPENPAR identifier_list CLOSEPAR
124 | direct_declarator OPENPAR CLOSEPAR
125 pointer: STAR
126 | STAR type_qualifier_list
127 | STAR pointer
128 | STAR type_qualifier_list pointer
129 type_qualifier_list: type_qualifier
130 | type_qualifier_list type_qualifier
131 parameter_type_list: parameter_list
132 | parameter_list COMMA
133 parameter_list: parameter_declaration
134 | parameter_list COMMA parameter_declaration
135 parameter_declaration: declaration_specifiers declarator
136 | declaration_specifiers abstract_declarator
137 | declaration_specifiers
138 identifier_list: IDENTIFIER
139 | identifier_list COMMA IDENTIFIER
140 type_name: specifier_qualifier_list
141 | specifier_qualifier_list abstract_declarator
142 abstract_declarator: pointer
143 | direct_abstract_declarator
144 | pointer direct_abstract_declarator
145 direct_abstract_declarator: OPENPAR abstract_declarator CLOSEPAR
146 | OPENBRACKET CLOSEBRACKET
147 | OPENBRACKET constant_expression CLOSEBRACKET
148 | direct_abstract_declarator OPENBRACKET CLOSEBRACKET
149 | direct_abstract_declarator OPENBRACKET constant_expression CLOSEBRACKET
150 | OPENPAR CLOSEPAR
151 | OPENPAR parameter_type_list CLOSEPAR
152 | direct_abstract_declarator OPENPAR CLOSEPAR
153 | direct_abstract_declarator OPENPAR parameter_type_list CLOSEPAR
154 initializer: assignment_expression
155 | OPENBRACE initializer_list CLOSEBRACE
156 | OPENBRACE initializer_list COMMA CLOSEBRACE
157 initializer_list: initializer
158 | initializer_list COMMA initializer
159 statement: labeled_statement
160 | compound_statement
161 | expression_statement
162 | selection_statement
163 | iteration_statement
164 | jump_statement
165 labeled_statement: IDENTIFIER COLON statement
166 compound_statement: OPENBRACE CLOSEBRACE
167 | OPENBRACE decstat_list CLOSEBRACE
168 decstat: statement_list
169 | declaration_list
170 decstat_list: decstat
171 | decstat decstat_list
172 declaration_list: declaration
173 | declaration_list declaration
174 statement_list: statement
175 | statement_list statement
176 expression_statement: SEMICOLON
177 | expression SEMICOLON
178 include_statement: INCLUDE LESS include_expression GREAT
179 | INCLUDE QUOTE include_expression QUOTE
180 include_expression: IDENTIFIER DOT IDENTIFIER
181 | IDENTIFIER
182 selection_statement: IF OPENPAR expression CLOSEPAR compound_statement
183 | IF OPENPAR expression CLOSEPAR statement ELSE statement
184 iteration_statement: WHILE OPENPAR expression CLOSEPAR statement
185 | DO statement WHILE OPENPAR expression CLOSEPAR SEMICOLON
186 | FOR OPENPAR expression_statement expression_statement CLOSEPAR statement
187 | FOR OPENPAR expression_statement expression_statement expression CLOSEPAR statement
188 jump_statement: CONTINUE SEMICOLON
189 | BREAK SEMICOLON
190 | RETURN SEMICOLON
191 | RETURN expression SEMICOLON
192 translation_unit: external_declaration
193 | translation_unit external_declaration
194 external_declaration: function_definition
195 | declaration
196 function_definition: declaration_specifiers declarator declaration_list compound_statement
197 | declaration_specifiers declarator compound_statement
198 | declarator declaration_list compound_statement
199 | declarator compound_statement
Terminals, with rules where they appear
$end (0) 0
':' (58) 106 107
error (256)
GREAT (258) 38 178
LESS (259) 37 178
GREATEQUALS (260) 40
LESSEQUALS (261) 39
OPENBRACE (262) 92 93 108 109 155 156 166 167
CLOSEBRACE (263) 92 93 108 109 155 156 166 167
SEMICOLON (264) 64 65 98 176 177 185 188 189 190 191
PLUS (265) 23 34
MINUS (266) 24 35
DIVIDE (267) 31
MOD (268) 32
PLUSPLUS (269) 12 17
MINUSMINUS (270) 13 18
NOT (271) 25
EQUALSEQUALS (272) 42
EQUALS (273) 55 76 114
NOTEQUALS (274) 43
PLUSEQUALS (275) 59
MINUSEQUALS (276) 60
MULEQUALS (277) 56
DIVEQUALS (278) 57
COMMA (279) 15 62 74 104 112 132 134 139 156 158
STAR (280) 22 30 68 125 126 127 128
AND (281) 48
OR (282) 50
OPENPAR (283) 5 8 9 21 28 119 122 123 124 145 150 151 152 153 182 183
184 185 186 187
CLOSEPAR (284) 5 8 9 21 28 119 122 123 124 145 150 151 152 153 182
183 184 185 186 187
OPENBRACKET (285) 7 120 121 146 147 148 149
CLOSEBRACKET (286) 7 120 121 146 147 148 149
TYPEDEF (287) 78
INCLUDE (288) 178 179
RETURN (289) 190 191
BREAK (290) 189
IF (291) 182 183
ELSE (292) 183
STRUCT (293) 95
DO (294) 185
WHILE (295) 184 185
FOR (296) 186 187
STATIC (297) 79
SIZEOF (298) 20 21
VOID (299) 80
CONTINUE (300) 188
CONST (301) 115
UNSIGNED (302) 88
INT (303) 83
CHAR (304) 81
SHORT (305) 82
LONG (306) 84
FLOAT (307) 85
DOUBLE (308) 86
BAZINGA (309)
DOT (310) 10 180
ARROW (311) 11
MODEQUALS (312) 58
SIGNED (313) 87
ENUM (314) 108 109 110
COLON (315) 165
ADDR (316) 26
QUOTE (317) 179
NUMERAL (318) 2
IDENTIFIER (319) 1 10 11 77 92 94 109 110 113 114 118 138 139 165 180
181
WORD (320) 4
CHARACTER (321) 3
Nonterminals, with rules where they appear
$accept (68)
on left: 0
primary_expression (69)
on left: 1 2 3 4 5, on right: 6
postfix_expression (70)
on left: 6 7 8 9 10 11 12 13, on right: 7 8 9 10 11 12 13 16
argument_expression_list (71)
on left: 14 15, on right: 9 15
unary_expression (72)
on left: 16 17 18 19 20 21, on right: 17 18 20 27 53 54
unary_operator (73)
on left: 22 23 24 25 26, on right: 19
cast_expression (74)
on left: 27 28, on right: 19 28 29 30 31 32
multiplicative_expression (75)
on left: 29 30 31 32, on right: 30 31 32 33 34 35
additive_expression (76)
on left: 33 34 35, on right: 34 35 36 37 38 39 40
relational_expression (77)
on left: 36 37 38 39 40, on right: 37 38 39 40 41 42 43
equality_expression (78)
on left: 41 42 43, on right: 42 43 44
and_expression (79)
on left: 44, on right: 45
exclusive_or_expression (80)
on left: 45, on right: 46
inclusive_or_expression (81)
on left: 46, on right: 47 48
logical_and_expression (82)
on left: 47 48, on right: 48 49 50
logical_or_expression (83)
on left: 49 50, on right: 50 51
conditional_expression (84)
on left: 51, on right: 52 63
assignment_expression (85)
on left: 52 53 54, on right: 14 15 53 54 61 62 154
assignment_operator (86)
on left: 55 56 57 58 59 60, on right: 53 54
expression (87)
on left: 61 62, on right: 5 7 62 177 182 183 184 185 187 191
constant_expression (88)
on left: 63, on right: 106 107 114 120 147 149
declaration (89)
on left: 64 65, on right: 172 173 195
declaration_specifiers (90)
on left: 66 67 68 69 70 71 72, on right: 53 64 65 67 70 72 135
136 137 196 197
init_declarator_list (91)
on left: 73 74, on right: 65 74
init_declarator (92)
on left: 75 76 77, on right: 73 74
storage_class_specifier (93)
on left: 78 79, on right: 66 67
type_specifier (94)
on left: 80 81 82 83 84 85 86 87 88 89 90 91, on right: 68 69 70
99 100
struct_or_union_specifier (95)
on left: 92 93 94, on right: 89
struct_or_union (96)
on left: 95, on right: 92 93 94
struct_declaration_list (97)
on left: 96 97, on right: 92 93 97
struct_declaration (98)
on left: 98, on right: 96 97
specifier_qualifier_list (99)
on left: 99 100 101 102, on right: 98 99 101 140 141
struct_declarator_list (100)
on left: 103 104, on right: 98 104
struct_declarator (101)
on left: 105 106 107, on right: 103 104
enum_specifier (102)
on left: 108 109 110, on right: 90
enumerator_list (103)
on left: 111 112, on right: 108 109 112
enumerator (104)
on left: 113 114, on right: 111 112
type_qualifier (105)
on left: 115, on right: 71 72 101 102 129 130
declarator (106)
on left: 116 117, on right: 75 76 77 105 107 119 135 196 197 198
199
direct_declarator (107)
on left: 118 119 120 121 122 123 124, on right: 116 117 120 121
122 123 124
pointer (108)
on left: 125 126 127 128, on right: 116 127 128 142 144
type_qualifier_list (109)
on left: 129 130, on right: 126 128 130
parameter_type_list (110)
on left: 131 132, on right: 122 151 153
parameter_list (111)
on left: 133 134, on right: 131 132 134
parameter_declaration (112)
on left: 135 136 137, on right: 133 134
identifier_list (113)
on left: 138 139, on right: 123 139
type_name (114)
on left: 140 141, on right: 21 28
abstract_declarator (115)
on left: 142 143 144, on right: 136 141 145
direct_abstract_declarator (116)
on left: 145 146 147 148 149 150 151 152 153, on right: 143 144
148 149 152 153
initializer (117)
on left: 154 155 156, on right: 76 157 158
initializer_list (118)
on left: 157 158, on right: 155 156 158
statement (119)
on left: 159 160 161 162 163 164, on right: 165 174 175 183 184
185 186 187
labeled_statement (120)
on left: 165, on right: 159
compound_statement (121)
on left: 166 167, on right: 160 182 196 197 198 199
decstat (122)
on left: 168 169, on right: 170 171
decstat_list (123)
on left: 170 171, on right: 167 171
declaration_list (124)
on left: 172 173, on right: 169 173 196 198
statement_list (125)
on left: 174 175, on right: 168 175
expression_statement (126)
on left: 176 177, on right: 161 186 187
include_statement (127)
on left: 178 179, on right: 91
include_expression (128)
on left: 180 181, on right: 178 179
selection_statement (129)
on left: 182 183, on right: 162
iteration_statement (130)
on left: 184 185 186 187, on right: 163
jump_statement (131)
on left: 188 189 190 191, on right: 164
translation_unit (132)
on left: 192 193, on right: 0 193
external_declaration (133)
on left: 194 195, on right: 192 193
function_definition (134)
on left: 196 197 198 199, on right: 194
state 0
0 $accept: . translation_unit $end
STAR shift, and go to state 1
OPENPAR shift, and go to state 2
TYPEDEF shift, and go to state 3
INCLUDE shift, and go to state 4
STRUCT shift, and go to state 5
STATIC shift, and go to state 6
VOID shift, and go to state 7
CONST shift, and go to state 8
UNSIGNED shift, and go to state 9
INT shift, and go to state 10
CHAR shift, and go to state 11
SHORT shift, and go to state 12
LONG shift, and go to state 13
FLOAT shift, and go to state 14
DOUBLE shift, and go to state 15
SIGNED shift, and go to state 16
ENUM shift, and go to state 17
IDENTIFIER shift, and go to state 18
declaration go to state 19
declaration_specifiers go to state 20
storage_class_specifier go to state 21
type_specifier go to state 22
struct_or_union_specifier go to state 23
struct_or_union go to state 24
enum_specifier go to state 25
type_qualifier go to state 26
declarator go to state 27
direct_declarator go to state 28
pointer go to state 29
include_statement go to state 30
translation_unit go to state 31
external_declaration go to state 32
function_definition go to state 33
state 1
125 pointer: STAR .
126 | STAR . type_qualifier_list
127 | STAR . pointer
128 | STAR . type_qualifier_list pointer
STAR shift, and go to state 1
CONST shift, and go to state 8
$default reduce using rule 125 (pointer)
type_qualifier go to state 34
pointer go to state 35
type_qualifier_list go to state 36
state 2
119 direct_declarator: OPENPAR . declarator CLOSEPAR
STAR shift, and go to state 1
OPENPAR shift, and go to state 2
IDENTIFIER shift, and go to state 18
declarator go to state 37
direct_declarator go to state 28
pointer go to state 29
state 3
78 storage_class_specifier: TYPEDEF .
$default reduce using rule 78 (storage_class_specifier)
state 4
178 include_statement: INCLUDE . LESS include_expression GREAT
179 | INCLUDE . QUOTE include_expression QUOTE
LESS shift, and go to state 38
QUOTE shift, and go to state 39
state 5
95 struct_or_union: STRUCT .
$default reduce using rule 95 (struct_or_union)
state 6
79 storage_class_specifier: STATIC .
$default reduce using rule 79 (storage_class_specifier)
state 7
80 type_specifier: VOID .
$default reduce using rule 80 (type_specifier)
state 8
115 type_qualifier: CONST .
$default reduce using rule 115 (type_qualifier)
state 9
88 type_specifier: UNSIGNED .
$default reduce using rule 88 (type_specifier)
state 10
83 type_specifier: INT .
$default reduce using rule 83 (type_specifier)
state 11
81 type_specifier: CHAR .
$default reduce using rule 81 (type_specifier)
state 12
82 type_specifier: SHORT .
$default reduce using rule 82 (type_specifier)
state 13
84 type_specifier: LONG .
$default reduce using rule 84 (type_specifier)
state 14
85 type_specifier: FLOAT .
$default reduce using rule 85 (type_specifier)
state 15
86 type_specifier: DOUBLE .
$default reduce using rule 86 (type_specifier)
state 16
87 type_specifier: SIGNED .
$default reduce using rule 87 (type_specifier)
state 17
108 enum_specifier: ENUM . OPENBRACE enumerator_list CLOSEBRACE
109 | ENUM . IDENTIFIER OPENBRACE enumerator_list CLOSEBRACE
110 | ENUM . IDENTIFIER
OPENBRACE shift, and go to state 40
IDENTIFIER shift, and go to state 41
state 18
118 direct_declarator: IDENTIFIER .
$default reduce using rule 118 (direct_declarator)
state 19
195 external_declaration: declaration .
$default reduce using rule 195 (external_declaration)
state 20
64 declaration: declaration_specifiers . SEMICOLON
65 | declaration_specifiers . init_declarator_list SEMICOLON
196 function_definition: declaration_specifiers . declarator declaration_list compound_statement
197 | declaration_specifiers . declarator compound_statement
SEMICOLON shift, and go to state 42
STAR shift, and go to state 1
OPENPAR shift, and go to state 2
IDENTIFIER shift, and go to state 18
init_declarator_list go to state 43
init_declarator go to state 44
declarator go to state 45
direct_declarator go to state 28
pointer go to state 29
state 21
66 declaration_specifiers: storage_class_specifier .
67 | storage_class_specifier . declaration_specifiers
TYPEDEF shift, and go to state 3
INCLUDE shift, and go to state 4
STRUCT shift, and go to state 5
STATIC shift, and go to state 6
VOID shift, and go to state 7
CONST shift, and go to state 8
UNSIGNED shift, and go to state 9
INT shift, and go to state 10
CHAR shift, and go to state 11
SHORT shift, and go to state 12
LONG shift, and go to state 13
FLOAT shift, and go to state 14
DOUBLE shift, and go to state 15
SIGNED shift, and go to state 16
ENUM shift, and go to state 17
$default reduce using rule 66 (declaration_specifiers)
declaration_specifiers go to state 46
storage_class_specifier go to state 21
type_specifier go to state 22
struct_or_union_specifier go to state 23
struct_or_union go to state 24
enum_specifier go to state 25
type_qualifier go to state 26
include_statement go to state 30
state 22
68 declaration_specifiers: type_specifier . STAR
69 | type_specifier .
70 | type_specifier . declaration_specifiers
STAR shift, and go to state 47
TYPEDEF shift, and go to state 3
INCLUDE shift, and go to state 4
STRUCT shift, and go to state 5
STATIC shift, and go to state 6
VOID shift, and go to state 7
CONST shift, and go to state 8
UNSIGNED shift, and go to state 9
INT shift, and go to state 10
CHAR shift, and go to state 11
SHORT shift, and go to state 12
LONG shift, and go to state 13
FLOAT shift, and go to state 14
DOUBLE shift, and go to state 15
SIGNED shift, and go to state 16
ENUM shift, and go to state 17
STAR [reduce using rule 69 (declaration_specifiers)]
$default reduce using rule 69 (declaration_specifiers)
declaration_specifiers go to state 48
storage_class_specifier go to state 21
type_specifier go to state 22
struct_or_union_specifier go to state 23
struct_or_union go to state 24
enum_specifier go to state 25
type_qualifier go to state 26
include_statement go to state 30
state 23
89 type_specifier: struct_or_union_specifier .
$default reduce using rule 89 (type_specifier)
state 24
92 struct_or_union_specifier: struct_or_union . IDENTIFIER OPENBRACE struct_declaration_list CLOSEBRACE
93 | struct_or_union . OPENBRACE struct_declaration_list CLOSEBRACE
94 | struct_or_union . IDENTIFIER
OPENBRACE shift, and go to state 49
IDENTIFIER shift, and go to state 50
state 25
90 type_specifier: enum_specifier .
$default reduce using rule 90 (type_specifier)
state 26
71 declaration_specifiers: type_qualifier .
72 | type_qualifier . declaration_specifiers
TYPEDEF shift, and go to state 3
INCLUDE shift, and go to state 4
STRUCT shift, and go to state 5
STATIC shift, and go to state 6
VOID shift, and go to state 7
CONST shift, and go to state 8
UNSIGNED shift, and go to state 9
INT shift, and go to state 10
CHAR shift, and go to state 11
SHORT shift, and go to state 12
LONG shift, and go to state 13
FLOAT shift, and go to state 14
DOUBLE shift, and go to state 15
SIGNED shift, and go to state 16
ENUM shift, and go to state 17
$default reduce using rule 71 (declaration_specifiers)
declaration_specifiers go to state 51
storage_class_specifier go to state 21
type_specifier go to state 22
struct_or_union_specifier go to state 23
struct_or_union go to state 24
enum_specifier go to state 25
type_qualifier go to state 26
include_statement go to state 30
state 27
198 function_definition: declarator . declaration_list compound_statement
199 | declarator . compound_statement
OPENBRACE shift, and go to state 52
TYPEDEF shift, and go to state 3
INCLUDE shift, and go to state 4
STRUCT shift, and go to state 5
STATIC shift, and go to state 6
VOID shift, and go to state 7
CONST shift, and go to state 8
UNSIGNED shift, and go to state 9
INT shift, and go to state 10
CHAR shift, and go to state 11
SHORT shift, and go to state 12
LONG shift, and go to state 13
FLOAT shift, and go to state 14
DOUBLE shift, and go to state 15
SIGNED shift, and go to state 16
ENUM shift, and go to state 17
declaration go to state 53
declaration_specifiers go to state 54
storage_class_specifier go to state 21
type_specifier go to state 22
struct_or_union_specifier go to state 23
struct_or_union go to state 24
enum_specifier go to state 25
type_qualifier go to state 26
compound_statement go to state 55
declaration_list go to state 56
include_statement go to state 30
state 28
117 declarator: direct_declarator .
120 direct_declarator: direct_declarator . OPENBRACKET constant_expression CLOSEBRACKET
121 | direct_declarator . OPENBRACKET CLOSEBRACKET
122 | direct_declarator . OPENPAR parameter_type_list CLOSEPAR
123 | direct_declarator . OPENPAR identifier_list CLOSEPAR
124 | direct_declarator . OPENPAR CLOSEPAR
OPENPAR shift, and go to state 57
OPENBRACKET shift, and go to state 58
$default reduce using rule 117 (declarator)
state 29
116 declarator: pointer . direct_declarator
OPENPAR shift, and go to state 2
IDENTIFIER shift, and go to state 18
direct_declarator go to state 59
state 30
91 type_specifier: include_statement .
$default reduce using rule 91 (type_specifier)
state 31
0 $accept: translation_unit . $end
193 translation_unit: translation_unit . external_declaration
$end shift, and go to state 60
STAR shift, and go to state 1
OPENPAR shift, and go to state 2
TYPEDEF shift, and go to state 3
INCLUDE shift, and go to state 4
STRUCT shift, and go to state 5
STATIC shift, and go to state 6
VOID shift, and go to state 7
CONST shift, and go to state 8
UNSIGNED shift, and go to state 9
INT shift, and go to state 10
CHAR shift, and go to state 11
SHORT shift, and go to state 12
LONG shift, and go to state 13
FLOAT shift, and go to state 14
DOUBLE shift, and go to state 15
SIGNED shift, and go to state 16
ENUM shift, and go to state 17
IDENTIFIER shift, and go to state 18
declaration go to state 19
declaration_specifiers go to state 20
storage_class_specifier go to state 21
type_specifier go to state 22
struct_or_union_specifier go to state 23
struct_or_union go to state 24
enum_specifier go to state 25
type_qualifier go to state 26
declarator go to state 27
direct_declarator go to state 28
pointer go to state 29
include_statement go to state 30
external_declaration go to state 61
function_definition go to state 33
state 32
192 translation_unit: external_declaration .
$default reduce using rule 192 (translation_unit)
state 33
194 external_declaration: function_definition .
$default reduce using rule 194 (external_declaration)
state 34
129 type_qualifier_list: type_qualifier .
$default reduce using rule 129 (type_qualifier_list)
state 35
127 pointer: STAR pointer .
$default reduce using rule 127 (pointer)
state 36
126 pointer: STAR type_qualifier_list .
128 | STAR type_qualifier_list . pointer
130 type_qualifier_list: type_qualifier_list . type_qualifier
STAR shift, and go to state 1
CONST shift, and go to state 8
$default reduce using rule 126 (pointer)
type_qualifier go to state 62
pointer go to state 63
state 37
119 direct_declarator: OPENPAR declarator . CLOSEPAR
CLOSEPAR shift, and go to state 64