style: rename stmtMerge as stmt_merge
[bison.git] / tests / report.at
blob77b8af4ee3a81649cfbf11896039b4d8dee3e39a
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 ## -------------------- ##
1520 ## Multistart reports.  ##
1521 ## -------------------- ##
1523 AT_SETUP([Multistart reports])
1525 AT_KEYWORDS([multistart report])
1527 AT_BISON_OPTION_PUSHDEFS
1528 AT_DATA([input.yy],
1529 [[%token
1530   END  0  "end of file"
1531   ASSIGN  ":="
1532   INCR    "incr"
1535 %token <std::string> IDENTIFIER "identifier"
1536 %type <std::string> id
1537 %token <int> NUMBER "number"
1538 %type  <int> exp
1541 %start unit assignments exp;
1542 unit: assignments exp  { driver.result = $2; };
1544 assignments:
1545   %empty                 {}
1546 | assignments assignment {};
1548 assignment:
1549   id ":=" exp { driver.variables[$id] = $exp; };
1552   "identifier";
1554 exp:
1555   "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp   { $$ = $2 + $3 + $4 + $5; }
1556 | "(" exp ")"   { std::swap ($$, $2); }
1557 | "identifier"  { $$ = driver.variables[$1]; }
1558 | "number"      { std::swap ($$, $1); };
1561 AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --xml input.yy])
1563 # Check the contents of the report.
1564 AT_CHECK([cat input.output], [],
1565 [[Grammar
1567     0 $accept: YY_PARSE_unit unit "end of file"
1568     1        | YY_PARSE_assignments assignments "end of file"
1569     2        | YY_PARSE_exp exp "end of file"
1571     3 unit: assignments exp
1573     4 assignments: %empty
1574     5            | assignments assignment
1576     6 assignment: id ":=" exp
1578     7 id: "identifier"
1580     8 @1: %empty
1582     9 @2: %empty
1584    10 exp: "incr" exp @1 @2 exp
1585    11    | "(" exp ")"
1586    12    | "identifier"
1587    13    | "number"
1590 Terminals, with rules where they appear
1592     "end of file" (0) 0 1 2
1593     error (256)
1594     ":=" (258) 6
1595     "incr" (259) 10
1596     "identifier" <std::string> (260) 7 12
1597     "number" <int> (261) 13
1598     YY_PARSE_unit (262) 0
1599     YY_PARSE_assignments (263) 1
1600     YY_PARSE_exp (264) 2
1601     "(" (265) 11
1602     ")" (266) 11
1605 Nonterminals, with rules where they appear
1607     $accept (12)
1608         on left: 0 1 2
1609     unit (13)
1610         on left: 3
1611         on right: 0
1612     assignments (14)
1613         on left: 4 5
1614         on right: 1 3 5
1615     assignment (15)
1616         on left: 6
1617         on right: 5
1618     id <std::string> (16)
1619         on left: 7
1620         on right: 6
1621     exp <int> (17)
1622         on left: 10 11 12 13
1623         on right: 2 3 6 10 11
1624     @1 <int> (18)
1625         on left: 8
1626         on right: 10
1627     @2 <int> (19)
1628         on left: 9
1629         on right: 10
1632 State 0
1634     0 $accept: . YY_PARSE_unit unit "end of file"
1635     1        | . YY_PARSE_assignments assignments "end of file"
1636     2        | . YY_PARSE_exp exp "end of file"
1638     YY_PARSE_unit         shift, and go to state 1
1639     YY_PARSE_assignments  shift, and go to state 2
1640     YY_PARSE_exp          shift, and go to state 3
1643 State 1
1645     0 $accept: YY_PARSE_unit . unit "end of file"
1646     3 unit: . assignments exp
1647     4 assignments: %empty .
1648     5            | . assignments assignment
1650     $default  reduce using rule 4 (assignments)
1652     unit         go to state 4
1653     assignments  go to state 5
1656 State 2
1658     1 $accept: YY_PARSE_assignments . assignments "end of file"
1659     4 assignments: %empty .
1660     5            | . assignments assignment
1662     $default  reduce using rule 4 (assignments)
1664     assignments  go to state 6
1667 State 3
1669     2 $accept: YY_PARSE_exp . exp "end of file"
1670    10 exp: . "incr" exp @1 @2 exp
1671    11    | . "(" exp ")"
1672    12    | . "identifier"
1673    13    | . "number"
1675     "incr"        shift, and go to state 7
1676     "identifier"  shift, and go to state 8
1677     "number"      shift, and go to state 9
1678     "("           shift, and go to state 10
1680     exp  go to state 11
1683 State 4
1685     0 $accept: YY_PARSE_unit unit . "end of file"
1687     "end of file"  shift, and go to state 12
1690 State 5
1692     3 unit: assignments . exp
1693     5 assignments: assignments . assignment
1694     6 assignment: . id ":=" exp
1695     7 id: . "identifier"
1696    10 exp: . "incr" exp @1 @2 exp
1697    11    | . "(" exp ")"
1698    12    | . "identifier"
1699    13    | . "number"
1701     "incr"        shift, and go to state 7
1702     "identifier"  shift, and go to state 13
1703     "number"      shift, and go to state 9
1704     "("           shift, and go to state 10
1706     assignment  go to state 14
1707     id          go to state 15
1708     exp         go to state 16
1711 State 6
1713     1 $accept: YY_PARSE_assignments assignments . "end of file"
1714     5 assignments: assignments . assignment
1715     6 assignment: . id ":=" exp
1716     7 id: . "identifier"
1718     "end of file"  shift, and go to state 17
1719     "identifier"   shift, and go to state 18
1721     assignment  go to state 14
1722     id          go to state 15
1725 State 7
1727    10 exp: . "incr" exp @1 @2 exp
1728    10    | "incr" . exp @1 @2 exp
1729    11    | . "(" exp ")"
1730    12    | . "identifier"
1731    13    | . "number"
1733     "incr"        shift, and go to state 7
1734     "identifier"  shift, and go to state 8
1735     "number"      shift, and go to state 9
1736     "("           shift, and go to state 10
1738     exp  go to state 19
1741 State 8
1743    12 exp: "identifier" .
1745     $default  reduce using rule 12 (exp)
1748 State 9
1750    13 exp: "number" .
1752     $default  reduce using rule 13 (exp)
1755 State 10
1757    10 exp: . "incr" exp @1 @2 exp
1758    11    | . "(" exp ")"
1759    11    | "(" . exp ")"
1760    12    | . "identifier"
1761    13    | . "number"
1763     "incr"        shift, and go to state 7
1764     "identifier"  shift, and go to state 8
1765     "number"      shift, and go to state 9
1766     "("           shift, and go to state 10
1768     exp  go to state 20
1771 State 11
1773     2 $accept: YY_PARSE_exp exp . "end of file"
1775     "end of file"  shift, and go to state 21
1778 State 12
1780     0 $accept: YY_PARSE_unit unit "end of file" .
1782     $default  accept
1785 State 13
1787     7 id: "identifier" .  [":="]
1788    12 exp: "identifier" .  ["end of file"]
1790     "end of file"  reduce using rule 12 (exp)
1791     $default       reduce using rule 7 (id)
1794 State 14
1796     5 assignments: assignments assignment .
1798     $default  reduce using rule 5 (assignments)
1801 State 15
1803     6 assignment: id . ":=" exp
1805     ":="  shift, and go to state 22
1808 State 16
1810     3 unit: assignments exp .
1812     $default  reduce using rule 3 (unit)
1815 State 17
1817     1 $accept: YY_PARSE_assignments assignments "end of file" .
1819     $default  accept
1822 State 18
1824     7 id: "identifier" .
1826     $default  reduce using rule 7 (id)
1829 State 19
1831     8 @1: %empty .
1832    10 exp: "incr" exp . @1 @2 exp
1834     $default  reduce using rule 8 (@1)
1836     @1  go to state 23
1839 State 20
1841    11 exp: "(" exp . ")"
1843     ")"  shift, and go to state 24
1846 State 21
1848     2 $accept: YY_PARSE_exp exp "end of file" .
1850     $default  accept
1853 State 22
1855     6 assignment: id ":=" . exp
1856    10 exp: . "incr" exp @1 @2 exp
1857    11    | . "(" exp ")"
1858    12    | . "identifier"
1859    13    | . "number"
1861     "incr"        shift, and go to state 7
1862     "identifier"  shift, and go to state 8
1863     "number"      shift, and go to state 9
1864     "("           shift, and go to state 10
1866     exp  go to state 25
1869 State 23
1871     9 @2: %empty .
1872    10 exp: "incr" exp @1 . @2 exp
1874     $default  reduce using rule 9 (@2)
1876     @2  go to state 26
1879 State 24
1881    11 exp: "(" exp ")" .
1883     $default  reduce using rule 11 (exp)
1886 State 25
1888     6 assignment: id ":=" exp .
1890     $default  reduce using rule 6 (assignment)
1893 State 26
1895    10 exp: . "incr" exp @1 @2 exp
1896    10    | "incr" exp @1 @2 . exp
1897    11    | . "(" exp ")"
1898    12    | . "identifier"
1899    13    | . "number"
1901     "incr"        shift, and go to state 7
1902     "identifier"  shift, and go to state 8
1903     "number"      shift, and go to state 9
1904     "("           shift, and go to state 10
1906     exp  go to state 27
1909 State 27
1911    10 exp: "incr" exp @1 @2 exp .
1913     $default  reduce using rule 10 (exp)
1918 AT_CHECK([cat input.gv], [],
1919 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
1920 // Report bugs to <bug-bison@gnu.org>.
1921 // Home page: <https://www.gnu.org/software/bison/>.
1923 digraph "input.yy"
1925   node [fontname = courier, shape = box, colorscheme = paired6]
1926   edge [fontname = courier]
1928   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"]
1929   0 -> 1 [style=solid label="YY_PARSE_unit"]
1930   0 -> 2 [style=solid label="YY_PARSE_assignments"]
1931   0 -> 3 [style=solid label="YY_PARSE_exp"]
1932   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"]
1933   1 -> 4 [style=dashed label="unit"]
1934   1 -> 5 [style=dashed label="assignments"]
1935   1 -> "1R4" [style=solid]
1936  "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
1937   2 [label="State 2\n\l  1 $accept: YY_PARSE_assignments • assignments \"end of file\"\l  4 assignments: • %empty\l  5            | • assignments assignment\l"]
1938   2 -> 6 [style=dashed label="assignments"]
1939   2 -> "2R4" [style=solid]
1940  "2R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
1941   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"]
1942   3 -> 7 [style=solid label="\"incr\""]
1943   3 -> 8 [style=solid label="\"identifier\""]
1944   3 -> 9 [style=solid label="\"number\""]
1945   3 -> 10 [style=solid label="\"(\""]
1946   3 -> 11 [style=dashed label="exp"]
1947   4 [label="State 4\n\l  0 $accept: YY_PARSE_unit unit • \"end of file\"\l"]
1948   4 -> 12 [style=solid label="\"end of file\""]
1949   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"]
1950   5 -> 7 [style=solid label="\"incr\""]
1951   5 -> 13 [style=solid label="\"identifier\""]
1952   5 -> 9 [style=solid label="\"number\""]
1953   5 -> 10 [style=solid label="\"(\""]
1954   5 -> 14 [style=dashed label="assignment"]
1955   5 -> 15 [style=dashed label="id"]
1956   5 -> 16 [style=dashed label="exp"]
1957   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"]
1958   6 -> 17 [style=solid label="\"end of file\""]
1959   6 -> 18 [style=solid label="\"identifier\""]
1960   6 -> 14 [style=dashed label="assignment"]
1961   6 -> 15 [style=dashed label="id"]
1962   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"]
1963   7 -> 7 [style=solid label="\"incr\""]
1964   7 -> 8 [style=solid label="\"identifier\""]
1965   7 -> 9 [style=solid label="\"number\""]
1966   7 -> 10 [style=solid label="\"(\""]
1967   7 -> 19 [style=dashed label="exp"]
1968   8 [label="State 8\n\l 12 exp: \"identifier\" •\l"]
1969   8 -> "8R12" [style=solid]
1970  "8R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
1971   9 [label="State 9\n\l 13 exp: \"number\" •\l"]
1972   9 -> "9R13" [style=solid]
1973  "9R13" [label="R13", fillcolor=3, shape=diamond, style=filled]
1974   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"]
1975   10 -> 7 [style=solid label="\"incr\""]
1976   10 -> 8 [style=solid label="\"identifier\""]
1977   10 -> 9 [style=solid label="\"number\""]
1978   10 -> 10 [style=solid label="\"(\""]
1979   10 -> 20 [style=dashed label="exp"]
1980   11 [label="State 11\n\l  2 $accept: YY_PARSE_exp exp • \"end of file\"\l"]
1981   11 -> 21 [style=solid label="\"end of file\""]
1982   12 [label="State 12\n\l  0 $accept: YY_PARSE_unit unit \"end of file\" •\l"]
1983   12 -> "12R0" [style=solid]
1984  "12R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
1985   13 [label="State 13\n\l  7 id: \"identifier\" •  [\":=\"]\l 12 exp: \"identifier\" •  [\"end of file\"]\l"]
1986   13 -> "13R7" [style=solid]
1987  "13R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
1988   13 -> "13R12" [label="[\"end of file\"]", style=solid]
1989  "13R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
1990   14 [label="State 14\n\l  5 assignments: assignments assignment •\l"]
1991   14 -> "14R5" [style=solid]
1992  "14R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
1993   15 [label="State 15\n\l  6 assignment: id • \":=\" exp\l"]
1994   15 -> 22 [style=solid label="\":=\""]
1995   16 [label="State 16\n\l  3 unit: assignments exp •\l"]
1996   16 -> "16R3" [style=solid]
1997  "16R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
1998   17 [label="State 17\n\l  1 $accept: YY_PARSE_assignments assignments \"end of file\" •\l"]
1999   17 -> "17R1" [style=solid]
2000  "17R1" [label="Acc", fillcolor=1, shape=diamond, style=filled]
2001   18 [label="State 18\n\l  7 id: \"identifier\" •\l"]
2002   18 -> "18R7" [style=solid]
2003  "18R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
2004   19 [label="State 19\n\l  8 @1: • %empty\l 10 exp: \"incr\" exp • @1 @2 exp\l"]
2005   19 -> 23 [style=dashed label="@1"]
2006   19 -> "19R8" [style=solid]
2007  "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
2008   20 [label="State 20\n\l 11 exp: \"(\" exp • \")\"\l"]
2009   20 -> 24 [style=solid label="\")\""]
2010   21 [label="State 21\n\l  2 $accept: YY_PARSE_exp exp \"end of file\" •\l"]
2011   21 -> "21R2" [style=solid]
2012  "21R2" [label="Acc", fillcolor=1, shape=diamond, style=filled]
2013   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"]
2014   22 -> 7 [style=solid label="\"incr\""]
2015   22 -> 8 [style=solid label="\"identifier\""]
2016   22 -> 9 [style=solid label="\"number\""]
2017   22 -> 10 [style=solid label="\"(\""]
2018   22 -> 25 [style=dashed label="exp"]
2019   23 [label="State 23\n\l  9 @2: • %empty\l 10 exp: \"incr\" exp @1 • @2 exp\l"]
2020   23 -> 26 [style=dashed label="@2"]
2021   23 -> "23R9" [style=solid]
2022  "23R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
2023   24 [label="State 24\n\l 11 exp: \"(\" exp \")\" •\l"]
2024   24 -> "24R11" [style=solid]
2025  "24R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
2026   25 [label="State 25\n\l  6 assignment: id \":=\" exp •\l"]
2027   25 -> "25R6" [style=solid]
2028  "25R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
2029   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"]
2030   26 -> 7 [style=solid label="\"incr\""]
2031   26 -> 8 [style=solid label="\"identifier\""]
2032   26 -> 9 [style=solid label="\"number\""]
2033   26 -> 10 [style=solid label="\"(\""]
2034   26 -> 27 [style=dashed label="exp"]
2035   27 [label="State 27\n\l 10 exp: \"incr\" exp @1 @2 exp •\l"]
2036   27 -> "27R10" [style=solid]
2037  "27R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
2042 AT_CHECK([[cat input.xml]], [],
2043 [[<?xml version="1.0"?>
2045 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
2047   <filename>input.yy</filename>
2049   <grammar>
2050     <rules>
2051       <rule number="0" usefulness="useful">
2052         <lhs>$accept</lhs>
2053         <rhs>
2054           <symbol>YY_PARSE_unit</symbol>
2055           <symbol>unit</symbol>
2056           <symbol>&quot;end of file&quot;</symbol>
2057         </rhs>
2058       </rule>
2059       <rule number="1" usefulness="useful">
2060         <lhs>$accept</lhs>
2061         <rhs>
2062           <symbol>YY_PARSE_assignments</symbol>
2063           <symbol>assignments</symbol>
2064           <symbol>&quot;end of file&quot;</symbol>
2065         </rhs>
2066       </rule>
2067       <rule number="2" usefulness="useful">
2068         <lhs>$accept</lhs>
2069         <rhs>
2070           <symbol>YY_PARSE_exp</symbol>
2071           <symbol>exp</symbol>
2072           <symbol>&quot;end of file&quot;</symbol>
2073         </rhs>
2074       </rule>
2075       <rule number="3" usefulness="useful">
2076         <lhs>unit</lhs>
2077         <rhs>
2078           <symbol>assignments</symbol>
2079           <symbol>exp</symbol>
2080         </rhs>
2081       </rule>
2082       <rule number="4" usefulness="useful">
2083         <lhs>assignments</lhs>
2084         <rhs>
2085           <empty/>
2086         </rhs>
2087       </rule>
2088       <rule number="5" usefulness="useful">
2089         <lhs>assignments</lhs>
2090         <rhs>
2091           <symbol>assignments</symbol>
2092           <symbol>assignment</symbol>
2093         </rhs>
2094       </rule>
2095       <rule number="6" usefulness="useful">
2096         <lhs>assignment</lhs>
2097         <rhs>
2098           <symbol>id</symbol>
2099           <symbol>&quot;:=&quot;</symbol>
2100           <symbol>exp</symbol>
2101         </rhs>
2102       </rule>
2103       <rule number="7" usefulness="useful">
2104         <lhs>id</lhs>
2105         <rhs>
2106           <symbol>&quot;identifier&quot;</symbol>
2107         </rhs>
2108       </rule>
2109       <rule number="8" usefulness="useful">
2110         <lhs>@1</lhs>
2111         <rhs>
2112           <empty/>
2113         </rhs>
2114       </rule>
2115       <rule number="9" usefulness="useful">
2116         <lhs>@2</lhs>
2117         <rhs>
2118           <empty/>
2119         </rhs>
2120       </rule>
2121       <rule number="10" usefulness="useful">
2122         <lhs>exp</lhs>
2123         <rhs>
2124           <symbol>&quot;incr&quot;</symbol>
2125           <symbol>exp</symbol>
2126           <symbol>@1</symbol>
2127           <symbol>@2</symbol>
2128           <symbol>exp</symbol>
2129         </rhs>
2130       </rule>
2131       <rule number="11" usefulness="useful">
2132         <lhs>exp</lhs>
2133         <rhs>
2134           <symbol>&quot;(&quot;</symbol>
2135           <symbol>exp</symbol>
2136           <symbol>&quot;)&quot;</symbol>
2137         </rhs>
2138       </rule>
2139       <rule number="12" usefulness="useful">
2140         <lhs>exp</lhs>
2141         <rhs>
2142           <symbol>&quot;identifier&quot;</symbol>
2143         </rhs>
2144       </rule>
2145       <rule number="13" usefulness="useful">
2146         <lhs>exp</lhs>
2147         <rhs>
2148           <symbol>&quot;number&quot;</symbol>
2149         </rhs>
2150       </rule>
2151     </rules>
2152     <terminals>
2153       <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" type="" usefulness="useful"/>
2154       <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
2155       <terminal symbol-number="3" token-number="258" name="&quot;:=&quot;" type="" usefulness="useful"/>
2156       <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
2157       <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
2158       <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" type="int" usefulness="useful"/>
2159       <terminal symbol-number="7" token-number="262" name="YY_PARSE_unit" type="" usefulness="useful"/>
2160       <terminal symbol-number="8" token-number="263" name="YY_PARSE_assignments" type="" usefulness="useful"/>
2161       <terminal symbol-number="9" token-number="264" name="YY_PARSE_exp" type="" usefulness="useful"/>
2162       <terminal symbol-number="10" token-number="265" name="&quot;(&quot;" type="" usefulness="useful"/>
2163       <terminal symbol-number="11" token-number="266" name="&quot;)&quot;" type="" usefulness="useful"/>
2164     </terminals>
2165     <nonterminals>
2166       <nonterminal symbol-number="12" name="$accept" type="" usefulness="useful"/>
2167       <nonterminal symbol-number="13" name="unit" type="" usefulness="useful"/>
2168       <nonterminal symbol-number="14" name="assignments" type="" usefulness="useful"/>
2169       <nonterminal symbol-number="15" name="assignment" type="" usefulness="useful"/>
2170       <nonterminal symbol-number="16" name="id" type="std::string" usefulness="useful"/>
2171       <nonterminal symbol-number="17" name="exp" type="int" usefulness="useful"/>
2172       <nonterminal symbol-number="18" name="@1" type="int" usefulness="useful"/>
2173       <nonterminal symbol-number="19" name="@2" type="int" usefulness="useful"/>
2174     </nonterminals>
2175   </grammar>
2177   <automaton>
2179     <state number="0">
2180       <itemset>
2181         <item rule-number="0" dot="0"/>
2182         <item rule-number="1" dot="0"/>
2183         <item rule-number="2" dot="0"/>
2184       </itemset>
2185       <actions>
2186         <transitions>
2187           <transition type="shift" symbol="YY_PARSE_unit" state="1"/>
2188           <transition type="shift" symbol="YY_PARSE_assignments" state="2"/>
2189           <transition type="shift" symbol="YY_PARSE_exp" state="3"/>
2190         </transitions>
2191         <errors/>
2192         <reductions/>
2193       </actions>
2194       <solved-conflicts/>
2195     </state>
2197     <state number="1">
2198       <itemset>
2199         <item rule-number="0" dot="1"/>
2200         <item rule-number="3" dot="0"/>
2201         <item rule-number="4" dot="0"/>
2202         <item rule-number="5" dot="0"/>
2203       </itemset>
2204       <actions>
2205         <transitions>
2206           <transition type="goto" symbol="unit" state="4"/>
2207           <transition type="goto" symbol="assignments" state="5"/>
2208         </transitions>
2209         <errors/>
2210         <reductions>
2211           <reduction symbol="$default" rule="4" enabled="true"/>
2212         </reductions>
2213       </actions>
2214       <solved-conflicts/>
2215     </state>
2217     <state number="2">
2218       <itemset>
2219         <item rule-number="1" dot="1"/>
2220         <item rule-number="4" dot="0"/>
2221         <item rule-number="5" dot="0"/>
2222       </itemset>
2223       <actions>
2224         <transitions>
2225           <transition type="goto" symbol="assignments" state="6"/>
2226         </transitions>
2227         <errors/>
2228         <reductions>
2229           <reduction symbol="$default" rule="4" enabled="true"/>
2230         </reductions>
2231       </actions>
2232       <solved-conflicts/>
2233     </state>
2235     <state number="3">
2236       <itemset>
2237         <item rule-number="2" dot="1"/>
2238         <item rule-number="10" dot="0"/>
2239         <item rule-number="11" dot="0"/>
2240         <item rule-number="12" dot="0"/>
2241         <item rule-number="13" dot="0"/>
2242       </itemset>
2243       <actions>
2244         <transitions>
2245           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2246           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2247           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2248           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2249           <transition type="goto" symbol="exp" state="11"/>
2250         </transitions>
2251         <errors/>
2252         <reductions/>
2253       </actions>
2254       <solved-conflicts/>
2255     </state>
2257     <state number="4">
2258       <itemset>
2259         <item rule-number="0" dot="2"/>
2260       </itemset>
2261       <actions>
2262         <transitions>
2263           <transition type="shift" symbol="&quot;end of file&quot;" state="12"/>
2264         </transitions>
2265         <errors/>
2266         <reductions/>
2267       </actions>
2268       <solved-conflicts/>
2269     </state>
2271     <state number="5">
2272       <itemset>
2273         <item rule-number="3" dot="1"/>
2274         <item rule-number="5" dot="1"/>
2275         <item rule-number="6" dot="0"/>
2276         <item rule-number="7" dot="0"/>
2277         <item rule-number="10" dot="0"/>
2278         <item rule-number="11" dot="0"/>
2279         <item rule-number="12" dot="0"/>
2280         <item rule-number="13" dot="0"/>
2281       </itemset>
2282       <actions>
2283         <transitions>
2284           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2285           <transition type="shift" symbol="&quot;identifier&quot;" state="13"/>
2286           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2287           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2288           <transition type="goto" symbol="assignment" state="14"/>
2289           <transition type="goto" symbol="id" state="15"/>
2290           <transition type="goto" symbol="exp" state="16"/>
2291         </transitions>
2292         <errors/>
2293         <reductions/>
2294       </actions>
2295       <solved-conflicts/>
2296     </state>
2298     <state number="6">
2299       <itemset>
2300         <item rule-number="1" dot="2"/>
2301         <item rule-number="5" dot="1"/>
2302         <item rule-number="6" dot="0"/>
2303         <item rule-number="7" dot="0"/>
2304       </itemset>
2305       <actions>
2306         <transitions>
2307           <transition type="shift" symbol="&quot;end of file&quot;" state="17"/>
2308           <transition type="shift" symbol="&quot;identifier&quot;" state="18"/>
2309           <transition type="goto" symbol="assignment" state="14"/>
2310           <transition type="goto" symbol="id" state="15"/>
2311         </transitions>
2312         <errors/>
2313         <reductions/>
2314       </actions>
2315       <solved-conflicts/>
2316     </state>
2318     <state number="7">
2319       <itemset>
2320         <item rule-number="10" dot="0"/>
2321         <item rule-number="10" dot="1"/>
2322         <item rule-number="11" dot="0"/>
2323         <item rule-number="12" dot="0"/>
2324         <item rule-number="13" dot="0"/>
2325       </itemset>
2326       <actions>
2327         <transitions>
2328           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2329           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2330           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2331           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2332           <transition type="goto" symbol="exp" state="19"/>
2333         </transitions>
2334         <errors/>
2335         <reductions/>
2336       </actions>
2337       <solved-conflicts/>
2338     </state>
2340     <state number="8">
2341       <itemset>
2342         <item rule-number="12" dot="1"/>
2343       </itemset>
2344       <actions>
2345         <transitions/>
2346         <errors/>
2347         <reductions>
2348           <reduction symbol="$default" rule="12" enabled="true"/>
2349         </reductions>
2350       </actions>
2351       <solved-conflicts/>
2352     </state>
2354     <state number="9">
2355       <itemset>
2356         <item rule-number="13" dot="1"/>
2357       </itemset>
2358       <actions>
2359         <transitions/>
2360         <errors/>
2361         <reductions>
2362           <reduction symbol="$default" rule="13" enabled="true"/>
2363         </reductions>
2364       </actions>
2365       <solved-conflicts/>
2366     </state>
2368     <state number="10">
2369       <itemset>
2370         <item rule-number="10" dot="0"/>
2371         <item rule-number="11" dot="0"/>
2372         <item rule-number="11" dot="1"/>
2373         <item rule-number="12" dot="0"/>
2374         <item rule-number="13" dot="0"/>
2375       </itemset>
2376       <actions>
2377         <transitions>
2378           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2379           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2380           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2381           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2382           <transition type="goto" symbol="exp" state="20"/>
2383         </transitions>
2384         <errors/>
2385         <reductions/>
2386       </actions>
2387       <solved-conflicts/>
2388     </state>
2390     <state number="11">
2391       <itemset>
2392         <item rule-number="2" dot="2"/>
2393       </itemset>
2394       <actions>
2395         <transitions>
2396           <transition type="shift" symbol="&quot;end of file&quot;" state="21"/>
2397         </transitions>
2398         <errors/>
2399         <reductions/>
2400       </actions>
2401       <solved-conflicts/>
2402     </state>
2404     <state number="12">
2405       <itemset>
2406         <item rule-number="0" dot="3"/>
2407       </itemset>
2408       <actions>
2409         <transitions/>
2410         <errors/>
2411         <reductions>
2412           <reduction symbol="$default" rule="accept" enabled="true"/>
2413         </reductions>
2414       </actions>
2415       <solved-conflicts/>
2416     </state>
2418     <state number="13">
2419       <itemset>
2420         <item rule-number="7" dot="1">
2421           <lookaheads>
2422             <symbol>&quot;:=&quot;</symbol>
2423           </lookaheads>
2424         </item>
2425         <item rule-number="12" dot="1">
2426           <lookaheads>
2427             <symbol>&quot;end of file&quot;</symbol>
2428           </lookaheads>
2429         </item>
2430       </itemset>
2431       <actions>
2432         <transitions/>
2433         <errors/>
2434         <reductions>
2435           <reduction symbol="&quot;end of file&quot;" rule="12" enabled="true"/>
2436           <reduction symbol="$default" rule="7" enabled="true"/>
2437         </reductions>
2438       </actions>
2439       <solved-conflicts/>
2440     </state>
2442     <state number="14">
2443       <itemset>
2444         <item rule-number="5" dot="2"/>
2445       </itemset>
2446       <actions>
2447         <transitions/>
2448         <errors/>
2449         <reductions>
2450           <reduction symbol="$default" rule="5" enabled="true"/>
2451         </reductions>
2452       </actions>
2453       <solved-conflicts/>
2454     </state>
2456     <state number="15">
2457       <itemset>
2458         <item rule-number="6" dot="1"/>
2459       </itemset>
2460       <actions>
2461         <transitions>
2462           <transition type="shift" symbol="&quot;:=&quot;" state="22"/>
2463         </transitions>
2464         <errors/>
2465         <reductions/>
2466       </actions>
2467       <solved-conflicts/>
2468     </state>
2470     <state number="16">
2471       <itemset>
2472         <item rule-number="3" dot="2"/>
2473       </itemset>
2474       <actions>
2475         <transitions/>
2476         <errors/>
2477         <reductions>
2478           <reduction symbol="$default" rule="3" enabled="true"/>
2479         </reductions>
2480       </actions>
2481       <solved-conflicts/>
2482     </state>
2484     <state number="17">
2485       <itemset>
2486         <item rule-number="1" dot="3"/>
2487       </itemset>
2488       <actions>
2489         <transitions/>
2490         <errors/>
2491         <reductions>
2492           <reduction symbol="$default" rule="accept" enabled="true"/>
2493         </reductions>
2494       </actions>
2495       <solved-conflicts/>
2496     </state>
2498     <state number="18">
2499       <itemset>
2500         <item rule-number="7" dot="1"/>
2501       </itemset>
2502       <actions>
2503         <transitions/>
2504         <errors/>
2505         <reductions>
2506           <reduction symbol="$default" rule="7" enabled="true"/>
2507         </reductions>
2508       </actions>
2509       <solved-conflicts/>
2510     </state>
2512     <state number="19">
2513       <itemset>
2514         <item rule-number="8" dot="0"/>
2515         <item rule-number="10" dot="2"/>
2516       </itemset>
2517       <actions>
2518         <transitions>
2519           <transition type="goto" symbol="@1" state="23"/>
2520         </transitions>
2521         <errors/>
2522         <reductions>
2523           <reduction symbol="$default" rule="8" enabled="true"/>
2524         </reductions>
2525       </actions>
2526       <solved-conflicts/>
2527     </state>
2529     <state number="20">
2530       <itemset>
2531         <item rule-number="11" dot="2"/>
2532       </itemset>
2533       <actions>
2534         <transitions>
2535           <transition type="shift" symbol="&quot;)&quot;" state="24"/>
2536         </transitions>
2537         <errors/>
2538         <reductions/>
2539       </actions>
2540       <solved-conflicts/>
2541     </state>
2543     <state number="21">
2544       <itemset>
2545         <item rule-number="2" dot="3"/>
2546       </itemset>
2547       <actions>
2548         <transitions/>
2549         <errors/>
2550         <reductions>
2551           <reduction symbol="$default" rule="accept" enabled="true"/>
2552         </reductions>
2553       </actions>
2554       <solved-conflicts/>
2555     </state>
2557     <state number="22">
2558       <itemset>
2559         <item rule-number="6" dot="2"/>
2560         <item rule-number="10" dot="0"/>
2561         <item rule-number="11" dot="0"/>
2562         <item rule-number="12" dot="0"/>
2563         <item rule-number="13" dot="0"/>
2564       </itemset>
2565       <actions>
2566         <transitions>
2567           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2568           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2569           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2570           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2571           <transition type="goto" symbol="exp" state="25"/>
2572         </transitions>
2573         <errors/>
2574         <reductions/>
2575       </actions>
2576       <solved-conflicts/>
2577     </state>
2579     <state number="23">
2580       <itemset>
2581         <item rule-number="9" dot="0"/>
2582         <item rule-number="10" dot="3"/>
2583       </itemset>
2584       <actions>
2585         <transitions>
2586           <transition type="goto" symbol="@2" state="26"/>
2587         </transitions>
2588         <errors/>
2589         <reductions>
2590           <reduction symbol="$default" rule="9" enabled="true"/>
2591         </reductions>
2592       </actions>
2593       <solved-conflicts/>
2594     </state>
2596     <state number="24">
2597       <itemset>
2598         <item rule-number="11" dot="3"/>
2599       </itemset>
2600       <actions>
2601         <transitions/>
2602         <errors/>
2603         <reductions>
2604           <reduction symbol="$default" rule="11" enabled="true"/>
2605         </reductions>
2606       </actions>
2607       <solved-conflicts/>
2608     </state>
2610     <state number="25">
2611       <itemset>
2612         <item rule-number="6" dot="3"/>
2613       </itemset>
2614       <actions>
2615         <transitions/>
2616         <errors/>
2617         <reductions>
2618           <reduction symbol="$default" rule="6" enabled="true"/>
2619         </reductions>
2620       </actions>
2621       <solved-conflicts/>
2622     </state>
2624     <state number="26">
2625       <itemset>
2626         <item rule-number="10" dot="0"/>
2627         <item rule-number="10" dot="4"/>
2628         <item rule-number="11" dot="0"/>
2629         <item rule-number="12" dot="0"/>
2630         <item rule-number="13" dot="0"/>
2631       </itemset>
2632       <actions>
2633         <transitions>
2634           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2635           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2636           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2637           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2638           <transition type="goto" symbol="exp" state="27"/>
2639         </transitions>
2640         <errors/>
2641         <reductions/>
2642       </actions>
2643       <solved-conflicts/>
2644     </state>
2646     <state number="27">
2647       <itemset>
2648         <item rule-number="10" dot="5"/>
2649       </itemset>
2650       <actions>
2651         <transitions/>
2652         <errors/>
2653         <reductions>
2654           <reduction symbol="$default" rule="10" enabled="true"/>
2655         </reductions>
2656       </actions>
2657       <solved-conflicts/>
2658     </state>
2659   </automaton>
2660 </bison-xml-report>
2663 if test x"$XSLTPROC" != x""; then
2664   AT_CHECK([[$XSLTPROC \
2665              `]]AT_SET_ENV[[ bison --print-datadir`/xslt/xml2xhtml.xsl \
2666              input.xml >input.html]])
2667   AT_CHECK_HTML([input.html],
2668 [[<?xml version="1.0" encoding="UTF-8"?>
2669 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2670 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
2671   <head>
2672     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
2673     <title>input.yy - GNU Bison XML Automaton Report</title>
2674     <style type="text/css">
2675       body {
2676         font-family: "Nimbus Sans L", Arial, sans-serif;
2677         font-size: 9pt;
2678       }
2679       a:link {
2680         color: #1f00ff;
2681         text-decoration: none;
2682       }
2683       a:visited {
2684         color: #1f00ff;
2685         text-decoration: none;
2686       }
2687       a:hover {
2688         color: red;
2689       }
2690       #menu a {
2691         text-decoration: underline;
2692       }
2693       .i {
2694         font-style: italic;
2695       }
2696       .pre {
2697         font-family: monospace;
2698         white-space: pre;
2699       }
2700       ol.decimal {
2701         list-style-type: decimal;
2702       }
2703       ol.lower-alpha {
2704         list-style-type: lower-alpha;
2705       }
2706       .dot {
2707         color: #cc0000;
2708       }
2709       #footer {
2710         margin-top: 3.5em;
2711         font-size: 7pt;
2712       }
2713       </style>
2714   </head>
2715   <body><h1>GNU Bison XML Automaton Report</h1><p>
2716     input grammar: <span class="i">input.yy</span></p>
2718 <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>
2720 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
2722 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
2723 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
2725 <h2><a name="grammar" id="grammar"></a> Grammar</h2>
2726 <p class="pre">
2727   <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>
2728   <a name="rule_1" id="rule_1">  1</a>         | <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
2729   <a name="rule_2" id="rule_2">  2</a>         | <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
2731   <a name="rule_3" id="rule_3">  3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
2733   <a name="rule_4" id="rule_4">  4</a> <span class="i">assignments</span> → %empty
2734   <a name="rule_5" id="rule_5">  5</a>             | <span class="i">assignments</span> <span class="i">assignment</span>
2736   <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>
2738   <a name="rule_7" id="rule_7">  7</a> <span class="i">id</span> → <b>"identifier"</b>
2740   <a name="rule_8" id="rule_8">  8</a> <span class="i">@1</span> → %empty
2742   <a name="rule_9" id="rule_9">  9</a> <span class="i">@2</span> → %empty
2744   <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>
2745   <a name="rule_11" id="rule_11"> 11</a>     | <b>"("</b> <span class="i">exp</span> <b>")"</b>
2746   <a name="rule_12" id="rule_12"> 12</a>     | <b>"identifier"</b>
2747   <a name="rule_13" id="rule_13"> 13</a>     | <b>"number"</b>
2748 </p>
2750 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
2752 <ul>
2753   <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>
2754   <li><b>error</b> (256)</li>
2755   <li><b>":="</b> (258) <a href="#rule_6">6</a></li>
2756   <li><b>"incr"</b> (259) <a href="#rule_10">10</a></li>
2757   <li><b>"identifier"</b> &lt;std::string&gt; (260) <a href="#rule_7">7</a> <a href="#rule_12">12</a></li>
2758   <li><b>"number"</b> &lt;int&gt; (261) <a href="#rule_13">13</a></li>
2759   <li><b>YY_PARSE_unit</b> (262) <a href="#rule_0">0</a></li>
2760   <li><b>YY_PARSE_assignments</b> (263) <a href="#rule_1">1</a></li>
2761   <li><b>YY_PARSE_exp</b> (264) <a href="#rule_2">2</a></li>
2762   <li><b>"("</b> (265) <a href="#rule_11">11</a></li>
2763   <li><b>")"</b> (266) <a href="#rule_11">11</a></li>
2764 </ul>
2766 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
2768 <ul>
2769   <li><b>$accept</b> (12)
2770     <ul>
2771       <li>on left: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
2772     </ul>
2773   </li>
2774   <li><b>unit</b> (13)
2775     <ul>
2776       <li>on left: <a href="#rule_3">3</a></li>
2777       <li>on right: <a href="#rule_0">0</a></li>
2778     </ul>
2779   </li>
2780   <li><b>assignments</b> (14)
2781     <ul>
2782       <li>on left: <a href="#rule_4">4</a> <a href="#rule_5">5</a></li>
2783       <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a> <a href="#rule_5">5</a></li>
2784     </ul>
2785   </li>
2786   <li><b>assignment</b> (15)
2787     <ul>
2788       <li>on left: <a href="#rule_6">6</a></li>
2789       <li>on right: <a href="#rule_5">5</a></li>
2790     </ul>
2791   </li>
2792   <li><b>id</b> &lt;std::string&gt; (16)
2793     <ul>
2794       <li>on left: <a href="#rule_7">7</a></li>
2795       <li>on right: <a href="#rule_6">6</a></li>
2796     </ul>
2797   </li>
2798   <li><b>exp</b> &lt;int&gt; (17)
2799     <ul>
2800       <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>
2801       <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>
2802     </ul>
2803   </li>
2804   <li><b>@1</b> &lt;int&gt; (18)
2805     <ul>
2806       <li>on left: <a href="#rule_8">8</a></li>
2807       <li>on right: <a href="#rule_10">10</a></li>
2808     </ul>
2809   </li>
2810   <li><b>@2</b> &lt;int&gt; (19)
2811     <ul>
2812       <li>on left: <a href="#rule_9">9</a></li>
2813       <li>on right: <a href="#rule_10">10</a></li>
2814     </ul>
2815   </li>
2816 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
2818 <h3><a name="state_0" id="state_0"></a>State 0</h3>
2820 <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>
2821   <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>
2822   <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>
2824     YY_PARSE_unit         <a href="#state_1">shift, and go to state 1</a>
2825     YY_PARSE_assignments  <a href="#state_2">shift, and go to state 2</a>
2826     YY_PARSE_exp          <a href="#state_3">shift, and go to state 3</a>
2827 </p>
2829 <h3><a name="state_1" id="state_1"></a>State 1</h3>
2831 <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>
2832   <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>
2833   <a href="#rule_4">  4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
2834   <a href="#rule_5">  5</a>             | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
2836     $default  <a href="#rule_4">reduce using rule 4</a> (assignments)
2838     unit         <a href="#state_4">go to state 4</a>
2839     assignments  <a href="#state_5">go to state 5</a>
2840 </p>
2842 <h3><a name="state_2" id="state_2"></a>State 2</h3>
2844 <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>
2845   <a href="#rule_4">  4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
2846   <a href="#rule_5">  5</a>             | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
2848     $default  <a href="#rule_4">reduce using rule 4</a> (assignments)
2850     assignments  <a href="#state_6">go to state 6</a>
2851 </p>
2853 <h3><a name="state_3" id="state_3"></a>State 3</h3>
2855 <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>
2856   <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>
2857   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2858   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2859   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2861     "incr"        <a href="#state_7">shift, and go to state 7</a>
2862     "identifier"  <a href="#state_8">shift, and go to state 8</a>
2863     "number"      <a href="#state_9">shift, and go to state 9</a>
2864     "("           <a href="#state_10">shift, and go to state 10</a>
2866     exp  <a href="#state_11">go to state 11</a>
2867 </p>
2869 <h3><a name="state_4" id="state_4"></a>State 4</h3>
2871 <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>
2873     "end of file"  <a href="#state_12">shift, and go to state 12</a>
2874 </p>
2876 <h3><a name="state_5" id="state_5"></a>State 5</h3>
2878 <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>
2879   <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>
2880   <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>
2881   <a href="#rule_7">  7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
2882   <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>
2883   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2884   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2885   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2887     "incr"        <a href="#state_7">shift, and go to state 7</a>
2888     "identifier"  <a href="#state_13">shift, and go to state 13</a>
2889     "number"      <a href="#state_9">shift, and go to state 9</a>
2890     "("           <a href="#state_10">shift, and go to state 10</a>
2892     assignment  <a href="#state_14">go to state 14</a>
2893     id          <a href="#state_15">go to state 15</a>
2894     exp         <a href="#state_16">go to state 16</a>
2895 </p>
2897 <h3><a name="state_6" id="state_6"></a>State 6</h3>
2899 <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>
2900   <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>
2901   <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>
2902   <a href="#rule_7">  7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
2904     "end of file"  <a href="#state_17">shift, and go to state 17</a>
2905     "identifier"   <a href="#state_18">shift, and go to state 18</a>
2907     assignment  <a href="#state_14">go to state 14</a>
2908     id          <a href="#state_15">go to state 15</a>
2909 </p>
2911 <h3><a name="state_7" id="state_7"></a>State 7</h3>
2913 <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>
2914   <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>
2915   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2916   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2917   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2919     "incr"        <a href="#state_7">shift, and go to state 7</a>
2920     "identifier"  <a href="#state_8">shift, and go to state 8</a>
2921     "number"      <a href="#state_9">shift, and go to state 9</a>
2922     "("           <a href="#state_10">shift, and go to state 10</a>
2924     exp  <a href="#state_19">go to state 19</a>
2925 </p>
2927 <h3><a name="state_8" id="state_8"></a>State 8</h3>
2929 <p class="pre">  <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
2931     $default  <a href="#rule_12">reduce using rule 12</a> (exp)
2932 </p>
2934 <h3><a name="state_9" id="state_9"></a>State 9</h3>
2936 <p class="pre">  <a href="#rule_13"> 13</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
2938     $default  <a href="#rule_13">reduce using rule 13</a> (exp)
2939 </p>
2941 <h3><a name="state_10" id="state_10"></a>State 10</h3>
2943 <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>
2944   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2945   <a href="#rule_11"> 11</a>     | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
2946   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2947   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2949     "incr"        <a href="#state_7">shift, and go to state 7</a>
2950     "identifier"  <a href="#state_8">shift, and go to state 8</a>
2951     "number"      <a href="#state_9">shift, and go to state 9</a>
2952     "("           <a href="#state_10">shift, and go to state 10</a>
2954     exp  <a href="#state_20">go to state 20</a>
2955 </p>
2957 <h3><a name="state_11" id="state_11"></a>State 11</h3>
2959 <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>
2961     "end of file"  <a href="#state_21">shift, and go to state 21</a>
2962 </p>
2964 <h3><a name="state_12" id="state_12"></a>State 12</h3>
2966 <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>
2968     $default  accept
2969 </p>
2971 <h3><a name="state_13" id="state_13"></a>State 13</h3>
2973 <p class="pre">  <a href="#rule_7">  7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>  [":="]
2974   <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>  ["end of file"]
2976     "end of file"  <a href="#rule_12">reduce using rule 12</a> (exp)
2977     $default       <a href="#rule_7">reduce using rule 7</a> (id)
2978 </p>
2980 <h3><a name="state_14" id="state_14"></a>State 14</h3>
2982 <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>
2984     $default  <a href="#rule_5">reduce using rule 5</a> (assignments)
2985 </p>
2987 <h3><a name="state_15" id="state_15"></a>State 15</h3>
2989 <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>
2991     ":="  <a href="#state_22">shift, and go to state 22</a>
2992 </p>
2994 <h3><a name="state_16" id="state_16"></a>State 16</h3>
2996 <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>
2998     $default  <a href="#rule_3">reduce using rule 3</a> (unit)
2999 </p>
3001 <h3><a name="state_17" id="state_17"></a>State 17</h3>
3003 <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>
3005     $default  accept
3006 </p>
3008 <h3><a name="state_18" id="state_18"></a>State 18</h3>
3010 <p class="pre">  <a href="#rule_7">  7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>
3012     $default  <a href="#rule_7">reduce using rule 7</a> (id)
3013 </p>
3015 <h3><a name="state_19" id="state_19"></a>State 19</h3>
3017 <p class="pre">  <a href="#rule_8">  8</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
3018   <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>
3020     $default  <a href="#rule_8">reduce using rule 8</a> (@1)
3022     @1  <a href="#state_23">go to state 23</a>
3023 </p>
3025 <h3><a name="state_20" id="state_20"></a>State 20</h3>
3027 <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>
3029     ")"  <a href="#state_24">shift, and go to state 24</a>
3030 </p>
3032 <h3><a name="state_21" id="state_21"></a>State 21</h3>
3034 <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>
3036     $default  accept
3037 </p>
3039 <h3><a name="state_22" id="state_22"></a>State 22</h3>
3041 <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>
3042   <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>
3043   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
3044   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
3045   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
3047     "incr"        <a href="#state_7">shift, and go to state 7</a>
3048     "identifier"  <a href="#state_8">shift, and go to state 8</a>
3049     "number"      <a href="#state_9">shift, and go to state 9</a>
3050     "("           <a href="#state_10">shift, and go to state 10</a>
3052     exp  <a href="#state_25">go to state 25</a>
3053 </p>
3055 <h3><a name="state_23" id="state_23"></a>State 23</h3>
3057 <p class="pre">  <a href="#rule_9">  9</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
3058   <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>
3060     $default  <a href="#rule_9">reduce using rule 9</a> (@2)
3062     @2  <a href="#state_26">go to state 26</a>
3063 </p>
3065 <h3><a name="state_24" id="state_24"></a>State 24</h3>
3067 <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>
3069     $default  <a href="#rule_11">reduce using rule 11</a> (exp)
3070 </p>
3072 <h3><a name="state_25" id="state_25"></a>State 25</h3>
3074 <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>
3076     $default  <a href="#rule_6">reduce using rule 6</a> (assignment)
3077 </p>
3079 <h3><a name="state_26" id="state_26"></a>State 26</h3>
3081 <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>
3082   <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>
3083   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
3084   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
3085   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
3087     "incr"        <a href="#state_7">shift, and go to state 7</a>
3088     "identifier"  <a href="#state_8">shift, and go to state 8</a>
3089     "number"      <a href="#state_9">shift, and go to state 9</a>
3090     "("           <a href="#state_10">shift, and go to state 10</a>
3092     exp  <a href="#state_27">go to state 27</a>
3093 </p>
3095 <h3><a name="state_27" id="state_27"></a>State 27</h3>
3097 <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>
3099     $default  <a href="#rule_10">reduce using rule 10</a> (exp)
3100 </p>
3102 <div id="footer"><hr />This document was generated using
3103       <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
3104       GNU Bison ]AT_PACKAGE_VERSION[</a>
3105       XML Automaton Report.<br />
3106       Verbatim copying and distribution of this entire page is
3107       permitted in any medium, provided this notice is preserved.</div></body>
3108 </html>
3112 AT_BISON_OPTION_POPDEFS
3113 AT_CLEANUP
3116 ## ------------------------ ##
3117 ## Reports with conflicts.  ##
3118 ## ------------------------ ##
3120 AT_SETUP([Reports with conflicts])
3122 AT_KEYWORDS([cex report])
3124 # We need UTF-8 support for correct screen-width computation of UTF-8
3125 # characters.  Skip the test if not available.
3126 locale=`locale -a | $EGREP '^en_US\.(UTF-8|utf8)$' | sed 1q`
3127 AT_SKIP_IF([[test x = x"$locale"]])
3129 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
3131 AT_BISON_OPTION_PUSHDEFS
3132 AT_DATA([input.y],
3133 [[%left "+"
3136 : exp "⊕" exp
3137 | exp "+" exp
3138 | exp "+" exp
3139 | "number"
3140 | "Ñùṃéℝô"
3143 AT_CHECK([LC_ALL="$locale" bison -fno-caret -o input.cc -rall -Wcex --graph=input.gv --html --xml input.y], [], [],
3144 [[input.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
3145 input.y: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
3146 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3147   Example: exp "+" exp • "⊕" exp
3148   Shift derivation
3149     exp
3150     ↳ 2: exp "+" exp
3151                  ↳ 1: exp • "⊕" exp
3152   Reduce derivation
3153     exp
3154     ↳ 1: exp                "⊕" exp
3155          ↳ 2: exp "+" exp •
3156 input.y: warning: reduce/reduce conflict on tokens $end, "+", "⊕" [-Wcounterexamples]
3157   Example: exp "+" exp •
3158   First reduce derivation
3159     exp
3160     ↳ 2: exp "+" exp •
3161   Second reduce derivation
3162     exp
3163     ↳ 3: exp "+" exp •
3164 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3165   Example: exp "+" exp • "⊕" exp
3166   Shift derivation
3167     exp
3168     ↳ 2: exp "+" exp
3169                  ↳ 1: exp • "⊕" exp
3170   Reduce derivation
3171     exp
3172     ↳ 1: exp                "⊕" exp
3173          ↳ 3: exp "+" exp •
3174 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3175   Example: exp "⊕" exp • "⊕" exp
3176   Shift derivation
3177     exp
3178     ↳ 1: exp "⊕" exp
3179                  ↳ 1: exp • "⊕" exp
3180   Reduce derivation
3181     exp
3182     ↳ 1: exp                "⊕" exp
3183          ↳ 1: exp "⊕" exp •
3184 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3185   Example: exp "⊕" exp • "+" exp
3186   Shift derivation
3187     exp
3188     ↳ 1: exp "⊕" exp
3189                  ↳ 2: exp • "+" exp
3190   Reduce derivation
3191     exp
3192     ↳ 2: exp                "+" exp
3193          ↳ 1: exp "⊕" exp •
3194 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3195   Example: exp "⊕" exp • "+" exp
3196   Shift derivation
3197     exp
3198     ↳ 1: exp "⊕" exp
3199                  ↳ 3: exp • "+" exp
3200   Reduce derivation
3201     exp
3202     ↳ 2: exp                "+" exp
3203          ↳ 1: exp "⊕" exp •
3204 input.y:6.3-13: warning: rule useless in parser due to conflicts [-Wother]
3207 # Check the contents of the report.
3208 # FIXME: Avoid trailing white spaces.
3209 AT_CHECK([sed -e 's/ *$//' input.output], [],
3210 [[Rules useless in parser due to conflicts
3212     3 exp: exp "+" exp
3215 State 7 conflicts: 1 shift/reduce, 3 reduce/reduce
3216 State 8 conflicts: 2 shift/reduce
3219 Grammar
3221     0 $accept: exp $end
3223     1 exp: exp "⊕" exp
3224     2    | exp "+" exp
3225     3    | exp "+" exp
3226     4    | "number"
3227     5    | "Ñùṃéℝô"
3230 Terminals, with rules where they appear
3232     $end (0) 0
3233     error (256)
3234     "+" (258) 2 3
3235     "⊕" (259) 1
3236     "number" (260) 4
3237     "Ñùṃéℝô" (261) 5
3240 Nonterminals, with rules where they appear
3242     $accept (7)
3243         on left: 0
3244     exp (8)
3245         on left: 1 2 3 4 5
3246         on right: 0 1 2 3
3249 State 0
3251     0 $accept: • exp $end
3252     1 exp: • exp "⊕" exp
3253     2    | • exp "+" exp
3254     3    | • exp "+" exp
3255     4    | • "number"
3256     5    | • "Ñùṃéℝô"
3258     "number"  shift, and go to state 1
3259     "Ñùṃéℝô"  shift, and go to state 2
3261     exp  go to state 3
3264 State 1
3266     4 exp: "number" •
3268     $default  reduce using rule 4 (exp)
3271 State 2
3273     5 exp: "Ñùṃéℝô" •
3275     $default  reduce using rule 5 (exp)
3278 State 3
3280     0 $accept: exp • $end
3281     1 exp: exp • "⊕" exp
3282     2    | exp • "+" exp
3283     3    | exp • "+" exp
3285     $end  shift, and go to state 4
3286     "+"   shift, and go to state 5
3287     "⊕"   shift, and go to state 6
3290 State 4
3292     0 $accept: exp $end •
3294     $default  accept
3297 State 5
3299     1 exp: • exp "⊕" exp
3300     2    | • exp "+" exp
3301     2    | exp "+" • exp
3302     3    | • exp "+" exp
3303     3    | exp "+" • exp
3304     4    | • "number"
3305     5    | • "Ñùṃéℝô"
3307     "number"  shift, and go to state 1
3308     "Ñùṃéℝô"  shift, and go to state 2
3310     exp  go to state 7
3313 State 6
3315     1 exp: • exp "⊕" exp
3316     1    | exp "⊕" • exp
3317     2    | • exp "+" exp
3318     3    | • exp "+" exp
3319     4    | • "number"
3320     5    | • "Ñùṃéℝô"
3322     "number"  shift, and go to state 1
3323     "Ñùṃéℝô"  shift, and go to state 2
3325     exp  go to state 8
3328 State 7
3330     1 exp: exp • "⊕" exp
3331     2    | exp • "+" exp
3332     2    | exp "+" exp •  [$end, "+", "⊕"]
3333     3    | exp • "+" exp
3334     3    | exp "+" exp •  [$end, "+", "⊕"]
3336     "⊕"  shift, and go to state 6
3338     $end      reduce using rule 2 (exp)
3339     $end      [reduce using rule 3 (exp)]
3340     "+"       reduce using rule 2 (exp)
3341     "+"       [reduce using rule 3 (exp)]
3342     "⊕"       [reduce using rule 2 (exp)]
3343     "⊕"       [reduce using rule 3 (exp)]
3344     $default  reduce using rule 2 (exp)
3346     Conflict between rule 2 and token "+" resolved as reduce (%left "+").
3348     shift/reduce conflict on token "⊕":
3349         2 exp: exp "+" exp •
3350         1 exp: exp • "⊕" exp
3351       Example: exp "+" exp • "⊕" exp
3352       Shift derivation
3353         exp
3354         ↳ 2: exp "+" exp
3355                      ↳ 1: exp • "⊕" exp
3356       Reduce derivation
3357         exp
3358         ↳ 1: exp                "⊕" exp
3359              ↳ 2: exp "+" exp •
3361     reduce/reduce conflict on tokens $end, "+", "⊕":
3362         2 exp: exp "+" exp •
3363         3 exp: exp "+" exp •
3364       Example: exp "+" exp •
3365       First reduce derivation
3366         exp
3367         ↳ 2: exp "+" exp •
3368       Second reduce derivation
3369         exp
3370         ↳ 3: exp "+" exp •
3372     shift/reduce conflict on token "⊕":
3373         3 exp: exp "+" exp •
3374         1 exp: exp • "⊕" exp
3375       Example: exp "+" exp • "⊕" exp
3376       Shift derivation
3377         exp
3378         ↳ 2: exp "+" exp
3379                      ↳ 1: exp • "⊕" exp
3380       Reduce derivation
3381         exp
3382         ↳ 1: exp                "⊕" exp
3383              ↳ 3: exp "+" exp •
3387 State 8
3389     1 exp: exp • "⊕" exp
3390     1    | exp "⊕" exp •  [$end, "+", "⊕"]
3391     2    | exp • "+" exp
3392     3    | exp • "+" exp
3394     "+"  shift, and go to state 5
3395     "⊕"  shift, and go to state 6
3397     "+"       [reduce using rule 1 (exp)]
3398     "⊕"       [reduce using rule 1 (exp)]
3399     $default  reduce using rule 1 (exp)
3401     shift/reduce conflict on token "⊕":
3402         1 exp: exp "⊕" exp •
3403         1 exp: exp • "⊕" exp
3404       Example: exp "⊕" exp • "⊕" exp
3405       Shift derivation
3406         exp
3407         ↳ 1: exp "⊕" exp
3408                      ↳ 1: exp • "⊕" exp
3409       Reduce derivation
3410         exp
3411         ↳ 1: exp                "⊕" exp
3412              ↳ 1: exp "⊕" exp •
3414     shift/reduce conflict on token "+":
3415         1 exp: exp "⊕" exp •
3416         2 exp: exp • "+" exp
3417       Example: exp "⊕" exp • "+" exp
3418       Shift derivation
3419         exp
3420         ↳ 1: exp "⊕" exp
3421                      ↳ 2: exp • "+" exp
3422       Reduce derivation
3423         exp
3424         ↳ 2: exp                "+" exp
3425              ↳ 1: exp "⊕" exp •
3427     shift/reduce conflict on token "+":
3428         1 exp: exp "⊕" exp •
3429         3 exp: exp • "+" exp
3430       Example: exp "⊕" exp • "+" exp
3431       Shift derivation
3432         exp
3433         ↳ 1: exp "⊕" exp
3434                      ↳ 3: exp • "+" exp
3435       Reduce derivation
3436         exp
3437         ↳ 2: exp                "+" exp
3438              ↳ 1: exp "⊕" exp •
3445 AT_CHECK([cat input.gv], [],
3446 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
3447 // Report bugs to <bug-bison@gnu.org>.
3448 // Home page: <https://www.gnu.org/software/bison/>.
3450 digraph "input.y"
3452   node [fontname = courier, shape = box, colorscheme = paired6]
3453   edge [fontname = courier]
3455   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"]
3456   0 -> 1 [style=solid label="\"number\""]
3457   0 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3458   0 -> 3 [style=dashed label="exp"]
3459   1 [label="State 1\n\l  4 exp: \"number\" •\l"]
3460   1 -> "1R4" [style=solid]
3461  "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
3462   2 [label="State 2\n\l  5 exp: \"Ñùṃéℝô\" •\l"]
3463   2 -> "2R5" [style=solid]
3464  "2R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
3465   3 [label="State 3\n\l  0 $accept: exp • $end\l  1 exp: exp • \"⊕\" exp\l  2    | exp • \"+\" exp\l  3    | exp • \"+\" exp\l"]
3466   3 -> 4 [style=solid label="$end"]
3467   3 -> 5 [style=solid label="\"+\""]
3468   3 -> 6 [style=solid label="\"⊕\""]
3469   4 [label="State 4\n\l  0 $accept: exp $end •\l"]
3470   4 -> "4R0" [style=solid]
3471  "4R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
3472   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"]
3473   5 -> 1 [style=solid label="\"number\""]
3474   5 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3475   5 -> 7 [style=dashed label="exp"]
3476   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"]
3477   6 -> 1 [style=solid label="\"number\""]
3478   6 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3479   6 -> 8 [style=dashed label="exp"]
3480   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"]
3481   7 -> 6 [style=solid label="\"⊕\""]
3482   7 -> "7R2d" [label="[\"⊕\"]", style=solid]
3483  "7R2d" [label="R2", fillcolor=5, shape=diamond, style=filled]
3484   7 -> "7R2" [style=solid]
3485  "7R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
3486   7 -> "7R3d" [label="[$end, \"+\", \"⊕\"]", style=solid]
3487  "7R3d" [label="R3", fillcolor=5, shape=diamond, style=filled]
3488   8 [label="State 8\n\l  1 exp: exp • \"⊕\" exp\l  1    | exp \"⊕\" exp •  [$end, \"+\", \"⊕\"]\l  2    | exp • \"+\" exp\l  3    | exp • \"+\" exp\l"]
3489   8 -> 5 [style=solid label="\"+\""]
3490   8 -> 6 [style=solid label="\"⊕\""]
3491   8 -> "8R1d" [label="[\"+\", \"⊕\"]", style=solid]
3492  "8R1d" [label="R1", fillcolor=5, shape=diamond, style=filled]
3493   8 -> "8R1" [style=solid]
3494  "8R1" [label="R1", fillcolor=3, shape=diamond, style=filled]
3499 AT_CHECK([[cat input.xml]], [],
3500 [[<?xml version="1.0"?>
3502 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
3504   <filename>input.y</filename>
3506   <grammar>
3507     <rules>
3508       <rule number="0" usefulness="useful">
3509         <lhs>$accept</lhs>
3510         <rhs>
3511           <symbol>exp</symbol>
3512           <symbol>$end</symbol>
3513         </rhs>
3514       </rule>
3515       <rule number="1" usefulness="useful">
3516         <lhs>exp</lhs>
3517         <rhs>
3518           <symbol>exp</symbol>
3519           <symbol>&quot;⊕&quot;</symbol>
3520           <symbol>exp</symbol>
3521         </rhs>
3522       </rule>
3523       <rule number="2" usefulness="useful">
3524         <lhs>exp</lhs>
3525         <rhs>
3526           <symbol>exp</symbol>
3527           <symbol>&quot;+&quot;</symbol>
3528           <symbol>exp</symbol>
3529         </rhs>
3530       </rule>
3531       <rule number="3" usefulness="useless-in-parser">
3532         <lhs>exp</lhs>
3533         <rhs>
3534           <symbol>exp</symbol>
3535           <symbol>&quot;+&quot;</symbol>
3536           <symbol>exp</symbol>
3537         </rhs>
3538       </rule>
3539       <rule number="4" usefulness="useful">
3540         <lhs>exp</lhs>
3541         <rhs>
3542           <symbol>&quot;number&quot;</symbol>
3543         </rhs>
3544       </rule>
3545       <rule number="5" usefulness="useful">
3546         <lhs>exp</lhs>
3547         <rhs>
3548           <symbol>&quot;Ñùṃéℝô&quot;</symbol>
3549         </rhs>
3550       </rule>
3551     </rules>
3552     <terminals>
3553       <terminal symbol-number="0" token-number="0" name="$end" type="" usefulness="useful"/>
3554       <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
3555       <terminal symbol-number="3" token-number="258" name="&quot;+&quot;" type="" usefulness="useful" prec="1" assoc="left"/>
3556       <terminal symbol-number="4" token-number="259" name="&quot;⊕&quot;" type="" usefulness="useful"/>
3557       <terminal symbol-number="5" token-number="260" name="&quot;number&quot;" type="" usefulness="useful"/>
3558       <terminal symbol-number="6" token-number="261" name="&quot;Ñùṃéℝô&quot;" type="" usefulness="useful"/>
3559     </terminals>
3560     <nonterminals>
3561       <nonterminal symbol-number="7" name="$accept" type="" usefulness="useful"/>
3562       <nonterminal symbol-number="8" name="exp" type="" usefulness="useful"/>
3563     </nonterminals>
3564   </grammar>
3566   <automaton>
3568     <state number="0">
3569       <itemset>
3570         <item rule-number="0" dot="0"/>
3571         <item rule-number="1" dot="0"/>
3572         <item rule-number="2" dot="0"/>
3573         <item rule-number="3" dot="0"/>
3574         <item rule-number="4" dot="0"/>
3575         <item rule-number="5" dot="0"/>
3576       </itemset>
3577       <actions>
3578         <transitions>
3579           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3580           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3581           <transition type="goto" symbol="exp" state="3"/>
3582         </transitions>
3583         <errors/>
3584         <reductions/>
3585       </actions>
3586       <solved-conflicts/>
3587     </state>
3589     <state number="1">
3590       <itemset>
3591         <item rule-number="4" dot="1"/>
3592       </itemset>
3593       <actions>
3594         <transitions/>
3595         <errors/>
3596         <reductions>
3597           <reduction symbol="$default" rule="4" enabled="true"/>
3598         </reductions>
3599       </actions>
3600       <solved-conflicts/>
3601     </state>
3603     <state number="2">
3604       <itemset>
3605         <item rule-number="5" dot="1"/>
3606       </itemset>
3607       <actions>
3608         <transitions/>
3609         <errors/>
3610         <reductions>
3611           <reduction symbol="$default" rule="5" enabled="true"/>
3612         </reductions>
3613       </actions>
3614       <solved-conflicts/>
3615     </state>
3617     <state number="3">
3618       <itemset>
3619         <item rule-number="0" dot="1"/>
3620         <item rule-number="1" dot="1"/>
3621         <item rule-number="2" dot="1"/>
3622         <item rule-number="3" dot="1"/>
3623       </itemset>
3624       <actions>
3625         <transitions>
3626           <transition type="shift" symbol="$end" state="4"/>
3627           <transition type="shift" symbol="&quot;+&quot;" state="5"/>
3628           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3629         </transitions>
3630         <errors/>
3631         <reductions/>
3632       </actions>
3633       <solved-conflicts/>
3634     </state>
3636     <state number="4">
3637       <itemset>
3638         <item rule-number="0" dot="2"/>
3639       </itemset>
3640       <actions>
3641         <transitions/>
3642         <errors/>
3643         <reductions>
3644           <reduction symbol="$default" rule="accept" enabled="true"/>
3645         </reductions>
3646       </actions>
3647       <solved-conflicts/>
3648     </state>
3650     <state number="5">
3651       <itemset>
3652         <item rule-number="1" dot="0"/>
3653         <item rule-number="2" dot="0"/>
3654         <item rule-number="2" dot="2"/>
3655         <item rule-number="3" dot="0"/>
3656         <item rule-number="3" dot="2"/>
3657         <item rule-number="4" dot="0"/>
3658         <item rule-number="5" dot="0"/>
3659       </itemset>
3660       <actions>
3661         <transitions>
3662           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3663           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3664           <transition type="goto" symbol="exp" state="7"/>
3665         </transitions>
3666         <errors/>
3667         <reductions/>
3668       </actions>
3669       <solved-conflicts/>
3670     </state>
3672     <state number="6">
3673       <itemset>
3674         <item rule-number="1" dot="0"/>
3675         <item rule-number="1" dot="2"/>
3676         <item rule-number="2" dot="0"/>
3677         <item rule-number="3" dot="0"/>
3678         <item rule-number="4" dot="0"/>
3679         <item rule-number="5" dot="0"/>
3680       </itemset>
3681       <actions>
3682         <transitions>
3683           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3684           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3685           <transition type="goto" symbol="exp" state="8"/>
3686         </transitions>
3687         <errors/>
3688         <reductions/>
3689       </actions>
3690       <solved-conflicts/>
3691     </state>
3693     <state number="7">
3694       <itemset>
3695         <item rule-number="1" dot="1"/>
3696         <item rule-number="2" dot="1"/>
3697         <item rule-number="2" dot="3">
3698           <lookaheads>
3699             <symbol>$end</symbol>
3700             <symbol>&quot;+&quot;</symbol>
3701             <symbol>&quot;⊕&quot;</symbol>
3702           </lookaheads>
3703         </item>
3704         <item rule-number="3" dot="1"/>
3705         <item rule-number="3" dot="3">
3706           <lookaheads>
3707             <symbol>$end</symbol>
3708             <symbol>&quot;+&quot;</symbol>
3709             <symbol>&quot;⊕&quot;</symbol>
3710           </lookaheads>
3711         </item>
3712       </itemset>
3713       <actions>
3714         <transitions>
3715           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3716         </transitions>
3717         <errors/>
3718         <reductions>
3719           <reduction symbol="$end" rule="2" enabled="true"/>
3720           <reduction symbol="$end" rule="3" enabled="false"/>
3721           <reduction symbol="&quot;+&quot;" rule="2" enabled="true"/>
3722           <reduction symbol="&quot;+&quot;" rule="3" enabled="false"/>
3723           <reduction symbol="&quot;⊕&quot;" rule="2" enabled="false"/>
3724           <reduction symbol="&quot;⊕&quot;" rule="3" enabled="false"/>
3725           <reduction symbol="$default" rule="2" enabled="true"/>
3726         </reductions>
3727       </actions>
3728       <solved-conflicts>
3729         <resolution rule="2" symbol="&quot;+&quot;" type="reduce">%left &quot;+&quot;</resolution>
3730       </solved-conflicts>
3731     </state>
3733     <state number="8">
3734       <itemset>
3735         <item rule-number="1" dot="1"/>
3736         <item rule-number="1" dot="3">
3737           <lookaheads>
3738             <symbol>$end</symbol>
3739             <symbol>&quot;+&quot;</symbol>
3740             <symbol>&quot;⊕&quot;</symbol>
3741           </lookaheads>
3742         </item>
3743         <item rule-number="2" dot="1"/>
3744         <item rule-number="3" dot="1"/>
3745       </itemset>
3746       <actions>
3747         <transitions>
3748           <transition type="shift" symbol="&quot;+&quot;" state="5"/>
3749           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3750         </transitions>
3751         <errors/>
3752         <reductions>
3753           <reduction symbol="&quot;+&quot;" rule="1" enabled="false"/>
3754           <reduction symbol="&quot;⊕&quot;" rule="1" enabled="false"/>
3755           <reduction symbol="$default" rule="1" enabled="true"/>
3756         </reductions>
3757       </actions>
3758       <solved-conflicts/>
3759     </state>
3760   </automaton>
3761 </bison-xml-report>
3765 AT_CHECK_HTML([input.html],
3766 [[<?xml version="1.0" encoding="UTF-8"?>
3767 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3768 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
3769   <head>
3770     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
3771     <title>input.y - GNU Bison XML Automaton Report</title>
3772     <style type="text/css">
3773       body {
3774         font-family: "Nimbus Sans L", Arial, sans-serif;
3775         font-size: 9pt;
3776       }
3777       a:link {
3778         color: #1f00ff;
3779         text-decoration: none;
3780       }
3781       a:visited {
3782         color: #1f00ff;
3783         text-decoration: none;
3784       }
3785       a:hover {
3786         color: red;
3787       }
3788       #menu a {
3789         text-decoration: underline;
3790       }
3791       .i {
3792         font-style: italic;
3793       }
3794       .pre {
3795         font-family: monospace;
3796         white-space: pre;
3797       }
3798       ol.decimal {
3799         list-style-type: decimal;
3800       }
3801       ol.lower-alpha {
3802         list-style-type: lower-alpha;
3803       }
3804       .dot {
3805         color: #cc0000;
3806       }
3807       #footer {
3808         margin-top: 3.5em;
3809         font-size: 7pt;
3810       }
3811       </style>
3812   </head>
3813   <body><h1>GNU Bison XML Automaton Report</h1><p>
3814     input grammar: <span class="i">input.y</span></p>
3816 <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>
3818 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
3820 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
3821 <h2><a name="rules_useless_in_parser" id="rules_useless_in_parser"></a> Rules useless in parser due to conflicts</h2>
3822 <p class="pre">
3823   <a href="#rule_3">  3</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3824 </p>
3826 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
3828 <p class="pre"><a href="#state_7">State 7</a> conflicts: 1 shift/reduce, 3 reduce/reduce
3829 <a href="#state_8">State 8</a> conflicts: 2 shift/reduce
3832 </p><h2><a name="grammar" id="grammar"></a> Grammar</h2>
3833 <p class="pre">
3834   <a name="rule_0" id="rule_0">  0</a> <span class="i">$accept</span> → <span class="i">exp</span> <b>$end</b>
3836   <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>
3837   <a name="rule_2" id="rule_2">  2</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3838   <a name="rule_3" id="rule_3">  3</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3839   <a name="rule_4" id="rule_4">  4</a>     | <b>"number"</b>
3840   <a name="rule_5" id="rule_5">  5</a>     | <b>"Ñùṃéℝô"</b>
3841 </p>
3843 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
3845 <ul>
3846   <li><b>$end</b> (0) <a href="#rule_0">0</a></li>
3847   <li><b>error</b> (256)</li>
3848   <li><b>"+"</b> (258) <a href="#rule_2">2</a> <a href="#rule_3">3</a></li>
3849   <li><b>"⊕"</b> (259) <a href="#rule_1">1</a></li>
3850   <li><b>"number"</b> (260) <a href="#rule_4">4</a></li>
3851   <li><b>"Ñùṃéℝô"</b> (261) <a href="#rule_5">5</a></li>
3852 </ul>
3854 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
3856 <ul>
3857   <li><b>$accept</b> (7)
3858     <ul>
3859       <li>on left: <a href="#rule_0">0</a></li>
3860     </ul>
3861   </li>
3862   <li><b>exp</b> (8)
3863     <ul>
3864       <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>
3865       <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>
3866     </ul>
3867   </li>
3868 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
3870 <h3><a name="state_0" id="state_0"></a>State 0</h3>
3872 <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>
3873   <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>
3874   <a href="#rule_2">  2</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3875   <a href="#rule_3">  3</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3876   <a href="#rule_4">  4</a>     | <span class="dot">•</span> <b>"number"</b>
3877   <a href="#rule_5">  5</a>     | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3879     "number"  <a href="#state_1">shift, and go to state 1</a>
3880     "Ñùṃéℝô"  <a href="#state_2">shift, and go to state 2</a>
3882     exp  <a href="#state_3">go to state 3</a>
3883 </p>
3885 <h3><a name="state_1" id="state_1"></a>State 1</h3>
3887 <p class="pre">  <a href="#rule_4">  4</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
3889     $default  <a href="#rule_4">reduce using rule 4</a> (exp)
3890 </p>
3892 <h3><a name="state_2" id="state_2"></a>State 2</h3>
3894 <p class="pre">  <a href="#rule_5">  5</a> <span class="i">exp</span> → <b>"Ñùṃéℝô"</b> <span class="dot">•</span>
3896     $default  <a href="#rule_5">reduce using rule 5</a> (exp)
3897 </p>
3899 <h3><a name="state_3" id="state_3"></a>State 3</h3>
3901 <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>
3902   <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>
3903   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3904   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3906     $end  <a href="#state_4">shift, and go to state 4</a>
3907     "+"   <a href="#state_5">shift, and go to state 5</a>
3908     "⊕"   <a href="#state_6">shift, and go to state 6</a>
3909 </p>
3911 <h3><a name="state_4" id="state_4"></a>State 4</h3>
3913 <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>
3915     $default  accept
3916 </p>
3918 <h3><a name="state_5" id="state_5"></a>State 5</h3>
3920 <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>
3921   <a href="#rule_2">  2</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3922   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <b>"+"</b> <span class="dot">•</span> <span class="i">exp</span>
3923   <a href="#rule_3">  3</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3924   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <b>"+"</b> <span class="dot">•</span> <span class="i">exp</span>
3925   <a href="#rule_4">  4</a>     | <span class="dot">•</span> <b>"number"</b>
3926   <a href="#rule_5">  5</a>     | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3928     "number"  <a href="#state_1">shift, and go to state 1</a>
3929     "Ñùṃéℝô"  <a href="#state_2">shift, and go to state 2</a>
3931     exp  <a href="#state_7">go to state 7</a>
3932 </p>
3934 <h3><a name="state_6" id="state_6"></a>State 6</h3>
3936 <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>
3937   <a href="#rule_1">  1</a>     | <span class="i">exp</span> <b>"⊕"</b> <span class="dot">•</span> <span class="i">exp</span>
3938   <a href="#rule_2">  2</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3939   <a href="#rule_3">  3</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3940   <a href="#rule_4">  4</a>     | <span class="dot">•</span> <b>"number"</b>
3941   <a href="#rule_5">  5</a>     | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3943     "number"  <a href="#state_1">shift, and go to state 1</a>
3944     "Ñùṃéℝô"  <a href="#state_2">shift, and go to state 2</a>
3946     exp  <a href="#state_8">go to state 8</a>
3947 </p>
3949 <h3><a name="state_7" id="state_7"></a>State 7</h3>
3951 <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>
3952   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3953   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span> <span class="dot">•</span>  [$end, "+", "⊕"]
3954   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3955   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span> <span class="dot">•</span>  [$end, "+", "⊕"]
3957     "⊕"  <a href="#state_6">shift, and go to state 6</a>
3959     $end      <a href="#rule_2">reduce using rule 2</a> (exp)
3960     $end      [<a href="#rule_3">reduce using rule 3</a> (exp)]
3961     "+"       <a href="#rule_2">reduce using rule 2</a> (exp)
3962     "+"       [<a href="#rule_3">reduce using rule 3</a> (exp)]
3963     "⊕"       [<a href="#rule_2">reduce using rule 2</a> (exp)]
3964     "⊕"       [<a href="#rule_3">reduce using rule 3</a> (exp)]
3965     $default  <a href="#rule_2">reduce using rule 2</a> (exp)
3967     Conflict between <a href="#rule_2">rule 2</a> and token "+" resolved as reduce (%left "+").
3968 </p>
3970 <h3><a name="state_8" id="state_8"></a>State 8</h3>
3972 <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>
3973   <a href="#rule_1">  1</a>     | <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span> <span class="dot">•</span>  [$end, "+", "⊕"]
3974   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3975   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3977     "+"  <a href="#state_5">shift, and go to state 5</a>
3978     "⊕"  <a href="#state_6">shift, and go to state 6</a>
3980     "+"       [<a href="#rule_1">reduce using rule 1</a> (exp)]
3981     "⊕"       [<a href="#rule_1">reduce using rule 1</a> (exp)]
3982     $default  <a href="#rule_1">reduce using rule 1</a> (exp)
3983 </p>
3985 <div id="footer"><hr />This document was generated using
3986       <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
3987       GNU Bison ]AT_PACKAGE_VERSION[</a>
3988       XML Automaton Report.<br />
3989       Verbatim copying and distribution of this entire page is
3990       permitted in any medium, provided this notice is preserved.</div></body>
3991 </html>
3994 AT_BISON_OPTION_POPDEFS
3995 AT_CLEANUP