comparison Bison-Flex/BasicCompiler-MemoryBase/EUC/script-parser.output @ 0:db40c85cad7a default tip

upload sample source
author nobuyasu <dimolto@cr.ie.u-ryukyu.ac.jp>
date Mon, 09 May 2011 03:11:59 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:db40c85cad7a
1 文法
2
3 0 $accept: unit "end of file"
4
5 1 unit: states
6 2 | unit states
7
8 3 states: statement "\n"
9 4 | "\n"
10
11 5 statement: "end"
12 6 | assign
13 7 | "if" comp_expr "then"
14 8 | "else"
15 9 | "endif"
16 10 | "for" assign "to" expr "step" expr
17 11 | "for" assign "to" expr
18 12 | "next"
19 13 | "while" comp_expr
20 14 | "wend"
21 15 | "print" args
22 16 | error
23
24 17 assign: value '=' expr
25
26 18 comp_expr: expr "==" expr
27 19 | expr "!=" expr
28 20 | expr '>' expr
29 21 | expr ">=" expr
30 22 | expr '<' expr
31 23 | expr "<=" expr
32
33 24 expr: expr '-' expr
34 25 | expr '+' expr
35 26 | expr '*' expr
36 27 | expr '/' expr
37 28 | expr '%' expr
38 29 | '-' expr
39 30 | '(' expr ')'
40 31 | value
41 32 | "ival"
42 33 | "rand" '(' expr ')'
43
44 34 value: "identifier"
45
46 35 args: expr
47 36 | args ',' expr
48
49
50 出現位置の規則による終端
51
52 "end of file" (0) 0
53 '%' (37) 28
54 '(' (40) 30 33
55 ')' (41) 30 33
56 '*' (42) 26
57 '+' (43) 25
58 ',' (44) 36
59 '-' (45) 24 29
60 '/' (47) 27
61 '<' (60) 22
62 '=' (61) 17
63 '>' (62) 20
64 error (256) 16
65 "ival" (258) 32
66 "identifier" (259) 34
67 "==" (260) 18
68 "!=" (261) 19
69 ">=" (262) 21
70 "<=" (263) 23
71 "\n" (264) 3 4
72 "if" (265) 7
73 "then" (266) 7
74 "else" (267) 8
75 "endif" (268) 9
76 "for" (269) 10 11
77 "to" (270) 10 11
78 "next" (271) 12
79 "while" (272) 13
80 "wend" (273) 14
81 "end" (274) 5
82 "rand" (275) 33
83 "print" (276) 15
84 NEG (277)
85 "step" (278) 10
86
87
88 出現位置の規則による非終端
89
90 $accept (35)
91 左辺: 0
92 unit (36)
93 左辺: 1 2, 右辺: 0 2
94 states (37)
95 左辺: 3 4, 右辺: 1 2
96 statement (38)
97 左辺: 5 6 7 8 9 10 11 12 13 14 15 16, 右辺: 3
98 assign (39)
99 左辺: 17, 右辺: 6 10 11
100 comp_expr (40)
101 左辺: 18 19 20 21 22 23, 右辺: 7 13
102 expr (41)
103 左辺: 24 25 26 27 28 29 30 31 32 33, 右辺: 10 11 17 18 19 20
104 21 22 23 24 25 26 27 28 29 30 33 35 36
105 value (42)
106 左辺: 34, 右辺: 17 31
107 args (43)
108 左辺: 35 36, 右辺: 15 36
109
110
111 状態 0
112
113 0 $accept: . unit "end of file"
114 1 unit: . states
115 2 | . unit states
116 3 states: . statement "\n"
117 4 | . "\n"
118 5 statement: . "end"
119 6 | . assign
120 7 | . "if" comp_expr "then"
121 8 | . "else"
122 9 | . "endif"
123 10 | . "for" assign "to" expr "step" expr
124 11 | . "for" assign "to" expr
125 12 | . "next"
126 13 | . "while" comp_expr
127 14 | . "wend"
128 15 | . "print" args
129 16 | . error
130 17 assign: . value '=' expr
131 34 value: . "identifier"
132
133 error shift, and go to state 1
134 "identifier" shift, and go to state 2
135 "\n" shift, and go to state 3
136 "if" shift, and go to state 4
137 "else" shift, and go to state 5
138 "endif" shift, and go to state 6
139 "for" shift, and go to state 7
140 "next" shift, and go to state 8
141 "while" shift, and go to state 9
142 "wend" shift, and go to state 10
143 "end" shift, and go to state 11
144 "print" shift, and go to state 12
145
146 unit go to state 13
147 states go to state 14
148 statement go to state 15
149 assign go to state 16
150 value go to state 17
151
152
153 状態 1
154
155 16 statement: error .
156
157 $default reduce using rule 16 (statement)
158
159
160 状態 2
161
162 34 value: "identifier" .
163
164 $default reduce using rule 34 (value)
165
166
167 状態 3
168
169 4 states: "\n" .
170
171 $default reduce using rule 4 (states)
172
173
174 状態 4
175
176 7 statement: "if" . comp_expr "then"
177 18 comp_expr: . expr "==" expr
178 19 | . expr "!=" expr
179 20 | . expr '>' expr
180 21 | . expr ">=" expr
181 22 | . expr '<' expr
182 23 | . expr "<=" expr
183 24 expr: . expr '-' expr
184 25 | . expr '+' expr
185 26 | . expr '*' expr
186 27 | . expr '/' expr
187 28 | . expr '%' expr
188 29 | . '-' expr
189 30 | . '(' expr ')'
190 31 | . value
191 32 | . "ival"
192 33 | . "rand" '(' expr ')'
193 34 value: . "identifier"
194
195 "ival" shift, and go to state 18
196 "identifier" shift, and go to state 2
197 "rand" shift, and go to state 19
198 '-' shift, and go to state 20
199 '(' shift, and go to state 21
200
201 comp_expr go to state 22
202 expr go to state 23
203 value go to state 24
204
205
206 状態 5
207
208 8 statement: "else" .
209
210 $default reduce using rule 8 (statement)
211
212
213 状態 6
214
215 9 statement: "endif" .
216
217 $default reduce using rule 9 (statement)
218
219
220 状態 7
221
222 10 statement: "for" . assign "to" expr "step" expr
223 11 | "for" . assign "to" expr
224 17 assign: . value '=' expr
225 34 value: . "identifier"
226
227 "identifier" shift, and go to state 2
228
229 assign go to state 25
230 value go to state 17
231
232
233 状態 8
234
235 12 statement: "next" .
236
237 $default reduce using rule 12 (statement)
238
239
240 状態 9
241
242 13 statement: "while" . comp_expr
243 18 comp_expr: . expr "==" expr
244 19 | . expr "!=" expr
245 20 | . expr '>' expr
246 21 | . expr ">=" expr
247 22 | . expr '<' expr
248 23 | . expr "<=" expr
249 24 expr: . expr '-' expr
250 25 | . expr '+' expr
251 26 | . expr '*' expr
252 27 | . expr '/' expr
253 28 | . expr '%' expr
254 29 | . '-' expr
255 30 | . '(' expr ')'
256 31 | . value
257 32 | . "ival"
258 33 | . "rand" '(' expr ')'
259 34 value: . "identifier"
260
261 "ival" shift, and go to state 18
262 "identifier" shift, and go to state 2
263 "rand" shift, and go to state 19
264 '-' shift, and go to state 20
265 '(' shift, and go to state 21
266
267 comp_expr go to state 26
268 expr go to state 23
269 value go to state 24
270
271
272 状態 10
273
274 14 statement: "wend" .
275
276 $default reduce using rule 14 (statement)
277
278
279 状態 11
280
281 5 statement: "end" .
282
283 $default reduce using rule 5 (statement)
284
285
286 状態 12
287
288 15 statement: "print" . args
289 24 expr: . expr '-' expr
290 25 | . expr '+' expr
291 26 | . expr '*' expr
292 27 | . expr '/' expr
293 28 | . expr '%' expr
294 29 | . '-' expr
295 30 | . '(' expr ')'
296 31 | . value
297 32 | . "ival"
298 33 | . "rand" '(' expr ')'
299 34 value: . "identifier"
300 35 args: . expr
301 36 | . args ',' expr
302
303 "ival" shift, and go to state 18
304 "identifier" shift, and go to state 2
305 "rand" shift, and go to state 19
306 '-' shift, and go to state 20
307 '(' shift, and go to state 21
308
309 expr go to state 27
310 value go to state 24
311 args go to state 28
312
313
314 状態 13
315
316 0 $accept: unit . "end of file"
317 2 unit: unit . states
318 3 states: . statement "\n"
319 4 | . "\n"
320 5 statement: . "end"
321 6 | . assign
322 7 | . "if" comp_expr "then"
323 8 | . "else"
324 9 | . "endif"
325 10 | . "for" assign "to" expr "step" expr
326 11 | . "for" assign "to" expr
327 12 | . "next"
328 13 | . "while" comp_expr
329 14 | . "wend"
330 15 | . "print" args
331 16 | . error
332 17 assign: . value '=' expr
333 34 value: . "identifier"
334
335 "end of file" shift, and go to state 29
336 error shift, and go to state 1
337 "identifier" shift, and go to state 2
338 "\n" shift, and go to state 3
339 "if" shift, and go to state 4
340 "else" shift, and go to state 5
341 "endif" shift, and go to state 6
342 "for" shift, and go to state 7
343 "next" shift, and go to state 8
344 "while" shift, and go to state 9
345 "wend" shift, and go to state 10
346 "end" shift, and go to state 11
347 "print" shift, and go to state 12
348
349 states go to state 30
350 statement go to state 15
351 assign go to state 16
352 value go to state 17
353
354
355 状態 14
356
357 1 unit: states .
358
359 $default reduce using rule 1 (unit)
360
361
362 状態 15
363
364 3 states: statement . "\n"
365
366 "\n" shift, and go to state 31
367
368
369 状態 16
370
371 6 statement: assign .
372
373 $default reduce using rule 6 (statement)
374
375
376 状態 17
377
378 17 assign: value . '=' expr
379
380 '=' shift, and go to state 32
381
382
383 状態 18
384
385 32 expr: "ival" .
386
387 $default reduce using rule 32 (expr)
388
389
390 状態 19
391
392 33 expr: "rand" . '(' expr ')'
393
394 '(' shift, and go to state 33
395
396
397 状態 20
398
399 24 expr: . expr '-' expr
400 25 | . expr '+' expr
401 26 | . expr '*' expr
402 27 | . expr '/' expr
403 28 | . expr '%' expr
404 29 | . '-' expr
405 29 | '-' . expr
406 30 | . '(' expr ')'
407 31 | . value
408 32 | . "ival"
409 33 | . "rand" '(' expr ')'
410 34 value: . "identifier"
411
412 "ival" shift, and go to state 18
413 "identifier" shift, and go to state 2
414 "rand" shift, and go to state 19
415 '-' shift, and go to state 20
416 '(' shift, and go to state 21
417
418 expr go to state 34
419 value go to state 24
420
421
422 状態 21
423
424 24 expr: . expr '-' expr
425 25 | . expr '+' expr
426 26 | . expr '*' expr
427 27 | . expr '/' expr
428 28 | . expr '%' expr
429 29 | . '-' expr
430 30 | . '(' expr ')'
431 30 | '(' . expr ')'
432 31 | . value
433 32 | . "ival"
434 33 | . "rand" '(' expr ')'
435 34 value: . "identifier"
436
437 "ival" shift, and go to state 18
438 "identifier" shift, and go to state 2
439 "rand" shift, and go to state 19
440 '-' shift, and go to state 20
441 '(' shift, and go to state 21
442
443 expr go to state 35
444 value go to state 24
445
446
447 状態 22
448
449 7 statement: "if" comp_expr . "then"
450
451 "then" shift, and go to state 36
452
453
454 状態 23
455
456 18 comp_expr: expr . "==" expr
457 19 | expr . "!=" expr
458 20 | expr . '>' expr
459 21 | expr . ">=" expr
460 22 | expr . '<' expr
461 23 | expr . "<=" expr
462 24 expr: expr . '-' expr
463 25 | expr . '+' expr
464 26 | expr . '*' expr
465 27 | expr . '/' expr
466 28 | expr . '%' expr
467
468 "==" shift, and go to state 37
469 "!=" shift, and go to state 38
470 ">=" shift, and go to state 39
471 "<=" shift, and go to state 40
472 '+' shift, and go to state 41
473 '-' shift, and go to state 42
474 '*' shift, and go to state 43
475 '/' shift, and go to state 44
476 '%' shift, and go to state 45
477 '>' shift, and go to state 46
478 '<' shift, and go to state 47
479
480
481 状態 24
482
483 31 expr: value .
484
485 $default reduce using rule 31 (expr)
486
487
488 状態 25
489
490 10 statement: "for" assign . "to" expr "step" expr
491 11 | "for" assign . "to" expr
492
493 "to" shift, and go to state 48
494
495
496 状態 26
497
498 13 statement: "while" comp_expr .
499
500 $default reduce using rule 13 (statement)
501
502
503 状態 27
504
505 24 expr: expr . '-' expr
506 25 | expr . '+' expr
507 26 | expr . '*' expr
508 27 | expr . '/' expr
509 28 | expr . '%' expr
510 35 args: expr . ["\n", ',']
511
512 '+' shift, and go to state 41
513 '-' shift, and go to state 42
514 '*' shift, and go to state 43
515 '/' shift, and go to state 44
516 '%' shift, and go to state 45
517
518 $default reduce using rule 35 (args)
519
520
521 状態 28
522
523 15 statement: "print" args . ["\n"]
524 36 args: args . ',' expr
525
526 ',' shift, and go to state 49
527
528 $default reduce using rule 15 (statement)
529
530
531 状態 29
532
533 0 $accept: unit "end of file" .
534
535 $default accept
536
537
538 状態 30
539
540 2 unit: unit states .
541
542 $default reduce using rule 2 (unit)
543
544
545 状態 31
546
547 3 states: statement "\n" .
548
549 $default reduce using rule 3 (states)
550
551
552 状態 32
553
554 17 assign: value '=' . expr
555 24 expr: . expr '-' expr
556 25 | . expr '+' expr
557 26 | . expr '*' expr
558 27 | . expr '/' expr
559 28 | . expr '%' expr
560 29 | . '-' expr
561 30 | . '(' expr ')'
562 31 | . value
563 32 | . "ival"
564 33 | . "rand" '(' expr ')'
565 34 value: . "identifier"
566
567 "ival" shift, and go to state 18
568 "identifier" shift, and go to state 2
569 "rand" shift, and go to state 19
570 '-' shift, and go to state 20
571 '(' shift, and go to state 21
572
573 expr go to state 50
574 value go to state 24
575
576
577 状態 33
578
579 24 expr: . expr '-' expr
580 25 | . expr '+' expr
581 26 | . expr '*' expr
582 27 | . expr '/' expr
583 28 | . expr '%' expr
584 29 | . '-' expr
585 30 | . '(' expr ')'
586 31 | . value
587 32 | . "ival"
588 33 | . "rand" '(' expr ')'
589 33 | "rand" '(' . expr ')'
590 34 value: . "identifier"
591
592 "ival" shift, and go to state 18
593 "identifier" shift, and go to state 2
594 "rand" shift, and go to state 19
595 '-' shift, and go to state 20
596 '(' shift, and go to state 21
597
598 expr go to state 51
599 value go to state 24
600
601
602 状態 34
603
604 24 expr: expr . '-' expr
605 25 | expr . '+' expr
606 26 | expr . '*' expr
607 27 | expr . '/' expr
608 28 | expr . '%' expr
609 29 | '-' expr . ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
610
611 $default reduce using rule 29 (expr)
612
613 Conflict between rule 29 and token '+' resolved as reduce ('+' < NEG).
614 Conflict between rule 29 and token '-' resolved as reduce ('-' < NEG).
615 Conflict between rule 29 and token '*' resolved as reduce ('*' < NEG).
616 Conflict between rule 29 and token '/' resolved as reduce ('/' < NEG).
617 Conflict between rule 29 and token '%' resolved as reduce ('%' < NEG).
618
619
620 状態 35
621
622 24 expr: expr . '-' expr
623 25 | expr . '+' expr
624 26 | expr . '*' expr
625 27 | expr . '/' expr
626 28 | expr . '%' expr
627 30 | '(' expr . ')'
628
629 '+' shift, and go to state 41
630 '-' shift, and go to state 42
631 '*' shift, and go to state 43
632 '/' shift, and go to state 44
633 '%' shift, and go to state 45
634 ')' shift, and go to state 52
635
636
637 状態 36
638
639 7 statement: "if" comp_expr "then" .
640
641 $default reduce using rule 7 (statement)
642
643
644 状態 37
645
646 18 comp_expr: expr "==" . expr
647 24 expr: . expr '-' expr
648 25 | . expr '+' expr
649 26 | . expr '*' expr
650 27 | . expr '/' expr
651 28 | . expr '%' expr
652 29 | . '-' expr
653 30 | . '(' expr ')'
654 31 | . value
655 32 | . "ival"
656 33 | . "rand" '(' expr ')'
657 34 value: . "identifier"
658
659 "ival" shift, and go to state 18
660 "identifier" shift, and go to state 2
661 "rand" shift, and go to state 19
662 '-' shift, and go to state 20
663 '(' shift, and go to state 21
664
665 expr go to state 53
666 value go to state 24
667
668
669 状態 38
670
671 19 comp_expr: expr "!=" . expr
672 24 expr: . expr '-' expr
673 25 | . expr '+' expr
674 26 | . expr '*' expr
675 27 | . expr '/' expr
676 28 | . expr '%' expr
677 29 | . '-' expr
678 30 | . '(' expr ')'
679 31 | . value
680 32 | . "ival"
681 33 | . "rand" '(' expr ')'
682 34 value: . "identifier"
683
684 "ival" shift, and go to state 18
685 "identifier" shift, and go to state 2
686 "rand" shift, and go to state 19
687 '-' shift, and go to state 20
688 '(' shift, and go to state 21
689
690 expr go to state 54
691 value go to state 24
692
693
694 状態 39
695
696 21 comp_expr: expr ">=" . expr
697 24 expr: . expr '-' expr
698 25 | . expr '+' expr
699 26 | . expr '*' expr
700 27 | . expr '/' expr
701 28 | . expr '%' expr
702 29 | . '-' expr
703 30 | . '(' expr ')'
704 31 | . value
705 32 | . "ival"
706 33 | . "rand" '(' expr ')'
707 34 value: . "identifier"
708
709 "ival" shift, and go to state 18
710 "identifier" shift, and go to state 2
711 "rand" shift, and go to state 19
712 '-' shift, and go to state 20
713 '(' shift, and go to state 21
714
715 expr go to state 55
716 value go to state 24
717
718
719 状態 40
720
721 23 comp_expr: expr "<=" . expr
722 24 expr: . expr '-' expr
723 25 | . expr '+' expr
724 26 | . expr '*' expr
725 27 | . expr '/' expr
726 28 | . expr '%' expr
727 29 | . '-' expr
728 30 | . '(' expr ')'
729 31 | . value
730 32 | . "ival"
731 33 | . "rand" '(' expr ')'
732 34 value: . "identifier"
733
734 "ival" shift, and go to state 18
735 "identifier" shift, and go to state 2
736 "rand" shift, and go to state 19
737 '-' shift, and go to state 20
738 '(' shift, and go to state 21
739
740 expr go to state 56
741 value go to state 24
742
743
744 状態 41
745
746 24 expr: . expr '-' expr
747 25 | . expr '+' expr
748 25 | expr '+' . expr
749 26 | . expr '*' expr
750 27 | . expr '/' expr
751 28 | . expr '%' expr
752 29 | . '-' expr
753 30 | . '(' expr ')'
754 31 | . value
755 32 | . "ival"
756 33 | . "rand" '(' expr ')'
757 34 value: . "identifier"
758
759 "ival" shift, and go to state 18
760 "identifier" shift, and go to state 2
761 "rand" shift, and go to state 19
762 '-' shift, and go to state 20
763 '(' shift, and go to state 21
764
765 expr go to state 57
766 value go to state 24
767
768
769 状態 42
770
771 24 expr: . expr '-' expr
772 24 | expr '-' . expr
773 25 | . expr '+' expr
774 26 | . expr '*' expr
775 27 | . expr '/' expr
776 28 | . expr '%' expr
777 29 | . '-' expr
778 30 | . '(' expr ')'
779 31 | . value
780 32 | . "ival"
781 33 | . "rand" '(' expr ')'
782 34 value: . "identifier"
783
784 "ival" shift, and go to state 18
785 "identifier" shift, and go to state 2
786 "rand" shift, and go to state 19
787 '-' shift, and go to state 20
788 '(' shift, and go to state 21
789
790 expr go to state 58
791 value go to state 24
792
793
794 状態 43
795
796 24 expr: . expr '-' expr
797 25 | . expr '+' expr
798 26 | . expr '*' expr
799 26 | expr '*' . expr
800 27 | . expr '/' expr
801 28 | . expr '%' expr
802 29 | . '-' expr
803 30 | . '(' expr ')'
804 31 | . value
805 32 | . "ival"
806 33 | . "rand" '(' expr ')'
807 34 value: . "identifier"
808
809 "ival" shift, and go to state 18
810 "identifier" shift, and go to state 2
811 "rand" shift, and go to state 19
812 '-' shift, and go to state 20
813 '(' shift, and go to state 21
814
815 expr go to state 59
816 value go to state 24
817
818
819 状態 44
820
821 24 expr: . expr '-' expr
822 25 | . expr '+' expr
823 26 | . expr '*' expr
824 27 | . expr '/' expr
825 27 | expr '/' . expr
826 28 | . expr '%' expr
827 29 | . '-' expr
828 30 | . '(' expr ')'
829 31 | . value
830 32 | . "ival"
831 33 | . "rand" '(' expr ')'
832 34 value: . "identifier"
833
834 "ival" shift, and go to state 18
835 "identifier" shift, and go to state 2
836 "rand" shift, and go to state 19
837 '-' shift, and go to state 20
838 '(' shift, and go to state 21
839
840 expr go to state 60
841 value go to state 24
842
843
844 状態 45
845
846 24 expr: . expr '-' expr
847 25 | . expr '+' expr
848 26 | . expr '*' expr
849 27 | . expr '/' expr
850 28 | . expr '%' expr
851 28 | expr '%' . expr
852 29 | . '-' expr
853 30 | . '(' expr ')'
854 31 | . value
855 32 | . "ival"
856 33 | . "rand" '(' expr ')'
857 34 value: . "identifier"
858
859 "ival" shift, and go to state 18
860 "identifier" shift, and go to state 2
861 "rand" shift, and go to state 19
862 '-' shift, and go to state 20
863 '(' shift, and go to state 21
864
865 expr go to state 61
866 value go to state 24
867
868
869 状態 46
870
871 20 comp_expr: expr '>' . expr
872 24 expr: . expr '-' expr
873 25 | . expr '+' expr
874 26 | . expr '*' expr
875 27 | . expr '/' expr
876 28 | . expr '%' expr
877 29 | . '-' expr
878 30 | . '(' expr ')'
879 31 | . value
880 32 | . "ival"
881 33 | . "rand" '(' expr ')'
882 34 value: . "identifier"
883
884 "ival" shift, and go to state 18
885 "identifier" shift, and go to state 2
886 "rand" shift, and go to state 19
887 '-' shift, and go to state 20
888 '(' shift, and go to state 21
889
890 expr go to state 62
891 value go to state 24
892
893
894 状態 47
895
896 22 comp_expr: expr '<' . expr
897 24 expr: . expr '-' expr
898 25 | . expr '+' expr
899 26 | . expr '*' expr
900 27 | . expr '/' expr
901 28 | . expr '%' expr
902 29 | . '-' expr
903 30 | . '(' expr ')'
904 31 | . value
905 32 | . "ival"
906 33 | . "rand" '(' expr ')'
907 34 value: . "identifier"
908
909 "ival" shift, and go to state 18
910 "identifier" shift, and go to state 2
911 "rand" shift, and go to state 19
912 '-' shift, and go to state 20
913 '(' shift, and go to state 21
914
915 expr go to state 63
916 value go to state 24
917
918
919 状態 48
920
921 10 statement: "for" assign "to" . expr "step" expr
922 11 | "for" assign "to" . expr
923 24 expr: . expr '-' expr
924 25 | . expr '+' expr
925 26 | . expr '*' expr
926 27 | . expr '/' expr
927 28 | . expr '%' expr
928 29 | . '-' expr
929 30 | . '(' expr ')'
930 31 | . value
931 32 | . "ival"
932 33 | . "rand" '(' expr ')'
933 34 value: . "identifier"
934
935 "ival" shift, and go to state 18
936 "identifier" shift, and go to state 2
937 "rand" shift, and go to state 19
938 '-' shift, and go to state 20
939 '(' shift, and go to state 21
940
941 expr go to state 64
942 value go to state 24
943
944
945 状態 49
946
947 24 expr: . expr '-' expr
948 25 | . expr '+' expr
949 26 | . expr '*' expr
950 27 | . expr '/' expr
951 28 | . expr '%' expr
952 29 | . '-' expr
953 30 | . '(' expr ')'
954 31 | . value
955 32 | . "ival"
956 33 | . "rand" '(' expr ')'
957 34 value: . "identifier"
958 36 args: args ',' . expr
959
960 "ival" shift, and go to state 18
961 "identifier" shift, and go to state 2
962 "rand" shift, and go to state 19
963 '-' shift, and go to state 20
964 '(' shift, and go to state 21
965
966 expr go to state 65
967 value go to state 24
968
969
970 状態 50
971
972 17 assign: value '=' expr . ["\n", "to"]
973 24 expr: expr . '-' expr
974 25 | expr . '+' expr
975 26 | expr . '*' expr
976 27 | expr . '/' expr
977 28 | expr . '%' expr
978
979 '+' shift, and go to state 41
980 '-' shift, and go to state 42
981 '*' shift, and go to state 43
982 '/' shift, and go to state 44
983 '%' shift, and go to state 45
984
985 $default reduce using rule 17 (assign)
986
987
988 状態 51
989
990 24 expr: expr . '-' expr
991 25 | expr . '+' expr
992 26 | expr . '*' expr
993 27 | expr . '/' expr
994 28 | expr . '%' expr
995 33 | "rand" '(' expr . ')'
996
997 '+' shift, and go to state 41
998 '-' shift, and go to state 42
999 '*' shift, and go to state 43
1000 '/' shift, and go to state 44
1001 '%' shift, and go to state 45
1002 ')' shift, and go to state 66
1003
1004
1005 状態 52
1006
1007 30 expr: '(' expr ')' .
1008
1009 $default reduce using rule 30 (expr)
1010
1011
1012 状態 53
1013
1014 18 comp_expr: expr "==" expr . ["\n", "then"]
1015 24 expr: expr . '-' expr
1016 25 | expr . '+' expr
1017 26 | expr . '*' expr
1018 27 | expr . '/' expr
1019 28 | expr . '%' expr
1020
1021 '+' shift, and go to state 41
1022 '-' shift, and go to state 42
1023 '*' shift, and go to state 43
1024 '/' shift, and go to state 44
1025 '%' shift, and go to state 45
1026
1027 $default reduce using rule 18 (comp_expr)
1028
1029
1030 状態 54
1031
1032 19 comp_expr: expr "!=" expr . ["\n", "then"]
1033 24 expr: expr . '-' expr
1034 25 | expr . '+' expr
1035 26 | expr . '*' expr
1036 27 | expr . '/' expr
1037 28 | expr . '%' expr
1038
1039 '+' shift, and go to state 41
1040 '-' shift, and go to state 42
1041 '*' shift, and go to state 43
1042 '/' shift, and go to state 44
1043 '%' shift, and go to state 45
1044
1045 $default reduce using rule 19 (comp_expr)
1046
1047
1048 状態 55
1049
1050 21 comp_expr: expr ">=" expr . ["\n", "then"]
1051 24 expr: expr . '-' expr
1052 25 | expr . '+' expr
1053 26 | expr . '*' expr
1054 27 | expr . '/' expr
1055 28 | expr . '%' expr
1056
1057 '+' shift, and go to state 41
1058 '-' shift, and go to state 42
1059 '*' shift, and go to state 43
1060 '/' shift, and go to state 44
1061 '%' shift, and go to state 45
1062
1063 $default reduce using rule 21 (comp_expr)
1064
1065
1066 状態 56
1067
1068 23 comp_expr: expr "<=" expr . ["\n", "then"]
1069 24 expr: expr . '-' expr
1070 25 | expr . '+' expr
1071 26 | expr . '*' expr
1072 27 | expr . '/' expr
1073 28 | expr . '%' expr
1074
1075 '+' shift, and go to state 41
1076 '-' shift, and go to state 42
1077 '*' shift, and go to state 43
1078 '/' shift, and go to state 44
1079 '%' shift, and go to state 45
1080
1081 $default reduce using rule 23 (comp_expr)
1082
1083
1084 状態 57
1085
1086 24 expr: expr . '-' expr
1087 25 | expr . '+' expr ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', "step", '>', '<', ')', ',']
1088 25 | expr '+' expr . ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', "step", '>', '<', ')', ',']
1089 26 | expr . '*' expr
1090 27 | expr . '/' expr
1091 28 | expr . '%' expr
1092
1093 '*' shift, and go to state 43
1094 '/' shift, and go to state 44
1095 '%' shift, and go to state 45
1096
1097 $default reduce using rule 25 (expr)
1098
1099 Conflict between rule 25 and token '+' resolved as reduce (%left '+').
1100 Conflict between rule 25 and token '-' resolved as reduce (%left '-').
1101 Conflict between rule 25 and token '*' resolved as shift ('+' < '*').
1102 Conflict between rule 25 and token '/' resolved as shift ('+' < '/').
1103 Conflict between rule 25 and token '%' resolved as shift ('+' < '%').
1104
1105
1106 状態 58
1107
1108 24 expr: expr . '-' expr ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', "step", '>', '<', ')', ',']
1109 24 | expr '-' expr . ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', "step", '>', '<', ')', ',']
1110 25 | expr . '+' expr
1111 26 | expr . '*' expr
1112 27 | expr . '/' expr
1113 28 | expr . '%' expr
1114
1115 '*' shift, and go to state 43
1116 '/' shift, and go to state 44
1117 '%' shift, and go to state 45
1118
1119 $default reduce using rule 24 (expr)
1120
1121 Conflict between rule 24 and token '+' resolved as reduce (%left '+').
1122 Conflict between rule 24 and token '-' resolved as reduce (%left '-').
1123 Conflict between rule 24 and token '*' resolved as shift ('-' < '*').
1124 Conflict between rule 24 and token '/' resolved as shift ('-' < '/').
1125 Conflict between rule 24 and token '%' resolved as shift ('-' < '%').
1126
1127
1128 状態 59
1129
1130 24 expr: expr . '-' expr
1131 25 | expr . '+' expr
1132 26 | expr . '*' expr ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
1133 26 | expr '*' expr . ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
1134 27 | expr . '/' expr
1135 28 | expr . '%' expr
1136
1137 $default reduce using rule 26 (expr)
1138
1139 Conflict between rule 26 and token '+' resolved as reduce ('+' < '*').
1140 Conflict between rule 26 and token '-' resolved as reduce ('-' < '*').
1141 Conflict between rule 26 and token '*' resolved as reduce (%left '*').
1142 Conflict between rule 26 and token '/' resolved as reduce (%left '/').
1143 Conflict between rule 26 and token '%' resolved as reduce (%left '%').
1144
1145
1146 状態 60
1147
1148 24 expr: expr . '-' expr
1149 25 | expr . '+' expr
1150 26 | expr . '*' expr
1151 27 | expr . '/' expr ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
1152 27 | expr '/' expr . ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
1153 28 | expr . '%' expr
1154
1155 $default reduce using rule 27 (expr)
1156
1157 Conflict between rule 27 and token '+' resolved as reduce ('+' < '/').
1158 Conflict between rule 27 and token '-' resolved as reduce ('-' < '/').
1159 Conflict between rule 27 and token '*' resolved as reduce (%left '*').
1160 Conflict between rule 27 and token '/' resolved as reduce (%left '/').
1161 Conflict between rule 27 and token '%' resolved as reduce (%left '%').
1162
1163
1164 状態 61
1165
1166 24 expr: expr . '-' expr
1167 25 | expr . '+' expr
1168 26 | expr . '*' expr
1169 27 | expr . '/' expr
1170 28 | expr . '%' expr ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
1171 28 | expr '%' expr . ["==", "!=", ">=", "<=", "\n", "then", "to", '+', '-', '*', '/', '%', "step", '>', '<', ')', ',']
1172
1173 $default reduce using rule 28 (expr)
1174
1175 Conflict between rule 28 and token '+' resolved as reduce ('+' < '%').
1176 Conflict between rule 28 and token '-' resolved as reduce ('-' < '%').
1177 Conflict between rule 28 and token '*' resolved as reduce (%left '*').
1178 Conflict between rule 28 and token '/' resolved as reduce (%left '/').
1179 Conflict between rule 28 and token '%' resolved as reduce (%left '%').
1180
1181
1182 状態 62
1183
1184 20 comp_expr: expr '>' expr . ["\n", "then"]
1185 24 expr: expr . '-' expr
1186 25 | expr . '+' expr
1187 26 | expr . '*' expr
1188 27 | expr . '/' expr
1189 28 | expr . '%' expr
1190
1191 '+' shift, and go to state 41
1192 '-' shift, and go to state 42
1193 '*' shift, and go to state 43
1194 '/' shift, and go to state 44
1195 '%' shift, and go to state 45
1196
1197 $default reduce using rule 20 (comp_expr)
1198
1199
1200 状態 63
1201
1202 22 comp_expr: expr '<' expr . ["\n", "then"]
1203 24 expr: expr . '-' expr
1204 25 | expr . '+' expr
1205 26 | expr . '*' expr
1206 27 | expr . '/' expr
1207 28 | expr . '%' expr
1208
1209 '+' shift, and go to state 41
1210 '-' shift, and go to state 42
1211 '*' shift, and go to state 43
1212 '/' shift, and go to state 44
1213 '%' shift, and go to state 45
1214
1215 $default reduce using rule 22 (comp_expr)
1216
1217
1218 状態 64
1219
1220 10 statement: "for" assign "to" expr . "step" expr
1221 11 | "for" assign "to" expr . ["\n"]
1222 24 expr: expr . '-' expr
1223 25 | expr . '+' expr
1224 26 | expr . '*' expr
1225 27 | expr . '/' expr
1226 28 | expr . '%' expr
1227
1228 '+' shift, and go to state 41
1229 '-' shift, and go to state 42
1230 '*' shift, and go to state 43
1231 '/' shift, and go to state 44
1232 '%' shift, and go to state 45
1233 "step" shift, and go to state 67
1234
1235 $default reduce using rule 11 (statement)
1236
1237
1238 状態 65
1239
1240 24 expr: expr . '-' expr
1241 25 | expr . '+' expr
1242 26 | expr . '*' expr
1243 27 | expr . '/' expr
1244 28 | expr . '%' expr
1245 36 args: args ',' expr . ["\n", ',']
1246
1247 '+' shift, and go to state 41
1248 '-' shift, and go to state 42
1249 '*' shift, and go to state 43
1250 '/' shift, and go to state 44
1251 '%' shift, and go to state 45
1252
1253 $default reduce using rule 36 (args)
1254
1255
1256 状態 66
1257
1258 33 expr: "rand" '(' expr ')' .
1259
1260 $default reduce using rule 33 (expr)
1261
1262
1263 状態 67
1264
1265 10 statement: "for" assign "to" expr "step" . expr
1266 24 expr: . expr '-' expr
1267 25 | . expr '+' expr
1268 26 | . expr '*' expr
1269 27 | . expr '/' expr
1270 28 | . expr '%' expr
1271 29 | . '-' expr
1272 30 | . '(' expr ')'
1273 31 | . value
1274 32 | . "ival"
1275 33 | . "rand" '(' expr ')'
1276 34 value: . "identifier"
1277
1278 "ival" shift, and go to state 18
1279 "identifier" shift, and go to state 2
1280 "rand" shift, and go to state 19
1281 '-' shift, and go to state 20
1282 '(' shift, and go to state 21
1283
1284 expr go to state 68
1285 value go to state 24
1286
1287
1288 状態 68
1289
1290 10 statement: "for" assign "to" expr "step" expr . ["\n"]
1291 24 expr: expr . '-' expr
1292 25 | expr . '+' expr
1293 26 | expr . '*' expr
1294 27 | expr . '/' expr
1295 28 | expr . '%' expr
1296
1297 '+' shift, and go to state 41
1298 '-' shift, and go to state 42
1299 '*' shift, and go to state 43
1300 '/' shift, and go to state 44
1301 '%' shift, and go to state 45
1302
1303 $default reduce using rule 10 (statement)