news: update
[bison.git] / tests / report.at
blob83c418f6b152879c915fe3eecbd8190496312efd
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],
27 [AT_KEYWORDS([html])
28 AT_CHECK([sed -e 's|content="text/html; charset=UTF-8"|content="text/html;charset=UTF-8"|g' $1],
29           [],
30           [$2])])
33 ## --------- ##
34 ## Reports.  ##
35 ## --------- ##
37 AT_SETUP([Reports])
39 AT_KEYWORDS([report])
41 AT_BISON_OPTION_PUSHDEFS
42 AT_DATA([input.yy],
43 [[%token
44   END  0  "end of file"
45   ASSIGN  ":="
46   INCR    "incr"
49 %token <std::string> IDENTIFIER "identifier"
50 %type <std::string> id
51 %token <int> NUMBER "number"
52 %type  <int> exp
55 %start unit;
56 unit: assignments exp  { driver.result = $2; };
58 assignments:
59   %empty                 {}
60 | assignments assignment {};
62 assignment:
63   id ":=" exp { driver.variables[$id] = $exp; };
65 id:
66   "identifier";
68 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); };
73 ]])
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], [],
80 [[Grammar
82     0 $accept: unit "end of file"
84     1 unit: assignments exp
86     2 assignments: %empty
87     3            | assignments assignment
89     4 assignment: id ":=" exp
91     5 id: "identifier"
93     6 @1: %empty
95     7 @2: %empty
97     8 exp: "incr" exp @1 @2 exp
98     9    | "(" exp ")"
99    10    | "identifier"
100    11    | "number"
103 Terminals, with rules where they appear
105     "end of file" (0) 0
106     error (256)
107     ":=" (258) 4
108     "incr" (259) 8
109     "identifier" <std::string> (260) 5 10
110     "number" <int> (261) 11
111     "(" (262) 9
112     ")" (263) 9
115 Nonterminals, with rules where they appear
117     $accept (9)
118         on left: 0
119     unit (10)
120         on left: 1
121         on right: 0
122     assignments (11)
123         on left: 2 3
124         on right: 1 3
125     assignment (12)
126         on left: 4
127         on right: 3
128     id <std::string> (13)
129         on left: 5
130         on right: 4
131     exp <int> (14)
132         on left: 8 9 10 11
133         on right: 1 4 8 9
134     @1 <int> (15)
135         on left: 6
136         on right: 8
137     @2 <int> (16)
138         on left: 7
139         on right: 8
142 State 0
144     0 $accept: . unit "end of file"
146     $default  reduce using rule 2 (assignments)
148     unit         go to state 1
149     assignments  go to state 2
152 State 1
154     0 $accept: unit . "end of file"
156     "end of file"  shift, and go to state 3
159 State 2
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
170     id          go to state 9
171     exp         go to state 10
174 State 3
176     0 $accept: unit "end of file" .
178     $default  accept
181 State 4
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
190     exp  go to state 12
193 State 5
195     5 id: "identifier" .
196    10 exp: "identifier" .
198     "end of file"  reduce using rule 10 (exp)
199     $default       reduce using rule 5 (id)
202 State 6
204    11 exp: "number" .
206     $default  reduce using rule 11 (exp)
209 State 7
211     9 exp: "(" . 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
218     exp  go to state 13
221 State 8
223     3 assignments: assignments assignment .
225     $default  reduce using rule 3 (assignments)
228 State 9
230     4 assignment: id . ":=" exp
232     ":="  shift, and go to state 14
235 State 10
237     1 unit: assignments exp .
239     $default  reduce using rule 1 (unit)
242 State 11
244    10 exp: "identifier" .
246     $default  reduce using rule 10 (exp)
249 State 12
251     8 exp: "incr" exp . @1 @2 exp
253     $default  reduce using rule 6 (@1)
255     @1  go to state 15
258 State 13
260     9 exp: "(" exp . ")"
262     ")"  shift, and go to state 16
265 State 14
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
274     exp  go to state 17
277 State 15
279     8 exp: "incr" exp @1 . @2 exp
281     $default  reduce using rule 7 (@2)
283     @2  go to state 18
286 State 16
288     9 exp: "(" exp ")" .
290     $default  reduce using rule 9 (exp)
293 State 17
295     4 assignment: id ":=" exp .
297     $default  reduce using rule 4 (assignment)
300 State 18
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
309     exp  go to state 19
312 State 19
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], [],
326 [[Grammar
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
337     5 id: "identifier"
339     6 @1: %empty
341     7 @2: %empty
343     8 exp: "incr" exp @1 @2 exp
344     9    | "(" exp ")"
345    10    | "identifier"
346    11    | "number"
349 Terminals, with rules where they appear
351     "end of file" (0) 0
352     error (256)
353     ":=" (258) 4
354     "incr" (259) 8
355     "identifier" <std::string> (260) 5 10
356     "number" <int> (261) 11
357     "(" (262) 9
358     ")" (263) 9
361 Nonterminals, with rules where they appear
363     $accept (9)
364         on left: 0
365     unit (10)
366         on left: 1
367         on right: 0
368     assignments (11)
369         on left: 2 3
370         on right: 1 3
371     assignment (12)
372         on left: 4
373         on right: 3
374     id <std::string> (13)
375         on left: 5
376         on right: 4
377     exp <int> (14)
378         on left: 8 9 10 11
379         on right: 1 4 8 9
380     @1 <int> (15)
381         on left: 6
382         on right: 8
383     @2 <int> (16)
384         on left: 7
385         on right: 8
388 State 0
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)
397     unit         go to state 1
398     assignments  go to state 2
401 State 1
403     0 $accept: unit . "end of file"
405     "end of file"  shift, and go to state 3
408 State 2
410     1 unit: assignments . exp
411     3 assignments: assignments . assignment
412     4 assignment: . id ":=" exp
413     5 id: . "identifier"
414     8 exp: . "incr" exp @1 @2 exp
415     9    | . "(" exp ")"
416    10    | . "identifier"
417    11    | . "number"
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
425     id          go to state 9
426     exp         go to state 10
429 State 3
431     0 $accept: unit "end of file" .
433     $default  accept
436 State 4
438     8 exp: . "incr" exp @1 @2 exp
439     8    | "incr" . exp @1 @2 exp
440     9    | . "(" exp ")"
441    10    | . "identifier"
442    11    | . "number"
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
449     exp  go to state 12
452 State 5
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)
461 State 6
463    11 exp: "number" .
465     $default  reduce using rule 11 (exp)
468 State 7
470     8 exp: . "incr" exp @1 @2 exp
471     9    | . "(" exp ")"
472     9    | "(" . exp ")"
473    10    | . "identifier"
474    11    | . "number"
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
481     exp  go to state 13
484 State 8
486     3 assignments: assignments assignment .
488     $default  reduce using rule 3 (assignments)
491 State 9
493     4 assignment: id . ":=" exp
495     ":="  shift, and go to state 14
498 State 10
500     1 unit: assignments exp .
502     $default  reduce using rule 1 (unit)
505 State 11
507    10 exp: "identifier" .
509     $default  reduce using rule 10 (exp)
512 State 12
514     6 @1: %empty .
515     8 exp: "incr" exp . @1 @2 exp
517     $default  reduce using rule 6 (@1)
519     @1  go to state 15
522 State 13
524     9 exp: "(" exp . ")"
526     ")"  shift, and go to state 16
529 State 14
531     4 assignment: id ":=" . exp
532     8 exp: . "incr" exp @1 @2 exp
533     9    | . "(" exp ")"
534    10    | . "identifier"
535    11    | . "number"
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
542     exp  go to state 17
545 State 15
547     7 @2: %empty .
548     8 exp: "incr" exp @1 . @2 exp
550     $default  reduce using rule 7 (@2)
552     @2  go to state 18
555 State 16
557     9 exp: "(" exp ")" .
559     $default  reduce using rule 9 (exp)
562 State 17
564     4 assignment: id ":=" exp .
566     $default  reduce using rule 4 (assignment)
569 State 18
571     8 exp: . "incr" exp @1 @2 exp
572     8    | "incr" exp @1 @2 . exp
573     9    | . "(" exp ")"
574    10    | . "identifier"
575    11    | . "number"
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
582     exp  go to state 19
585 State 19
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/>.
599 digraph "input.yy"
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>
695   <grammar>
696     <rules>
697       <rule number="0" usefulness="useful">
698         <lhs>$accept</lhs>
699         <rhs>
700           <symbol>unit</symbol>
701           <symbol>&quot;end of file&quot;</symbol>
702         </rhs>
703       </rule>
704       <rule number="1" usefulness="useful">
705         <lhs>unit</lhs>
706         <rhs>
707           <symbol>assignments</symbol>
708           <symbol>exp</symbol>
709         </rhs>
710       </rule>
711       <rule number="2" usefulness="useful">
712         <lhs>assignments</lhs>
713         <rhs>
714           <empty/>
715         </rhs>
716       </rule>
717       <rule number="3" usefulness="useful">
718         <lhs>assignments</lhs>
719         <rhs>
720           <symbol>assignments</symbol>
721           <symbol>assignment</symbol>
722         </rhs>
723       </rule>
724       <rule number="4" usefulness="useful">
725         <lhs>assignment</lhs>
726         <rhs>
727           <symbol>id</symbol>
728           <symbol>&quot;:=&quot;</symbol>
729           <symbol>exp</symbol>
730         </rhs>
731       </rule>
732       <rule number="5" usefulness="useful">
733         <lhs>id</lhs>
734         <rhs>
735           <symbol>&quot;identifier&quot;</symbol>
736         </rhs>
737       </rule>
738       <rule number="6" usefulness="useful">
739         <lhs>@1</lhs>
740         <rhs>
741           <empty/>
742         </rhs>
743       </rule>
744       <rule number="7" usefulness="useful">
745         <lhs>@2</lhs>
746         <rhs>
747           <empty/>
748         </rhs>
749       </rule>
750       <rule number="8" usefulness="useful">
751         <lhs>exp</lhs>
752         <rhs>
753           <symbol>&quot;incr&quot;</symbol>
754           <symbol>exp</symbol>
755           <symbol>@1</symbol>
756           <symbol>@2</symbol>
757           <symbol>exp</symbol>
758         </rhs>
759       </rule>
760       <rule number="9" usefulness="useful">
761         <lhs>exp</lhs>
762         <rhs>
763           <symbol>&quot;(&quot;</symbol>
764           <symbol>exp</symbol>
765           <symbol>&quot;)&quot;</symbol>
766         </rhs>
767       </rule>
768       <rule number="10" usefulness="useful">
769         <lhs>exp</lhs>
770         <rhs>
771           <symbol>&quot;identifier&quot;</symbol>
772         </rhs>
773       </rule>
774       <rule number="11" usefulness="useful">
775         <lhs>exp</lhs>
776         <rhs>
777           <symbol>&quot;number&quot;</symbol>
778         </rhs>
779       </rule>
780     </rules>
781     <terminals>
782       <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" 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="&quot;:=&quot;" type="" usefulness="useful"/>
785       <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
786       <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
787       <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" type="int" usefulness="useful"/>
788       <terminal symbol-number="7" token-number="262" name="&quot;(&quot;" type="" usefulness="useful"/>
789       <terminal symbol-number="8" token-number="263" name="&quot;)&quot;" type="" usefulness="useful"/>
790     </terminals>
791     <nonterminals>
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"/>
800     </nonterminals>
801   </grammar>
803   <automaton>
805     <state number="0">
806       <itemset>
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"/>
811       </itemset>
812       <actions>
813         <transitions>
814           <transition type="goto" symbol="unit" state="1"/>
815           <transition type="goto" symbol="assignments" state="2"/>
816         </transitions>
817         <errors/>
818         <reductions>
819           <reduction symbol="$default" rule="2" enabled="true"/>
820         </reductions>
821       </actions>
822       <solved-conflicts/>
823     </state>
825     <state number="1">
826       <itemset>
827         <item rule-number="0" dot="1"/>
828       </itemset>
829       <actions>
830         <transitions>
831           <transition type="shift" symbol="&quot;end of file&quot;" state="3"/>
832         </transitions>
833         <errors/>
834         <reductions/>
835       </actions>
836       <solved-conflicts/>
837     </state>
839     <state number="2">
840       <itemset>
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"/>
849       </itemset>
850       <actions>
851         <transitions>
852           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
853           <transition type="shift" symbol="&quot;identifier&quot;" state="5"/>
854           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
855           <transition type="shift" symbol="&quot;(&quot;" 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"/>
859         </transitions>
860         <errors/>
861         <reductions/>
862       </actions>
863       <solved-conflicts/>
864     </state>
866     <state number="3">
867       <itemset>
868         <item rule-number="0" dot="2"/>
869       </itemset>
870       <actions>
871         <transitions/>
872         <errors/>
873         <reductions>
874           <reduction symbol="$default" rule="accept" enabled="true"/>
875         </reductions>
876       </actions>
877       <solved-conflicts/>
878     </state>
880     <state number="4">
881       <itemset>
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"/>
887       </itemset>
888       <actions>
889         <transitions>
890           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
891           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
892           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
893           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
894           <transition type="goto" symbol="exp" state="12"/>
895         </transitions>
896         <errors/>
897         <reductions/>
898       </actions>
899       <solved-conflicts/>
900     </state>
902     <state number="5">
903       <itemset>
904         <item rule-number="5" dot="1">
905           <lookaheads>
906             <symbol>&quot;:=&quot;</symbol>
907           </lookaheads>
908         </item>
909         <item rule-number="10" dot="1">
910           <lookaheads>
911             <symbol>&quot;end of file&quot;</symbol>
912           </lookaheads>
913         </item>
914       </itemset>
915       <actions>
916         <transitions/>
917         <errors/>
918         <reductions>
919           <reduction symbol="&quot;end of file&quot;" rule="10" enabled="true"/>
920           <reduction symbol="$default" rule="5" enabled="true"/>
921         </reductions>
922       </actions>
923       <solved-conflicts/>
924     </state>
926     <state number="6">
927       <itemset>
928         <item rule-number="11" dot="1"/>
929       </itemset>
930       <actions>
931         <transitions/>
932         <errors/>
933         <reductions>
934           <reduction symbol="$default" rule="11" enabled="true"/>
935         </reductions>
936       </actions>
937       <solved-conflicts/>
938     </state>
940     <state number="7">
941       <itemset>
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"/>
947       </itemset>
948       <actions>
949         <transitions>
950           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
951           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
952           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
953           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
954           <transition type="goto" symbol="exp" state="13"/>
955         </transitions>
956         <errors/>
957         <reductions/>
958       </actions>
959       <solved-conflicts/>
960     </state>
962     <state number="8">
963       <itemset>
964         <item rule-number="3" dot="2"/>
965       </itemset>
966       <actions>
967         <transitions/>
968         <errors/>
969         <reductions>
970           <reduction symbol="$default" rule="3" enabled="true"/>
971         </reductions>
972       </actions>
973       <solved-conflicts/>
974     </state>
976     <state number="9">
977       <itemset>
978         <item rule-number="4" dot="1"/>
979       </itemset>
980       <actions>
981         <transitions>
982           <transition type="shift" symbol="&quot;:=&quot;" state="14"/>
983         </transitions>
984         <errors/>
985         <reductions/>
986       </actions>
987       <solved-conflicts/>
988     </state>
990     <state number="10">
991       <itemset>
992         <item rule-number="1" dot="2"/>
993       </itemset>
994       <actions>
995         <transitions/>
996         <errors/>
997         <reductions>
998           <reduction symbol="$default" rule="1" enabled="true"/>
999         </reductions>
1000       </actions>
1001       <solved-conflicts/>
1002     </state>
1004     <state number="11">
1005       <itemset>
1006         <item rule-number="10" dot="1"/>
1007       </itemset>
1008       <actions>
1009         <transitions/>
1010         <errors/>
1011         <reductions>
1012           <reduction symbol="$default" rule="10" enabled="true"/>
1013         </reductions>
1014       </actions>
1015       <solved-conflicts/>
1016     </state>
1018     <state number="12">
1019       <itemset>
1020         <item rule-number="6" dot="0"/>
1021         <item rule-number="8" dot="2"/>
1022       </itemset>
1023       <actions>
1024         <transitions>
1025           <transition type="goto" symbol="@1" state="15"/>
1026         </transitions>
1027         <errors/>
1028         <reductions>
1029           <reduction symbol="$default" rule="6" enabled="true"/>
1030         </reductions>
1031       </actions>
1032       <solved-conflicts/>
1033     </state>
1035     <state number="13">
1036       <itemset>
1037         <item rule-number="9" dot="2"/>
1038       </itemset>
1039       <actions>
1040         <transitions>
1041           <transition type="shift" symbol="&quot;)&quot;" state="16"/>
1042         </transitions>
1043         <errors/>
1044         <reductions/>
1045       </actions>
1046       <solved-conflicts/>
1047     </state>
1049     <state number="14">
1050       <itemset>
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"/>
1056       </itemset>
1057       <actions>
1058         <transitions>
1059           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
1060           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
1061           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
1062           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
1063           <transition type="goto" symbol="exp" state="17"/>
1064         </transitions>
1065         <errors/>
1066         <reductions/>
1067       </actions>
1068       <solved-conflicts/>
1069     </state>
1071     <state number="15">
1072       <itemset>
1073         <item rule-number="7" dot="0"/>
1074         <item rule-number="8" dot="3"/>
1075       </itemset>
1076       <actions>
1077         <transitions>
1078           <transition type="goto" symbol="@2" state="18"/>
1079         </transitions>
1080         <errors/>
1081         <reductions>
1082           <reduction symbol="$default" rule="7" enabled="true"/>
1083         </reductions>
1084       </actions>
1085       <solved-conflicts/>
1086     </state>
1088     <state number="16">
1089       <itemset>
1090         <item rule-number="9" dot="3"/>
1091       </itemset>
1092       <actions>
1093         <transitions/>
1094         <errors/>
1095         <reductions>
1096           <reduction symbol="$default" rule="9" enabled="true"/>
1097         </reductions>
1098       </actions>
1099       <solved-conflicts/>
1100     </state>
1102     <state number="17">
1103       <itemset>
1104         <item rule-number="4" dot="3"/>
1105       </itemset>
1106       <actions>
1107         <transitions/>
1108         <errors/>
1109         <reductions>
1110           <reduction symbol="$default" rule="4" enabled="true"/>
1111         </reductions>
1112       </actions>
1113       <solved-conflicts/>
1114     </state>
1116     <state number="18">
1117       <itemset>
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"/>
1123       </itemset>
1124       <actions>
1125         <transitions>
1126           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
1127           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
1128           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
1129           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
1130           <transition type="goto" symbol="exp" state="19"/>
1131         </transitions>
1132         <errors/>
1133         <reductions/>
1134       </actions>
1135       <solved-conflicts/>
1136     </state>
1138     <state number="19">
1139       <itemset>
1140         <item rule-number="8" dot="5"/>
1141       </itemset>
1142       <actions>
1143         <transitions/>
1144         <errors/>
1145         <reductions>
1146           <reduction symbol="$default" rule="8" enabled="true"/>
1147         </reductions>
1148       </actions>
1149       <solved-conflicts/>
1150     </state>
1151   </automaton>
1152 </bison-xml-report>
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/">
1160   <head>
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">
1164       body {
1165         font-family: "Nimbus Sans L", Arial, sans-serif;
1166         font-size: 9pt;
1167       }
1168       a:link {
1169         color: #1f00ff;
1170         text-decoration: none;
1171       }
1172       a:visited {
1173         color: #1f00ff;
1174         text-decoration: none;
1175       }
1176       a:hover {
1177         color: red;
1178       }
1179       #menu a {
1180         text-decoration: underline;
1181       }
1182       .i {
1183         font-style: italic;
1184       }
1185       .pre {
1186         font-family: monospace;
1187         white-space: pre;
1188       }
1189       ol.decimal {
1190         list-style-type: decimal;
1191       }
1192       ol.lower-alpha {
1193         list-style-type: lower-alpha;
1194       }
1195       .dot {
1196         color: #cc0000;
1197       }
1198       #footer {
1199         margin-top: 3.5em;
1200         font-size: 7pt;
1201       }
1202       </style>
1203   </head>
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>
1215 <p class="pre">
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>
1235 </p>
1237 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
1239 <ul>
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> &lt;std::string&gt; (260) <a href="#rule_5">5</a> <a href="#rule_10">10</a></li>
1245   <li><b>"number"</b> &lt;int&gt; (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>
1248 </ul>
1250 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
1252 <ul>
1253   <li><b>$accept</b> (9)
1254     <ul>
1255       <li>on left: <a href="#rule_0">0</a></li>
1256     </ul>
1257   </li>
1258   <li><b>unit</b> (10)
1259     <ul>
1260       <li>on left: <a href="#rule_1">1</a></li>
1261       <li>on right: <a href="#rule_0">0</a></li>
1262     </ul>
1263   </li>
1264   <li><b>assignments</b> (11)
1265     <ul>
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>
1268     </ul>
1269   </li>
1270   <li><b>assignment</b> (12)
1271     <ul>
1272       <li>on left: <a href="#rule_4">4</a></li>
1273       <li>on right: <a href="#rule_3">3</a></li>
1274     </ul>
1275   </li>
1276   <li><b>id</b> &lt;std::string&gt; (13)
1277     <ul>
1278       <li>on left: <a href="#rule_5">5</a></li>
1279       <li>on right: <a href="#rule_4">4</a></li>
1280     </ul>
1281   </li>
1282   <li><b>exp</b> &lt;int&gt; (14)
1283     <ul>
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>
1286     </ul>
1287   </li>
1288   <li><b>@1</b> &lt;int&gt; (15)
1289     <ul>
1290       <li>on left: <a href="#rule_6">6</a></li>
1291       <li>on right: <a href="#rule_8">8</a></li>
1292     </ul>
1293   </li>
1294   <li><b>@2</b> &lt;int&gt; (16)
1295     <ul>
1296       <li>on left: <a href="#rule_7">7</a></li>
1297       <li>on right: <a href="#rule_8">8</a></li>
1298     </ul>
1299   </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>
1313 </p>
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>
1320 </p>
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>
1341 </p>
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>
1347     $default  accept
1348 </p>
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>
1364 </p>
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)
1373 </p>
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)
1380 </p>
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>
1396 </p>
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)
1403 </p>
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>
1410 </p>
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)
1417 </p>
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)
1424 </p>
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>
1434 </p>
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>
1441 </p>
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>
1457 </p>
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>
1467 </p>
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)
1474 </p>
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)
1481 </p>
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>
1497 </p>
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)
1504 </p>
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>
1512 </html>
1515 AT_BISON_OPTION_POPDEFS
1516 AT_CLEANUP
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],
1532 dnl [[%token
1533 dnl   END  0  "end of file"
1534 dnl   ASSIGN  ":="
1535 dnl   INCR    "incr"
1536 dnl ;
1538 dnl %token <std::string> IDENTIFIER "identifier"
1539 dnl %type <std::string> id
1540 dnl %token <int> NUMBER "number"
1541 dnl %type  <int> exp
1543 dnl %%
1544 dnl %start unit assignments exp;
1545 dnl unit: assignments exp  { driver.result = $2; };
1547 dnl assignments:
1548 dnl   %empty                 {}
1549 dnl | assignments assignment {};
1551 dnl assignment:
1552 dnl   id ":=" exp { driver.variables[$id] = $exp; };
1554 dnl id:
1555 dnl   "identifier";
1557 dnl 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); };
1562 dnl ]])
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], [],
1568 dnl [[Grammar
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"
1583 dnl     8 @1: %empty
1585 dnl     9 @2: %empty
1587 dnl    10 exp: "incr" exp @1 @2 exp
1588 dnl    11    | "(" exp ")"
1589 dnl    12    | "identifier"
1590 dnl    13    | "number"
1593 dnl Terminals, with rules where they appear
1595 dnl     "end of file" (0) 0 1 2
1596 dnl     error (256)
1597 dnl     ":=" (258) 6
1598 dnl     "incr" (259) 10
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
1604 dnl     "(" (265) 11
1605 dnl     ")" (266) 11
1608 dnl Nonterminals, with rules where they appear
1610 dnl     $accept (12)
1611 dnl         on left: 0 1 2
1612 dnl     unit (13)
1613 dnl         on left: 3
1614 dnl         on right: 0
1615 dnl     assignments (14)
1616 dnl         on left: 4 5
1617 dnl         on right: 1 3 5
1618 dnl     assignment (15)
1619 dnl         on left: 6
1620 dnl         on right: 5
1621 dnl     id <std::string> (16)
1622 dnl         on left: 7
1623 dnl         on right: 6
1624 dnl     exp <int> (17)
1625 dnl         on left: 10 11 12 13
1626 dnl         on right: 2 3 6 10 11
1627 dnl     @1 <int> (18)
1628 dnl         on left: 8
1629 dnl         on right: 10
1630 dnl     @2 <int> (19)
1631 dnl         on left: 9
1632 dnl         on right: 10
1635 dnl State 0
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
1646 dnl State 1
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
1659 dnl State 2
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
1670 dnl State 3
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"
1676 dnl    13    | . "number"
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
1686 dnl State 4
1688 dnl     0 $accept: YY_PARSE_unit unit . "end of file"
1690 dnl     "end of file"  shift, and go to state 12
1693 dnl State 5
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"
1702 dnl    13    | . "number"
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
1714 dnl State 6
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
1728 dnl State 7
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"
1734 dnl    13    | . "number"
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
1744 dnl State 8
1746 dnl    12 exp: "identifier" .
1748 dnl     $default  reduce using rule 12 (exp)
1751 dnl State 9
1753 dnl    13 exp: "number" .
1755 dnl     $default  reduce using rule 13 (exp)
1758 dnl State 10
1760 dnl    10 exp: . "incr" exp @1 @2 exp
1761 dnl    11    | . "(" exp ")"
1762 dnl    11    | "(" . exp ")"
1763 dnl    12    | . "identifier"
1764 dnl    13    | . "number"
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
1774 dnl State 11
1776 dnl     2 $accept: YY_PARSE_exp exp . "end of file"
1778 dnl     "end of file"  shift, and go to state 21
1781 dnl State 12
1783 dnl     0 $accept: YY_PARSE_unit unit "end of file" .
1785 dnl     $default  accept
1788 dnl State 13
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)
1797 dnl State 14
1799 dnl     5 assignments: assignments assignment .
1801 dnl     $default  reduce using rule 5 (assignments)
1804 dnl State 15
1806 dnl     6 assignment: id . ":=" exp
1808 dnl     ":="  shift, and go to state 22
1811 dnl State 16
1813 dnl     3 unit: assignments exp .
1815 dnl     $default  reduce using rule 3 (unit)
1818 dnl State 17
1820 dnl     1 $accept: YY_PARSE_assignments assignments "end of file" .
1822 dnl     $default  accept
1825 dnl State 18
1827 dnl     7 id: "identifier" .
1829 dnl     $default  reduce using rule 7 (id)
1832 dnl State 19
1834 dnl     8 @1: %empty .
1835 dnl    10 exp: "incr" exp . @1 @2 exp
1837 dnl     $default  reduce using rule 8 (@1)
1839 dnl     @1  go to state 23
1842 dnl State 20
1844 dnl    11 exp: "(" exp . ")"
1846 dnl     ")"  shift, and go to state 24
1849 dnl State 21
1851 dnl     2 $accept: YY_PARSE_exp exp "end of file" .
1853 dnl     $default  accept
1856 dnl State 22
1858 dnl     6 assignment: id ":=" . exp
1859 dnl    10 exp: . "incr" exp @1 @2 exp
1860 dnl    11    | . "(" exp ")"
1861 dnl    12    | . "identifier"
1862 dnl    13    | . "number"
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
1872 dnl State 23
1874 dnl     9 @2: %empty .
1875 dnl    10 exp: "incr" exp @1 . @2 exp
1877 dnl     $default  reduce using rule 9 (@2)
1879 dnl     @2  go to state 26
1882 dnl State 24
1884 dnl    11 exp: "(" exp ")" .
1886 dnl     $default  reduce using rule 11 (exp)
1889 dnl State 25
1891 dnl     6 assignment: id ":=" exp .
1893 dnl     $default  reduce using rule 6 (assignment)
1896 dnl State 26
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"
1902 dnl    13    | . "number"
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
1912 dnl State 27
1914 dnl    10 exp: "incr" exp @1 @2 exp .
1916 dnl     $default  reduce using rule 10 (exp)
1917 dnl ]])
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"
1927 dnl {
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]
2041 dnl }
2042 dnl ]])
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>
2052 dnl   <grammar>
2053 dnl     <rules>
2054 dnl       <rule number="0" usefulness="useful">
2055 dnl         <lhs>$accept</lhs>
2056 dnl         <rhs>
2057 dnl           <symbol>YY_PARSE_unit</symbol>
2058 dnl           <symbol>unit</symbol>
2059 dnl           <symbol>&quot;end of file&quot;</symbol>
2060 dnl         </rhs>
2061 dnl       </rule>
2062 dnl       <rule number="1" usefulness="useful">
2063 dnl         <lhs>$accept</lhs>
2064 dnl         <rhs>
2065 dnl           <symbol>YY_PARSE_assignments</symbol>
2066 dnl           <symbol>assignments</symbol>
2067 dnl           <symbol>&quot;end of file&quot;</symbol>
2068 dnl         </rhs>
2069 dnl       </rule>
2070 dnl       <rule number="2" usefulness="useful">
2071 dnl         <lhs>$accept</lhs>
2072 dnl         <rhs>
2073 dnl           <symbol>YY_PARSE_exp</symbol>
2074 dnl           <symbol>exp</symbol>
2075 dnl           <symbol>&quot;end of file&quot;</symbol>
2076 dnl         </rhs>
2077 dnl       </rule>
2078 dnl       <rule number="3" usefulness="useful">
2079 dnl         <lhs>unit</lhs>
2080 dnl         <rhs>
2081 dnl           <symbol>assignments</symbol>
2082 dnl           <symbol>exp</symbol>
2083 dnl         </rhs>
2084 dnl       </rule>
2085 dnl       <rule number="4" usefulness="useful">
2086 dnl         <lhs>assignments</lhs>
2087 dnl         <rhs>
2088 dnl           <empty/>
2089 dnl         </rhs>
2090 dnl       </rule>
2091 dnl       <rule number="5" usefulness="useful">
2092 dnl         <lhs>assignments</lhs>
2093 dnl         <rhs>
2094 dnl           <symbol>assignments</symbol>
2095 dnl           <symbol>assignment</symbol>
2096 dnl         </rhs>
2097 dnl       </rule>
2098 dnl       <rule number="6" usefulness="useful">
2099 dnl         <lhs>assignment</lhs>
2100 dnl         <rhs>
2101 dnl           <symbol>id</symbol>
2102 dnl           <symbol>&quot;:=&quot;</symbol>
2103 dnl           <symbol>exp</symbol>
2104 dnl         </rhs>
2105 dnl       </rule>
2106 dnl       <rule number="7" usefulness="useful">
2107 dnl         <lhs>id</lhs>
2108 dnl         <rhs>
2109 dnl           <symbol>&quot;identifier&quot;</symbol>
2110 dnl         </rhs>
2111 dnl       </rule>
2112 dnl       <rule number="8" usefulness="useful">
2113 dnl         <lhs>@1</lhs>
2114 dnl         <rhs>
2115 dnl           <empty/>
2116 dnl         </rhs>
2117 dnl       </rule>
2118 dnl       <rule number="9" usefulness="useful">
2119 dnl         <lhs>@2</lhs>
2120 dnl         <rhs>
2121 dnl           <empty/>
2122 dnl         </rhs>
2123 dnl       </rule>
2124 dnl       <rule number="10" usefulness="useful">
2125 dnl         <lhs>exp</lhs>
2126 dnl         <rhs>
2127 dnl           <symbol>&quot;incr&quot;</symbol>
2128 dnl           <symbol>exp</symbol>
2129 dnl           <symbol>@1</symbol>
2130 dnl           <symbol>@2</symbol>
2131 dnl           <symbol>exp</symbol>
2132 dnl         </rhs>
2133 dnl       </rule>
2134 dnl       <rule number="11" usefulness="useful">
2135 dnl         <lhs>exp</lhs>
2136 dnl         <rhs>
2137 dnl           <symbol>&quot;(&quot;</symbol>
2138 dnl           <symbol>exp</symbol>
2139 dnl           <symbol>&quot;)&quot;</symbol>
2140 dnl         </rhs>
2141 dnl       </rule>
2142 dnl       <rule number="12" usefulness="useful">
2143 dnl         <lhs>exp</lhs>
2144 dnl         <rhs>
2145 dnl           <symbol>&quot;identifier&quot;</symbol>
2146 dnl         </rhs>
2147 dnl       </rule>
2148 dnl       <rule number="13" usefulness="useful">
2149 dnl         <lhs>exp</lhs>
2150 dnl         <rhs>
2151 dnl           <symbol>&quot;number&quot;</symbol>
2152 dnl         </rhs>
2153 dnl       </rule>
2154 dnl     </rules>
2155 dnl     <terminals>
2156 dnl       <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" 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="&quot;:=&quot;" type="" usefulness="useful"/>
2159 dnl       <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
2160 dnl       <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
2161 dnl       <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" 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="&quot;(&quot;" type="" usefulness="useful"/>
2166 dnl       <terminal symbol-number="11" token-number="266" name="&quot;)&quot;" type="" usefulness="useful"/>
2167 dnl     </terminals>
2168 dnl     <nonterminals>
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"/>
2177 dnl     </nonterminals>
2178 dnl   </grammar>
2180 dnl   <automaton>
2182 dnl     <state number="0">
2183 dnl       <itemset>
2184 dnl         <item rule-number="0" dot="0"/>
2185 dnl         <item rule-number="1" dot="0"/>
2186 dnl         <item rule-number="2" dot="0"/>
2187 dnl       </itemset>
2188 dnl       <actions>
2189 dnl         <transitions>
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"/>
2193 dnl         </transitions>
2194 dnl         <errors/>
2195 dnl         <reductions/>
2196 dnl       </actions>
2197 dnl       <solved-conflicts/>
2198 dnl     </state>
2200 dnl     <state number="1">
2201 dnl       <itemset>
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"/>
2206 dnl       </itemset>
2207 dnl       <actions>
2208 dnl         <transitions>
2209 dnl           <transition type="goto" symbol="unit" state="4"/>
2210 dnl           <transition type="goto" symbol="assignments" state="5"/>
2211 dnl         </transitions>
2212 dnl         <errors/>
2213 dnl         <reductions>
2214 dnl           <reduction symbol="$default" rule="4" enabled="true"/>
2215 dnl         </reductions>
2216 dnl       </actions>
2217 dnl       <solved-conflicts/>
2218 dnl     </state>
2220 dnl     <state number="2">
2221 dnl       <itemset>
2222 dnl         <item rule-number="1" dot="1"/>
2223 dnl         <item rule-number="4" dot="0"/>
2224 dnl         <item rule-number="5" dot="0"/>
2225 dnl       </itemset>
2226 dnl       <actions>
2227 dnl         <transitions>
2228 dnl           <transition type="goto" symbol="assignments" state="6"/>
2229 dnl         </transitions>
2230 dnl         <errors/>
2231 dnl         <reductions>
2232 dnl           <reduction symbol="$default" rule="4" enabled="true"/>
2233 dnl         </reductions>
2234 dnl       </actions>
2235 dnl       <solved-conflicts/>
2236 dnl     </state>
2238 dnl     <state number="3">
2239 dnl       <itemset>
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"/>
2245 dnl       </itemset>
2246 dnl       <actions>
2247 dnl         <transitions>
2248 dnl           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2249 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2250 dnl           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2251 dnl           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2252 dnl           <transition type="goto" symbol="exp" state="11"/>
2253 dnl         </transitions>
2254 dnl         <errors/>
2255 dnl         <reductions/>
2256 dnl       </actions>
2257 dnl       <solved-conflicts/>
2258 dnl     </state>
2260 dnl     <state number="4">
2261 dnl       <itemset>
2262 dnl         <item rule-number="0" dot="2"/>
2263 dnl       </itemset>
2264 dnl       <actions>
2265 dnl         <transitions>
2266 dnl           <transition type="shift" symbol="&quot;end of file&quot;" state="12"/>
2267 dnl         </transitions>
2268 dnl         <errors/>
2269 dnl         <reductions/>
2270 dnl       </actions>
2271 dnl       <solved-conflicts/>
2272 dnl     </state>
2274 dnl     <state number="5">
2275 dnl       <itemset>
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"/>
2284 dnl       </itemset>
2285 dnl       <actions>
2286 dnl         <transitions>
2287 dnl           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2288 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="13"/>
2289 dnl           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2290 dnl           <transition type="shift" symbol="&quot;(&quot;" 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"/>
2294 dnl         </transitions>
2295 dnl         <errors/>
2296 dnl         <reductions/>
2297 dnl       </actions>
2298 dnl       <solved-conflicts/>
2299 dnl     </state>
2301 dnl     <state number="6">
2302 dnl       <itemset>
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"/>
2307 dnl       </itemset>
2308 dnl       <actions>
2309 dnl         <transitions>
2310 dnl           <transition type="shift" symbol="&quot;end of file&quot;" state="17"/>
2311 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="18"/>
2312 dnl           <transition type="goto" symbol="assignment" state="14"/>
2313 dnl           <transition type="goto" symbol="id" state="15"/>
2314 dnl         </transitions>
2315 dnl         <errors/>
2316 dnl         <reductions/>
2317 dnl       </actions>
2318 dnl       <solved-conflicts/>
2319 dnl     </state>
2321 dnl     <state number="7">
2322 dnl       <itemset>
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"/>
2328 dnl       </itemset>
2329 dnl       <actions>
2330 dnl         <transitions>
2331 dnl           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2332 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2333 dnl           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2334 dnl           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2335 dnl           <transition type="goto" symbol="exp" state="19"/>
2336 dnl         </transitions>
2337 dnl         <errors/>
2338 dnl         <reductions/>
2339 dnl       </actions>
2340 dnl       <solved-conflicts/>
2341 dnl     </state>
2343 dnl     <state number="8">
2344 dnl       <itemset>
2345 dnl         <item rule-number="12" dot="1"/>
2346 dnl       </itemset>
2347 dnl       <actions>
2348 dnl         <transitions/>
2349 dnl         <errors/>
2350 dnl         <reductions>
2351 dnl           <reduction symbol="$default" rule="12" enabled="true"/>
2352 dnl         </reductions>
2353 dnl       </actions>
2354 dnl       <solved-conflicts/>
2355 dnl     </state>
2357 dnl     <state number="9">
2358 dnl       <itemset>
2359 dnl         <item rule-number="13" dot="1"/>
2360 dnl       </itemset>
2361 dnl       <actions>
2362 dnl         <transitions/>
2363 dnl         <errors/>
2364 dnl         <reductions>
2365 dnl           <reduction symbol="$default" rule="13" enabled="true"/>
2366 dnl         </reductions>
2367 dnl       </actions>
2368 dnl       <solved-conflicts/>
2369 dnl     </state>
2371 dnl     <state number="10">
2372 dnl       <itemset>
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"/>
2378 dnl       </itemset>
2379 dnl       <actions>
2380 dnl         <transitions>
2381 dnl           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2382 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2383 dnl           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2384 dnl           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2385 dnl           <transition type="goto" symbol="exp" state="20"/>
2386 dnl         </transitions>
2387 dnl         <errors/>
2388 dnl         <reductions/>
2389 dnl       </actions>
2390 dnl       <solved-conflicts/>
2391 dnl     </state>
2393 dnl     <state number="11">
2394 dnl       <itemset>
2395 dnl         <item rule-number="2" dot="2"/>
2396 dnl       </itemset>
2397 dnl       <actions>
2398 dnl         <transitions>
2399 dnl           <transition type="shift" symbol="&quot;end of file&quot;" state="21"/>
2400 dnl         </transitions>
2401 dnl         <errors/>
2402 dnl         <reductions/>
2403 dnl       </actions>
2404 dnl       <solved-conflicts/>
2405 dnl     </state>
2407 dnl     <state number="12">
2408 dnl       <itemset>
2409 dnl         <item rule-number="0" dot="3"/>
2410 dnl       </itemset>
2411 dnl       <actions>
2412 dnl         <transitions/>
2413 dnl         <errors/>
2414 dnl         <reductions>
2415 dnl           <reduction symbol="$default" rule="accept" enabled="true"/>
2416 dnl         </reductions>
2417 dnl       </actions>
2418 dnl       <solved-conflicts/>
2419 dnl     </state>
2421 dnl     <state number="13">
2422 dnl       <itemset>
2423 dnl         <item rule-number="7" dot="1">
2424 dnl           <lookaheads>
2425 dnl             <symbol>&quot;:=&quot;</symbol>
2426 dnl           </lookaheads>
2427 dnl         </item>
2428 dnl         <item rule-number="12" dot="1">
2429 dnl           <lookaheads>
2430 dnl             <symbol>&quot;end of file&quot;</symbol>
2431 dnl           </lookaheads>
2432 dnl         </item>
2433 dnl       </itemset>
2434 dnl       <actions>
2435 dnl         <transitions/>
2436 dnl         <errors/>
2437 dnl         <reductions>
2438 dnl           <reduction symbol="&quot;end of file&quot;" rule="12" enabled="true"/>
2439 dnl           <reduction symbol="$default" rule="7" enabled="true"/>
2440 dnl         </reductions>
2441 dnl       </actions>
2442 dnl       <solved-conflicts/>
2443 dnl     </state>
2445 dnl     <state number="14">
2446 dnl       <itemset>
2447 dnl         <item rule-number="5" dot="2"/>
2448 dnl       </itemset>
2449 dnl       <actions>
2450 dnl         <transitions/>
2451 dnl         <errors/>
2452 dnl         <reductions>
2453 dnl           <reduction symbol="$default" rule="5" enabled="true"/>
2454 dnl         </reductions>
2455 dnl       </actions>
2456 dnl       <solved-conflicts/>
2457 dnl     </state>
2459 dnl     <state number="15">
2460 dnl       <itemset>
2461 dnl         <item rule-number="6" dot="1"/>
2462 dnl       </itemset>
2463 dnl       <actions>
2464 dnl         <transitions>
2465 dnl           <transition type="shift" symbol="&quot;:=&quot;" state="22"/>
2466 dnl         </transitions>
2467 dnl         <errors/>
2468 dnl         <reductions/>
2469 dnl       </actions>
2470 dnl       <solved-conflicts/>
2471 dnl     </state>
2473 dnl     <state number="16">
2474 dnl       <itemset>
2475 dnl         <item rule-number="3" dot="2"/>
2476 dnl       </itemset>
2477 dnl       <actions>
2478 dnl         <transitions/>
2479 dnl         <errors/>
2480 dnl         <reductions>
2481 dnl           <reduction symbol="$default" rule="3" enabled="true"/>
2482 dnl         </reductions>
2483 dnl       </actions>
2484 dnl       <solved-conflicts/>
2485 dnl     </state>
2487 dnl     <state number="17">
2488 dnl       <itemset>
2489 dnl         <item rule-number="1" dot="3"/>
2490 dnl       </itemset>
2491 dnl       <actions>
2492 dnl         <transitions/>
2493 dnl         <errors/>
2494 dnl         <reductions>
2495 dnl           <reduction symbol="$default" rule="accept" enabled="true"/>
2496 dnl         </reductions>
2497 dnl       </actions>
2498 dnl       <solved-conflicts/>
2499 dnl     </state>
2501 dnl     <state number="18">
2502 dnl       <itemset>
2503 dnl         <item rule-number="7" dot="1"/>
2504 dnl       </itemset>
2505 dnl       <actions>
2506 dnl         <transitions/>
2507 dnl         <errors/>
2508 dnl         <reductions>
2509 dnl           <reduction symbol="$default" rule="7" enabled="true"/>
2510 dnl         </reductions>
2511 dnl       </actions>
2512 dnl       <solved-conflicts/>
2513 dnl     </state>
2515 dnl     <state number="19">
2516 dnl       <itemset>
2517 dnl         <item rule-number="8" dot="0"/>
2518 dnl         <item rule-number="10" dot="2"/>
2519 dnl       </itemset>
2520 dnl       <actions>
2521 dnl         <transitions>
2522 dnl           <transition type="goto" symbol="@1" state="23"/>
2523 dnl         </transitions>
2524 dnl         <errors/>
2525 dnl         <reductions>
2526 dnl           <reduction symbol="$default" rule="8" enabled="true"/>
2527 dnl         </reductions>
2528 dnl       </actions>
2529 dnl       <solved-conflicts/>
2530 dnl     </state>
2532 dnl     <state number="20">
2533 dnl       <itemset>
2534 dnl         <item rule-number="11" dot="2"/>
2535 dnl       </itemset>
2536 dnl       <actions>
2537 dnl         <transitions>
2538 dnl           <transition type="shift" symbol="&quot;)&quot;" state="24"/>
2539 dnl         </transitions>
2540 dnl         <errors/>
2541 dnl         <reductions/>
2542 dnl       </actions>
2543 dnl       <solved-conflicts/>
2544 dnl     </state>
2546 dnl     <state number="21">
2547 dnl       <itemset>
2548 dnl         <item rule-number="2" dot="3"/>
2549 dnl       </itemset>
2550 dnl       <actions>
2551 dnl         <transitions/>
2552 dnl         <errors/>
2553 dnl         <reductions>
2554 dnl           <reduction symbol="$default" rule="accept" enabled="true"/>
2555 dnl         </reductions>
2556 dnl       </actions>
2557 dnl       <solved-conflicts/>
2558 dnl     </state>
2560 dnl     <state number="22">
2561 dnl       <itemset>
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"/>
2567 dnl       </itemset>
2568 dnl       <actions>
2569 dnl         <transitions>
2570 dnl           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2571 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2572 dnl           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2573 dnl           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2574 dnl           <transition type="goto" symbol="exp" state="25"/>
2575 dnl         </transitions>
2576 dnl         <errors/>
2577 dnl         <reductions/>
2578 dnl       </actions>
2579 dnl       <solved-conflicts/>
2580 dnl     </state>
2582 dnl     <state number="23">
2583 dnl       <itemset>
2584 dnl         <item rule-number="9" dot="0"/>
2585 dnl         <item rule-number="10" dot="3"/>
2586 dnl       </itemset>
2587 dnl       <actions>
2588 dnl         <transitions>
2589 dnl           <transition type="goto" symbol="@2" state="26"/>
2590 dnl         </transitions>
2591 dnl         <errors/>
2592 dnl         <reductions>
2593 dnl           <reduction symbol="$default" rule="9" enabled="true"/>
2594 dnl         </reductions>
2595 dnl       </actions>
2596 dnl       <solved-conflicts/>
2597 dnl     </state>
2599 dnl     <state number="24">
2600 dnl       <itemset>
2601 dnl         <item rule-number="11" dot="3"/>
2602 dnl       </itemset>
2603 dnl       <actions>
2604 dnl         <transitions/>
2605 dnl         <errors/>
2606 dnl         <reductions>
2607 dnl           <reduction symbol="$default" rule="11" enabled="true"/>
2608 dnl         </reductions>
2609 dnl       </actions>
2610 dnl       <solved-conflicts/>
2611 dnl     </state>
2613 dnl     <state number="25">
2614 dnl       <itemset>
2615 dnl         <item rule-number="6" dot="3"/>
2616 dnl       </itemset>
2617 dnl       <actions>
2618 dnl         <transitions/>
2619 dnl         <errors/>
2620 dnl         <reductions>
2621 dnl           <reduction symbol="$default" rule="6" enabled="true"/>
2622 dnl         </reductions>
2623 dnl       </actions>
2624 dnl       <solved-conflicts/>
2625 dnl     </state>
2627 dnl     <state number="26">
2628 dnl       <itemset>
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"/>
2634 dnl       </itemset>
2635 dnl       <actions>
2636 dnl         <transitions>
2637 dnl           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2638 dnl           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2639 dnl           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2640 dnl           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2641 dnl           <transition type="goto" symbol="exp" state="27"/>
2642 dnl         </transitions>
2643 dnl         <errors/>
2644 dnl         <reductions/>
2645 dnl       </actions>
2646 dnl       <solved-conflicts/>
2647 dnl     </state>
2649 dnl     <state number="27">
2650 dnl       <itemset>
2651 dnl         <item rule-number="10" dot="5"/>
2652 dnl       </itemset>
2653 dnl       <actions>
2654 dnl         <transitions/>
2655 dnl         <errors/>
2656 dnl         <reductions>
2657 dnl           <reduction symbol="$default" rule="10" enabled="true"/>
2658 dnl         </reductions>
2659 dnl       </actions>
2660 dnl       <solved-conflicts/>
2661 dnl     </state>
2662 dnl   </automaton>
2663 dnl </bison-xml-report>
2664 dnl ]])
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/">
2674 dnl   <head>
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">
2678 dnl       body {
2679 dnl         font-family: "Nimbus Sans L", Arial, sans-serif;
2680 dnl         font-size: 9pt;
2681 dnl       }
2682 dnl       a:link {
2683 dnl         color: #1f00ff;
2684 dnl         text-decoration: none;
2685 dnl       }
2686 dnl       a:visited {
2687 dnl         color: #1f00ff;
2688 dnl         text-decoration: none;
2689 dnl       }
2690 dnl       a:hover {
2691 dnl         color: red;
2692 dnl       }
2693 dnl       #menu a {
2694 dnl         text-decoration: underline;
2695 dnl       }
2696 dnl       .i {
2697 dnl         font-style: italic;
2698 dnl       }
2699 dnl       .pre {
2700 dnl         font-family: monospace;
2701 dnl         white-space: pre;
2702 dnl       }
2703 dnl       ol.decimal {
2704 dnl         list-style-type: decimal;
2705 dnl       }
2706 dnl       ol.lower-alpha {
2707 dnl         list-style-type: lower-alpha;
2708 dnl       }
2709 dnl       .dot {
2710 dnl         color: #cc0000;
2711 dnl       }
2712 dnl       #footer {
2713 dnl         margin-top: 3.5em;
2714 dnl         font-size: 7pt;
2715 dnl       }
2716 dnl       </style>
2717 dnl   </head>
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>
2729 dnl <p class="pre">
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>
2751 dnl </p>
2753 dnl <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
2755 dnl <ul>
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> &lt;std::string&gt; (260) <a href="#rule_7">7</a> <a href="#rule_12">12</a></li>
2761 dnl   <li><b>"number"</b> &lt;int&gt; (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>
2767 dnl </ul>
2769 dnl <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
2771 dnl <ul>
2772 dnl   <li><b>$accept</b> (12)
2773 dnl     <ul>
2774 dnl       <li>on left: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
2775 dnl     </ul>
2776 dnl   </li>
2777 dnl   <li><b>unit</b> (13)
2778 dnl     <ul>
2779 dnl       <li>on left: <a href="#rule_3">3</a></li>
2780 dnl       <li>on right: <a href="#rule_0">0</a></li>
2781 dnl     </ul>
2782 dnl   </li>
2783 dnl   <li><b>assignments</b> (14)
2784 dnl     <ul>
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>
2787 dnl     </ul>
2788 dnl   </li>
2789 dnl   <li><b>assignment</b> (15)
2790 dnl     <ul>
2791 dnl       <li>on left: <a href="#rule_6">6</a></li>
2792 dnl       <li>on right: <a href="#rule_5">5</a></li>
2793 dnl     </ul>
2794 dnl   </li>
2795 dnl   <li><b>id</b> &lt;std::string&gt; (16)
2796 dnl     <ul>
2797 dnl       <li>on left: <a href="#rule_7">7</a></li>
2798 dnl       <li>on right: <a href="#rule_6">6</a></li>
2799 dnl     </ul>
2800 dnl   </li>
2801 dnl   <li><b>exp</b> &lt;int&gt; (17)
2802 dnl     <ul>
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>
2805 dnl     </ul>
2806 dnl   </li>
2807 dnl   <li><b>@1</b> &lt;int&gt; (18)
2808 dnl     <ul>
2809 dnl       <li>on left: <a href="#rule_8">8</a></li>
2810 dnl       <li>on right: <a href="#rule_10">10</a></li>
2811 dnl     </ul>
2812 dnl   </li>
2813 dnl   <li><b>@2</b> &lt;int&gt; (19)
2814 dnl     <ul>
2815 dnl       <li>on left: <a href="#rule_9">9</a></li>
2816 dnl       <li>on right: <a href="#rule_10">10</a></li>
2817 dnl     </ul>
2818 dnl   </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>
2830 dnl </p>
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>
2843 dnl </p>
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>
2854 dnl </p>
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>
2870 dnl </p>
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>
2877 dnl </p>
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>
2898 dnl </p>
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>
2912 dnl </p>
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>
2928 dnl </p>
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)
2935 dnl </p>
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)
2942 dnl </p>
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>
2958 dnl </p>
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>
2965 dnl </p>
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>
2971 dnl     $default  accept
2972 dnl </p>
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)
2981 dnl </p>
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)
2988 dnl </p>
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>
2995 dnl </p>
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)
3002 dnl </p>
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>
3008 dnl     $default  accept
3009 dnl </p>
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)
3016 dnl </p>
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>
3026 dnl </p>
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>
3033 dnl </p>
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>
3039 dnl     $default  accept
3040 dnl </p>
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>
3056 dnl </p>
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>
3066 dnl </p>
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)
3073 dnl </p>
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)
3080 dnl </p>
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>
3096 dnl </p>
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)
3103 dnl </p>
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>
3111 dnl </html>
3112 dnl ]])
3113 dnl fi
3115 dnl AT_BISON_OPTION_POPDEFS
3116 dnl AT_CLEANUP
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
3135 AT_DATA([input.y],
3136 [[%left "+"
3139 : exp "⊕" exp
3140 | exp "+" exp
3141 | exp "+" exp
3142 | "number"
3143 | "Ñùṃéℝô"
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
3151   Shift derivation
3152     exp
3153     ↳ 2: exp "+" exp
3154                  ↳ 1: exp • "⊕" exp
3155   Reduce derivation
3156     exp
3157     ↳ 1: exp                "⊕" exp
3158          ↳ 2: exp "+" exp •
3159 input.y: warning: reduce/reduce conflict on tokens $end, "+", "⊕" [-Wcounterexamples]
3160   Example: exp "+" exp •
3161   First reduce derivation
3162     exp
3163     ↳ 2: exp "+" exp •
3164   Second reduce derivation
3165     exp
3166     ↳ 3: exp "+" exp •
3167 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3168   Example: exp "+" exp • "⊕" exp
3169   Shift derivation
3170     exp
3171     ↳ 2: exp "+" exp
3172                  ↳ 1: exp • "⊕" exp
3173   Reduce derivation
3174     exp
3175     ↳ 1: exp                "⊕" exp
3176          ↳ 3: exp "+" exp •
3177 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3178   Example: exp "⊕" exp • "⊕" exp
3179   Shift derivation
3180     exp
3181     ↳ 1: exp "⊕" exp
3182                  ↳ 1: exp • "⊕" exp
3183   Reduce derivation
3184     exp
3185     ↳ 1: exp                "⊕" exp
3186          ↳ 1: exp "⊕" exp •
3187 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3188   Example: exp "⊕" exp • "+" exp
3189   Shift derivation
3190     exp
3191     ↳ 1: exp "⊕" exp
3192                  ↳ 2: exp • "+" exp
3193   Reduce derivation
3194     exp
3195     ↳ 2: exp                "+" exp
3196          ↳ 1: exp "⊕" exp •
3197 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3198   Example: exp "⊕" exp • "+" exp
3199   Shift derivation
3200     exp
3201     ↳ 1: exp "⊕" exp
3202                  ↳ 3: exp • "+" exp
3203   Reduce derivation
3204     exp
3205     ↳ 2: exp                "+" exp
3206          ↳ 1: 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
3215     3 exp: exp "+" exp
3218 State 7 conflicts: 1 shift/reduce, 3 reduce/reduce
3219 State 8 conflicts: 2 shift/reduce
3222 Grammar
3224     0 $accept: exp $end
3226     1 exp: exp "⊕" exp
3227     2    | exp "+" exp
3228     3    | exp "+" exp
3229     4    | "number"
3230     5    | "Ñùṃéℝô"
3233 Terminals, with rules where they appear
3235     $end (0) 0
3236     error (256)
3237     "+" (258) 2 3
3238     "⊕" (259) 1
3239     "number" (260) 4
3240     "Ñùṃéℝô" (261) 5
3243 Nonterminals, with rules where they appear
3245     $accept (7)
3246         on left: 0
3247     exp (8)
3248         on left: 1 2 3 4 5
3249         on right: 0 1 2 3
3252 State 0
3254     0 $accept: • exp $end
3255     1 exp: • exp "⊕" exp
3256     2    | • exp "+" exp
3257     3    | • exp "+" exp
3258     4    | • "number"
3259     5    | • "Ñùṃéℝô"
3261     "number"  shift, and go to state 1
3262     "Ñùṃéℝô"  shift, and go to state 2
3264     exp  go to state 3
3267 State 1
3269     4 exp: "number" •
3271     $default  reduce using rule 4 (exp)
3274 State 2
3276     5 exp: "Ñùṃéℝô" •
3278     $default  reduce using rule 5 (exp)
3281 State 3
3283     0 $accept: exp • $end
3284     1 exp: exp • "⊕" exp
3285     2    | exp • "+" exp
3286     3    | exp • "+" exp
3288     $end  shift, and go to state 4
3289     "+"   shift, and go to state 5
3290     "⊕"   shift, and go to state 6
3293 State 4
3295     0 $accept: exp $end •
3297     $default  accept
3300 State 5
3302     1 exp: • exp "⊕" exp
3303     2    | • exp "+" exp
3304     2    | exp "+" • exp
3305     3    | • exp "+" exp
3306     3    | exp "+" • exp
3307     4    | • "number"
3308     5    | • "Ñùṃéℝô"
3310     "number"  shift, and go to state 1
3311     "Ñùṃéℝô"  shift, and go to state 2
3313     exp  go to state 7
3316 State 6
3318     1 exp: • exp "⊕" exp
3319     1    | exp "⊕" • exp
3320     2    | • exp "+" exp
3321     3    | • exp "+" exp
3322     4    | • "number"
3323     5    | • "Ñùṃéℝô"
3325     "number"  shift, and go to state 1
3326     "Ñùṃéℝô"  shift, and go to state 2
3328     exp  go to state 8
3331 State 7
3333     1 exp: exp • "⊕" exp
3334     2    | exp • "+" exp
3335     2    | exp "+" exp •  [$end, "+", "⊕"]
3336     3    | exp • "+" exp
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
3355       Shift derivation
3356         exp
3357         ↳ 2: exp "+" exp
3358                      ↳ 1: exp • "⊕" exp
3359       Reduce derivation
3360         exp
3361         ↳ 1: exp                "⊕" exp
3362              ↳ 2: 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
3369         exp
3370         ↳ 2: exp "+" exp •
3371       Second reduce derivation
3372         exp
3373         ↳ 3: exp "+" exp •
3375     shift/reduce conflict on token "⊕":
3376         3 exp: exp "+" exp •
3377         1 exp: exp • "⊕" exp
3378       Example: exp "+" exp • "⊕" exp
3379       Shift derivation
3380         exp
3381         ↳ 2: exp "+" exp
3382                      ↳ 1: exp • "⊕" exp
3383       Reduce derivation
3384         exp
3385         ↳ 1: exp                "⊕" exp
3386              ↳ 3: exp "+" exp •
3390 State 8
3392     1 exp: exp • "⊕" exp
3393     1    | exp "⊕" exp •  [$end, "+", "⊕"]
3394     2    | exp • "+" exp
3395     3    | exp • "+" exp
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
3408       Shift derivation
3409         exp
3410         ↳ 1: exp "⊕" exp
3411                      ↳ 1: exp • "⊕" exp
3412       Reduce derivation
3413         exp
3414         ↳ 1: exp                "⊕" exp
3415              ↳ 1: exp "⊕" exp •
3417     shift/reduce conflict on token "+":
3418         1 exp: exp "⊕" exp •
3419         2 exp: exp • "+" exp
3420       Example: exp "⊕" exp • "+" exp
3421       Shift derivation
3422         exp
3423         ↳ 1: exp "⊕" exp
3424                      ↳ 2: exp • "+" exp
3425       Reduce derivation
3426         exp
3427         ↳ 2: exp                "+" exp
3428              ↳ 1: exp "⊕" exp •
3430     shift/reduce conflict on token "+":
3431         1 exp: exp "⊕" exp •
3432         3 exp: exp • "+" exp
3433       Example: exp "⊕" exp • "+" exp
3434       Shift derivation
3435         exp
3436         ↳ 1: exp "⊕" exp
3437                      ↳ 3: exp • "+" exp
3438       Reduce derivation
3439         exp
3440         ↳ 2: exp                "+" exp
3441              ↳ 1: 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/>.
3453 digraph "input.y"
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>
3509   <grammar>
3510     <rules>
3511       <rule number="0" usefulness="useful">
3512         <lhs>$accept</lhs>
3513         <rhs>
3514           <symbol>exp</symbol>
3515           <symbol>$end</symbol>
3516         </rhs>
3517       </rule>
3518       <rule number="1" usefulness="useful">
3519         <lhs>exp</lhs>
3520         <rhs>
3521           <symbol>exp</symbol>
3522           <symbol>&quot;⊕&quot;</symbol>
3523           <symbol>exp</symbol>
3524         </rhs>
3525       </rule>
3526       <rule number="2" usefulness="useful">
3527         <lhs>exp</lhs>
3528         <rhs>
3529           <symbol>exp</symbol>
3530           <symbol>&quot;+&quot;</symbol>
3531           <symbol>exp</symbol>
3532         </rhs>
3533       </rule>
3534       <rule number="3" usefulness="useless-in-parser">
3535         <lhs>exp</lhs>
3536         <rhs>
3537           <symbol>exp</symbol>
3538           <symbol>&quot;+&quot;</symbol>
3539           <symbol>exp</symbol>
3540         </rhs>
3541       </rule>
3542       <rule number="4" usefulness="useful">
3543         <lhs>exp</lhs>
3544         <rhs>
3545           <symbol>&quot;number&quot;</symbol>
3546         </rhs>
3547       </rule>
3548       <rule number="5" usefulness="useful">
3549         <lhs>exp</lhs>
3550         <rhs>
3551           <symbol>&quot;Ñùṃéℝô&quot;</symbol>
3552         </rhs>
3553       </rule>
3554     </rules>
3555     <terminals>
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="&quot;+&quot;" type="" usefulness="useful" prec="1" assoc="left"/>
3559       <terminal symbol-number="4" token-number="259" name="&quot;⊕&quot;" type="" usefulness="useful"/>
3560       <terminal symbol-number="5" token-number="260" name="&quot;number&quot;" type="" usefulness="useful"/>
3561       <terminal symbol-number="6" token-number="261" name="&quot;Ñùṃéℝô&quot;" type="" usefulness="useful"/>
3562     </terminals>
3563     <nonterminals>
3564       <nonterminal symbol-number="7" name="$accept" type="" usefulness="useful"/>
3565       <nonterminal symbol-number="8" name="exp" type="" usefulness="useful"/>
3566     </nonterminals>
3567   </grammar>
3569   <automaton>
3571     <state number="0">
3572       <itemset>
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"/>
3579       </itemset>
3580       <actions>
3581         <transitions>
3582           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3583           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3584           <transition type="goto" symbol="exp" state="3"/>
3585         </transitions>
3586         <errors/>
3587         <reductions/>
3588       </actions>
3589       <solved-conflicts/>
3590     </state>
3592     <state number="1">
3593       <itemset>
3594         <item rule-number="4" dot="1"/>
3595       </itemset>
3596       <actions>
3597         <transitions/>
3598         <errors/>
3599         <reductions>
3600           <reduction symbol="$default" rule="4" enabled="true"/>
3601         </reductions>
3602       </actions>
3603       <solved-conflicts/>
3604     </state>
3606     <state number="2">
3607       <itemset>
3608         <item rule-number="5" dot="1"/>
3609       </itemset>
3610       <actions>
3611         <transitions/>
3612         <errors/>
3613         <reductions>
3614           <reduction symbol="$default" rule="5" enabled="true"/>
3615         </reductions>
3616       </actions>
3617       <solved-conflicts/>
3618     </state>
3620     <state number="3">
3621       <itemset>
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"/>
3626       </itemset>
3627       <actions>
3628         <transitions>
3629           <transition type="shift" symbol="$end" state="4"/>
3630           <transition type="shift" symbol="&quot;+&quot;" state="5"/>
3631           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3632         </transitions>
3633         <errors/>
3634         <reductions/>
3635       </actions>
3636       <solved-conflicts/>
3637     </state>
3639     <state number="4">
3640       <itemset>
3641         <item rule-number="0" dot="2"/>
3642       </itemset>
3643       <actions>
3644         <transitions/>
3645         <errors/>
3646         <reductions>
3647           <reduction symbol="$default" rule="accept" enabled="true"/>
3648         </reductions>
3649       </actions>
3650       <solved-conflicts/>
3651     </state>
3653     <state number="5">
3654       <itemset>
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"/>
3662       </itemset>
3663       <actions>
3664         <transitions>
3665           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3666           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3667           <transition type="goto" symbol="exp" state="7"/>
3668         </transitions>
3669         <errors/>
3670         <reductions/>
3671       </actions>
3672       <solved-conflicts/>
3673     </state>
3675     <state number="6">
3676       <itemset>
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"/>
3683       </itemset>
3684       <actions>
3685         <transitions>
3686           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3687           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3688           <transition type="goto" symbol="exp" state="8"/>
3689         </transitions>
3690         <errors/>
3691         <reductions/>
3692       </actions>
3693       <solved-conflicts/>
3694     </state>
3696     <state number="7">
3697       <itemset>
3698         <item rule-number="1" dot="1"/>
3699         <item rule-number="2" dot="1"/>
3700         <item rule-number="2" dot="3">
3701           <lookaheads>
3702             <symbol>$end</symbol>
3703             <symbol>&quot;+&quot;</symbol>
3704             <symbol>&quot;⊕&quot;</symbol>
3705           </lookaheads>
3706         </item>
3707         <item rule-number="3" dot="1"/>
3708         <item rule-number="3" dot="3">
3709           <lookaheads>
3710             <symbol>$end</symbol>
3711             <symbol>&quot;+&quot;</symbol>
3712             <symbol>&quot;⊕&quot;</symbol>
3713           </lookaheads>
3714         </item>
3715       </itemset>
3716       <actions>
3717         <transitions>
3718           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3719         </transitions>
3720         <errors/>
3721         <reductions>
3722           <reduction symbol="$end" rule="2" enabled="true"/>
3723           <reduction symbol="$end" rule="3" enabled="false"/>
3724           <reduction symbol="&quot;+&quot;" rule="2" enabled="true"/>
3725           <reduction symbol="&quot;+&quot;" rule="3" enabled="false"/>
3726           <reduction symbol="&quot;⊕&quot;" rule="2" enabled="false"/>
3727           <reduction symbol="&quot;⊕&quot;" rule="3" enabled="false"/>
3728           <reduction symbol="$default" rule="2" enabled="true"/>
3729         </reductions>
3730       </actions>
3731       <solved-conflicts>
3732         <resolution rule="2" symbol="&quot;+&quot;" type="reduce">%left &quot;+&quot;</resolution>
3733       </solved-conflicts>
3734     </state>
3736     <state number="8">
3737       <itemset>
3738         <item rule-number="1" dot="1"/>
3739         <item rule-number="1" dot="3">
3740           <lookaheads>
3741             <symbol>$end</symbol>
3742             <symbol>&quot;+&quot;</symbol>
3743             <symbol>&quot;⊕&quot;</symbol>
3744           </lookaheads>
3745         </item>
3746         <item rule-number="2" dot="1"/>
3747         <item rule-number="3" dot="1"/>
3748       </itemset>
3749       <actions>
3750         <transitions>
3751           <transition type="shift" symbol="&quot;+&quot;" state="5"/>
3752           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3753         </transitions>
3754         <errors/>
3755         <reductions>
3756           <reduction symbol="&quot;+&quot;" rule="1" enabled="false"/>
3757           <reduction symbol="&quot;⊕&quot;" rule="1" enabled="false"/>
3758           <reduction symbol="$default" rule="1" enabled="true"/>
3759         </reductions>
3760       </actions>
3761       <solved-conflicts/>
3762     </state>
3763   </automaton>
3764 </bison-xml-report>
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/">
3772   <head>
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">
3776       body {
3777         font-family: "Nimbus Sans L", Arial, sans-serif;
3778         font-size: 9pt;
3779       }
3780       a:link {
3781         color: #1f00ff;
3782         text-decoration: none;
3783       }
3784       a:visited {
3785         color: #1f00ff;
3786         text-decoration: none;
3787       }
3788       a:hover {
3789         color: red;
3790       }
3791       #menu a {
3792         text-decoration: underline;
3793       }
3794       .i {
3795         font-style: italic;
3796       }
3797       .pre {
3798         font-family: monospace;
3799         white-space: pre;
3800       }
3801       ol.decimal {
3802         list-style-type: decimal;
3803       }
3804       ol.lower-alpha {
3805         list-style-type: lower-alpha;
3806       }
3807       .dot {
3808         color: #cc0000;
3809       }
3810       #footer {
3811         margin-top: 3.5em;
3812         font-size: 7pt;
3813       }
3814       </style>
3815   </head>
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>
3825 <p class="pre">
3826   <a href="#rule_3">  3</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3827 </p>
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>
3836 <p class="pre">
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>
3844 </p>
3846 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
3848 <ul>
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>
3855 </ul>
3857 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
3859 <ul>
3860   <li><b>$accept</b> (7)
3861     <ul>
3862       <li>on left: <a href="#rule_0">0</a></li>
3863     </ul>
3864   </li>
3865   <li><b>exp</b> (8)
3866     <ul>
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>
3869     </ul>
3870   </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>
3886 </p>
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)
3893 </p>
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)
3900 </p>
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>
3912 </p>
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>
3918     $default  accept
3919 </p>
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>
3935 </p>
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>
3950 </p>
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 "+").
3971 </p>
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)
3986 </p>
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>
3994 </html>
3997 AT_BISON_OPTION_POPDEFS
3998 AT_CLEANUP