-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathparser.output
4654 lines (2824 loc) · 103 KB
/
parser.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
INDENTERROR
State 111 conflicts: 1 shift/reduce
Grammar
0 $accept: start $end
1 start: prog
2 prog: /* empty */
3 | statements
4 statements: statement
5 | statements NEWLINE statement
6 | statements NEWLINE
7 statement: if_stmt
8 | while_stmt
9 | for_stmt
10 | function
11 | function_call
12 | assignment NEWLINE
13 | class
14 | try_except_stmt
15 | match_stmt
16 | with_statement
17 | pass NEWLINE
18 NUMBER: INT_NUMBER
19 | FLOAT_NUMBER
20 boolean: TRUE_TOK
21 | FALSE_TOK
22 if_stmt: if_header block elif_else_
23 if_header: IF relation_stmt
24 | IF '(' relation_stmt ')'
25 elif_else_: /* empty */
26 | elif_else
27 elif_else: elif_stmts else_stmt
28 | elif_stmts
29 | else_stmt
30 else_stmt: ELSE block
31 elif_stmts: elif_stmt
32 | elif_stmts elif_stmt
33 elif_stmt: elif_header block
34 elif_header: ELIF relation_stmt
35 | ELIF '(' relation_stmt ')'
36 function: DEF ID '(' args ')' function_block
37 | DEF ID '(' args ')' '-' GT data_type function_block
38 function_block: NEWLINE INDENT function_stmts DEDENT
39 function_stmts: function_stmt_
40 | function_stmts function_stmt_
41 function_stmt_: simple_stmt NEWLINE
42 | function_compound_stmt
43 | function_sp_stmt NEWLINE
44 function_sp_stmt: return_stmt
45 | global_stmt
46 | nonlocal_stmt
47 | yield_stmt
48 function_compound_stmt: func_if_stmt
49 | func_while_stmt
50 | func_for_stmt
51 | try_except_stmt
52 | with_statement
53 | match_stmt
54 | function
55 func_while_stmt: WHILE relation_stmt func_for_block
56 func_for_stmt: FOR ID IN RANGE range_args func_for_block
57 | FOR ID IN ARRAY func_for_block
58 func_for_block: NEWLINE INDENT func_for_stmts DEDENT
59 func_for_stmts: func_for_stmt_
60 | func_for_stmts func_for_stmt_
61 func_for_stmt_: simple_stmt NEWLINE
62 | for_compound_stmt
63 | for_sp_stmt NEWLINE
64 | function_sp_stmt NEWLINE
65 func_if_stmt: func_if_header function_block func_elif_else_
66 func_if_header: IF relation_stmt
67 | IF '(' relation_stmt ')'
68 func_elif_else_: /* empty */
69 | func_elif_else
70 func_elif_else: func_elif_stmts func_else_stmt
71 | func_elif_stmts
72 | func_else_stmt
73 func_else_stmt: ELSE function_block
74 func_elif_stmts: func_elif_stmt
75 | func_elif_stmts func_elif_stmt
76 func_elif_stmt: func_elif_header function_block
77 func_elif_header: ELIF relation_stmt
78 | ELIF '(' relation_stmt ')'
79 args: /* empty */
80 | args_
81 args_: arg
82 | args_ ',' arg
83 arg: ID
84 | ID ':' data_type
85 argsp: /* empty */
86 | args_p
87 args_p: argp
88 | args_p argp
89 argp: ID
90 | NUMBER
91 | STRING
92 argsc: /* empty */
93 | args_c
94 args_c: argc
95 | args_c ',' argc
96 argc: ID
97 | NUMBER
98 | STRING
99 while_stmt: WHILE relation_stmt for_block
100 range_args: '(' NUMBER ')'
101 | '(' NUMBER ',' NUMBER ')'
102 | '(' NUMBER ',' NUMBER ',' NUMBER ')'
103 for_stmt: FOR ID IN RANGE range_args for_block
104 | FOR ID IN ARRAY for_block
105 for_block: NEWLINE INDENT for_stmts DEDENT
106 for_stmts: for_stmt_
107 | for_stmts for_stmt_
108 for_stmt_: simple_stmt NEWLINE
109 | for_compound_stmt
110 | for_sp_stmt NEWLINE
111 for_sp_stmt: BREAK
112 | CONTINUE
113 for_compound_stmt: for_if_stmt
114 | while_stmt
115 | for_stmt
116 | try_except_stmt
117 | with_statement
118 | match_stmt
119 for_if_stmt: for_if_header for_block for_elif_else_
120 for_if_header: IF relation_stmt
121 | IF '(' relation_stmt ')'
122 for_elif_else_: /* empty */
123 | for_elif_else
124 for_elif_else: for_elif_stmts for_else_stmt
125 | for_elif_stmts
126 | for_else_stmt
127 for_else_stmt: ELSE for_block
128 for_elif_stmts: for_elif_stmt
129 | for_elif_stmts for_elif_stmt
130 for_elif_stmt: for_elif_header for_block
131 for_elif_header: ELIF relation_stmt
132 | ELIF '(' relation_stmt ')'
133 function_call: ID '(' argsc ')'
134 | PRINT '(' argsp ')'
135 | INPUT '(' STRING ')'
136 class: CLASS ID class_block
137 class_block: NEWLINE INDENT class_stmts DEDENT
138 class_stmts: class_stmt_
139 | class_stmts class_stmt_
140 class_stmt_: simple_stmt NEWLINE
141 | compound_stmt
142 | class_sp_stmt NEWLINE
143 | function
144 class_sp_stmt: global_stmt
145 try_except_stmt: TRY block except_clauses
146 except_clauses: except_clause
147 | except_clauses except_clause
148 except_clause: EXCEPT block
149 match_stmt: MATCH ID match_block
150 case_statements: case_statement
151 | case_statements case_statement
152 case_statement: CASE argp block
153 final_case: CASE '_' block
154 match_block: NEWLINE INDENT case_statements final_case DEDENT
155 with_statement: WITH with_statement_body block
156 with_statement_body: with_statement_body ',' with_body
157 | with_body
158 with_body: with_stmt_contents
159 | '(' with_stmt_contents ')'
160 with_stmt_contents: with_item
161 with_item: ID '(' inside_brackets ')' AS target
162 | expression
163 | expression AS target
164 inside_brackets: expression
165 | inside_brackets ',' expression
166 target: '(' targets ')'
167 | target '.' ID
168 | ID
169 targets: target
170 | targets ',' target
171 block: NEWLINE INDENT stmts DEDENT
172 stmts: stmt
173 | stmts stmt
174 stmt: simple_stmt NEWLINE
175 | compound_stmt
176 simple_stmt: assignment
177 | pass
178 | function_call
179 compound_stmt: if_stmt
180 | while_stmt
181 | for_stmt
182 | try_except_stmt
183 | with_statement
184 | match_stmt
185 assignment: ID '=' expression
186 | ID '+' '=' expression
187 | ID '-' '=' expression
188 | ID '*' '=' expression
189 | ID '/' '=' expression
190 | ID '=' ARRAY
191 return_stmt: RETURN NUMBER
192 | RETURN NUMBER ',' NUMBER
193 | RETURN ID
194 | RETURN ID ',' ID
195 | RETURN STRING
196 | RETURN STRING ',' STRING
197 yield_stmt: YIELD ID
198 global_stmt: GLOBAL ID
199 nonlocal_stmt: NONLOCAL ID
200 pass: PASS
201 relation_stmt: ID GT NUMBER
202 | ID LT NUMBER
203 | ID GTE NUMBER
204 | ID LTE NUMBER
205 | ID EQUAL NUMBER
206 | ID EQUAL STRING
207 | ID
208 expression: expression '+' expression
209 | expression '-' expression
210 | expression '*' expression
211 | expression '/' expression
212 | expression AND expression
213 | expression '&' expression
214 | expression OR expression
215 | expression '|' expression
216 | '|' expression
217 | '(' expression ')'
218 | '-' expression
219 | NUMBER
220 | boolean
221 | STRING
222 | ID
223 data_type: INT
224 | FLOAT
225 | BOOL
226 | STR
227 | LIST '[' INT ']'
228 | LIST '[' FLOAT ']'
229 | LIST '[' STR ']'
Terminals, with rules where they appear
$end (0) 0
'&' (38) 213
'(' (40) 24 35 36 37 67 78 100 101 102 121 132 133 134 135 159 161
166 217
')' (41) 24 35 36 37 67 78 100 101 102 121 132 133 134 135 159 161
166 217
'*' (42) 188 210
'+' (43) 186 208
',' (44) 82 95 101 102 156 165 170 192 194 196
'-' (45) 37 187 209 218
'.' (46) 167
'/' (47) 189 211
':' (58) 84
'=' (61) 185 186 187 188 189 190
'[' (91) 227 228 229
']' (93) 227 228 229
'_' (95) 153
'|' (124) 215 216
error (256)
ID (258) 36 37 56 57 83 84 89 96 103 104 133 136 149 161 167 168 185
186 187 188 189 190 193 194 197 198 199 201 202 203 204 205 206
207 222
STRING (259) 91 98 135 195 196 206 221
ARRAY (260) 57 104 190
RETURN (261) 191 192 193 194 195 196
BREAK (262) 111
CONTINUE (263) 112
GLOBAL (264) 198
NONLOCAL (265) 199
YIELD (266) 197
INDENT (267) 38 58 105 137 154 171
DEDENT (268) 38 58 105 137 154 171
INDENTERROR (269)
NEWLINE (270) 5 6 12 17 38 41 43 58 61 63 64 105 108 110 137 140 142
154 171 174
GT (271) 37 201
LT (272) 202
GTE (273) 203
LTE (274) 204
EQUAL (275) 205 206
INT (276) 223 227
FLOAT (277) 224 228
STR (278) 226 229
BOOL (279) 225
LIST (280) 227 228 229
INT_NUMBER (281) 18
FLOAT_NUMBER (282) 19
IF (283) 23 24 66 67 120 121
ELSE (284) 30 73 127
ELIF (285) 34 35 77 78 131 132
DEF (286) 36 37
WHILE (287) 55 99
FOR (288) 56 57 103 104
IN (289) 56 57 103 104
RANGE (290) 56 103
PRINT (291) 134
INPUT (292) 135
CLASS (293) 136
TRY (294) 145
EXCEPT (295) 148
MATCH (296) 149
CASE (297) 152 153
WITH (298) 155
AS (299) 161 163
PASS (300) 200
AND (301) 212
OR (302) 214
TRUE_TOK (303) 20
FALSE_TOK (304) 21
UMINUS (305)
Nonterminals, with rules where they appear
$accept (66)
on left: 0
start (67)
on left: 1, on right: 0
prog (68)
on left: 2 3, on right: 1
statements (69)
on left: 4 5 6, on right: 3 5 6
statement (70)
on left: 7 8 9 10 11 12 13 14 15 16 17, on right: 4 5
NUMBER (71)
on left: 18 19, on right: 90 97 100 101 102 191 192 201 202 203
204 205 219
boolean (72)
on left: 20 21, on right: 220
if_stmt (73)
on left: 22, on right: 7 179
if_header (74)
on left: 23 24, on right: 22
elif_else_ (75)
on left: 25 26, on right: 22
elif_else (76)
on left: 27 28 29, on right: 26
else_stmt (77)
on left: 30, on right: 27 29
elif_stmts (78)
on left: 31 32, on right: 27 28 32
elif_stmt (79)
on left: 33, on right: 31 32
elif_header (80)
on left: 34 35, on right: 33
function (81)
on left: 36 37, on right: 10 54 143
function_block (82)
on left: 38, on right: 36 37 65 73 76
function_stmts (83)
on left: 39 40, on right: 38 40
function_stmt_ (84)
on left: 41 42 43, on right: 39 40
function_sp_stmt (85)
on left: 44 45 46 47, on right: 43 64
function_compound_stmt (86)
on left: 48 49 50 51 52 53 54, on right: 42
func_while_stmt (87)
on left: 55, on right: 49
func_for_stmt (88)
on left: 56 57, on right: 50
func_for_block (89)
on left: 58, on right: 55 56 57
func_for_stmts (90)
on left: 59 60, on right: 58 60
func_for_stmt_ (91)
on left: 61 62 63 64, on right: 59 60
func_if_stmt (92)
on left: 65, on right: 48
func_if_header (93)
on left: 66 67, on right: 65
func_elif_else_ (94)
on left: 68 69, on right: 65
func_elif_else (95)
on left: 70 71 72, on right: 69
func_else_stmt (96)
on left: 73, on right: 70 72
func_elif_stmts (97)
on left: 74 75, on right: 70 71 75
func_elif_stmt (98)
on left: 76, on right: 74 75
func_elif_header (99)
on left: 77 78, on right: 76
args (100)
on left: 79 80, on right: 36 37
args_ (101)
on left: 81 82, on right: 80 82
arg (102)
on left: 83 84, on right: 81 82
argsp (103)
on left: 85 86, on right: 134
args_p (104)
on left: 87 88, on right: 86 88
argp (105)
on left: 89 90 91, on right: 87 88 152
argsc (106)
on left: 92 93, on right: 133
args_c (107)
on left: 94 95, on right: 93 95
argc (108)
on left: 96 97 98, on right: 94 95
while_stmt (109)
on left: 99, on right: 8 114 180
range_args (110)
on left: 100 101 102, on right: 56 103
for_stmt (111)
on left: 103 104, on right: 9 115 181
for_block (112)
on left: 105, on right: 99 103 104 119 127 130
for_stmts (113)
on left: 106 107, on right: 105 107
for_stmt_ (114)
on left: 108 109 110, on right: 106 107
for_sp_stmt (115)
on left: 111 112, on right: 63 110
for_compound_stmt (116)
on left: 113 114 115 116 117 118, on right: 62 109
for_if_stmt (117)
on left: 119, on right: 113
for_if_header (118)
on left: 120 121, on right: 119
for_elif_else_ (119)
on left: 122 123, on right: 119
for_elif_else (120)
on left: 124 125 126, on right: 123
for_else_stmt (121)
on left: 127, on right: 124 126
for_elif_stmts (122)
on left: 128 129, on right: 124 125 129
for_elif_stmt (123)
on left: 130, on right: 128 129
for_elif_header (124)
on left: 131 132, on right: 130
function_call (125)
on left: 133 134 135, on right: 11 178
class (126)
on left: 136, on right: 13
class_block (127)
on left: 137, on right: 136
class_stmts (128)
on left: 138 139, on right: 137 139
class_stmt_ (129)
on left: 140 141 142 143, on right: 138 139
class_sp_stmt (130)
on left: 144, on right: 142
try_except_stmt (131)
on left: 145, on right: 14 51 116 182
except_clauses (132)
on left: 146 147, on right: 145 147
except_clause (133)
on left: 148, on right: 146 147
match_stmt (134)
on left: 149, on right: 15 53 118 184
case_statements (135)
on left: 150 151, on right: 151 154
case_statement (136)
on left: 152, on right: 150 151
final_case (137)
on left: 153, on right: 154
match_block (138)
on left: 154, on right: 149
with_statement (139)
on left: 155, on right: 16 52 117 183
with_statement_body (140)
on left: 156 157, on right: 155 156
with_body (141)
on left: 158 159, on right: 156 157
with_stmt_contents (142)
on left: 160, on right: 158 159
with_item (143)
on left: 161 162 163, on right: 160
inside_brackets (144)
on left: 164 165, on right: 161 165
target (145)
on left: 166 167 168, on right: 161 163 167 169 170
targets (146)
on left: 169 170, on right: 166 170
block (147)
on left: 171, on right: 22 30 33 145 148 152 153 155
stmts (148)
on left: 172 173, on right: 171 173
stmt (149)
on left: 174 175, on right: 172 173
simple_stmt (150)
on left: 176 177 178, on right: 41 61 108 140 174
compound_stmt (151)
on left: 179 180 181 182 183 184, on right: 141 175
assignment (152)
on left: 185 186 187 188 189 190, on right: 12 176
return_stmt (153)
on left: 191 192 193 194 195 196, on right: 44
yield_stmt (154)
on left: 197, on right: 47
global_stmt (155)
on left: 198, on right: 45 144
nonlocal_stmt (156)
on left: 199, on right: 46
pass (157)
on left: 200, on right: 17 177
relation_stmt (158)
on left: 201 202 203 204 205 206 207, on right: 23 24 34 35 55
66 67 77 78 99 120 121 131 132
expression (159)
on left: 208 209 210 211 212 213 214 215 216 217 218 219 220 221
222, on right: 162 163 164 165 185 186 187 188 189 208 209 210
211 212 213 214 215 216 217 218
data_type (160)
on left: 223 224 225 226 227 228 229, on right: 37 84
state 0
0 $accept: . start $end
ID shift, and go to state 1
IF shift, and go to state 2
DEF shift, and go to state 3
WHILE shift, and go to state 4
FOR shift, and go to state 5
PRINT shift, and go to state 6
INPUT shift, and go to state 7
CLASS shift, and go to state 8
TRY shift, and go to state 9
MATCH shift, and go to state 10
WITH shift, and go to state 11
PASS shift, and go to state 12
$default reduce using rule 2 (prog)
start go to state 13
prog go to state 14
statements go to state 15
statement go to state 16
if_stmt go to state 17
if_header go to state 18
function go to state 19
while_stmt go to state 20
for_stmt go to state 21
function_call go to state 22
class go to state 23
try_except_stmt go to state 24
match_stmt go to state 25
with_statement go to state 26
assignment go to state 27
pass go to state 28
state 1
133 function_call: ID . '(' argsc ')'
185 assignment: ID . '=' expression
186 | ID . '+' '=' expression
187 | ID . '-' '=' expression
188 | ID . '*' '=' expression
189 | ID . '/' '=' expression
190 | ID . '=' ARRAY
'=' shift, and go to state 29
'+' shift, and go to state 30
'-' shift, and go to state 31
'*' shift, and go to state 32
'/' shift, and go to state 33
'(' shift, and go to state 34
state 2
23 if_header: IF . relation_stmt
24 | IF . '(' relation_stmt ')'
ID shift, and go to state 35
'(' shift, and go to state 36
relation_stmt go to state 37
state 3
36 function: DEF . ID '(' args ')' function_block
37 | DEF . ID '(' args ')' '-' GT data_type function_block
ID shift, and go to state 38
state 4
99 while_stmt: WHILE . relation_stmt for_block
ID shift, and go to state 35
relation_stmt go to state 39
state 5
103 for_stmt: FOR . ID IN RANGE range_args for_block
104 | FOR . ID IN ARRAY for_block
ID shift, and go to state 40
state 6
134 function_call: PRINT . '(' argsp ')'
'(' shift, and go to state 41
state 7
135 function_call: INPUT . '(' STRING ')'
'(' shift, and go to state 42
state 8
136 class: CLASS . ID class_block
ID shift, and go to state 43
state 9
145 try_except_stmt: TRY . block except_clauses
NEWLINE shift, and go to state 44
block go to state 45
state 10
149 match_stmt: MATCH . ID match_block
ID shift, and go to state 46
state 11
155 with_statement: WITH . with_statement_body block
ID shift, and go to state 47
STRING shift, and go to state 48
INT_NUMBER shift, and go to state 49
FLOAT_NUMBER shift, and go to state 50
TRUE_TOK shift, and go to state 51
FALSE_TOK shift, and go to state 52
'|' shift, and go to state 53
'-' shift, and go to state 54
'(' shift, and go to state 55
NUMBER go to state 56
boolean go to state 57
with_statement_body go to state 58
with_body go to state 59
with_stmt_contents go to state 60
with_item go to state 61
expression go to state 62
state 12
200 pass: PASS .
$default reduce using rule 200 (pass)
state 13
0 $accept: start . $end
$end shift, and go to state 63
state 14
1 start: prog .
$default reduce using rule 1 (start)
state 15
3 prog: statements .
5 statements: statements . NEWLINE statement
6 | statements . NEWLINE
NEWLINE shift, and go to state 64
$default reduce using rule 3 (prog)
state 16
4 statements: statement .
$default reduce using rule 4 (statements)
state 17
7 statement: if_stmt .
$default reduce using rule 7 (statement)
state 18
22 if_stmt: if_header . block elif_else_
NEWLINE shift, and go to state 44
block go to state 65
state 19
10 statement: function .
$default reduce using rule 10 (statement)
state 20
8 statement: while_stmt .
$default reduce using rule 8 (statement)
state 21
9 statement: for_stmt .
$default reduce using rule 9 (statement)
state 22
11 statement: function_call .
$default reduce using rule 11 (statement)
state 23
13 statement: class .
$default reduce using rule 13 (statement)
state 24
14 statement: try_except_stmt .
$default reduce using rule 14 (statement)
state 25
15 statement: match_stmt .
$default reduce using rule 15 (statement)
state 26
16 statement: with_statement .
$default reduce using rule 16 (statement)
state 27
12 statement: assignment . NEWLINE
NEWLINE shift, and go to state 66
state 28
17 statement: pass . NEWLINE
NEWLINE shift, and go to state 67
state 29
185 assignment: ID '=' . expression
190 | ID '=' . ARRAY
ID shift, and go to state 68
STRING shift, and go to state 48
ARRAY shift, and go to state 69
INT_NUMBER shift, and go to state 49
FLOAT_NUMBER shift, and go to state 50
TRUE_TOK shift, and go to state 51
FALSE_TOK shift, and go to state 52
'|' shift, and go to state 53
'-' shift, and go to state 54
'(' shift, and go to state 70
NUMBER go to state 56
boolean go to state 57
expression go to state 71
state 30
186 assignment: ID '+' . '=' expression
'=' shift, and go to state 72
state 31
187 assignment: ID '-' . '=' expression
'=' shift, and go to state 73
state 32
188 assignment: ID '*' . '=' expression
'=' shift, and go to state 74
state 33
189 assignment: ID '/' . '=' expression
'=' shift, and go to state 75
state 34
133 function_call: ID '(' . argsc ')'
ID shift, and go to state 76
STRING shift, and go to state 77
INT_NUMBER shift, and go to state 49
FLOAT_NUMBER shift, and go to state 50
$default reduce using rule 92 (argsc)
NUMBER go to state 78
argsc go to state 79
args_c go to state 80
argc go to state 81
state 35
201 relation_stmt: ID . GT NUMBER
202 | ID . LT NUMBER
203 | ID . GTE NUMBER
204 | ID . LTE NUMBER
205 | ID . EQUAL NUMBER
206 | ID . EQUAL STRING
207 | ID .
GT shift, and go to state 82
LT shift, and go to state 83
GTE shift, and go to state 84
LTE shift, and go to state 85
EQUAL shift, and go to state 86
$default reduce using rule 207 (relation_stmt)
state 36
24 if_header: IF '(' . relation_stmt ')'
ID shift, and go to state 35
relation_stmt go to state 87
state 37
23 if_header: IF relation_stmt .
$default reduce using rule 23 (if_header)
state 38
36 function: DEF ID . '(' args ')' function_block
37 | DEF ID . '(' args ')' '-' GT data_type function_block
'(' shift, and go to state 88
state 39
99 while_stmt: WHILE relation_stmt . for_block
NEWLINE shift, and go to state 89
for_block go to state 90