Website Summary Files Commits Branches @commit @diff @stats
path: root / demo / bison / calc / parser.dot
blob: ac06822b6b3626d4bb2e3bed838a7e579b43dcdf (plain) (blame)
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]
}