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
|
// Generated by GNU Bison 3.0.4.
// Report bugs to <bug-bison@gnu.org>.
// Home page: <http://www.gnu.org/software/bison/>.
digraph "parser.y"
{
node [fontname = courier, shape = box, colorscheme = paired6]
edge [fontname = courier]
0 [label="State 0\n\l 0 $accept: . input $end\l 1 input: . %empty [$end]\l 2 | . expr\l 3 expr: . NUMBER\l 4 | . '(' expr ')'\l 5 | . expr PLUS expr\l 6 | . expr MINUS expr\l 7 | . expr MULT expr\l 8 | . expr DIV expr\l"]
0 -> 1 [style=solid label="NUMBER"]
0 -> 2 [style=solid label="'('"]
0 -> 3 [style=dashed label="input"]
0 -> 4 [style=dashed label="expr"]
0 -> "0R1" [style=solid]
"0R1" [label="R1", fillcolor=3, shape=diamond, style=filled]
1 [label="State 1\n\l 3 expr: NUMBER .\l"]
1 -> "1R3" [style=solid]
"1R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
2 [label="State 2\n\l 3 expr: . NUMBER\l 4 | . '(' expr ')'\l 4 | '(' . expr ')'\l 5 | . expr PLUS expr\l 6 | . expr MINUS expr\l 7 | . expr MULT expr\l 8 | . expr DIV expr\l"]
2 -> 1 [style=solid label="NUMBER"]
2 -> 2 [style=solid label="'('"]
2 -> 5 [style=dashed label="expr"]
3 [label="State 3\n\l 0 $accept: input . $end\l"]
3 -> 6 [style=solid label="$end"]
4 [label="State 4\n\l 2 input: expr . [$end]\l 5 expr: expr . PLUS expr\l 6 | expr . MINUS expr\l 7 | expr . MULT expr\l 8 | expr . DIV expr\l"]
4 -> 7 [style=solid label="PLUS"]
4 -> 8 [style=solid label="MINUS"]
4 -> 9 [style=solid label="MULT"]
4 -> 10 [style=solid label="DIV"]
4 -> "4R2" [style=solid]
"4R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
5 [label="State 5\n\l 4 expr: '(' expr . ')'\l 5 | expr . PLUS expr\l 6 | expr . MINUS expr\l 7 | expr . MULT expr\l 8 | expr . DIV expr\l"]
5 -> 7 [style=solid label="PLUS"]
5 -> 8 [style=solid label="MINUS"]
5 -> 9 [style=solid label="MULT"]
5 -> 10 [style=solid label="DIV"]
5 -> 11 [style=solid label="')'"]
6 [label="State 6\n\l 0 $accept: input $end .\l"]
6 -> "6R0" [style=solid]
"6R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
7 [label="State 7\n\l 3 expr: . NUMBER\l 4 | . '(' expr ')'\l 5 | . expr PLUS expr\l 5 | expr PLUS . expr\l 6 | . expr MINUS expr\l 7 | . expr MULT expr\l 8 | . expr DIV expr\l"]
7 -> 1 [style=solid label="NUMBER"]
7 -> 2 [style=solid label="'('"]
7 -> 12 [style=dashed label="expr"]
8 [label="State 8\n\l 3 expr: . NUMBER\l 4 | . '(' expr ')'\l 5 | . expr PLUS expr\l 6 | . expr MINUS expr\l 6 | expr MINUS . expr\l 7 | . expr MULT expr\l 8 | . expr DIV expr\l"]
8 -> 1 [style=solid label="NUMBER"]
8 -> 2 [style=solid label="'('"]
8 -> 13 [style=dashed label="expr"]
9 [label="State 9\n\l 3 expr: . NUMBER\l 4 | . '(' expr ')'\l 5 | . expr PLUS expr\l 6 | . expr MINUS expr\l 7 | . expr MULT expr\l 7 | expr MULT . expr\l 8 | . expr DIV expr\l"]
9 -> 1 [style=solid label="NUMBER"]
9 -> 2 [style=solid label="'('"]
9 -> 14 [style=dashed label="expr"]
10 [label="State 10\n\l 3 expr: . NUMBER\l 4 | . '(' expr ')'\l 5 | . expr PLUS expr\l 6 | . expr MINUS expr\l 7 | . expr MULT expr\l 8 | . expr DIV expr\l 8 | expr DIV . expr\l"]
10 -> 1 [style=solid label="NUMBER"]
10 -> 2 [style=solid label="'('"]
10 -> 15 [style=dashed label="expr"]
11 [label="State 11\n\l 4 expr: '(' expr ')' .\l"]
11 -> "11R4" [style=solid]
"11R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
12 [label="State 12\n\l 5 expr: expr . PLUS expr\l 5 | expr PLUS expr . [$end, PLUS, MINUS, ')']\l 6 | expr . MINUS expr\l 7 | expr . MULT expr\l 8 | expr . DIV expr\l"]
12 -> 9 [style=solid label="MULT"]
12 -> 10 [style=solid label="DIV"]
12 -> "12R5" [style=solid]
"12R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
13 [label="State 13\n\l 5 expr: expr . PLUS expr\l 6 | expr . MINUS expr\l 6 | expr MINUS expr . [$end, PLUS, MINUS, ')']\l 7 | expr . MULT expr\l 8 | expr . DIV expr\l"]
13 -> 9 [style=solid label="MULT"]
13 -> 10 [style=solid label="DIV"]
13 -> "13R6" [style=solid]
"13R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
14 [label="State 14\n\l 5 expr: expr . PLUS expr\l 6 | expr . MINUS expr\l 7 | expr . MULT expr\l 7 | expr MULT expr . [$end, PLUS, MINUS, MULT, DIV, ')']\l 8 | expr . DIV expr\l"]
14 -> "14R7" [style=solid]
"14R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
15 [label="State 15\n\l 5 expr: expr . PLUS expr\l 6 | expr . MINUS expr\l 7 | expr . MULT expr\l 8 | expr . DIV expr\l 8 | expr DIV expr . [$end, PLUS, MINUS, MULT, DIV, ')']\l"]
15 -> "15R8" [style=solid]
"15R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
}
|