diff options
added debug for the bison parser
1 files changed, 77 insertions, 0 deletions
| -rw-r--r-- | demo/bison/calc/parser.dot | 77 |
diff --git a/demo/bison/calc/parser.dot b/demo/bison/calc/parser.dot new file mode 100644 index 0000000..ac06822 --- /dev/null +++ b/demo/bison/calc/parser.dot @@ -0,0 +1,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] +} |
