1 # Bison Reports. -*- Autotest -*-
3 # Copyright (C) 2018-2021 Free Software Foundation, Inc.
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or
8 # (at your option) any later version.
10 # This program is distributed in the hope that it will be useful,
11 # but WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
15 # You should have received a copy of the GNU General Public License
16 # along with this program. If not, see <https://www.gnu.org/licenses/>.
18 AT_BANNER([[Test reports.]])
21 # AT_CHECK_HTML(FILE, EXPECTED-CONTENT)
22 # -------------------------------------
23 # Old versions of xsltproc emit 'content="text/html; charset=UTF-8"'
24 # instead of 'content="text/html;charset=UTF-8"'.
25 # <https://trac.macports.org/raw-attachment/ticket/59927/bison-test-results-20210811-95b72.log.xz>
26 m4_define([AT_CHECK_HTML],
28 AT_CHECK([sed -e 's|content="text/html; charset=UTF-8"|content="text/html;charset=UTF-8"|g' $1],
41 AT_BISON_OPTION_PUSHDEFS
49 %token <std::string> IDENTIFIER "identifier"
50 %type <std::string> id
51 %token <int> NUMBER "number"
56 unit: assignments exp { driver.result = $2; };
60 | assignments assignment {};
63 id ":=" exp { driver.variables[$id] = $exp; };
69 "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp { $$ = $2 + $3 + $4 + $5; }
70 | "(" exp ")" { std::swap ($$, $2); }
71 | "identifier" { $$ = driver.variables[$1]; }
72 | "number" { std::swap ($$, $1); };
75 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
76 AT_BISON_CHECK([-o input.cc -v --graph=input.gv --html --xml input.yy])
78 # Check the contents of the report.
79 AT_CHECK([cat input.output], [],
82 0 $accept: unit "end of file"
84 1 unit: assignments exp
87 3 | assignments assignment
89 4 assignment: id ":=" exp
97 8 exp: "incr" exp @1 @2 exp
103 Terminals, with rules where they appear
109 "identifier" <std::string> (260) 5 10
110 "number" <int> (261) 11
115 Nonterminals, with rules where they appear
128 id <std::string> (13)
144 0 $accept: . unit "end of file"
146 $default reduce using rule 2 (assignments)
149 assignments go to state 2
154 0 $accept: unit . "end of file"
156 "end of file" shift, and go to state 3
161 1 unit: assignments . exp
162 3 assignments: assignments . assignment
164 "incr" shift, and go to state 4
165 "identifier" shift, and go to state 5
166 "number" shift, and go to state 6
167 "(" shift, and go to state 7
169 assignment go to state 8
176 0 $accept: unit "end of file" .
183 8 exp: "incr" . exp @1 @2 exp
185 "incr" shift, and go to state 4
186 "identifier" shift, and go to state 11
187 "number" shift, and go to state 6
188 "(" shift, and go to state 7
196 10 exp: "identifier" .
198 "end of file" reduce using rule 10 (exp)
199 $default reduce using rule 5 (id)
206 $default reduce using rule 11 (exp)
213 "incr" shift, and go to state 4
214 "identifier" shift, and go to state 11
215 "number" shift, and go to state 6
216 "(" shift, and go to state 7
223 3 assignments: assignments assignment .
225 $default reduce using rule 3 (assignments)
230 4 assignment: id . ":=" exp
232 ":=" shift, and go to state 14
237 1 unit: assignments exp .
239 $default reduce using rule 1 (unit)
244 10 exp: "identifier" .
246 $default reduce using rule 10 (exp)
251 8 exp: "incr" exp . @1 @2 exp
253 $default reduce using rule 6 (@1)
262 ")" shift, and go to state 16
267 4 assignment: id ":=" . exp
269 "incr" shift, and go to state 4
270 "identifier" shift, and go to state 11
271 "number" shift, and go to state 6
272 "(" shift, and go to state 7
279 8 exp: "incr" exp @1 . @2 exp
281 $default reduce using rule 7 (@2)
290 $default reduce using rule 9 (exp)
295 4 assignment: id ":=" exp .
297 $default reduce using rule 4 (assignment)
302 8 exp: "incr" exp @1 @2 . exp
304 "incr" shift, and go to state 4
305 "identifier" shift, and go to state 11
306 "number" shift, and go to state 6
307 "(" shift, and go to state 7
314 8 exp: "incr" exp @1 @2 exp .
316 $default reduce using rule 8 (exp)
320 # Now generate verbose reports.
321 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
322 AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --html --xml input.yy])
324 # Check the contents of the report.
325 AT_CHECK([cat input.output], [],
328 0 $accept: unit "end of file"
330 1 unit: assignments exp
332 2 assignments: %empty
333 3 | assignments assignment
335 4 assignment: id ":=" exp
343 8 exp: "incr" exp @1 @2 exp
349 Terminals, with rules where they appear
355 "identifier" <std::string> (260) 5 10
356 "number" <int> (261) 11
361 Nonterminals, with rules where they appear
374 id <std::string> (13)
390 0 $accept: . unit "end of file"
391 1 unit: . assignments exp
392 2 assignments: %empty .
393 3 | . assignments assignment
395 $default reduce using rule 2 (assignments)
398 assignments go to state 2
403 0 $accept: unit . "end of file"
405 "end of file" shift, and go to state 3
410 1 unit: assignments . exp
411 3 assignments: assignments . assignment
412 4 assignment: . id ":=" exp
414 8 exp: . "incr" exp @1 @2 exp
419 "incr" shift, and go to state 4
420 "identifier" shift, and go to state 5
421 "number" shift, and go to state 6
422 "(" shift, and go to state 7
424 assignment go to state 8
431 0 $accept: unit "end of file" .
438 8 exp: . "incr" exp @1 @2 exp
439 8 | "incr" . exp @1 @2 exp
444 "incr" shift, and go to state 4
445 "identifier" shift, and go to state 11
446 "number" shift, and go to state 6
447 "(" shift, and go to state 7
454 5 id: "identifier" . [":="]
455 10 exp: "identifier" . ["end of file"]
457 "end of file" reduce using rule 10 (exp)
458 $default reduce using rule 5 (id)
465 $default reduce using rule 11 (exp)
470 8 exp: . "incr" exp @1 @2 exp
476 "incr" shift, and go to state 4
477 "identifier" shift, and go to state 11
478 "number" shift, and go to state 6
479 "(" shift, and go to state 7
486 3 assignments: assignments assignment .
488 $default reduce using rule 3 (assignments)
493 4 assignment: id . ":=" exp
495 ":=" shift, and go to state 14
500 1 unit: assignments exp .
502 $default reduce using rule 1 (unit)
507 10 exp: "identifier" .
509 $default reduce using rule 10 (exp)
515 8 exp: "incr" exp . @1 @2 exp
517 $default reduce using rule 6 (@1)
526 ")" shift, and go to state 16
531 4 assignment: id ":=" . exp
532 8 exp: . "incr" exp @1 @2 exp
537 "incr" shift, and go to state 4
538 "identifier" shift, and go to state 11
539 "number" shift, and go to state 6
540 "(" shift, and go to state 7
548 8 exp: "incr" exp @1 . @2 exp
550 $default reduce using rule 7 (@2)
559 $default reduce using rule 9 (exp)
564 4 assignment: id ":=" exp .
566 $default reduce using rule 4 (assignment)
571 8 exp: . "incr" exp @1 @2 exp
572 8 | "incr" exp @1 @2 . exp
577 "incr" shift, and go to state 4
578 "identifier" shift, and go to state 11
579 "number" shift, and go to state 6
580 "(" shift, and go to state 7
587 8 exp: "incr" exp @1 @2 exp .
589 $default reduce using rule 8 (exp)
594 AT_CHECK([cat input.gv], [],
595 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
596 // Report bugs to <bug-bison@gnu.org>.
597 // Home page: <https://www.gnu.org/software/bison/>.
601 node [fontname = courier, shape = box, colorscheme = paired6]
602 edge [fontname = courier]
604 0 [label="State 0\n\l 0 $accept: • unit \"end of file\"\l 1 unit: • assignments exp\l 2 assignments: • %empty\l 3 | • assignments assignment\l"]
605 0 -> 1 [style=dashed label="unit"]
606 0 -> 2 [style=dashed label="assignments"]
607 0 -> "0R2" [style=solid]
608 "0R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
609 1 [label="State 1\n\l 0 $accept: unit • \"end of file\"\l"]
610 1 -> 3 [style=solid label="\"end of file\""]
611 2 [label="State 2\n\l 1 unit: assignments • exp\l 3 assignments: assignments • assignment\l 4 assignment: • id \":=\" exp\l 5 id: • \"identifier\"\l 8 exp: • \"incr\" exp @1 @2 exp\l 9 | • \"(\" exp \")\"\l 10 | • \"identifier\"\l 11 | • \"number\"\l"]
612 2 -> 4 [style=solid label="\"incr\""]
613 2 -> 5 [style=solid label="\"identifier\""]
614 2 -> 6 [style=solid label="\"number\""]
615 2 -> 7 [style=solid label="\"(\""]
616 2 -> 8 [style=dashed label="assignment"]
617 2 -> 9 [style=dashed label="id"]
618 2 -> 10 [style=dashed label="exp"]
619 3 [label="State 3\n\l 0 $accept: unit \"end of file\" •\l"]
620 3 -> "3R0" [style=solid]
621 "3R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
622 4 [label="State 4\n\l 8 exp: • \"incr\" exp @1 @2 exp\l 8 | \"incr\" • exp @1 @2 exp\l 9 | • \"(\" exp \")\"\l 10 | • \"identifier\"\l 11 | • \"number\"\l"]
623 4 -> 4 [style=solid label="\"incr\""]
624 4 -> 11 [style=solid label="\"identifier\""]
625 4 -> 6 [style=solid label="\"number\""]
626 4 -> 7 [style=solid label="\"(\""]
627 4 -> 12 [style=dashed label="exp"]
628 5 [label="State 5\n\l 5 id: \"identifier\" • [\":=\"]\l 10 exp: \"identifier\" • [\"end of file\"]\l"]
629 5 -> "5R5" [style=solid]
630 "5R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
631 5 -> "5R10" [label="[\"end of file\"]", style=solid]
632 "5R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
633 6 [label="State 6\n\l 11 exp: \"number\" •\l"]
634 6 -> "6R11" [style=solid]
635 "6R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
636 7 [label="State 7\n\l 8 exp: • \"incr\" exp @1 @2 exp\l 9 | • \"(\" exp \")\"\l 9 | \"(\" • exp \")\"\l 10 | • \"identifier\"\l 11 | • \"number\"\l"]
637 7 -> 4 [style=solid label="\"incr\""]
638 7 -> 11 [style=solid label="\"identifier\""]
639 7 -> 6 [style=solid label="\"number\""]
640 7 -> 7 [style=solid label="\"(\""]
641 7 -> 13 [style=dashed label="exp"]
642 8 [label="State 8\n\l 3 assignments: assignments assignment •\l"]
643 8 -> "8R3" [style=solid]
644 "8R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
645 9 [label="State 9\n\l 4 assignment: id • \":=\" exp\l"]
646 9 -> 14 [style=solid label="\":=\""]
647 10 [label="State 10\n\l 1 unit: assignments exp •\l"]
648 10 -> "10R1" [style=solid]
649 "10R1" [label="R1", fillcolor=3, shape=diamond, style=filled]
650 11 [label="State 11\n\l 10 exp: \"identifier\" •\l"]
651 11 -> "11R10" [style=solid]
652 "11R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
653 12 [label="State 12\n\l 6 @1: • %empty\l 8 exp: \"incr\" exp • @1 @2 exp\l"]
654 12 -> 15 [style=dashed label="@1"]
655 12 -> "12R6" [style=solid]
656 "12R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
657 13 [label="State 13\n\l 9 exp: \"(\" exp • \")\"\l"]
658 13 -> 16 [style=solid label="\")\""]
659 14 [label="State 14\n\l 4 assignment: id \":=\" • exp\l 8 exp: • \"incr\" exp @1 @2 exp\l 9 | • \"(\" exp \")\"\l 10 | • \"identifier\"\l 11 | • \"number\"\l"]
660 14 -> 4 [style=solid label="\"incr\""]
661 14 -> 11 [style=solid label="\"identifier\""]
662 14 -> 6 [style=solid label="\"number\""]
663 14 -> 7 [style=solid label="\"(\""]
664 14 -> 17 [style=dashed label="exp"]
665 15 [label="State 15\n\l 7 @2: • %empty\l 8 exp: \"incr\" exp @1 • @2 exp\l"]
666 15 -> 18 [style=dashed label="@2"]
667 15 -> "15R7" [style=solid]
668 "15R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
669 16 [label="State 16\n\l 9 exp: \"(\" exp \")\" •\l"]
670 16 -> "16R9" [style=solid]
671 "16R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
672 17 [label="State 17\n\l 4 assignment: id \":=\" exp •\l"]
673 17 -> "17R4" [style=solid]
674 "17R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
675 18 [label="State 18\n\l 8 exp: • \"incr\" exp @1 @2 exp\l 8 | \"incr\" exp @1 @2 • exp\l 9 | • \"(\" exp \")\"\l 10 | • \"identifier\"\l 11 | • \"number\"\l"]
676 18 -> 4 [style=solid label="\"incr\""]
677 18 -> 11 [style=solid label="\"identifier\""]
678 18 -> 6 [style=solid label="\"number\""]
679 18 -> 7 [style=solid label="\"(\""]
680 18 -> 19 [style=dashed label="exp"]
681 19 [label="State 19\n\l 8 exp: \"incr\" exp @1 @2 exp •\l"]
682 19 -> "19R8" [style=solid]
683 "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
688 AT_CHECK([[cat input.xml]], [],
689 [[<?xml version="1.0"?>
691 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
693 <filename>input.yy</filename>
697 <rule number="0" usefulness="useful">
700 <symbol>unit</symbol>
701 <symbol>"end of file"</symbol>
704 <rule number="1" usefulness="useful">
707 <symbol>assignments</symbol>
711 <rule number="2" usefulness="useful">
712 <lhs>assignments</lhs>
717 <rule number="3" usefulness="useful">
718 <lhs>assignments</lhs>
720 <symbol>assignments</symbol>
721 <symbol>assignment</symbol>
724 <rule number="4" usefulness="useful">
725 <lhs>assignment</lhs>
728 <symbol>":="</symbol>
732 <rule number="5" usefulness="useful">
735 <symbol>"identifier"</symbol>
738 <rule number="6" usefulness="useful">
744 <rule number="7" usefulness="useful">
750 <rule number="8" usefulness="useful">
753 <symbol>"incr"</symbol>
760 <rule number="9" usefulness="useful">
763 <symbol>"("</symbol>
765 <symbol>")"</symbol>
768 <rule number="10" usefulness="useful">
771 <symbol>"identifier"</symbol>
774 <rule number="11" usefulness="useful">
777 <symbol>"number"</symbol>
782 <terminal symbol-number="0" token-number="0" name=""end of file"" type="" usefulness="useful"/>
783 <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
784 <terminal symbol-number="3" token-number="258" name="":="" type="" usefulness="useful"/>
785 <terminal symbol-number="4" token-number="259" name=""incr"" type="" usefulness="useful"/>
786 <terminal symbol-number="5" token-number="260" name=""identifier"" type="std::string" usefulness="useful"/>
787 <terminal symbol-number="6" token-number="261" name=""number"" type="int" usefulness="useful"/>
788 <terminal symbol-number="7" token-number="262" name=""("" type="" usefulness="useful"/>
789 <terminal symbol-number="8" token-number="263" name="")"" type="" usefulness="useful"/>
792 <nonterminal symbol-number="9" name="$accept" type="" usefulness="useful"/>
793 <nonterminal symbol-number="10" name="unit" type="" usefulness="useful"/>
794 <nonterminal symbol-number="11" name="assignments" type="" usefulness="useful"/>
795 <nonterminal symbol-number="12" name="assignment" type="" usefulness="useful"/>
796 <nonterminal symbol-number="13" name="id" type="std::string" usefulness="useful"/>
797 <nonterminal symbol-number="14" name="exp" type="int" usefulness="useful"/>
798 <nonterminal symbol-number="15" name="@1" type="int" usefulness="useful"/>
799 <nonterminal symbol-number="16" name="@2" type="int" usefulness="useful"/>
807 <item rule-number="0" dot="0"/>
808 <item rule-number="1" dot="0"/>
809 <item rule-number="2" dot="0"/>
810 <item rule-number="3" dot="0"/>
814 <transition type="goto" symbol="unit" state="1"/>
815 <transition type="goto" symbol="assignments" state="2"/>
819 <reduction symbol="$default" rule="2" enabled="true"/>
827 <item rule-number="0" dot="1"/>
831 <transition type="shift" symbol=""end of file"" state="3"/>
841 <item rule-number="1" dot="1"/>
842 <item rule-number="3" dot="1"/>
843 <item rule-number="4" dot="0"/>
844 <item rule-number="5" dot="0"/>
845 <item rule-number="8" dot="0"/>
846 <item rule-number="9" dot="0"/>
847 <item rule-number="10" dot="0"/>
848 <item rule-number="11" dot="0"/>
852 <transition type="shift" symbol=""incr"" state="4"/>
853 <transition type="shift" symbol=""identifier"" state="5"/>
854 <transition type="shift" symbol=""number"" state="6"/>
855 <transition type="shift" symbol=""("" state="7"/>
856 <transition type="goto" symbol="assignment" state="8"/>
857 <transition type="goto" symbol="id" state="9"/>
858 <transition type="goto" symbol="exp" state="10"/>
868 <item rule-number="0" dot="2"/>
874 <reduction symbol="$default" rule="accept" enabled="true"/>
882 <item rule-number="8" dot="0"/>
883 <item rule-number="8" dot="1"/>
884 <item rule-number="9" dot="0"/>
885 <item rule-number="10" dot="0"/>
886 <item rule-number="11" dot="0"/>
890 <transition type="shift" symbol=""incr"" state="4"/>
891 <transition type="shift" symbol=""identifier"" state="11"/>
892 <transition type="shift" symbol=""number"" state="6"/>
893 <transition type="shift" symbol=""("" state="7"/>
894 <transition type="goto" symbol="exp" state="12"/>
904 <item rule-number="5" dot="1">
906 <symbol>":="</symbol>
909 <item rule-number="10" dot="1">
911 <symbol>"end of file"</symbol>
919 <reduction symbol=""end of file"" rule="10" enabled="true"/>
920 <reduction symbol="$default" rule="5" enabled="true"/>
928 <item rule-number="11" dot="1"/>
934 <reduction symbol="$default" rule="11" enabled="true"/>
942 <item rule-number="8" dot="0"/>
943 <item rule-number="9" dot="0"/>
944 <item rule-number="9" dot="1"/>
945 <item rule-number="10" dot="0"/>
946 <item rule-number="11" dot="0"/>
950 <transition type="shift" symbol=""incr"" state="4"/>
951 <transition type="shift" symbol=""identifier"" state="11"/>
952 <transition type="shift" symbol=""number"" state="6"/>
953 <transition type="shift" symbol=""("" state="7"/>
954 <transition type="goto" symbol="exp" state="13"/>
964 <item rule-number="3" dot="2"/>
970 <reduction symbol="$default" rule="3" enabled="true"/>
978 <item rule-number="4" dot="1"/>
982 <transition type="shift" symbol="":="" state="14"/>
992 <item rule-number="1" dot="2"/>
998 <reduction symbol="$default" rule="1" enabled="true"/>
1006 <item rule-number="10" dot="1"/>
1012 <reduction symbol="$default" rule="10" enabled="true"/>
1020 <item rule-number="6" dot="0"/>
1021 <item rule-number="8" dot="2"/>
1025 <transition type="goto" symbol="@1" state="15"/>
1029 <reduction symbol="$default" rule="6" enabled="true"/>
1037 <item rule-number="9" dot="2"/>
1041 <transition type="shift" symbol="")"" state="16"/>
1051 <item rule-number="4" dot="2"/>
1052 <item rule-number="8" dot="0"/>
1053 <item rule-number="9" dot="0"/>
1054 <item rule-number="10" dot="0"/>
1055 <item rule-number="11" dot="0"/>
1059 <transition type="shift" symbol=""incr"" state="4"/>
1060 <transition type="shift" symbol=""identifier"" state="11"/>
1061 <transition type="shift" symbol=""number"" state="6"/>
1062 <transition type="shift" symbol=""("" state="7"/>
1063 <transition type="goto" symbol="exp" state="17"/>
1073 <item rule-number="7" dot="0"/>
1074 <item rule-number="8" dot="3"/>
1078 <transition type="goto" symbol="@2" state="18"/>
1082 <reduction symbol="$default" rule="7" enabled="true"/>
1090 <item rule-number="9" dot="3"/>
1096 <reduction symbol="$default" rule="9" enabled="true"/>
1104 <item rule-number="4" dot="3"/>
1110 <reduction symbol="$default" rule="4" enabled="true"/>
1118 <item rule-number="8" dot="0"/>
1119 <item rule-number="8" dot="4"/>
1120 <item rule-number="9" dot="0"/>
1121 <item rule-number="10" dot="0"/>
1122 <item rule-number="11" dot="0"/>
1126 <transition type="shift" symbol=""incr"" state="4"/>
1127 <transition type="shift" symbol=""identifier"" state="11"/>
1128 <transition type="shift" symbol=""number"" state="6"/>
1129 <transition type="shift" symbol=""("" state="7"/>
1130 <transition type="goto" symbol="exp" state="19"/>
1140 <item rule-number="8" dot="5"/>
1146 <reduction symbol="$default" rule="8" enabled="true"/>
1155 # Check HTML output.
1156 AT_CHECK_HTML([input.html],
1157 [[<?xml version="1.0" encoding="UTF-8"?>
1158 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1159 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
1161 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
1162 <title>input.yy - GNU Bison XML Automaton Report</title>
1163 <style type="text/css">
1165 font-family: "Nimbus Sans L", Arial, sans-serif;
1170 text-decoration: none;
1174 text-decoration: none;
1180 text-decoration: underline;
1186 font-family: monospace;
1190 list-style-type: decimal;
1193 list-style-type: lower-alpha;
1204 <body><h1>GNU Bison XML Automaton Report</h1><p>
1205 input grammar: <span class="i">input.yy</span></p>
1207 <h3>Table of Contents</h3><ul id="menu"><li><a href="#reductions">Reductions</a><ul class="lower-alpha"><li><a href="#nonterminals_useless_in_grammar">Nonterminals useless in grammar</a></li><li><a href="#terminals_unused_in_grammar">Terminals unused in grammar</a></li><li><a href="#rules_useless_in_grammar">Rules useless in grammar</a></li></ul></li><li><a href="#conflicts">Conflicts</a></li><li><a href="#grammar">Grammar</a><ul class="lower-alpha"><li><a href="#grammar">Itemset</a></li><li><a href="#terminals">Terminal symbols</a></li><li><a href="#nonterminals">Nonterminal symbols</a></li></ul></li><li><a href="#automaton">Automaton</a></li></ul><h2><a name="reductions" id="reductions"></a> Reductions</h2><h3><a name="nonterminals_useless_in_grammar" id="nonterminals_useless_in_grammar"></a> Nonterminals useless in grammar</h3>
1209 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
1211 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
1212 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
1214 <h2><a name="grammar" id="grammar"></a> Grammar</h2>
1216 <a name="rule_0" id="rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">unit</span> <b>"end of file"</b>
1218 <a name="rule_1" id="rule_1"> 1</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
1220 <a name="rule_2" id="rule_2"> 2</a> <span class="i">assignments</span> → %empty
1221 <a name="rule_3" id="rule_3"> 3</a> | <span class="i">assignments</span> <span class="i">assignment</span>
1223 <a name="rule_4" id="rule_4"> 4</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
1225 <a name="rule_5" id="rule_5"> 5</a> <span class="i">id</span> → <b>"identifier"</b>
1227 <a name="rule_6" id="rule_6"> 6</a> <span class="i">@1</span> → %empty
1229 <a name="rule_7" id="rule_7"> 7</a> <span class="i">@2</span> → %empty
1231 <a name="rule_8" id="rule_8"> 8</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1232 <a name="rule_9" id="rule_9"> 9</a> | <b>"("</b> <span class="i">exp</span> <b>")"</b>
1233 <a name="rule_10" id="rule_10"> 10</a> | <b>"identifier"</b>
1234 <a name="rule_11" id="rule_11"> 11</a> | <b>"number"</b>
1237 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
1240 <li><b>"end of file"</b> (0) <a href="#rule_0">0</a></li>
1241 <li><b>error</b> (256)</li>
1242 <li><b>":="</b> (258) <a href="#rule_4">4</a></li>
1243 <li><b>"incr"</b> (259) <a href="#rule_8">8</a></li>
1244 <li><b>"identifier"</b> <std::string> (260) <a href="#rule_5">5</a> <a href="#rule_10">10</a></li>
1245 <li><b>"number"</b> <int> (261) <a href="#rule_11">11</a></li>
1246 <li><b>"("</b> (262) <a href="#rule_9">9</a></li>
1247 <li><b>")"</b> (263) <a href="#rule_9">9</a></li>
1250 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
1253 <li><b>$accept</b> (9)
1255 <li>on left: <a href="#rule_0">0</a></li>
1258 <li><b>unit</b> (10)
1260 <li>on left: <a href="#rule_1">1</a></li>
1261 <li>on right: <a href="#rule_0">0</a></li>
1264 <li><b>assignments</b> (11)
1266 <li>on left: <a href="#rule_2">2</a> <a href="#rule_3">3</a></li>
1267 <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a></li>
1270 <li><b>assignment</b> (12)
1272 <li>on left: <a href="#rule_4">4</a></li>
1273 <li>on right: <a href="#rule_3">3</a></li>
1276 <li><b>id</b> <std::string> (13)
1278 <li>on left: <a href="#rule_5">5</a></li>
1279 <li>on right: <a href="#rule_4">4</a></li>
1282 <li><b>exp</b> <int> (14)
1284 <li>on left: <a href="#rule_8">8</a> <a href="#rule_9">9</a> <a href="#rule_10">10</a> <a href="#rule_11">11</a></li>
1285 <li>on right: <a href="#rule_1">1</a> <a href="#rule_4">4</a> <a href="#rule_8">8</a> <a href="#rule_9">9</a></li>
1288 <li><b>@1</b> <int> (15)
1290 <li>on left: <a href="#rule_6">6</a></li>
1291 <li>on right: <a href="#rule_8">8</a></li>
1294 <li><b>@2</b> <int> (16)
1296 <li>on left: <a href="#rule_7">7</a></li>
1297 <li>on right: <a href="#rule_8">8</a></li>
1300 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
1302 <h3><a name="state_0" id="state_0"></a>State 0</h3>
1304 <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="dot">•</span> <span class="i">unit</span> <b>"end of file"</b>
1305 <a href="#rule_1"> 1</a> <span class="i">unit</span> → <span class="dot">•</span> <span class="i">assignments</span> <span class="i">exp</span>
1306 <a href="#rule_2"> 2</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
1307 <a href="#rule_3"> 3</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
1309 $default <a href="#rule_2">reduce using rule 2</a> (assignments)
1311 unit <a href="#state_1">go to state 1</a>
1312 assignments <a href="#state_2">go to state 2</a>
1315 <h3><a name="state_1" id="state_1"></a>State 1</h3>
1317 <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">unit</span> <span class="dot">•</span> <b>"end of file"</b>
1319 "end of file" <a href="#state_3">shift, and go to state 3</a>
1322 <h3><a name="state_2" id="state_2"></a>State 2</h3>
1324 <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">exp</span>
1325 <a href="#rule_3"> 3</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">assignment</span>
1326 <a href="#rule_4"> 4</a> <span class="i">assignment</span> → <span class="dot">•</span> <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
1327 <a href="#rule_5"> 5</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
1328 <a href="#rule_8"> 8</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1329 <a href="#rule_9"> 9</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1330 <a href="#rule_10"> 10</a> | <span class="dot">•</span> <b>"identifier"</b>
1331 <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"number"</b>
1333 "incr" <a href="#state_4">shift, and go to state 4</a>
1334 "identifier" <a href="#state_5">shift, and go to state 5</a>
1335 "number" <a href="#state_6">shift, and go to state 6</a>
1336 "(" <a href="#state_7">shift, and go to state 7</a>
1338 assignment <a href="#state_8">go to state 8</a>
1339 id <a href="#state_9">go to state 9</a>
1340 exp <a href="#state_10">go to state 10</a>
1343 <h3><a name="state_3" id="state_3"></a>State 3</h3>
1345 <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">unit</span> <b>"end of file"</b> <span class="dot">•</span>
1350 <h3><a name="state_4" id="state_4"></a>State 4</h3>
1352 <p class="pre"> <a href="#rule_8"> 8</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1353 <a href="#rule_8"> 8</a> | <b>"incr"</b> <span class="dot">•</span> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1354 <a href="#rule_9"> 9</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1355 <a href="#rule_10"> 10</a> | <span class="dot">•</span> <b>"identifier"</b>
1356 <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"number"</b>
1358 "incr" <a href="#state_4">shift, and go to state 4</a>
1359 "identifier" <a href="#state_11">shift, and go to state 11</a>
1360 "number" <a href="#state_6">shift, and go to state 6</a>
1361 "(" <a href="#state_7">shift, and go to state 7</a>
1363 exp <a href="#state_12">go to state 12</a>
1366 <h3><a name="state_5" id="state_5"></a>State 5</h3>
1368 <p class="pre"> <a href="#rule_5"> 5</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span> [":="]
1369 <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span> ["end of file"]
1371 "end of file" <a href="#rule_10">reduce using rule 10</a> (exp)
1372 $default <a href="#rule_5">reduce using rule 5</a> (id)
1375 <h3><a name="state_6" id="state_6"></a>State 6</h3>
1377 <p class="pre"> <a href="#rule_11"> 11</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
1379 $default <a href="#rule_11">reduce using rule 11</a> (exp)
1382 <h3><a name="state_7" id="state_7"></a>State 7</h3>
1384 <p class="pre"> <a href="#rule_8"> 8</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1385 <a href="#rule_9"> 9</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1386 <a href="#rule_9"> 9</a> | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
1387 <a href="#rule_10"> 10</a> | <span class="dot">•</span> <b>"identifier"</b>
1388 <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"number"</b>
1390 "incr" <a href="#state_4">shift, and go to state 4</a>
1391 "identifier" <a href="#state_11">shift, and go to state 11</a>
1392 "number" <a href="#state_6">shift, and go to state 6</a>
1393 "(" <a href="#state_7">shift, and go to state 7</a>
1395 exp <a href="#state_13">go to state 13</a>
1398 <h3><a name="state_8" id="state_8"></a>State 8</h3>
1400 <p class="pre"> <a href="#rule_3"> 3</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="i">assignment</span> <span class="dot">•</span>
1402 $default <a href="#rule_3">reduce using rule 3</a> (assignments)
1405 <h3><a name="state_9" id="state_9"></a>State 9</h3>
1407 <p class="pre"> <a href="#rule_4"> 4</a> <span class="i">assignment</span> → <span class="i">id</span> <span class="dot">•</span> <b>":="</b> <span class="i">exp</span>
1409 ":=" <a href="#state_14">shift, and go to state 14</a>
1412 <h3><a name="state_10" id="state_10"></a>State 10</h3>
1414 <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span> <span class="dot">•</span>
1416 $default <a href="#rule_1">reduce using rule 1</a> (unit)
1419 <h3><a name="state_11" id="state_11"></a>State 11</h3>
1421 <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
1423 $default <a href="#rule_10">reduce using rule 10</a> (exp)
1426 <h3><a name="state_12" id="state_12"></a>State 12</h3>
1428 <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
1429 <a href="#rule_8"> 8</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="dot">•</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1431 $default <a href="#rule_6">reduce using rule 6</a> (@1)
1433 @1 <a href="#state_15">go to state 15</a>
1436 <h3><a name="state_13" id="state_13"></a>State 13</h3>
1438 <p class="pre"> <a href="#rule_9"> 9</a> <span class="i">exp</span> → <b>"("</b> <span class="i">exp</span> <span class="dot">•</span> <b>")"</b>
1440 ")" <a href="#state_16">shift, and go to state 16</a>
1443 <h3><a name="state_14" id="state_14"></a>State 14</h3>
1445 <p class="pre"> <a href="#rule_4"> 4</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="dot">•</span> <span class="i">exp</span>
1446 <a href="#rule_8"> 8</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1447 <a href="#rule_9"> 9</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1448 <a href="#rule_10"> 10</a> | <span class="dot">•</span> <b>"identifier"</b>
1449 <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"number"</b>
1451 "incr" <a href="#state_4">shift, and go to state 4</a>
1452 "identifier" <a href="#state_11">shift, and go to state 11</a>
1453 "number" <a href="#state_6">shift, and go to state 6</a>
1454 "(" <a href="#state_7">shift, and go to state 7</a>
1456 exp <a href="#state_17">go to state 17</a>
1459 <h3><a name="state_15" id="state_15"></a>State 15</h3>
1461 <p class="pre"> <a href="#rule_7"> 7</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
1462 <a href="#rule_8"> 8</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="dot">•</span> <span class="i">@2</span> <span class="i">exp</span>
1464 $default <a href="#rule_7">reduce using rule 7</a> (@2)
1466 @2 <a href="#state_18">go to state 18</a>
1469 <h3><a name="state_16" id="state_16"></a>State 16</h3>
1471 <p class="pre"> <a href="#rule_9"> 9</a> <span class="i">exp</span> → <b>"("</b> <span class="i">exp</span> <b>")"</b> <span class="dot">•</span>
1473 $default <a href="#rule_9">reduce using rule 9</a> (exp)
1476 <h3><a name="state_17" id="state_17"></a>State 17</h3>
1478 <p class="pre"> <a href="#rule_4"> 4</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span> <span class="dot">•</span>
1480 $default <a href="#rule_4">reduce using rule 4</a> (assignment)
1483 <h3><a name="state_18" id="state_18"></a>State 18</h3>
1485 <p class="pre"> <a href="#rule_8"> 8</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
1486 <a href="#rule_8"> 8</a> | <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="dot">•</span> <span class="i">exp</span>
1487 <a href="#rule_9"> 9</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1488 <a href="#rule_10"> 10</a> | <span class="dot">•</span> <b>"identifier"</b>
1489 <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"number"</b>
1491 "incr" <a href="#state_4">shift, and go to state 4</a>
1492 "identifier" <a href="#state_11">shift, and go to state 11</a>
1493 "number" <a href="#state_6">shift, and go to state 6</a>
1494 "(" <a href="#state_7">shift, and go to state 7</a>
1496 exp <a href="#state_19">go to state 19</a>
1499 <h3><a name="state_19" id="state_19"></a>State 19</h3>
1501 <p class="pre"> <a href="#rule_8"> 8</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span> <span class="dot">•</span>
1503 $default <a href="#rule_8">reduce using rule 8</a> (exp)
1506 <div id="footer"><hr />This document was generated using
1507 <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
1508 GNU Bison ]AT_PACKAGE_VERSION[</a>
1509 XML Automaton Report.<br />
1510 Verbatim copying and distribution of this entire page is
1511 permitted in any medium, provided this notice is preserved.</div></body>
1515 AT_BISON_OPTION_POPDEFS
1519 dnl Disable because aborts on some architectures. Not scheduled for 3.8 anyway.
1520 dnl <https://lists.gnu.org/r/bug-bison/2021-08/msg00027.html>
1522 dnl ## -------------------- ##
1523 dnl ## Multistart reports. ##
1524 dnl ## -------------------- ##
1526 dnl AT_SETUP([Multistart reports])
1528 dnl AT_KEYWORDS([multistart report])
1530 dnl AT_BISON_OPTION_PUSHDEFS
1531 dnl AT_DATA([input.yy],
1533 dnl END 0 "end of file"
1538 dnl %token <std::string> IDENTIFIER "identifier"
1539 dnl %type <std::string> id
1540 dnl %token <int> NUMBER "number"
1544 dnl %start unit assignments exp;
1545 dnl unit: assignments exp { driver.result = $2; };
1549 dnl | assignments assignment {};
1552 dnl id ":=" exp { driver.variables[$id] = $exp; };
1558 dnl "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp { $$ = $2 + $3 + $4 + $5; }
1559 dnl | "(" exp ")" { std::swap ($$, $2); }
1560 dnl | "identifier" { $$ = driver.variables[$1]; }
1561 dnl | "number" { std::swap ($$, $1); };
1564 dnl AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --xml input.yy])
1566 dnl # Check the contents of the report.
1567 dnl AT_CHECK([cat input.output], [],
1570 dnl 0 $accept: YY_PARSE_unit unit "end of file"
1571 dnl 1 | YY_PARSE_assignments assignments "end of file"
1572 dnl 2 | YY_PARSE_exp exp "end of file"
1574 dnl 3 unit: assignments exp
1576 dnl 4 assignments: %empty
1577 dnl 5 | assignments assignment
1579 dnl 6 assignment: id ":=" exp
1581 dnl 7 id: "identifier"
1587 dnl 10 exp: "incr" exp @1 @2 exp
1588 dnl 11 | "(" exp ")"
1589 dnl 12 | "identifier"
1593 dnl Terminals, with rules where they appear
1595 dnl "end of file" (0) 0 1 2
1599 dnl "identifier" <std::string> (260) 7 12
1600 dnl "number" <int> (261) 13
1601 dnl YY_PARSE_unit (262) 0
1602 dnl YY_PARSE_assignments (263) 1
1603 dnl YY_PARSE_exp (264) 2
1608 dnl Nonterminals, with rules where they appear
1615 dnl assignments (14)
1621 dnl id <std::string> (16)
1625 dnl on left: 10 11 12 13
1626 dnl on right: 2 3 6 10 11
1637 dnl 0 $accept: . YY_PARSE_unit unit "end of file"
1638 dnl 1 | . YY_PARSE_assignments assignments "end of file"
1639 dnl 2 | . YY_PARSE_exp exp "end of file"
1641 dnl YY_PARSE_unit shift, and go to state 1
1642 dnl YY_PARSE_assignments shift, and go to state 2
1643 dnl YY_PARSE_exp shift, and go to state 3
1648 dnl 0 $accept: YY_PARSE_unit . unit "end of file"
1649 dnl 3 unit: . assignments exp
1650 dnl 4 assignments: %empty .
1651 dnl 5 | . assignments assignment
1653 dnl $default reduce using rule 4 (assignments)
1655 dnl unit go to state 4
1656 dnl assignments go to state 5
1661 dnl 1 $accept: YY_PARSE_assignments . assignments "end of file"
1662 dnl 4 assignments: %empty .
1663 dnl 5 | . assignments assignment
1665 dnl $default reduce using rule 4 (assignments)
1667 dnl assignments go to state 6
1672 dnl 2 $accept: YY_PARSE_exp . exp "end of file"
1673 dnl 10 exp: . "incr" exp @1 @2 exp
1674 dnl 11 | . "(" exp ")"
1675 dnl 12 | . "identifier"
1678 dnl "incr" shift, and go to state 7
1679 dnl "identifier" shift, and go to state 8
1680 dnl "number" shift, and go to state 9
1681 dnl "(" shift, and go to state 10
1683 dnl exp go to state 11
1688 dnl 0 $accept: YY_PARSE_unit unit . "end of file"
1690 dnl "end of file" shift, and go to state 12
1695 dnl 3 unit: assignments . exp
1696 dnl 5 assignments: assignments . assignment
1697 dnl 6 assignment: . id ":=" exp
1698 dnl 7 id: . "identifier"
1699 dnl 10 exp: . "incr" exp @1 @2 exp
1700 dnl 11 | . "(" exp ")"
1701 dnl 12 | . "identifier"
1704 dnl "incr" shift, and go to state 7
1705 dnl "identifier" shift, and go to state 13
1706 dnl "number" shift, and go to state 9
1707 dnl "(" shift, and go to state 10
1709 dnl assignment go to state 14
1710 dnl id go to state 15
1711 dnl exp go to state 16
1716 dnl 1 $accept: YY_PARSE_assignments assignments . "end of file"
1717 dnl 5 assignments: assignments . assignment
1718 dnl 6 assignment: . id ":=" exp
1719 dnl 7 id: . "identifier"
1721 dnl "end of file" shift, and go to state 17
1722 dnl "identifier" shift, and go to state 18
1724 dnl assignment go to state 14
1725 dnl id go to state 15
1730 dnl 10 exp: . "incr" exp @1 @2 exp
1731 dnl 10 | "incr" . exp @1 @2 exp
1732 dnl 11 | . "(" exp ")"
1733 dnl 12 | . "identifier"
1736 dnl "incr" shift, and go to state 7
1737 dnl "identifier" shift, and go to state 8
1738 dnl "number" shift, and go to state 9
1739 dnl "(" shift, and go to state 10
1741 dnl exp go to state 19
1746 dnl 12 exp: "identifier" .
1748 dnl $default reduce using rule 12 (exp)
1753 dnl 13 exp: "number" .
1755 dnl $default reduce using rule 13 (exp)
1760 dnl 10 exp: . "incr" exp @1 @2 exp
1761 dnl 11 | . "(" exp ")"
1762 dnl 11 | "(" . exp ")"
1763 dnl 12 | . "identifier"
1766 dnl "incr" shift, and go to state 7
1767 dnl "identifier" shift, and go to state 8
1768 dnl "number" shift, and go to state 9
1769 dnl "(" shift, and go to state 10
1771 dnl exp go to state 20
1776 dnl 2 $accept: YY_PARSE_exp exp . "end of file"
1778 dnl "end of file" shift, and go to state 21
1783 dnl 0 $accept: YY_PARSE_unit unit "end of file" .
1790 dnl 7 id: "identifier" . [":="]
1791 dnl 12 exp: "identifier" . ["end of file"]
1793 dnl "end of file" reduce using rule 12 (exp)
1794 dnl $default reduce using rule 7 (id)
1799 dnl 5 assignments: assignments assignment .
1801 dnl $default reduce using rule 5 (assignments)
1806 dnl 6 assignment: id . ":=" exp
1808 dnl ":=" shift, and go to state 22
1813 dnl 3 unit: assignments exp .
1815 dnl $default reduce using rule 3 (unit)
1820 dnl 1 $accept: YY_PARSE_assignments assignments "end of file" .
1827 dnl 7 id: "identifier" .
1829 dnl $default reduce using rule 7 (id)
1835 dnl 10 exp: "incr" exp . @1 @2 exp
1837 dnl $default reduce using rule 8 (@1)
1839 dnl @1 go to state 23
1844 dnl 11 exp: "(" exp . ")"
1846 dnl ")" shift, and go to state 24
1851 dnl 2 $accept: YY_PARSE_exp exp "end of file" .
1858 dnl 6 assignment: id ":=" . exp
1859 dnl 10 exp: . "incr" exp @1 @2 exp
1860 dnl 11 | . "(" exp ")"
1861 dnl 12 | . "identifier"
1864 dnl "incr" shift, and go to state 7
1865 dnl "identifier" shift, and go to state 8
1866 dnl "number" shift, and go to state 9
1867 dnl "(" shift, and go to state 10
1869 dnl exp go to state 25
1875 dnl 10 exp: "incr" exp @1 . @2 exp
1877 dnl $default reduce using rule 9 (@2)
1879 dnl @2 go to state 26
1884 dnl 11 exp: "(" exp ")" .
1886 dnl $default reduce using rule 11 (exp)
1891 dnl 6 assignment: id ":=" exp .
1893 dnl $default reduce using rule 6 (assignment)
1898 dnl 10 exp: . "incr" exp @1 @2 exp
1899 dnl 10 | "incr" exp @1 @2 . exp
1900 dnl 11 | . "(" exp ")"
1901 dnl 12 | . "identifier"
1904 dnl "incr" shift, and go to state 7
1905 dnl "identifier" shift, and go to state 8
1906 dnl "number" shift, and go to state 9
1907 dnl "(" shift, and go to state 10
1909 dnl exp go to state 27
1914 dnl 10 exp: "incr" exp @1 @2 exp .
1916 dnl $default reduce using rule 10 (exp)
1921 dnl AT_CHECK([cat input.gv], [],
1922 dnl [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
1923 dnl // Report bugs to <bug-bison@gnu.org>.
1924 dnl // Home page: <https://www.gnu.org/software/bison/>.
1926 dnl digraph "input.yy"
1928 dnl node [fontname = courier, shape = box, colorscheme = paired6]
1929 dnl edge [fontname = courier]
1931 dnl 0 [label="State 0\n\l 0 $accept: • YY_PARSE_unit unit \"end of file\"\l 1 | • YY_PARSE_assignments assignments \"end of file\"\l 2 | • YY_PARSE_exp exp \"end of file\"\l"]
1932 dnl 0 -> 1 [style=solid label="YY_PARSE_unit"]
1933 dnl 0 -> 2 [style=solid label="YY_PARSE_assignments"]
1934 dnl 0 -> 3 [style=solid label="YY_PARSE_exp"]
1935 dnl 1 [label="State 1\n\l 0 $accept: YY_PARSE_unit • unit \"end of file\"\l 3 unit: • assignments exp\l 4 assignments: • %empty\l 5 | • assignments assignment\l"]
1936 dnl 1 -> 4 [style=dashed label="unit"]
1937 dnl 1 -> 5 [style=dashed label="assignments"]
1938 dnl 1 -> "1R4" [style=solid]
1939 dnl "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
1940 dnl 2 [label="State 2\n\l 1 $accept: YY_PARSE_assignments • assignments \"end of file\"\l 4 assignments: • %empty\l 5 | • assignments assignment\l"]
1941 dnl 2 -> 6 [style=dashed label="assignments"]
1942 dnl 2 -> "2R4" [style=solid]
1943 dnl "2R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
1944 dnl 3 [label="State 3\n\l 2 $accept: YY_PARSE_exp • exp \"end of file\"\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
1945 dnl 3 -> 7 [style=solid label="\"incr\""]
1946 dnl 3 -> 8 [style=solid label="\"identifier\""]
1947 dnl 3 -> 9 [style=solid label="\"number\""]
1948 dnl 3 -> 10 [style=solid label="\"(\""]
1949 dnl 3 -> 11 [style=dashed label="exp"]
1950 dnl 4 [label="State 4\n\l 0 $accept: YY_PARSE_unit unit • \"end of file\"\l"]
1951 dnl 4 -> 12 [style=solid label="\"end of file\""]
1952 dnl 5 [label="State 5\n\l 3 unit: assignments • exp\l 5 assignments: assignments • assignment\l 6 assignment: • id \":=\" exp\l 7 id: • \"identifier\"\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
1953 dnl 5 -> 7 [style=solid label="\"incr\""]
1954 dnl 5 -> 13 [style=solid label="\"identifier\""]
1955 dnl 5 -> 9 [style=solid label="\"number\""]
1956 dnl 5 -> 10 [style=solid label="\"(\""]
1957 dnl 5 -> 14 [style=dashed label="assignment"]
1958 dnl 5 -> 15 [style=dashed label="id"]
1959 dnl 5 -> 16 [style=dashed label="exp"]
1960 dnl 6 [label="State 6\n\l 1 $accept: YY_PARSE_assignments assignments • \"end of file\"\l 5 assignments: assignments • assignment\l 6 assignment: • id \":=\" exp\l 7 id: • \"identifier\"\l"]
1961 dnl 6 -> 17 [style=solid label="\"end of file\""]
1962 dnl 6 -> 18 [style=solid label="\"identifier\""]
1963 dnl 6 -> 14 [style=dashed label="assignment"]
1964 dnl 6 -> 15 [style=dashed label="id"]
1965 dnl 7 [label="State 7\n\l 10 exp: • \"incr\" exp @1 @2 exp\l 10 | \"incr\" • exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
1966 dnl 7 -> 7 [style=solid label="\"incr\""]
1967 dnl 7 -> 8 [style=solid label="\"identifier\""]
1968 dnl 7 -> 9 [style=solid label="\"number\""]
1969 dnl 7 -> 10 [style=solid label="\"(\""]
1970 dnl 7 -> 19 [style=dashed label="exp"]
1971 dnl 8 [label="State 8\n\l 12 exp: \"identifier\" •\l"]
1972 dnl 8 -> "8R12" [style=solid]
1973 dnl "8R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
1974 dnl 9 [label="State 9\n\l 13 exp: \"number\" •\l"]
1975 dnl 9 -> "9R13" [style=solid]
1976 dnl "9R13" [label="R13", fillcolor=3, shape=diamond, style=filled]
1977 dnl 10 [label="State 10\n\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 11 | \"(\" • exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
1978 dnl 10 -> 7 [style=solid label="\"incr\""]
1979 dnl 10 -> 8 [style=solid label="\"identifier\""]
1980 dnl 10 -> 9 [style=solid label="\"number\""]
1981 dnl 10 -> 10 [style=solid label="\"(\""]
1982 dnl 10 -> 20 [style=dashed label="exp"]
1983 dnl 11 [label="State 11\n\l 2 $accept: YY_PARSE_exp exp • \"end of file\"\l"]
1984 dnl 11 -> 21 [style=solid label="\"end of file\""]
1985 dnl 12 [label="State 12\n\l 0 $accept: YY_PARSE_unit unit \"end of file\" •\l"]
1986 dnl 12 -> "12R0" [style=solid]
1987 dnl "12R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
1988 dnl 13 [label="State 13\n\l 7 id: \"identifier\" • [\":=\"]\l 12 exp: \"identifier\" • [\"end of file\"]\l"]
1989 dnl 13 -> "13R7" [style=solid]
1990 dnl "13R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
1991 dnl 13 -> "13R12" [label="[\"end of file\"]", style=solid]
1992 dnl "13R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
1993 dnl 14 [label="State 14\n\l 5 assignments: assignments assignment •\l"]
1994 dnl 14 -> "14R5" [style=solid]
1995 dnl "14R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
1996 dnl 15 [label="State 15\n\l 6 assignment: id • \":=\" exp\l"]
1997 dnl 15 -> 22 [style=solid label="\":=\""]
1998 dnl 16 [label="State 16\n\l 3 unit: assignments exp •\l"]
1999 dnl 16 -> "16R3" [style=solid]
2000 dnl "16R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
2001 dnl 17 [label="State 17\n\l 1 $accept: YY_PARSE_assignments assignments \"end of file\" •\l"]
2002 dnl 17 -> "17R1" [style=solid]
2003 dnl "17R1" [label="Acc", fillcolor=1, shape=diamond, style=filled]
2004 dnl 18 [label="State 18\n\l 7 id: \"identifier\" •\l"]
2005 dnl 18 -> "18R7" [style=solid]
2006 dnl "18R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
2007 dnl 19 [label="State 19\n\l 8 @1: • %empty\l 10 exp: \"incr\" exp • @1 @2 exp\l"]
2008 dnl 19 -> 23 [style=dashed label="@1"]
2009 dnl 19 -> "19R8" [style=solid]
2010 dnl "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
2011 dnl 20 [label="State 20\n\l 11 exp: \"(\" exp • \")\"\l"]
2012 dnl 20 -> 24 [style=solid label="\")\""]
2013 dnl 21 [label="State 21\n\l 2 $accept: YY_PARSE_exp exp \"end of file\" •\l"]
2014 dnl 21 -> "21R2" [style=solid]
2015 dnl "21R2" [label="Acc", fillcolor=1, shape=diamond, style=filled]
2016 dnl 22 [label="State 22\n\l 6 assignment: id \":=\" • exp\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
2017 dnl 22 -> 7 [style=solid label="\"incr\""]
2018 dnl 22 -> 8 [style=solid label="\"identifier\""]
2019 dnl 22 -> 9 [style=solid label="\"number\""]
2020 dnl 22 -> 10 [style=solid label="\"(\""]
2021 dnl 22 -> 25 [style=dashed label="exp"]
2022 dnl 23 [label="State 23\n\l 9 @2: • %empty\l 10 exp: \"incr\" exp @1 • @2 exp\l"]
2023 dnl 23 -> 26 [style=dashed label="@2"]
2024 dnl 23 -> "23R9" [style=solid]
2025 dnl "23R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
2026 dnl 24 [label="State 24\n\l 11 exp: \"(\" exp \")\" •\l"]
2027 dnl 24 -> "24R11" [style=solid]
2028 dnl "24R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
2029 dnl 25 [label="State 25\n\l 6 assignment: id \":=\" exp •\l"]
2030 dnl 25 -> "25R6" [style=solid]
2031 dnl "25R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
2032 dnl 26 [label="State 26\n\l 10 exp: • \"incr\" exp @1 @2 exp\l 10 | \"incr\" exp @1 @2 • exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
2033 dnl 26 -> 7 [style=solid label="\"incr\""]
2034 dnl 26 -> 8 [style=solid label="\"identifier\""]
2035 dnl 26 -> 9 [style=solid label="\"number\""]
2036 dnl 26 -> 10 [style=solid label="\"(\""]
2037 dnl 26 -> 27 [style=dashed label="exp"]
2038 dnl 27 [label="State 27\n\l 10 exp: \"incr\" exp @1 @2 exp •\l"]
2039 dnl 27 -> "27R10" [style=solid]
2040 dnl "27R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
2045 dnl AT_CHECK([[cat input.xml]], [],
2046 dnl [[<?xml version="1.0"?>
2048 dnl <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
2050 dnl <filename>input.yy</filename>
2054 dnl <rule number="0" usefulness="useful">
2055 dnl <lhs>$accept</lhs>
2057 dnl <symbol>YY_PARSE_unit</symbol>
2058 dnl <symbol>unit</symbol>
2059 dnl <symbol>"end of file"</symbol>
2062 dnl <rule number="1" usefulness="useful">
2063 dnl <lhs>$accept</lhs>
2065 dnl <symbol>YY_PARSE_assignments</symbol>
2066 dnl <symbol>assignments</symbol>
2067 dnl <symbol>"end of file"</symbol>
2070 dnl <rule number="2" usefulness="useful">
2071 dnl <lhs>$accept</lhs>
2073 dnl <symbol>YY_PARSE_exp</symbol>
2074 dnl <symbol>exp</symbol>
2075 dnl <symbol>"end of file"</symbol>
2078 dnl <rule number="3" usefulness="useful">
2081 dnl <symbol>assignments</symbol>
2082 dnl <symbol>exp</symbol>
2085 dnl <rule number="4" usefulness="useful">
2086 dnl <lhs>assignments</lhs>
2091 dnl <rule number="5" usefulness="useful">
2092 dnl <lhs>assignments</lhs>
2094 dnl <symbol>assignments</symbol>
2095 dnl <symbol>assignment</symbol>
2098 dnl <rule number="6" usefulness="useful">
2099 dnl <lhs>assignment</lhs>
2101 dnl <symbol>id</symbol>
2102 dnl <symbol>":="</symbol>
2103 dnl <symbol>exp</symbol>
2106 dnl <rule number="7" usefulness="useful">
2109 dnl <symbol>"identifier"</symbol>
2112 dnl <rule number="8" usefulness="useful">
2118 dnl <rule number="9" usefulness="useful">
2124 dnl <rule number="10" usefulness="useful">
2127 dnl <symbol>"incr"</symbol>
2128 dnl <symbol>exp</symbol>
2129 dnl <symbol>@1</symbol>
2130 dnl <symbol>@2</symbol>
2131 dnl <symbol>exp</symbol>
2134 dnl <rule number="11" usefulness="useful">
2137 dnl <symbol>"("</symbol>
2138 dnl <symbol>exp</symbol>
2139 dnl <symbol>")"</symbol>
2142 dnl <rule number="12" usefulness="useful">
2145 dnl <symbol>"identifier"</symbol>
2148 dnl <rule number="13" usefulness="useful">
2151 dnl <symbol>"number"</symbol>
2156 dnl <terminal symbol-number="0" token-number="0" name=""end of file"" type="" usefulness="useful"/>
2157 dnl <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
2158 dnl <terminal symbol-number="3" token-number="258" name="":="" type="" usefulness="useful"/>
2159 dnl <terminal symbol-number="4" token-number="259" name=""incr"" type="" usefulness="useful"/>
2160 dnl <terminal symbol-number="5" token-number="260" name=""identifier"" type="std::string" usefulness="useful"/>
2161 dnl <terminal symbol-number="6" token-number="261" name=""number"" type="int" usefulness="useful"/>
2162 dnl <terminal symbol-number="7" token-number="262" name="YY_PARSE_unit" type="" usefulness="useful"/>
2163 dnl <terminal symbol-number="8" token-number="263" name="YY_PARSE_assignments" type="" usefulness="useful"/>
2164 dnl <terminal symbol-number="9" token-number="264" name="YY_PARSE_exp" type="" usefulness="useful"/>
2165 dnl <terminal symbol-number="10" token-number="265" name=""("" type="" usefulness="useful"/>
2166 dnl <terminal symbol-number="11" token-number="266" name="")"" type="" usefulness="useful"/>
2169 dnl <nonterminal symbol-number="12" name="$accept" type="" usefulness="useful"/>
2170 dnl <nonterminal symbol-number="13" name="unit" type="" usefulness="useful"/>
2171 dnl <nonterminal symbol-number="14" name="assignments" type="" usefulness="useful"/>
2172 dnl <nonterminal symbol-number="15" name="assignment" type="" usefulness="useful"/>
2173 dnl <nonterminal symbol-number="16" name="id" type="std::string" usefulness="useful"/>
2174 dnl <nonterminal symbol-number="17" name="exp" type="int" usefulness="useful"/>
2175 dnl <nonterminal symbol-number="18" name="@1" type="int" usefulness="useful"/>
2176 dnl <nonterminal symbol-number="19" name="@2" type="int" usefulness="useful"/>
2182 dnl <state number="0">
2184 dnl <item rule-number="0" dot="0"/>
2185 dnl <item rule-number="1" dot="0"/>
2186 dnl <item rule-number="2" dot="0"/>
2190 dnl <transition type="shift" symbol="YY_PARSE_unit" state="1"/>
2191 dnl <transition type="shift" symbol="YY_PARSE_assignments" state="2"/>
2192 dnl <transition type="shift" symbol="YY_PARSE_exp" state="3"/>
2197 dnl <solved-conflicts/>
2200 dnl <state number="1">
2202 dnl <item rule-number="0" dot="1"/>
2203 dnl <item rule-number="3" dot="0"/>
2204 dnl <item rule-number="4" dot="0"/>
2205 dnl <item rule-number="5" dot="0"/>
2209 dnl <transition type="goto" symbol="unit" state="4"/>
2210 dnl <transition type="goto" symbol="assignments" state="5"/>
2214 dnl <reduction symbol="$default" rule="4" enabled="true"/>
2217 dnl <solved-conflicts/>
2220 dnl <state number="2">
2222 dnl <item rule-number="1" dot="1"/>
2223 dnl <item rule-number="4" dot="0"/>
2224 dnl <item rule-number="5" dot="0"/>
2228 dnl <transition type="goto" symbol="assignments" state="6"/>
2232 dnl <reduction symbol="$default" rule="4" enabled="true"/>
2235 dnl <solved-conflicts/>
2238 dnl <state number="3">
2240 dnl <item rule-number="2" dot="1"/>
2241 dnl <item rule-number="10" dot="0"/>
2242 dnl <item rule-number="11" dot="0"/>
2243 dnl <item rule-number="12" dot="0"/>
2244 dnl <item rule-number="13" dot="0"/>
2248 dnl <transition type="shift" symbol=""incr"" state="7"/>
2249 dnl <transition type="shift" symbol=""identifier"" state="8"/>
2250 dnl <transition type="shift" symbol=""number"" state="9"/>
2251 dnl <transition type="shift" symbol=""("" state="10"/>
2252 dnl <transition type="goto" symbol="exp" state="11"/>
2257 dnl <solved-conflicts/>
2260 dnl <state number="4">
2262 dnl <item rule-number="0" dot="2"/>
2266 dnl <transition type="shift" symbol=""end of file"" state="12"/>
2271 dnl <solved-conflicts/>
2274 dnl <state number="5">
2276 dnl <item rule-number="3" dot="1"/>
2277 dnl <item rule-number="5" dot="1"/>
2278 dnl <item rule-number="6" dot="0"/>
2279 dnl <item rule-number="7" dot="0"/>
2280 dnl <item rule-number="10" dot="0"/>
2281 dnl <item rule-number="11" dot="0"/>
2282 dnl <item rule-number="12" dot="0"/>
2283 dnl <item rule-number="13" dot="0"/>
2287 dnl <transition type="shift" symbol=""incr"" state="7"/>
2288 dnl <transition type="shift" symbol=""identifier"" state="13"/>
2289 dnl <transition type="shift" symbol=""number"" state="9"/>
2290 dnl <transition type="shift" symbol=""("" state="10"/>
2291 dnl <transition type="goto" symbol="assignment" state="14"/>
2292 dnl <transition type="goto" symbol="id" state="15"/>
2293 dnl <transition type="goto" symbol="exp" state="16"/>
2298 dnl <solved-conflicts/>
2301 dnl <state number="6">
2303 dnl <item rule-number="1" dot="2"/>
2304 dnl <item rule-number="5" dot="1"/>
2305 dnl <item rule-number="6" dot="0"/>
2306 dnl <item rule-number="7" dot="0"/>
2310 dnl <transition type="shift" symbol=""end of file"" state="17"/>
2311 dnl <transition type="shift" symbol=""identifier"" state="18"/>
2312 dnl <transition type="goto" symbol="assignment" state="14"/>
2313 dnl <transition type="goto" symbol="id" state="15"/>
2318 dnl <solved-conflicts/>
2321 dnl <state number="7">
2323 dnl <item rule-number="10" dot="0"/>
2324 dnl <item rule-number="10" dot="1"/>
2325 dnl <item rule-number="11" dot="0"/>
2326 dnl <item rule-number="12" dot="0"/>
2327 dnl <item rule-number="13" dot="0"/>
2331 dnl <transition type="shift" symbol=""incr"" state="7"/>
2332 dnl <transition type="shift" symbol=""identifier"" state="8"/>
2333 dnl <transition type="shift" symbol=""number"" state="9"/>
2334 dnl <transition type="shift" symbol=""("" state="10"/>
2335 dnl <transition type="goto" symbol="exp" state="19"/>
2340 dnl <solved-conflicts/>
2343 dnl <state number="8">
2345 dnl <item rule-number="12" dot="1"/>
2351 dnl <reduction symbol="$default" rule="12" enabled="true"/>
2354 dnl <solved-conflicts/>
2357 dnl <state number="9">
2359 dnl <item rule-number="13" dot="1"/>
2365 dnl <reduction symbol="$default" rule="13" enabled="true"/>
2368 dnl <solved-conflicts/>
2371 dnl <state number="10">
2373 dnl <item rule-number="10" dot="0"/>
2374 dnl <item rule-number="11" dot="0"/>
2375 dnl <item rule-number="11" dot="1"/>
2376 dnl <item rule-number="12" dot="0"/>
2377 dnl <item rule-number="13" dot="0"/>
2381 dnl <transition type="shift" symbol=""incr"" state="7"/>
2382 dnl <transition type="shift" symbol=""identifier"" state="8"/>
2383 dnl <transition type="shift" symbol=""number"" state="9"/>
2384 dnl <transition type="shift" symbol=""("" state="10"/>
2385 dnl <transition type="goto" symbol="exp" state="20"/>
2390 dnl <solved-conflicts/>
2393 dnl <state number="11">
2395 dnl <item rule-number="2" dot="2"/>
2399 dnl <transition type="shift" symbol=""end of file"" state="21"/>
2404 dnl <solved-conflicts/>
2407 dnl <state number="12">
2409 dnl <item rule-number="0" dot="3"/>
2415 dnl <reduction symbol="$default" rule="accept" enabled="true"/>
2418 dnl <solved-conflicts/>
2421 dnl <state number="13">
2423 dnl <item rule-number="7" dot="1">
2425 dnl <symbol>":="</symbol>
2428 dnl <item rule-number="12" dot="1">
2430 dnl <symbol>"end of file"</symbol>
2438 dnl <reduction symbol=""end of file"" rule="12" enabled="true"/>
2439 dnl <reduction symbol="$default" rule="7" enabled="true"/>
2442 dnl <solved-conflicts/>
2445 dnl <state number="14">
2447 dnl <item rule-number="5" dot="2"/>
2453 dnl <reduction symbol="$default" rule="5" enabled="true"/>
2456 dnl <solved-conflicts/>
2459 dnl <state number="15">
2461 dnl <item rule-number="6" dot="1"/>
2465 dnl <transition type="shift" symbol="":="" state="22"/>
2470 dnl <solved-conflicts/>
2473 dnl <state number="16">
2475 dnl <item rule-number="3" dot="2"/>
2481 dnl <reduction symbol="$default" rule="3" enabled="true"/>
2484 dnl <solved-conflicts/>
2487 dnl <state number="17">
2489 dnl <item rule-number="1" dot="3"/>
2495 dnl <reduction symbol="$default" rule="accept" enabled="true"/>
2498 dnl <solved-conflicts/>
2501 dnl <state number="18">
2503 dnl <item rule-number="7" dot="1"/>
2509 dnl <reduction symbol="$default" rule="7" enabled="true"/>
2512 dnl <solved-conflicts/>
2515 dnl <state number="19">
2517 dnl <item rule-number="8" dot="0"/>
2518 dnl <item rule-number="10" dot="2"/>
2522 dnl <transition type="goto" symbol="@1" state="23"/>
2526 dnl <reduction symbol="$default" rule="8" enabled="true"/>
2529 dnl <solved-conflicts/>
2532 dnl <state number="20">
2534 dnl <item rule-number="11" dot="2"/>
2538 dnl <transition type="shift" symbol="")"" state="24"/>
2543 dnl <solved-conflicts/>
2546 dnl <state number="21">
2548 dnl <item rule-number="2" dot="3"/>
2554 dnl <reduction symbol="$default" rule="accept" enabled="true"/>
2557 dnl <solved-conflicts/>
2560 dnl <state number="22">
2562 dnl <item rule-number="6" dot="2"/>
2563 dnl <item rule-number="10" dot="0"/>
2564 dnl <item rule-number="11" dot="0"/>
2565 dnl <item rule-number="12" dot="0"/>
2566 dnl <item rule-number="13" dot="0"/>
2570 dnl <transition type="shift" symbol=""incr"" state="7"/>
2571 dnl <transition type="shift" symbol=""identifier"" state="8"/>
2572 dnl <transition type="shift" symbol=""number"" state="9"/>
2573 dnl <transition type="shift" symbol=""("" state="10"/>
2574 dnl <transition type="goto" symbol="exp" state="25"/>
2579 dnl <solved-conflicts/>
2582 dnl <state number="23">
2584 dnl <item rule-number="9" dot="0"/>
2585 dnl <item rule-number="10" dot="3"/>
2589 dnl <transition type="goto" symbol="@2" state="26"/>
2593 dnl <reduction symbol="$default" rule="9" enabled="true"/>
2596 dnl <solved-conflicts/>
2599 dnl <state number="24">
2601 dnl <item rule-number="11" dot="3"/>
2607 dnl <reduction symbol="$default" rule="11" enabled="true"/>
2610 dnl <solved-conflicts/>
2613 dnl <state number="25">
2615 dnl <item rule-number="6" dot="3"/>
2621 dnl <reduction symbol="$default" rule="6" enabled="true"/>
2624 dnl <solved-conflicts/>
2627 dnl <state number="26">
2629 dnl <item rule-number="10" dot="0"/>
2630 dnl <item rule-number="10" dot="4"/>
2631 dnl <item rule-number="11" dot="0"/>
2632 dnl <item rule-number="12" dot="0"/>
2633 dnl <item rule-number="13" dot="0"/>
2637 dnl <transition type="shift" symbol=""incr"" state="7"/>
2638 dnl <transition type="shift" symbol=""identifier"" state="8"/>
2639 dnl <transition type="shift" symbol=""number"" state="9"/>
2640 dnl <transition type="shift" symbol=""("" state="10"/>
2641 dnl <transition type="goto" symbol="exp" state="27"/>
2646 dnl <solved-conflicts/>
2649 dnl <state number="27">
2651 dnl <item rule-number="10" dot="5"/>
2657 dnl <reduction symbol="$default" rule="10" enabled="true"/>
2660 dnl <solved-conflicts/>
2663 dnl </bison-xml-report>
2666 dnl if test x"$XSLTPROC" != x""; then
2667 dnl AT_CHECK([[$XSLTPROC \
2668 dnl `]]AT_SET_ENV[[ bison --print-datadir`/xslt/xml2xhtml.xsl \
2669 dnl input.xml >input.html]])
2670 dnl AT_CHECK_HTML([input.html],
2671 dnl [[<?xml version="1.0" encoding="UTF-8"?>
2672 dnl <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2673 dnl <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
2675 dnl <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
2676 dnl <title>input.yy - GNU Bison XML Automaton Report</title>
2677 dnl <style type="text/css">
2679 dnl font-family: "Nimbus Sans L", Arial, sans-serif;
2684 dnl text-decoration: none;
2688 dnl text-decoration: none;
2694 dnl text-decoration: underline;
2697 dnl font-style: italic;
2700 dnl font-family: monospace;
2701 dnl white-space: pre;
2704 dnl list-style-type: decimal;
2706 dnl ol.lower-alpha {
2707 dnl list-style-type: lower-alpha;
2713 dnl margin-top: 3.5em;
2718 dnl <body><h1>GNU Bison XML Automaton Report</h1><p>
2719 dnl input grammar: <span class="i">input.yy</span></p>
2721 dnl <h3>Table of Contents</h3><ul id="menu"><li><a href="#reductions">Reductions</a><ul class="lower-alpha"><li><a href="#nonterminals_useless_in_grammar">Nonterminals useless in grammar</a></li><li><a href="#terminals_unused_in_grammar">Terminals unused in grammar</a></li><li><a href="#rules_useless_in_grammar">Rules useless in grammar</a></li></ul></li><li><a href="#conflicts">Conflicts</a></li><li><a href="#grammar">Grammar</a><ul class="lower-alpha"><li><a href="#grammar">Itemset</a></li><li><a href="#terminals">Terminal symbols</a></li><li><a href="#nonterminals">Nonterminal symbols</a></li></ul></li><li><a href="#automaton">Automaton</a></li></ul><h2><a name="reductions" id="reductions"></a> Reductions</h2><h3><a name="nonterminals_useless_in_grammar" id="nonterminals_useless_in_grammar"></a> Nonterminals useless in grammar</h3>
2723 dnl <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
2725 dnl <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
2726 dnl <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
2728 dnl <h2><a name="grammar" id="grammar"></a> Grammar</h2>
2730 dnl <a name="rule_0" id="rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="i">unit</span> <b>"end of file"</b>
2731 dnl <a name="rule_1" id="rule_1"> 1</a> | <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
2732 dnl <a name="rule_2" id="rule_2"> 2</a> | <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
2734 dnl <a name="rule_3" id="rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
2736 dnl <a name="rule_4" id="rule_4"> 4</a> <span class="i">assignments</span> → %empty
2737 dnl <a name="rule_5" id="rule_5"> 5</a> | <span class="i">assignments</span> <span class="i">assignment</span>
2739 dnl <a name="rule_6" id="rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
2741 dnl <a name="rule_7" id="rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b>
2743 dnl <a name="rule_8" id="rule_8"> 8</a> <span class="i">@1</span> → %empty
2745 dnl <a name="rule_9" id="rule_9"> 9</a> <span class="i">@2</span> → %empty
2747 dnl <a name="rule_10" id="rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
2748 dnl <a name="rule_11" id="rule_11"> 11</a> | <b>"("</b> <span class="i">exp</span> <b>")"</b>
2749 dnl <a name="rule_12" id="rule_12"> 12</a> | <b>"identifier"</b>
2750 dnl <a name="rule_13" id="rule_13"> 13</a> | <b>"number"</b>
2753 dnl <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
2756 dnl <li><b>"end of file"</b> (0) <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
2757 dnl <li><b>error</b> (256)</li>
2758 dnl <li><b>":="</b> (258) <a href="#rule_6">6</a></li>
2759 dnl <li><b>"incr"</b> (259) <a href="#rule_10">10</a></li>
2760 dnl <li><b>"identifier"</b> <std::string> (260) <a href="#rule_7">7</a> <a href="#rule_12">12</a></li>
2761 dnl <li><b>"number"</b> <int> (261) <a href="#rule_13">13</a></li>
2762 dnl <li><b>YY_PARSE_unit</b> (262) <a href="#rule_0">0</a></li>
2763 dnl <li><b>YY_PARSE_assignments</b> (263) <a href="#rule_1">1</a></li>
2764 dnl <li><b>YY_PARSE_exp</b> (264) <a href="#rule_2">2</a></li>
2765 dnl <li><b>"("</b> (265) <a href="#rule_11">11</a></li>
2766 dnl <li><b>")"</b> (266) <a href="#rule_11">11</a></li>
2769 dnl <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
2772 dnl <li><b>$accept</b> (12)
2774 dnl <li>on left: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
2777 dnl <li><b>unit</b> (13)
2779 dnl <li>on left: <a href="#rule_3">3</a></li>
2780 dnl <li>on right: <a href="#rule_0">0</a></li>
2783 dnl <li><b>assignments</b> (14)
2785 dnl <li>on left: <a href="#rule_4">4</a> <a href="#rule_5">5</a></li>
2786 dnl <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a> <a href="#rule_5">5</a></li>
2789 dnl <li><b>assignment</b> (15)
2791 dnl <li>on left: <a href="#rule_6">6</a></li>
2792 dnl <li>on right: <a href="#rule_5">5</a></li>
2795 dnl <li><b>id</b> <std::string> (16)
2797 dnl <li>on left: <a href="#rule_7">7</a></li>
2798 dnl <li>on right: <a href="#rule_6">6</a></li>
2801 dnl <li><b>exp</b> <int> (17)
2803 dnl <li>on left: <a href="#rule_10">10</a> <a href="#rule_11">11</a> <a href="#rule_12">12</a> <a href="#rule_13">13</a></li>
2804 dnl <li>on right: <a href="#rule_2">2</a> <a href="#rule_3">3</a> <a href="#rule_6">6</a> <a href="#rule_10">10</a> <a href="#rule_11">11</a></li>
2807 dnl <li><b>@1</b> <int> (18)
2809 dnl <li>on left: <a href="#rule_8">8</a></li>
2810 dnl <li>on right: <a href="#rule_10">10</a></li>
2813 dnl <li><b>@2</b> <int> (19)
2815 dnl <li>on left: <a href="#rule_9">9</a></li>
2816 dnl <li>on right: <a href="#rule_10">10</a></li>
2819 dnl </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
2821 dnl <h3><a name="state_0" id="state_0"></a>State 0</h3>
2823 dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="dot">•</span> <b>YY_PARSE_unit</b> <span class="i">unit</span> <b>"end of file"</b>
2824 dnl <a href="#rule_1"> 1</a> | <span class="dot">•</span> <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
2825 dnl <a href="#rule_2"> 2</a> | <span class="dot">•</span> <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
2827 dnl YY_PARSE_unit <a href="#state_1">shift, and go to state 1</a>
2828 dnl YY_PARSE_assignments <a href="#state_2">shift, and go to state 2</a>
2829 dnl YY_PARSE_exp <a href="#state_3">shift, and go to state 3</a>
2832 dnl <h3><a name="state_1" id="state_1"></a>State 1</h3>
2834 dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="dot">•</span> <span class="i">unit</span> <b>"end of file"</b>
2835 dnl <a href="#rule_3"> 3</a> <span class="i">unit</span> → <span class="dot">•</span> <span class="i">assignments</span> <span class="i">exp</span>
2836 dnl <a href="#rule_4"> 4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
2837 dnl <a href="#rule_5"> 5</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
2839 dnl $default <a href="#rule_4">reduce using rule 4</a> (assignments)
2841 dnl unit <a href="#state_4">go to state 4</a>
2842 dnl assignments <a href="#state_5">go to state 5</a>
2845 dnl <h3><a name="state_2" id="state_2"></a>State 2</h3>
2847 dnl <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">$accept</span> → <b>YY_PARSE_assignments</b> <span class="dot">•</span> <span class="i">assignments</span> <b>"end of file"</b>
2848 dnl <a href="#rule_4"> 4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
2849 dnl <a href="#rule_5"> 5</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
2851 dnl $default <a href="#rule_4">reduce using rule 4</a> (assignments)
2853 dnl assignments <a href="#state_6">go to state 6</a>
2856 dnl <h3><a name="state_3" id="state_3"></a>State 3</h3>
2858 dnl <p class="pre"> <a href="#rule_2"> 2</a> <span class="i">$accept</span> → <b>YY_PARSE_exp</b> <span class="dot">•</span> <span class="i">exp</span> <b>"end of file"</b>
2859 dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
2860 dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2861 dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
2862 dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
2864 dnl "incr" <a href="#state_7">shift, and go to state 7</a>
2865 dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
2866 dnl "number" <a href="#state_9">shift, and go to state 9</a>
2867 dnl "(" <a href="#state_10">shift, and go to state 10</a>
2869 dnl exp <a href="#state_11">go to state 11</a>
2872 dnl <h3><a name="state_4" id="state_4"></a>State 4</h3>
2874 dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="i">unit</span> <span class="dot">•</span> <b>"end of file"</b>
2876 dnl "end of file" <a href="#state_12">shift, and go to state 12</a>
2879 dnl <h3><a name="state_5" id="state_5"></a>State 5</h3>
2881 dnl <p class="pre"> <a href="#rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">exp</span>
2882 dnl <a href="#rule_5"> 5</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">assignment</span>
2883 dnl <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="dot">•</span> <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
2884 dnl <a href="#rule_7"> 7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
2885 dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
2886 dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2887 dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
2888 dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
2890 dnl "incr" <a href="#state_7">shift, and go to state 7</a>
2891 dnl "identifier" <a href="#state_13">shift, and go to state 13</a>
2892 dnl "number" <a href="#state_9">shift, and go to state 9</a>
2893 dnl "(" <a href="#state_10">shift, and go to state 10</a>
2895 dnl assignment <a href="#state_14">go to state 14</a>
2896 dnl id <a href="#state_15">go to state 15</a>
2897 dnl exp <a href="#state_16">go to state 16</a>
2900 dnl <h3><a name="state_6" id="state_6"></a>State 6</h3>
2902 dnl <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">$accept</span> → <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <span class="dot">•</span> <b>"end of file"</b>
2903 dnl <a href="#rule_5"> 5</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">assignment</span>
2904 dnl <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="dot">•</span> <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
2905 dnl <a href="#rule_7"> 7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
2907 dnl "end of file" <a href="#state_17">shift, and go to state 17</a>
2908 dnl "identifier" <a href="#state_18">shift, and go to state 18</a>
2910 dnl assignment <a href="#state_14">go to state 14</a>
2911 dnl id <a href="#state_15">go to state 15</a>
2914 dnl <h3><a name="state_7" id="state_7"></a>State 7</h3>
2916 dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
2917 dnl <a href="#rule_10"> 10</a> | <b>"incr"</b> <span class="dot">•</span> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
2918 dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2919 dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
2920 dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
2922 dnl "incr" <a href="#state_7">shift, and go to state 7</a>
2923 dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
2924 dnl "number" <a href="#state_9">shift, and go to state 9</a>
2925 dnl "(" <a href="#state_10">shift, and go to state 10</a>
2927 dnl exp <a href="#state_19">go to state 19</a>
2930 dnl <h3><a name="state_8" id="state_8"></a>State 8</h3>
2932 dnl <p class="pre"> <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
2934 dnl $default <a href="#rule_12">reduce using rule 12</a> (exp)
2937 dnl <h3><a name="state_9" id="state_9"></a>State 9</h3>
2939 dnl <p class="pre"> <a href="#rule_13"> 13</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
2941 dnl $default <a href="#rule_13">reduce using rule 13</a> (exp)
2944 dnl <h3><a name="state_10" id="state_10"></a>State 10</h3>
2946 dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
2947 dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2948 dnl <a href="#rule_11"> 11</a> | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
2949 dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
2950 dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
2952 dnl "incr" <a href="#state_7">shift, and go to state 7</a>
2953 dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
2954 dnl "number" <a href="#state_9">shift, and go to state 9</a>
2955 dnl "(" <a href="#state_10">shift, and go to state 10</a>
2957 dnl exp <a href="#state_20">go to state 20</a>
2960 dnl <h3><a name="state_11" id="state_11"></a>State 11</h3>
2962 dnl <p class="pre"> <a href="#rule_2"> 2</a> <span class="i">$accept</span> → <b>YY_PARSE_exp</b> <span class="i">exp</span> <span class="dot">•</span> <b>"end of file"</b>
2964 dnl "end of file" <a href="#state_21">shift, and go to state 21</a>
2967 dnl <h3><a name="state_12" id="state_12"></a>State 12</h3>
2969 dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="i">unit</span> <b>"end of file"</b> <span class="dot">•</span>
2974 dnl <h3><a name="state_13" id="state_13"></a>State 13</h3>
2976 dnl <p class="pre"> <a href="#rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span> [":="]
2977 dnl <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span> ["end of file"]
2979 dnl "end of file" <a href="#rule_12">reduce using rule 12</a> (exp)
2980 dnl $default <a href="#rule_7">reduce using rule 7</a> (id)
2983 dnl <h3><a name="state_14" id="state_14"></a>State 14</h3>
2985 dnl <p class="pre"> <a href="#rule_5"> 5</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="i">assignment</span> <span class="dot">•</span>
2987 dnl $default <a href="#rule_5">reduce using rule 5</a> (assignments)
2990 dnl <h3><a name="state_15" id="state_15"></a>State 15</h3>
2992 dnl <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <span class="dot">•</span> <b>":="</b> <span class="i">exp</span>
2994 dnl ":=" <a href="#state_22">shift, and go to state 22</a>
2997 dnl <h3><a name="state_16" id="state_16"></a>State 16</h3>
2999 dnl <p class="pre"> <a href="#rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span> <span class="dot">•</span>
3001 dnl $default <a href="#rule_3">reduce using rule 3</a> (unit)
3004 dnl <h3><a name="state_17" id="state_17"></a>State 17</h3>
3006 dnl <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">$accept</span> → <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b> <span class="dot">•</span>
3011 dnl <h3><a name="state_18" id="state_18"></a>State 18</h3>
3013 dnl <p class="pre"> <a href="#rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>
3015 dnl $default <a href="#rule_7">reduce using rule 7</a> (id)
3018 dnl <h3><a name="state_19" id="state_19"></a>State 19</h3>
3020 dnl <p class="pre"> <a href="#rule_8"> 8</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
3021 dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="dot">•</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
3023 dnl $default <a href="#rule_8">reduce using rule 8</a> (@1)
3025 dnl @1 <a href="#state_23">go to state 23</a>
3028 dnl <h3><a name="state_20" id="state_20"></a>State 20</h3>
3030 dnl <p class="pre"> <a href="#rule_11"> 11</a> <span class="i">exp</span> → <b>"("</b> <span class="i">exp</span> <span class="dot">•</span> <b>")"</b>
3032 dnl ")" <a href="#state_24">shift, and go to state 24</a>
3035 dnl <h3><a name="state_21" id="state_21"></a>State 21</h3>
3037 dnl <p class="pre"> <a href="#rule_2"> 2</a> <span class="i">$accept</span> → <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b> <span class="dot">•</span>
3042 dnl <h3><a name="state_22" id="state_22"></a>State 22</h3>
3044 dnl <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="dot">•</span> <span class="i">exp</span>
3045 dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
3046 dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
3047 dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
3048 dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
3050 dnl "incr" <a href="#state_7">shift, and go to state 7</a>
3051 dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
3052 dnl "number" <a href="#state_9">shift, and go to state 9</a>
3053 dnl "(" <a href="#state_10">shift, and go to state 10</a>
3055 dnl exp <a href="#state_25">go to state 25</a>
3058 dnl <h3><a name="state_23" id="state_23"></a>State 23</h3>
3060 dnl <p class="pre"> <a href="#rule_9"> 9</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
3061 dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="dot">•</span> <span class="i">@2</span> <span class="i">exp</span>
3063 dnl $default <a href="#rule_9">reduce using rule 9</a> (@2)
3065 dnl @2 <a href="#state_26">go to state 26</a>
3068 dnl <h3><a name="state_24" id="state_24"></a>State 24</h3>
3070 dnl <p class="pre"> <a href="#rule_11"> 11</a> <span class="i">exp</span> → <b>"("</b> <span class="i">exp</span> <b>")"</b> <span class="dot">•</span>
3072 dnl $default <a href="#rule_11">reduce using rule 11</a> (exp)
3075 dnl <h3><a name="state_25" id="state_25"></a>State 25</h3>
3077 dnl <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span> <span class="dot">•</span>
3079 dnl $default <a href="#rule_6">reduce using rule 6</a> (assignment)
3082 dnl <h3><a name="state_26" id="state_26"></a>State 26</h3>
3084 dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
3085 dnl <a href="#rule_10"> 10</a> | <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="dot">•</span> <span class="i">exp</span>
3086 dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
3087 dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
3088 dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
3090 dnl "incr" <a href="#state_7">shift, and go to state 7</a>
3091 dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
3092 dnl "number" <a href="#state_9">shift, and go to state 9</a>
3093 dnl "(" <a href="#state_10">shift, and go to state 10</a>
3095 dnl exp <a href="#state_27">go to state 27</a>
3098 dnl <h3><a name="state_27" id="state_27"></a>State 27</h3>
3100 dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span> <span class="dot">•</span>
3102 dnl $default <a href="#rule_10">reduce using rule 10</a> (exp)
3105 dnl <div id="footer"><hr />This document was generated using
3106 dnl <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
3107 dnl GNU Bison ]AT_PACKAGE_VERSION[</a>
3108 dnl XML Automaton Report.<br />
3109 dnl Verbatim copying and distribution of this entire page is
3110 dnl permitted in any medium, provided this notice is preserved.</div></body>
3115 dnl AT_BISON_OPTION_POPDEFS
3119 ## ------------------------ ##
3120 ## Reports with conflicts. ##
3121 ## ------------------------ ##
3123 AT_SETUP([Reports with conflicts])
3125 AT_KEYWORDS([cex report])
3127 # We need UTF-8 support for correct screen-width computation of UTF-8
3128 # characters. Skip the test if not available.
3129 locale=`locale -a | $EGREP '^en_US\.(UTF-8|utf8)$' | sed 1q`
3130 AT_SKIP_IF([[test x = x"$locale"]])
3132 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
3134 AT_BISON_OPTION_PUSHDEFS
3146 AT_CHECK([LC_ALL="$locale" bison -fno-caret -o input.cc -rall -Wcex --graph=input.gv --html --xml input.y], [], [],
3147 [[input.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
3148 input.y: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
3149 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3150 Example: exp "+" exp • "⊕" exp
3159 input.y: warning: reduce/reduce conflict on tokens $end, "+", "⊕" [-Wcounterexamples]
3160 Example: exp "+" exp •
3161 First reduce derivation
3164 Second reduce derivation
3167 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3168 Example: exp "+" exp • "⊕" exp
3177 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3178 Example: exp "⊕" exp • "⊕" exp
3187 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3188 Example: exp "⊕" exp • "+" exp
3197 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3198 Example: exp "⊕" exp • "+" exp
3207 input.y:6.3-13: warning: rule useless in parser due to conflicts [-Wother]
3210 # Check the contents of the report.
3211 # FIXME: Avoid trailing white spaces.
3212 AT_CHECK([sed -e 's/ *$//' input.output], [],
3213 [[Rules useless in parser due to conflicts
3218 State 7 conflicts: 1 shift/reduce, 3 reduce/reduce
3219 State 8 conflicts: 2 shift/reduce
3233 Terminals, with rules where they appear
3243 Nonterminals, with rules where they appear
3254 0 $accept: • exp $end
3255 1 exp: • exp "⊕" exp
3261 "number" shift, and go to state 1
3262 "Ñùṃéℝô" shift, and go to state 2
3271 $default reduce using rule 4 (exp)
3278 $default reduce using rule 5 (exp)
3283 0 $accept: exp • $end
3284 1 exp: exp • "⊕" exp
3288 $end shift, and go to state 4
3289 "+" shift, and go to state 5
3290 "⊕" shift, and go to state 6
3295 0 $accept: exp $end •
3302 1 exp: • exp "⊕" exp
3310 "number" shift, and go to state 1
3311 "Ñùṃéℝô" shift, and go to state 2
3318 1 exp: • exp "⊕" exp
3325 "number" shift, and go to state 1
3326 "Ñùṃéℝô" shift, and go to state 2
3333 1 exp: exp • "⊕" exp
3335 2 | exp "+" exp • [$end, "+", "⊕"]
3337 3 | exp "+" exp • [$end, "+", "⊕"]
3339 "⊕" shift, and go to state 6
3341 $end reduce using rule 2 (exp)
3342 $end [reduce using rule 3 (exp)]
3343 "+" reduce using rule 2 (exp)
3344 "+" [reduce using rule 3 (exp)]
3345 "⊕" [reduce using rule 2 (exp)]
3346 "⊕" [reduce using rule 3 (exp)]
3347 $default reduce using rule 2 (exp)
3349 Conflict between rule 2 and token "+" resolved as reduce (%left "+").
3351 shift/reduce conflict on token "⊕":
3352 2 exp: exp "+" exp •
3353 1 exp: exp • "⊕" exp
3354 Example: exp "+" exp • "⊕" exp
3364 reduce/reduce conflict on tokens $end, "+", "⊕":
3365 2 exp: exp "+" exp •
3366 3 exp: exp "+" exp •
3367 Example: exp "+" exp •
3368 First reduce derivation
3371 Second reduce derivation
3375 shift/reduce conflict on token "⊕":
3376 3 exp: exp "+" exp •
3377 1 exp: exp • "⊕" exp
3378 Example: exp "+" exp • "⊕" exp
3392 1 exp: exp • "⊕" exp
3393 1 | exp "⊕" exp • [$end, "+", "⊕"]
3397 "+" shift, and go to state 5
3398 "⊕" shift, and go to state 6
3400 "+" [reduce using rule 1 (exp)]
3401 "⊕" [reduce using rule 1 (exp)]
3402 $default reduce using rule 1 (exp)
3404 shift/reduce conflict on token "⊕":
3405 1 exp: exp "⊕" exp •
3406 1 exp: exp • "⊕" exp
3407 Example: exp "⊕" exp • "⊕" exp
3417 shift/reduce conflict on token "+":
3418 1 exp: exp "⊕" exp •
3419 2 exp: exp • "+" exp
3420 Example: exp "⊕" exp • "+" exp
3430 shift/reduce conflict on token "+":
3431 1 exp: exp "⊕" exp •
3432 3 exp: exp • "+" exp
3433 Example: exp "⊕" exp • "+" exp
3448 AT_CHECK([cat input.gv], [],
3449 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
3450 // Report bugs to <bug-bison@gnu.org>.
3451 // Home page: <https://www.gnu.org/software/bison/>.
3455 node [fontname = courier, shape = box, colorscheme = paired6]
3456 edge [fontname = courier]
3458 0 [label="State 0\n\l 0 $accept: • exp $end\l 1 exp: • exp \"⊕\" exp\l 2 | • exp \"+\" exp\l 3 | • exp \"+\" exp\l 4 | • \"number\"\l 5 | • \"Ñùṃéℝô\"\l"]
3459 0 -> 1 [style=solid label="\"number\""]
3460 0 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3461 0 -> 3 [style=dashed label="exp"]
3462 1 [label="State 1\n\l 4 exp: \"number\" •\l"]
3463 1 -> "1R4" [style=solid]
3464 "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
3465 2 [label="State 2\n\l 5 exp: \"Ñùṃéℝô\" •\l"]
3466 2 -> "2R5" [style=solid]
3467 "2R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
3468 3 [label="State 3\n\l 0 $accept: exp • $end\l 1 exp: exp • \"⊕\" exp\l 2 | exp • \"+\" exp\l 3 | exp • \"+\" exp\l"]
3469 3 -> 4 [style=solid label="$end"]
3470 3 -> 5 [style=solid label="\"+\""]
3471 3 -> 6 [style=solid label="\"⊕\""]
3472 4 [label="State 4\n\l 0 $accept: exp $end •\l"]
3473 4 -> "4R0" [style=solid]
3474 "4R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
3475 5 [label="State 5\n\l 1 exp: • exp \"⊕\" exp\l 2 | • exp \"+\" exp\l 2 | exp \"+\" • exp\l 3 | • exp \"+\" exp\l 3 | exp \"+\" • exp\l 4 | • \"number\"\l 5 | • \"Ñùṃéℝô\"\l"]
3476 5 -> 1 [style=solid label="\"number\""]
3477 5 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3478 5 -> 7 [style=dashed label="exp"]
3479 6 [label="State 6\n\l 1 exp: • exp \"⊕\" exp\l 1 | exp \"⊕\" • exp\l 2 | • exp \"+\" exp\l 3 | • exp \"+\" exp\l 4 | • \"number\"\l 5 | • \"Ñùṃéℝô\"\l"]
3480 6 -> 1 [style=solid label="\"number\""]
3481 6 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3482 6 -> 8 [style=dashed label="exp"]
3483 7 [label="State 7\n\l 1 exp: exp • \"⊕\" exp\l 2 | exp • \"+\" exp\l 2 | exp \"+\" exp • [$end, \"+\", \"⊕\"]\l 3 | exp • \"+\" exp\l 3 | exp \"+\" exp • [$end, \"+\", \"⊕\"]\l"]
3484 7 -> 6 [style=solid label="\"⊕\""]
3485 7 -> "7R2d" [label="[\"⊕\"]", style=solid]
3486 "7R2d" [label="R2", fillcolor=5, shape=diamond, style=filled]
3487 7 -> "7R2" [style=solid]
3488 "7R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
3489 7 -> "7R3d" [label="[$end, \"+\", \"⊕\"]", style=solid]
3490 "7R3d" [label="R3", fillcolor=5, shape=diamond, style=filled]
3491 8 [label="State 8\n\l 1 exp: exp • \"⊕\" exp\l 1 | exp \"⊕\" exp • [$end, \"+\", \"⊕\"]\l 2 | exp • \"+\" exp\l 3 | exp • \"+\" exp\l"]
3492 8 -> 5 [style=solid label="\"+\""]
3493 8 -> 6 [style=solid label="\"⊕\""]
3494 8 -> "8R1d" [label="[\"+\", \"⊕\"]", style=solid]
3495 "8R1d" [label="R1", fillcolor=5, shape=diamond, style=filled]
3496 8 -> "8R1" [style=solid]
3497 "8R1" [label="R1", fillcolor=3, shape=diamond, style=filled]
3502 AT_CHECK([[cat input.xml]], [],
3503 [[<?xml version="1.0"?>
3505 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
3507 <filename>input.y</filename>
3511 <rule number="0" usefulness="useful">
3514 <symbol>exp</symbol>
3515 <symbol>$end</symbol>
3518 <rule number="1" usefulness="useful">
3521 <symbol>exp</symbol>
3522 <symbol>"⊕"</symbol>
3523 <symbol>exp</symbol>
3526 <rule number="2" usefulness="useful">
3529 <symbol>exp</symbol>
3530 <symbol>"+"</symbol>
3531 <symbol>exp</symbol>
3534 <rule number="3" usefulness="useless-in-parser">
3537 <symbol>exp</symbol>
3538 <symbol>"+"</symbol>
3539 <symbol>exp</symbol>
3542 <rule number="4" usefulness="useful">
3545 <symbol>"number"</symbol>
3548 <rule number="5" usefulness="useful">
3551 <symbol>"Ñùṃéℝô"</symbol>
3556 <terminal symbol-number="0" token-number="0" name="$end" type="" usefulness="useful"/>
3557 <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
3558 <terminal symbol-number="3" token-number="258" name=""+"" type="" usefulness="useful" prec="1" assoc="left"/>
3559 <terminal symbol-number="4" token-number="259" name=""⊕"" type="" usefulness="useful"/>
3560 <terminal symbol-number="5" token-number="260" name=""number"" type="" usefulness="useful"/>
3561 <terminal symbol-number="6" token-number="261" name=""Ñùṃéℝô"" type="" usefulness="useful"/>
3564 <nonterminal symbol-number="7" name="$accept" type="" usefulness="useful"/>
3565 <nonterminal symbol-number="8" name="exp" type="" usefulness="useful"/>
3573 <item rule-number="0" dot="0"/>
3574 <item rule-number="1" dot="0"/>
3575 <item rule-number="2" dot="0"/>
3576 <item rule-number="3" dot="0"/>
3577 <item rule-number="4" dot="0"/>
3578 <item rule-number="5" dot="0"/>
3582 <transition type="shift" symbol=""number"" state="1"/>
3583 <transition type="shift" symbol=""Ñùṃéℝô"" state="2"/>
3584 <transition type="goto" symbol="exp" state="3"/>
3594 <item rule-number="4" dot="1"/>
3600 <reduction symbol="$default" rule="4" enabled="true"/>
3608 <item rule-number="5" dot="1"/>
3614 <reduction symbol="$default" rule="5" enabled="true"/>
3622 <item rule-number="0" dot="1"/>
3623 <item rule-number="1" dot="1"/>
3624 <item rule-number="2" dot="1"/>
3625 <item rule-number="3" dot="1"/>
3629 <transition type="shift" symbol="$end" state="4"/>
3630 <transition type="shift" symbol=""+"" state="5"/>
3631 <transition type="shift" symbol=""⊕"" state="6"/>
3641 <item rule-number="0" dot="2"/>
3647 <reduction symbol="$default" rule="accept" enabled="true"/>
3655 <item rule-number="1" dot="0"/>
3656 <item rule-number="2" dot="0"/>
3657 <item rule-number="2" dot="2"/>
3658 <item rule-number="3" dot="0"/>
3659 <item rule-number="3" dot="2"/>
3660 <item rule-number="4" dot="0"/>
3661 <item rule-number="5" dot="0"/>
3665 <transition type="shift" symbol=""number"" state="1"/>
3666 <transition type="shift" symbol=""Ñùṃéℝô"" state="2"/>
3667 <transition type="goto" symbol="exp" state="7"/>
3677 <item rule-number="1" dot="0"/>
3678 <item rule-number="1" dot="2"/>
3679 <item rule-number="2" dot="0"/>
3680 <item rule-number="3" dot="0"/>
3681 <item rule-number="4" dot="0"/>
3682 <item rule-number="5" dot="0"/>
3686 <transition type="shift" symbol=""number"" state="1"/>
3687 <transition type="shift" symbol=""Ñùṃéℝô"" state="2"/>
3688 <transition type="goto" symbol="exp" state="8"/>
3698 <item rule-number="1" dot="1"/>
3699 <item rule-number="2" dot="1"/>
3700 <item rule-number="2" dot="3">
3702 <symbol>$end</symbol>
3703 <symbol>"+"</symbol>
3704 <symbol>"⊕"</symbol>
3707 <item rule-number="3" dot="1"/>
3708 <item rule-number="3" dot="3">
3710 <symbol>$end</symbol>
3711 <symbol>"+"</symbol>
3712 <symbol>"⊕"</symbol>
3718 <transition type="shift" symbol=""⊕"" state="6"/>
3722 <reduction symbol="$end" rule="2" enabled="true"/>
3723 <reduction symbol="$end" rule="3" enabled="false"/>
3724 <reduction symbol=""+"" rule="2" enabled="true"/>
3725 <reduction symbol=""+"" rule="3" enabled="false"/>
3726 <reduction symbol=""⊕"" rule="2" enabled="false"/>
3727 <reduction symbol=""⊕"" rule="3" enabled="false"/>
3728 <reduction symbol="$default" rule="2" enabled="true"/>
3732 <resolution rule="2" symbol=""+"" type="reduce">%left "+"</resolution>
3738 <item rule-number="1" dot="1"/>
3739 <item rule-number="1" dot="3">
3741 <symbol>$end</symbol>
3742 <symbol>"+"</symbol>
3743 <symbol>"⊕"</symbol>
3746 <item rule-number="2" dot="1"/>
3747 <item rule-number="3" dot="1"/>
3751 <transition type="shift" symbol=""+"" state="5"/>
3752 <transition type="shift" symbol=""⊕"" state="6"/>
3756 <reduction symbol=""+"" rule="1" enabled="false"/>
3757 <reduction symbol=""⊕"" rule="1" enabled="false"/>
3758 <reduction symbol="$default" rule="1" enabled="true"/>
3768 AT_CHECK_HTML([input.html],
3769 [[<?xml version="1.0" encoding="UTF-8"?>
3770 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3771 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
3773 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
3774 <title>input.y - GNU Bison XML Automaton Report</title>
3775 <style type="text/css">
3777 font-family: "Nimbus Sans L", Arial, sans-serif;
3782 text-decoration: none;
3786 text-decoration: none;
3792 text-decoration: underline;
3798 font-family: monospace;
3802 list-style-type: decimal;
3805 list-style-type: lower-alpha;
3816 <body><h1>GNU Bison XML Automaton Report</h1><p>
3817 input grammar: <span class="i">input.y</span></p>
3819 <h3>Table of Contents</h3><ul id="menu"><li><a href="#reductions">Reductions</a><ul class="lower-alpha"><li><a href="#nonterminals_useless_in_grammar">Nonterminals useless in grammar</a></li><li><a href="#terminals_unused_in_grammar">Terminals unused in grammar</a></li><li><a href="#rules_useless_in_grammar">Rules useless in grammar</a></li><li><a href="#rules_useless_in_parser">Rules useless in parser due to conflicts</a></li></ul></li><li><a href="#conflicts">Conflicts</a></li><li><a href="#grammar">Grammar</a><ul class="lower-alpha"><li><a href="#grammar">Itemset</a></li><li><a href="#terminals">Terminal symbols</a></li><li><a href="#nonterminals">Nonterminal symbols</a></li></ul></li><li><a href="#automaton">Automaton</a></li></ul><h2><a name="reductions" id="reductions"></a> Reductions</h2><h3><a name="nonterminals_useless_in_grammar" id="nonterminals_useless_in_grammar"></a> Nonterminals useless in grammar</h3>
3821 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
3823 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
3824 <h2><a name="rules_useless_in_parser" id="rules_useless_in_parser"></a> Rules useless in parser due to conflicts</h2>
3826 <a href="#rule_3"> 3</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3829 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
3831 <p class="pre"><a href="#state_7">State 7</a> conflicts: 1 shift/reduce, 3 reduce/reduce
3832 <a href="#state_8">State 8</a> conflicts: 2 shift/reduce
3835 </p><h2><a name="grammar" id="grammar"></a> Grammar</h2>
3837 <a name="rule_0" id="rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">exp</span> <b>$end</b>
3839 <a name="rule_1" id="rule_1"> 1</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
3840 <a name="rule_2" id="rule_2"> 2</a> | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3841 <a name="rule_3" id="rule_3"> 3</a> | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3842 <a name="rule_4" id="rule_4"> 4</a> | <b>"number"</b>
3843 <a name="rule_5" id="rule_5"> 5</a> | <b>"Ñùṃéℝô"</b>
3846 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
3849 <li><b>$end</b> (0) <a href="#rule_0">0</a></li>
3850 <li><b>error</b> (256)</li>
3851 <li><b>"+"</b> (258) <a href="#rule_2">2</a> <a href="#rule_3">3</a></li>
3852 <li><b>"⊕"</b> (259) <a href="#rule_1">1</a></li>
3853 <li><b>"number"</b> (260) <a href="#rule_4">4</a></li>
3854 <li><b>"Ñùṃéℝô"</b> (261) <a href="#rule_5">5</a></li>
3857 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
3860 <li><b>$accept</b> (7)
3862 <li>on left: <a href="#rule_0">0</a></li>
3867 <li>on left: <a href="#rule_1">1</a> <a href="#rule_2">2</a> <a href="#rule_3">3</a> <a href="#rule_4">4</a> <a href="#rule_5">5</a></li>
3868 <li>on right: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a> <a href="#rule_3">3</a></li>
3871 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
3873 <h3><a name="state_0" id="state_0"></a>State 0</h3>
3875 <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="dot">•</span> <span class="i">exp</span> <b>$end</b>
3876 <a href="#rule_1"> 1</a> <span class="i">exp</span> → <span class="dot">•</span> <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
3877 <a href="#rule_2"> 2</a> | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3878 <a href="#rule_3"> 3</a> | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3879 <a href="#rule_4"> 4</a> | <span class="dot">•</span> <b>"number"</b>
3880 <a href="#rule_5"> 5</a> | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3882 "number" <a href="#state_1">shift, and go to state 1</a>
3883 "Ñùṃéℝô" <a href="#state_2">shift, and go to state 2</a>
3885 exp <a href="#state_3">go to state 3</a>
3888 <h3><a name="state_1" id="state_1"></a>State 1</h3>
3890 <p class="pre"> <a href="#rule_4"> 4</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
3892 $default <a href="#rule_4">reduce using rule 4</a> (exp)
3895 <h3><a name="state_2" id="state_2"></a>State 2</h3>
3897 <p class="pre"> <a href="#rule_5"> 5</a> <span class="i">exp</span> → <b>"Ñùṃéℝô"</b> <span class="dot">•</span>
3899 $default <a href="#rule_5">reduce using rule 5</a> (exp)
3902 <h3><a name="state_3" id="state_3"></a>State 3</h3>
3904 <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">exp</span> <span class="dot">•</span> <b>$end</b>
3905 <a href="#rule_1"> 1</a> <span class="i">exp</span> → <span class="i">exp</span> <span class="dot">•</span> <b>"⊕"</b> <span class="i">exp</span>
3906 <a href="#rule_2"> 2</a> | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3907 <a href="#rule_3"> 3</a> | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3909 $end <a href="#state_4">shift, and go to state 4</a>
3910 "+" <a href="#state_5">shift, and go to state 5</a>
3911 "⊕" <a href="#state_6">shift, and go to state 6</a>
3914 <h3><a name="state_4" id="state_4"></a>State 4</h3>
3916 <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">exp</span> <b>$end</b> <span class="dot">•</span>
3921 <h3><a name="state_5" id="state_5"></a>State 5</h3>
3923 <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">exp</span> → <span class="dot">•</span> <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
3924 <a href="#rule_2"> 2</a> | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3925 <a href="#rule_2"> 2</a> | <span class="i">exp</span> <b>"+"</b> <span class="dot">•</span> <span class="i">exp</span>
3926 <a href="#rule_3"> 3</a> | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3927 <a href="#rule_3"> 3</a> | <span class="i">exp</span> <b>"+"</b> <span class="dot">•</span> <span class="i">exp</span>
3928 <a href="#rule_4"> 4</a> | <span class="dot">•</span> <b>"number"</b>
3929 <a href="#rule_5"> 5</a> | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3931 "number" <a href="#state_1">shift, and go to state 1</a>
3932 "Ñùṃéℝô" <a href="#state_2">shift, and go to state 2</a>
3934 exp <a href="#state_7">go to state 7</a>
3937 <h3><a name="state_6" id="state_6"></a>State 6</h3>
3939 <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">exp</span> → <span class="dot">•</span> <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
3940 <a href="#rule_1"> 1</a> | <span class="i">exp</span> <b>"⊕"</b> <span class="dot">•</span> <span class="i">exp</span>
3941 <a href="#rule_2"> 2</a> | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3942 <a href="#rule_3"> 3</a> | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3943 <a href="#rule_4"> 4</a> | <span class="dot">•</span> <b>"number"</b>
3944 <a href="#rule_5"> 5</a> | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3946 "number" <a href="#state_1">shift, and go to state 1</a>
3947 "Ñùṃéℝô" <a href="#state_2">shift, and go to state 2</a>
3949 exp <a href="#state_8">go to state 8</a>
3952 <h3><a name="state_7" id="state_7"></a>State 7</h3>
3954 <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">exp</span> → <span class="i">exp</span> <span class="dot">•</span> <b>"⊕"</b> <span class="i">exp</span>
3955 <a href="#rule_2"> 2</a> | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3956 <a href="#rule_2"> 2</a> | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span> <span class="dot">•</span> [$end, "+", "⊕"]
3957 <a href="#rule_3"> 3</a> | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3958 <a href="#rule_3"> 3</a> | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span> <span class="dot">•</span> [$end, "+", "⊕"]
3960 "⊕" <a href="#state_6">shift, and go to state 6</a>
3962 $end <a href="#rule_2">reduce using rule 2</a> (exp)
3963 $end [<a href="#rule_3">reduce using rule 3</a> (exp)]
3964 "+" <a href="#rule_2">reduce using rule 2</a> (exp)
3965 "+" [<a href="#rule_3">reduce using rule 3</a> (exp)]
3966 "⊕" [<a href="#rule_2">reduce using rule 2</a> (exp)]
3967 "⊕" [<a href="#rule_3">reduce using rule 3</a> (exp)]
3968 $default <a href="#rule_2">reduce using rule 2</a> (exp)
3970 Conflict between <a href="#rule_2">rule 2</a> and token "+" resolved as reduce (%left "+").
3973 <h3><a name="state_8" id="state_8"></a>State 8</h3>
3975 <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">exp</span> → <span class="i">exp</span> <span class="dot">•</span> <b>"⊕"</b> <span class="i">exp</span>
3976 <a href="#rule_1"> 1</a> | <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span> <span class="dot">•</span> [$end, "+", "⊕"]
3977 <a href="#rule_2"> 2</a> | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3978 <a href="#rule_3"> 3</a> | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3980 "+" <a href="#state_5">shift, and go to state 5</a>
3981 "⊕" <a href="#state_6">shift, and go to state 6</a>
3983 "+" [<a href="#rule_1">reduce using rule 1</a> (exp)]
3984 "⊕" [<a href="#rule_1">reduce using rule 1</a> (exp)]
3985 $default <a href="#rule_1">reduce using rule 1</a> (exp)
3988 <div id="footer"><hr />This document was generated using
3989 <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
3990 GNU Bison ]AT_PACKAGE_VERSION[</a>
3991 XML Automaton Report.<br />
3992 Verbatim copying and distribution of this entire page is
3993 permitted in any medium, provided this notice is preserved.</div></body>
3997 AT_BISON_OPTION_POPDEFS