gnulib: update
[bison.git] / tests / report.at
blob231c8cb9a98444b50074eb6eabafb669077d9e24
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.]])
20 ## --------- ##
21 ## Reports.  ##
22 ## --------- ##
24 AT_SETUP([Reports])
26 AT_KEYWORDS([report])
28 AT_BISON_OPTION_PUSHDEFS
29 AT_DATA([input.yy],
30 [[%token
31   END  0  "end of file"
32   ASSIGN  ":="
33   INCR    "incr"
36 %token <std::string> IDENTIFIER "identifier"
37 %type <std::string> id
38 %token <int> NUMBER "number"
39 %type  <int> exp
42 %start unit;
43 unit: assignments exp  { driver.result = $2; };
45 assignments:
46   %empty                 {}
47 | assignments assignment {};
49 assignment:
50   id ":=" exp { driver.variables[$id] = $exp; };
52 id:
53   "identifier";
55 exp:
56   "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp   { $$ = $2 + $3 + $4 + $5; }
57 | "(" exp ")"   { std::swap ($$, $2); }
58 | "identifier"  { $$ = driver.variables[$1]; }
59 | "number"      { std::swap ($$, $1); };
60 ]])
62 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
63 AT_BISON_CHECK([-o input.cc -v --graph=input.gv --html --xml input.yy])
65 # Check the contents of the report.
66 AT_CHECK([cat input.output], [],
67 [[Grammar
69     0 $accept: unit "end of file"
71     1 unit: assignments exp
73     2 assignments: %empty
74     3            | assignments assignment
76     4 assignment: id ":=" exp
78     5 id: "identifier"
80     6 @1: %empty
82     7 @2: %empty
84     8 exp: "incr" exp @1 @2 exp
85     9    | "(" exp ")"
86    10    | "identifier"
87    11    | "number"
90 Terminals, with rules where they appear
92     "end of file" (0) 0
93     error (256)
94     ":=" (258) 4
95     "incr" (259) 8
96     "identifier" <std::string> (260) 5 10
97     "number" <int> (261) 11
98     "(" (262) 9
99     ")" (263) 9
102 Nonterminals, with rules where they appear
104     $accept (9)
105         on left: 0
106     unit (10)
107         on left: 1
108         on right: 0
109     assignments (11)
110         on left: 2 3
111         on right: 1 3
112     assignment (12)
113         on left: 4
114         on right: 3
115     id <std::string> (13)
116         on left: 5
117         on right: 4
118     exp <int> (14)
119         on left: 8 9 10 11
120         on right: 1 4 8 9
121     @1 <int> (15)
122         on left: 6
123         on right: 8
124     @2 <int> (16)
125         on left: 7
126         on right: 8
129 State 0
131     0 $accept: . unit "end of file"
133     $default  reduce using rule 2 (assignments)
135     unit         go to state 1
136     assignments  go to state 2
139 State 1
141     0 $accept: unit . "end of file"
143     "end of file"  shift, and go to state 3
146 State 2
148     1 unit: assignments . exp
149     3 assignments: assignments . assignment
151     "incr"        shift, and go to state 4
152     "identifier"  shift, and go to state 5
153     "number"      shift, and go to state 6
154     "("           shift, and go to state 7
156     assignment  go to state 8
157     id          go to state 9
158     exp         go to state 10
161 State 3
163     0 $accept: unit "end of file" .
165     $default  accept
168 State 4
170     8 exp: "incr" . exp @1 @2 exp
172     "incr"        shift, and go to state 4
173     "identifier"  shift, and go to state 11
174     "number"      shift, and go to state 6
175     "("           shift, and go to state 7
177     exp  go to state 12
180 State 5
182     5 id: "identifier" .
183    10 exp: "identifier" .
185     "end of file"  reduce using rule 10 (exp)
186     $default       reduce using rule 5 (id)
189 State 6
191    11 exp: "number" .
193     $default  reduce using rule 11 (exp)
196 State 7
198     9 exp: "(" . exp ")"
200     "incr"        shift, and go to state 4
201     "identifier"  shift, and go to state 11
202     "number"      shift, and go to state 6
203     "("           shift, and go to state 7
205     exp  go to state 13
208 State 8
210     3 assignments: assignments assignment .
212     $default  reduce using rule 3 (assignments)
215 State 9
217     4 assignment: id . ":=" exp
219     ":="  shift, and go to state 14
222 State 10
224     1 unit: assignments exp .
226     $default  reduce using rule 1 (unit)
229 State 11
231    10 exp: "identifier" .
233     $default  reduce using rule 10 (exp)
236 State 12
238     8 exp: "incr" exp . @1 @2 exp
240     $default  reduce using rule 6 (@1)
242     @1  go to state 15
245 State 13
247     9 exp: "(" exp . ")"
249     ")"  shift, and go to state 16
252 State 14
254     4 assignment: id ":=" . exp
256     "incr"        shift, and go to state 4
257     "identifier"  shift, and go to state 11
258     "number"      shift, and go to state 6
259     "("           shift, and go to state 7
261     exp  go to state 17
264 State 15
266     8 exp: "incr" exp @1 . @2 exp
268     $default  reduce using rule 7 (@2)
270     @2  go to state 18
273 State 16
275     9 exp: "(" exp ")" .
277     $default  reduce using rule 9 (exp)
280 State 17
282     4 assignment: id ":=" exp .
284     $default  reduce using rule 4 (assignment)
287 State 18
289     8 exp: "incr" exp @1 @2 . exp
291     "incr"        shift, and go to state 4
292     "identifier"  shift, and go to state 11
293     "number"      shift, and go to state 6
294     "("           shift, and go to state 7
296     exp  go to state 19
299 State 19
301     8 exp: "incr" exp @1 @2 exp .
303     $default  reduce using rule 8 (exp)
307 # Now generate verbose reports.
308 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
309 AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --html --xml input.yy])
311 # Check the contents of the report.
312 AT_CHECK([cat input.output], [],
313 [[Grammar
315     0 $accept: unit "end of file"
317     1 unit: assignments exp
319     2 assignments: %empty
320     3            | assignments assignment
322     4 assignment: id ":=" exp
324     5 id: "identifier"
326     6 @1: %empty
328     7 @2: %empty
330     8 exp: "incr" exp @1 @2 exp
331     9    | "(" exp ")"
332    10    | "identifier"
333    11    | "number"
336 Terminals, with rules where they appear
338     "end of file" (0) 0
339     error (256)
340     ":=" (258) 4
341     "incr" (259) 8
342     "identifier" <std::string> (260) 5 10
343     "number" <int> (261) 11
344     "(" (262) 9
345     ")" (263) 9
348 Nonterminals, with rules where they appear
350     $accept (9)
351         on left: 0
352     unit (10)
353         on left: 1
354         on right: 0
355     assignments (11)
356         on left: 2 3
357         on right: 1 3
358     assignment (12)
359         on left: 4
360         on right: 3
361     id <std::string> (13)
362         on left: 5
363         on right: 4
364     exp <int> (14)
365         on left: 8 9 10 11
366         on right: 1 4 8 9
367     @1 <int> (15)
368         on left: 6
369         on right: 8
370     @2 <int> (16)
371         on left: 7
372         on right: 8
375 State 0
377     0 $accept: . unit "end of file"
378     1 unit: . assignments exp
379     2 assignments: %empty .
380     3            | . assignments assignment
382     $default  reduce using rule 2 (assignments)
384     unit         go to state 1
385     assignments  go to state 2
388 State 1
390     0 $accept: unit . "end of file"
392     "end of file"  shift, and go to state 3
395 State 2
397     1 unit: assignments . exp
398     3 assignments: assignments . assignment
399     4 assignment: . id ":=" exp
400     5 id: . "identifier"
401     8 exp: . "incr" exp @1 @2 exp
402     9    | . "(" exp ")"
403    10    | . "identifier"
404    11    | . "number"
406     "incr"        shift, and go to state 4
407     "identifier"  shift, and go to state 5
408     "number"      shift, and go to state 6
409     "("           shift, and go to state 7
411     assignment  go to state 8
412     id          go to state 9
413     exp         go to state 10
416 State 3
418     0 $accept: unit "end of file" .
420     $default  accept
423 State 4
425     8 exp: . "incr" exp @1 @2 exp
426     8    | "incr" . exp @1 @2 exp
427     9    | . "(" exp ")"
428    10    | . "identifier"
429    11    | . "number"
431     "incr"        shift, and go to state 4
432     "identifier"  shift, and go to state 11
433     "number"      shift, and go to state 6
434     "("           shift, and go to state 7
436     exp  go to state 12
439 State 5
441     5 id: "identifier" .  [":="]
442    10 exp: "identifier" .  ["end of file"]
444     "end of file"  reduce using rule 10 (exp)
445     $default       reduce using rule 5 (id)
448 State 6
450    11 exp: "number" .
452     $default  reduce using rule 11 (exp)
455 State 7
457     8 exp: . "incr" exp @1 @2 exp
458     9    | . "(" exp ")"
459     9    | "(" . exp ")"
460    10    | . "identifier"
461    11    | . "number"
463     "incr"        shift, and go to state 4
464     "identifier"  shift, and go to state 11
465     "number"      shift, and go to state 6
466     "("           shift, and go to state 7
468     exp  go to state 13
471 State 8
473     3 assignments: assignments assignment .
475     $default  reduce using rule 3 (assignments)
478 State 9
480     4 assignment: id . ":=" exp
482     ":="  shift, and go to state 14
485 State 10
487     1 unit: assignments exp .
489     $default  reduce using rule 1 (unit)
492 State 11
494    10 exp: "identifier" .
496     $default  reduce using rule 10 (exp)
499 State 12
501     6 @1: %empty .
502     8 exp: "incr" exp . @1 @2 exp
504     $default  reduce using rule 6 (@1)
506     @1  go to state 15
509 State 13
511     9 exp: "(" exp . ")"
513     ")"  shift, and go to state 16
516 State 14
518     4 assignment: id ":=" . exp
519     8 exp: . "incr" exp @1 @2 exp
520     9    | . "(" exp ")"
521    10    | . "identifier"
522    11    | . "number"
524     "incr"        shift, and go to state 4
525     "identifier"  shift, and go to state 11
526     "number"      shift, and go to state 6
527     "("           shift, and go to state 7
529     exp  go to state 17
532 State 15
534     7 @2: %empty .
535     8 exp: "incr" exp @1 . @2 exp
537     $default  reduce using rule 7 (@2)
539     @2  go to state 18
542 State 16
544     9 exp: "(" exp ")" .
546     $default  reduce using rule 9 (exp)
549 State 17
551     4 assignment: id ":=" exp .
553     $default  reduce using rule 4 (assignment)
556 State 18
558     8 exp: . "incr" exp @1 @2 exp
559     8    | "incr" exp @1 @2 . exp
560     9    | . "(" exp ")"
561    10    | . "identifier"
562    11    | . "number"
564     "incr"        shift, and go to state 4
565     "identifier"  shift, and go to state 11
566     "number"      shift, and go to state 6
567     "("           shift, and go to state 7
569     exp  go to state 19
572 State 19
574     8 exp: "incr" exp @1 @2 exp .
576     $default  reduce using rule 8 (exp)
581 AT_CHECK([cat input.gv], [],
582 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
583 // Report bugs to <bug-bison@gnu.org>.
584 // Home page: <https://www.gnu.org/software/bison/>.
586 digraph "input.yy"
588   node [fontname = courier, shape = box, colorscheme = paired6]
589   edge [fontname = courier]
591   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"]
592   0 -> 1 [style=dashed label="unit"]
593   0 -> 2 [style=dashed label="assignments"]
594   0 -> "0R2" [style=solid]
595  "0R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
596   1 [label="State 1\n\l  0 $accept: unit • \"end of file\"\l"]
597   1 -> 3 [style=solid label="\"end of file\""]
598   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"]
599   2 -> 4 [style=solid label="\"incr\""]
600   2 -> 5 [style=solid label="\"identifier\""]
601   2 -> 6 [style=solid label="\"number\""]
602   2 -> 7 [style=solid label="\"(\""]
603   2 -> 8 [style=dashed label="assignment"]
604   2 -> 9 [style=dashed label="id"]
605   2 -> 10 [style=dashed label="exp"]
606   3 [label="State 3\n\l  0 $accept: unit \"end of file\" •\l"]
607   3 -> "3R0" [style=solid]
608  "3R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
609   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"]
610   4 -> 4 [style=solid label="\"incr\""]
611   4 -> 11 [style=solid label="\"identifier\""]
612   4 -> 6 [style=solid label="\"number\""]
613   4 -> 7 [style=solid label="\"(\""]
614   4 -> 12 [style=dashed label="exp"]
615   5 [label="State 5\n\l  5 id: \"identifier\" •  [\":=\"]\l 10 exp: \"identifier\" •  [\"end of file\"]\l"]
616   5 -> "5R5" [style=solid]
617  "5R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
618   5 -> "5R10" [label="[\"end of file\"]", style=solid]
619  "5R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
620   6 [label="State 6\n\l 11 exp: \"number\" •\l"]
621   6 -> "6R11" [style=solid]
622  "6R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
623   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"]
624   7 -> 4 [style=solid label="\"incr\""]
625   7 -> 11 [style=solid label="\"identifier\""]
626   7 -> 6 [style=solid label="\"number\""]
627   7 -> 7 [style=solid label="\"(\""]
628   7 -> 13 [style=dashed label="exp"]
629   8 [label="State 8\n\l  3 assignments: assignments assignment •\l"]
630   8 -> "8R3" [style=solid]
631  "8R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
632   9 [label="State 9\n\l  4 assignment: id • \":=\" exp\l"]
633   9 -> 14 [style=solid label="\":=\""]
634   10 [label="State 10\n\l  1 unit: assignments exp •\l"]
635   10 -> "10R1" [style=solid]
636  "10R1" [label="R1", fillcolor=3, shape=diamond, style=filled]
637   11 [label="State 11\n\l 10 exp: \"identifier\" •\l"]
638   11 -> "11R10" [style=solid]
639  "11R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
640   12 [label="State 12\n\l  6 @1: • %empty\l  8 exp: \"incr\" exp • @1 @2 exp\l"]
641   12 -> 15 [style=dashed label="@1"]
642   12 -> "12R6" [style=solid]
643  "12R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
644   13 [label="State 13\n\l  9 exp: \"(\" exp • \")\"\l"]
645   13 -> 16 [style=solid label="\")\""]
646   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"]
647   14 -> 4 [style=solid label="\"incr\""]
648   14 -> 11 [style=solid label="\"identifier\""]
649   14 -> 6 [style=solid label="\"number\""]
650   14 -> 7 [style=solid label="\"(\""]
651   14 -> 17 [style=dashed label="exp"]
652   15 [label="State 15\n\l  7 @2: • %empty\l  8 exp: \"incr\" exp @1 • @2 exp\l"]
653   15 -> 18 [style=dashed label="@2"]
654   15 -> "15R7" [style=solid]
655  "15R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
656   16 [label="State 16\n\l  9 exp: \"(\" exp \")\" •\l"]
657   16 -> "16R9" [style=solid]
658  "16R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
659   17 [label="State 17\n\l  4 assignment: id \":=\" exp •\l"]
660   17 -> "17R4" [style=solid]
661  "17R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
662   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"]
663   18 -> 4 [style=solid label="\"incr\""]
664   18 -> 11 [style=solid label="\"identifier\""]
665   18 -> 6 [style=solid label="\"number\""]
666   18 -> 7 [style=solid label="\"(\""]
667   18 -> 19 [style=dashed label="exp"]
668   19 [label="State 19\n\l  8 exp: \"incr\" exp @1 @2 exp •\l"]
669   19 -> "19R8" [style=solid]
670  "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
675 AT_CHECK([[cat input.xml]], [],
676 [[<?xml version="1.0"?>
678 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
680   <filename>input.yy</filename>
682   <grammar>
683     <rules>
684       <rule number="0" usefulness="useful">
685         <lhs>$accept</lhs>
686         <rhs>
687           <symbol>unit</symbol>
688           <symbol>&quot;end of file&quot;</symbol>
689         </rhs>
690       </rule>
691       <rule number="1" usefulness="useful">
692         <lhs>unit</lhs>
693         <rhs>
694           <symbol>assignments</symbol>
695           <symbol>exp</symbol>
696         </rhs>
697       </rule>
698       <rule number="2" usefulness="useful">
699         <lhs>assignments</lhs>
700         <rhs>
701           <empty/>
702         </rhs>
703       </rule>
704       <rule number="3" usefulness="useful">
705         <lhs>assignments</lhs>
706         <rhs>
707           <symbol>assignments</symbol>
708           <symbol>assignment</symbol>
709         </rhs>
710       </rule>
711       <rule number="4" usefulness="useful">
712         <lhs>assignment</lhs>
713         <rhs>
714           <symbol>id</symbol>
715           <symbol>&quot;:=&quot;</symbol>
716           <symbol>exp</symbol>
717         </rhs>
718       </rule>
719       <rule number="5" usefulness="useful">
720         <lhs>id</lhs>
721         <rhs>
722           <symbol>&quot;identifier&quot;</symbol>
723         </rhs>
724       </rule>
725       <rule number="6" usefulness="useful">
726         <lhs>@1</lhs>
727         <rhs>
728           <empty/>
729         </rhs>
730       </rule>
731       <rule number="7" usefulness="useful">
732         <lhs>@2</lhs>
733         <rhs>
734           <empty/>
735         </rhs>
736       </rule>
737       <rule number="8" usefulness="useful">
738         <lhs>exp</lhs>
739         <rhs>
740           <symbol>&quot;incr&quot;</symbol>
741           <symbol>exp</symbol>
742           <symbol>@1</symbol>
743           <symbol>@2</symbol>
744           <symbol>exp</symbol>
745         </rhs>
746       </rule>
747       <rule number="9" usefulness="useful">
748         <lhs>exp</lhs>
749         <rhs>
750           <symbol>&quot;(&quot;</symbol>
751           <symbol>exp</symbol>
752           <symbol>&quot;)&quot;</symbol>
753         </rhs>
754       </rule>
755       <rule number="10" usefulness="useful">
756         <lhs>exp</lhs>
757         <rhs>
758           <symbol>&quot;identifier&quot;</symbol>
759         </rhs>
760       </rule>
761       <rule number="11" usefulness="useful">
762         <lhs>exp</lhs>
763         <rhs>
764           <symbol>&quot;number&quot;</symbol>
765         </rhs>
766       </rule>
767     </rules>
768     <terminals>
769       <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" type="" usefulness="useful"/>
770       <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
771       <terminal symbol-number="3" token-number="258" name="&quot;:=&quot;" type="" usefulness="useful"/>
772       <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
773       <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
774       <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" type="int" usefulness="useful"/>
775       <terminal symbol-number="7" token-number="262" name="&quot;(&quot;" type="" usefulness="useful"/>
776       <terminal symbol-number="8" token-number="263" name="&quot;)&quot;" type="" usefulness="useful"/>
777     </terminals>
778     <nonterminals>
779       <nonterminal symbol-number="9" name="$accept" type="" usefulness="useful"/>
780       <nonterminal symbol-number="10" name="unit" type="" usefulness="useful"/>
781       <nonterminal symbol-number="11" name="assignments" type="" usefulness="useful"/>
782       <nonterminal symbol-number="12" name="assignment" type="" usefulness="useful"/>
783       <nonterminal symbol-number="13" name="id" type="std::string" usefulness="useful"/>
784       <nonterminal symbol-number="14" name="exp" type="int" usefulness="useful"/>
785       <nonterminal symbol-number="15" name="@1" type="int" usefulness="useful"/>
786       <nonterminal symbol-number="16" name="@2" type="int" usefulness="useful"/>
787     </nonterminals>
788   </grammar>
790   <automaton>
792     <state number="0">
793       <itemset>
794         <item rule-number="0" dot="0"/>
795         <item rule-number="1" dot="0"/>
796         <item rule-number="2" dot="0"/>
797         <item rule-number="3" dot="0"/>
798       </itemset>
799       <actions>
800         <transitions>
801           <transition type="goto" symbol="unit" state="1"/>
802           <transition type="goto" symbol="assignments" state="2"/>
803         </transitions>
804         <errors/>
805         <reductions>
806           <reduction symbol="$default" rule="2" enabled="true"/>
807         </reductions>
808       </actions>
809       <solved-conflicts/>
810     </state>
812     <state number="1">
813       <itemset>
814         <item rule-number="0" dot="1"/>
815       </itemset>
816       <actions>
817         <transitions>
818           <transition type="shift" symbol="&quot;end of file&quot;" state="3"/>
819         </transitions>
820         <errors/>
821         <reductions/>
822       </actions>
823       <solved-conflicts/>
824     </state>
826     <state number="2">
827       <itemset>
828         <item rule-number="1" dot="1"/>
829         <item rule-number="3" dot="1"/>
830         <item rule-number="4" dot="0"/>
831         <item rule-number="5" dot="0"/>
832         <item rule-number="8" dot="0"/>
833         <item rule-number="9" dot="0"/>
834         <item rule-number="10" dot="0"/>
835         <item rule-number="11" dot="0"/>
836       </itemset>
837       <actions>
838         <transitions>
839           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
840           <transition type="shift" symbol="&quot;identifier&quot;" state="5"/>
841           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
842           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
843           <transition type="goto" symbol="assignment" state="8"/>
844           <transition type="goto" symbol="id" state="9"/>
845           <transition type="goto" symbol="exp" state="10"/>
846         </transitions>
847         <errors/>
848         <reductions/>
849       </actions>
850       <solved-conflicts/>
851     </state>
853     <state number="3">
854       <itemset>
855         <item rule-number="0" dot="2"/>
856       </itemset>
857       <actions>
858         <transitions/>
859         <errors/>
860         <reductions>
861           <reduction symbol="$default" rule="accept" enabled="true"/>
862         </reductions>
863       </actions>
864       <solved-conflicts/>
865     </state>
867     <state number="4">
868       <itemset>
869         <item rule-number="8" dot="0"/>
870         <item rule-number="8" dot="1"/>
871         <item rule-number="9" dot="0"/>
872         <item rule-number="10" dot="0"/>
873         <item rule-number="11" dot="0"/>
874       </itemset>
875       <actions>
876         <transitions>
877           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
878           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
879           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
880           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
881           <transition type="goto" symbol="exp" state="12"/>
882         </transitions>
883         <errors/>
884         <reductions/>
885       </actions>
886       <solved-conflicts/>
887     </state>
889     <state number="5">
890       <itemset>
891         <item rule-number="5" dot="1">
892           <lookaheads>
893             <symbol>&quot;:=&quot;</symbol>
894           </lookaheads>
895         </item>
896         <item rule-number="10" dot="1">
897           <lookaheads>
898             <symbol>&quot;end of file&quot;</symbol>
899           </lookaheads>
900         </item>
901       </itemset>
902       <actions>
903         <transitions/>
904         <errors/>
905         <reductions>
906           <reduction symbol="&quot;end of file&quot;" rule="10" enabled="true"/>
907           <reduction symbol="$default" rule="5" enabled="true"/>
908         </reductions>
909       </actions>
910       <solved-conflicts/>
911     </state>
913     <state number="6">
914       <itemset>
915         <item rule-number="11" dot="1"/>
916       </itemset>
917       <actions>
918         <transitions/>
919         <errors/>
920         <reductions>
921           <reduction symbol="$default" rule="11" enabled="true"/>
922         </reductions>
923       </actions>
924       <solved-conflicts/>
925     </state>
927     <state number="7">
928       <itemset>
929         <item rule-number="8" dot="0"/>
930         <item rule-number="9" dot="0"/>
931         <item rule-number="9" dot="1"/>
932         <item rule-number="10" dot="0"/>
933         <item rule-number="11" dot="0"/>
934       </itemset>
935       <actions>
936         <transitions>
937           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
938           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
939           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
940           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
941           <transition type="goto" symbol="exp" state="13"/>
942         </transitions>
943         <errors/>
944         <reductions/>
945       </actions>
946       <solved-conflicts/>
947     </state>
949     <state number="8">
950       <itemset>
951         <item rule-number="3" dot="2"/>
952       </itemset>
953       <actions>
954         <transitions/>
955         <errors/>
956         <reductions>
957           <reduction symbol="$default" rule="3" enabled="true"/>
958         </reductions>
959       </actions>
960       <solved-conflicts/>
961     </state>
963     <state number="9">
964       <itemset>
965         <item rule-number="4" dot="1"/>
966       </itemset>
967       <actions>
968         <transitions>
969           <transition type="shift" symbol="&quot;:=&quot;" state="14"/>
970         </transitions>
971         <errors/>
972         <reductions/>
973       </actions>
974       <solved-conflicts/>
975     </state>
977     <state number="10">
978       <itemset>
979         <item rule-number="1" dot="2"/>
980       </itemset>
981       <actions>
982         <transitions/>
983         <errors/>
984         <reductions>
985           <reduction symbol="$default" rule="1" enabled="true"/>
986         </reductions>
987       </actions>
988       <solved-conflicts/>
989     </state>
991     <state number="11">
992       <itemset>
993         <item rule-number="10" dot="1"/>
994       </itemset>
995       <actions>
996         <transitions/>
997         <errors/>
998         <reductions>
999           <reduction symbol="$default" rule="10" enabled="true"/>
1000         </reductions>
1001       </actions>
1002       <solved-conflicts/>
1003     </state>
1005     <state number="12">
1006       <itemset>
1007         <item rule-number="6" dot="0"/>
1008         <item rule-number="8" dot="2"/>
1009       </itemset>
1010       <actions>
1011         <transitions>
1012           <transition type="goto" symbol="@1" state="15"/>
1013         </transitions>
1014         <errors/>
1015         <reductions>
1016           <reduction symbol="$default" rule="6" enabled="true"/>
1017         </reductions>
1018       </actions>
1019       <solved-conflicts/>
1020     </state>
1022     <state number="13">
1023       <itemset>
1024         <item rule-number="9" dot="2"/>
1025       </itemset>
1026       <actions>
1027         <transitions>
1028           <transition type="shift" symbol="&quot;)&quot;" state="16"/>
1029         </transitions>
1030         <errors/>
1031         <reductions/>
1032       </actions>
1033       <solved-conflicts/>
1034     </state>
1036     <state number="14">
1037       <itemset>
1038         <item rule-number="4" dot="2"/>
1039         <item rule-number="8" dot="0"/>
1040         <item rule-number="9" dot="0"/>
1041         <item rule-number="10" dot="0"/>
1042         <item rule-number="11" dot="0"/>
1043       </itemset>
1044       <actions>
1045         <transitions>
1046           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
1047           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
1048           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
1049           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
1050           <transition type="goto" symbol="exp" state="17"/>
1051         </transitions>
1052         <errors/>
1053         <reductions/>
1054       </actions>
1055       <solved-conflicts/>
1056     </state>
1058     <state number="15">
1059       <itemset>
1060         <item rule-number="7" dot="0"/>
1061         <item rule-number="8" dot="3"/>
1062       </itemset>
1063       <actions>
1064         <transitions>
1065           <transition type="goto" symbol="@2" state="18"/>
1066         </transitions>
1067         <errors/>
1068         <reductions>
1069           <reduction symbol="$default" rule="7" enabled="true"/>
1070         </reductions>
1071       </actions>
1072       <solved-conflicts/>
1073     </state>
1075     <state number="16">
1076       <itemset>
1077         <item rule-number="9" dot="3"/>
1078       </itemset>
1079       <actions>
1080         <transitions/>
1081         <errors/>
1082         <reductions>
1083           <reduction symbol="$default" rule="9" enabled="true"/>
1084         </reductions>
1085       </actions>
1086       <solved-conflicts/>
1087     </state>
1089     <state number="17">
1090       <itemset>
1091         <item rule-number="4" dot="3"/>
1092       </itemset>
1093       <actions>
1094         <transitions/>
1095         <errors/>
1096         <reductions>
1097           <reduction symbol="$default" rule="4" enabled="true"/>
1098         </reductions>
1099       </actions>
1100       <solved-conflicts/>
1101     </state>
1103     <state number="18">
1104       <itemset>
1105         <item rule-number="8" dot="0"/>
1106         <item rule-number="8" dot="4"/>
1107         <item rule-number="9" dot="0"/>
1108         <item rule-number="10" dot="0"/>
1109         <item rule-number="11" dot="0"/>
1110       </itemset>
1111       <actions>
1112         <transitions>
1113           <transition type="shift" symbol="&quot;incr&quot;" state="4"/>
1114           <transition type="shift" symbol="&quot;identifier&quot;" state="11"/>
1115           <transition type="shift" symbol="&quot;number&quot;" state="6"/>
1116           <transition type="shift" symbol="&quot;(&quot;" state="7"/>
1117           <transition type="goto" symbol="exp" state="19"/>
1118         </transitions>
1119         <errors/>
1120         <reductions/>
1121       </actions>
1122       <solved-conflicts/>
1123     </state>
1125     <state number="19">
1126       <itemset>
1127         <item rule-number="8" dot="5"/>
1128       </itemset>
1129       <actions>
1130         <transitions/>
1131         <errors/>
1132         <reductions>
1133           <reduction symbol="$default" rule="8" enabled="true"/>
1134         </reductions>
1135       </actions>
1136       <solved-conflicts/>
1137     </state>
1138   </automaton>
1139 </bison-xml-report>
1142 # Check HTML output.
1143 AT_CHECK([[cat input.html]], [],
1144 [[<?xml version="1.0" encoding="UTF-8"?>
1145 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
1146 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
1147   <head>
1148     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
1149     <title>input.yy - GNU Bison XML Automaton Report</title>
1150     <style type="text/css">
1151       body {
1152         font-family: "Nimbus Sans L", Arial, sans-serif;
1153         font-size: 9pt;
1154       }
1155       a:link {
1156         color: #1f00ff;
1157         text-decoration: none;
1158       }
1159       a:visited {
1160         color: #1f00ff;
1161         text-decoration: none;
1162       }
1163       a:hover {
1164         color: red;
1165       }
1166       #menu a {
1167         text-decoration: underline;
1168       }
1169       .i {
1170         font-style: italic;
1171       }
1172       .pre {
1173         font-family: monospace;
1174         white-space: pre;
1175       }
1176       ol.decimal {
1177         list-style-type: decimal;
1178       }
1179       ol.lower-alpha {
1180         list-style-type: lower-alpha;
1181       }
1182       .dot {
1183         color: #cc0000;
1184       }
1185       #footer {
1186         margin-top: 3.5em;
1187         font-size: 7pt;
1188       }
1189       </style>
1190   </head>
1191   <body><h1>GNU Bison XML Automaton Report</h1><p>
1192     input grammar: <span class="i">input.yy</span></p>
1194 <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>
1196 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
1198 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
1199 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
1201 <h2><a name="grammar" id="grammar"></a> Grammar</h2>
1202 <p class="pre">
1203   <a name="rule_0" id="rule_0">  0</a> <span class="i">$accept</span> → <span class="i">unit</span> <b>"end of file"</b>
1205   <a name="rule_1" id="rule_1">  1</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
1207   <a name="rule_2" id="rule_2">  2</a> <span class="i">assignments</span> → %empty
1208   <a name="rule_3" id="rule_3">  3</a>             | <span class="i">assignments</span> <span class="i">assignment</span>
1210   <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>
1212   <a name="rule_5" id="rule_5">  5</a> <span class="i">id</span> → <b>"identifier"</b>
1214   <a name="rule_6" id="rule_6">  6</a> <span class="i">@1</span> → %empty
1216   <a name="rule_7" id="rule_7">  7</a> <span class="i">@2</span> → %empty
1218   <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>
1219   <a name="rule_9" id="rule_9">  9</a>     | <b>"("</b> <span class="i">exp</span> <b>")"</b>
1220   <a name="rule_10" id="rule_10"> 10</a>     | <b>"identifier"</b>
1221   <a name="rule_11" id="rule_11"> 11</a>     | <b>"number"</b>
1222 </p>
1224 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
1226 <ul>
1227   <li><b>"end of file"</b> (0) <a href="#rule_0">0</a></li>
1228   <li><b>error</b> (256)</li>
1229   <li><b>":="</b> (258) <a href="#rule_4">4</a></li>
1230   <li><b>"incr"</b> (259) <a href="#rule_8">8</a></li>
1231   <li><b>"identifier"</b> &lt;std::string&gt; (260) <a href="#rule_5">5</a> <a href="#rule_10">10</a></li>
1232   <li><b>"number"</b> &lt;int&gt; (261) <a href="#rule_11">11</a></li>
1233   <li><b>"("</b> (262) <a href="#rule_9">9</a></li>
1234   <li><b>")"</b> (263) <a href="#rule_9">9</a></li>
1235 </ul>
1237 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
1239 <ul>
1240   <li><b>$accept</b> (9)
1241     <ul>
1242       <li>on left: <a href="#rule_0">0</a></li>
1243     </ul>
1244   </li>
1245   <li><b>unit</b> (10)
1246     <ul>
1247       <li>on left: <a href="#rule_1">1</a></li>
1248       <li>on right: <a href="#rule_0">0</a></li>
1249     </ul>
1250   </li>
1251   <li><b>assignments</b> (11)
1252     <ul>
1253       <li>on left: <a href="#rule_2">2</a> <a href="#rule_3">3</a></li>
1254       <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a></li>
1255     </ul>
1256   </li>
1257   <li><b>assignment</b> (12)
1258     <ul>
1259       <li>on left: <a href="#rule_4">4</a></li>
1260       <li>on right: <a href="#rule_3">3</a></li>
1261     </ul>
1262   </li>
1263   <li><b>id</b> &lt;std::string&gt; (13)
1264     <ul>
1265       <li>on left: <a href="#rule_5">5</a></li>
1266       <li>on right: <a href="#rule_4">4</a></li>
1267     </ul>
1268   </li>
1269   <li><b>exp</b> &lt;int&gt; (14)
1270     <ul>
1271       <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>
1272       <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>
1273     </ul>
1274   </li>
1275   <li><b>@1</b> &lt;int&gt; (15)
1276     <ul>
1277       <li>on left: <a href="#rule_6">6</a></li>
1278       <li>on right: <a href="#rule_8">8</a></li>
1279     </ul>
1280   </li>
1281   <li><b>@2</b> &lt;int&gt; (16)
1282     <ul>
1283       <li>on left: <a href="#rule_7">7</a></li>
1284       <li>on right: <a href="#rule_8">8</a></li>
1285     </ul>
1286   </li>
1287 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
1289 <h3><a name="state_0" id="state_0"></a>State 0</h3>
1291 <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>
1292   <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>
1293   <a href="#rule_2">  2</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
1294   <a href="#rule_3">  3</a>             | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
1296     $default  <a href="#rule_2">reduce using rule 2</a> (assignments)
1298     unit         <a href="#state_1">go to state 1</a>
1299     assignments  <a href="#state_2">go to state 2</a>
1300 </p>
1302 <h3><a name="state_1" id="state_1"></a>State 1</h3>
1304 <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>
1306     "end of file"  <a href="#state_3">shift, and go to state 3</a>
1307 </p>
1309 <h3><a name="state_2" id="state_2"></a>State 2</h3>
1311 <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>
1312   <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>
1313   <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>
1314   <a href="#rule_5">  5</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
1315   <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>
1316   <a href="#rule_9">  9</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1317   <a href="#rule_10"> 10</a>     | <span class="dot">•</span> <b>"identifier"</b>
1318   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"number"</b>
1320     "incr"        <a href="#state_4">shift, and go to state 4</a>
1321     "identifier"  <a href="#state_5">shift, and go to state 5</a>
1322     "number"      <a href="#state_6">shift, and go to state 6</a>
1323     "("           <a href="#state_7">shift, and go to state 7</a>
1325     assignment  <a href="#state_8">go to state 8</a>
1326     id          <a href="#state_9">go to state 9</a>
1327     exp         <a href="#state_10">go to state 10</a>
1328 </p>
1330 <h3><a name="state_3" id="state_3"></a>State 3</h3>
1332 <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>
1334     $default  accept
1335 </p>
1337 <h3><a name="state_4" id="state_4"></a>State 4</h3>
1339 <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>
1340   <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>
1341   <a href="#rule_9">  9</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1342   <a href="#rule_10"> 10</a>     | <span class="dot">•</span> <b>"identifier"</b>
1343   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"number"</b>
1345     "incr"        <a href="#state_4">shift, and go to state 4</a>
1346     "identifier"  <a href="#state_11">shift, and go to state 11</a>
1347     "number"      <a href="#state_6">shift, and go to state 6</a>
1348     "("           <a href="#state_7">shift, and go to state 7</a>
1350     exp  <a href="#state_12">go to state 12</a>
1351 </p>
1353 <h3><a name="state_5" id="state_5"></a>State 5</h3>
1355 <p class="pre">  <a href="#rule_5">  5</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>  [":="]
1356   <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>  ["end of file"]
1358     "end of file"  <a href="#rule_10">reduce using rule 10</a> (exp)
1359     $default       <a href="#rule_5">reduce using rule 5</a> (id)
1360 </p>
1362 <h3><a name="state_6" id="state_6"></a>State 6</h3>
1364 <p class="pre">  <a href="#rule_11"> 11</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
1366     $default  <a href="#rule_11">reduce using rule 11</a> (exp)
1367 </p>
1369 <h3><a name="state_7" id="state_7"></a>State 7</h3>
1371 <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>
1372   <a href="#rule_9">  9</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1373   <a href="#rule_9">  9</a>     | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
1374   <a href="#rule_10"> 10</a>     | <span class="dot">•</span> <b>"identifier"</b>
1375   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"number"</b>
1377     "incr"        <a href="#state_4">shift, and go to state 4</a>
1378     "identifier"  <a href="#state_11">shift, and go to state 11</a>
1379     "number"      <a href="#state_6">shift, and go to state 6</a>
1380     "("           <a href="#state_7">shift, and go to state 7</a>
1382     exp  <a href="#state_13">go to state 13</a>
1383 </p>
1385 <h3><a name="state_8" id="state_8"></a>State 8</h3>
1387 <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>
1389     $default  <a href="#rule_3">reduce using rule 3</a> (assignments)
1390 </p>
1392 <h3><a name="state_9" id="state_9"></a>State 9</h3>
1394 <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>
1396     ":="  <a href="#state_14">shift, and go to state 14</a>
1397 </p>
1399 <h3><a name="state_10" id="state_10"></a>State 10</h3>
1401 <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>
1403     $default  <a href="#rule_1">reduce using rule 1</a> (unit)
1404 </p>
1406 <h3><a name="state_11" id="state_11"></a>State 11</h3>
1408 <p class="pre">  <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
1410     $default  <a href="#rule_10">reduce using rule 10</a> (exp)
1411 </p>
1413 <h3><a name="state_12" id="state_12"></a>State 12</h3>
1415 <p class="pre">  <a href="#rule_6">  6</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
1416   <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>
1418     $default  <a href="#rule_6">reduce using rule 6</a> (@1)
1420     @1  <a href="#state_15">go to state 15</a>
1421 </p>
1423 <h3><a name="state_13" id="state_13"></a>State 13</h3>
1425 <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>
1427     ")"  <a href="#state_16">shift, and go to state 16</a>
1428 </p>
1430 <h3><a name="state_14" id="state_14"></a>State 14</h3>
1432 <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>
1433   <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>
1434   <a href="#rule_9">  9</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1435   <a href="#rule_10"> 10</a>     | <span class="dot">•</span> <b>"identifier"</b>
1436   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"number"</b>
1438     "incr"        <a href="#state_4">shift, and go to state 4</a>
1439     "identifier"  <a href="#state_11">shift, and go to state 11</a>
1440     "number"      <a href="#state_6">shift, and go to state 6</a>
1441     "("           <a href="#state_7">shift, and go to state 7</a>
1443     exp  <a href="#state_17">go to state 17</a>
1444 </p>
1446 <h3><a name="state_15" id="state_15"></a>State 15</h3>
1448 <p class="pre">  <a href="#rule_7">  7</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
1449   <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>
1451     $default  <a href="#rule_7">reduce using rule 7</a> (@2)
1453     @2  <a href="#state_18">go to state 18</a>
1454 </p>
1456 <h3><a name="state_16" id="state_16"></a>State 16</h3>
1458 <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>
1460     $default  <a href="#rule_9">reduce using rule 9</a> (exp)
1461 </p>
1463 <h3><a name="state_17" id="state_17"></a>State 17</h3>
1465 <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>
1467     $default  <a href="#rule_4">reduce using rule 4</a> (assignment)
1468 </p>
1470 <h3><a name="state_18" id="state_18"></a>State 18</h3>
1472 <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>
1473   <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>
1474   <a href="#rule_9">  9</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
1475   <a href="#rule_10"> 10</a>     | <span class="dot">•</span> <b>"identifier"</b>
1476   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"number"</b>
1478     "incr"        <a href="#state_4">shift, and go to state 4</a>
1479     "identifier"  <a href="#state_11">shift, and go to state 11</a>
1480     "number"      <a href="#state_6">shift, and go to state 6</a>
1481     "("           <a href="#state_7">shift, and go to state 7</a>
1483     exp  <a href="#state_19">go to state 19</a>
1484 </p>
1486 <h3><a name="state_19" id="state_19"></a>State 19</h3>
1488 <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>
1490     $default  <a href="#rule_8">reduce using rule 8</a> (exp)
1491 </p>
1493 <div id="footer"><hr />This document was generated using
1494       <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
1495       GNU Bison ]AT_PACKAGE_VERSION[</a>
1496       XML Automaton Report.<br />
1497       Verbatim copying and distribution of this entire page is
1498       permitted in any medium, provided this notice is preserved.</div></body>
1499 </html>
1502 AT_BISON_OPTION_POPDEFS
1503 AT_CLEANUP
1506 ## -------------------- ##
1507 ## Multistart reports.  ##
1508 ## -------------------- ##
1510 AT_SETUP([Multistart reports])
1512 AT_KEYWORDS([multistart report])
1514 AT_BISON_OPTION_PUSHDEFS
1515 AT_DATA([input.yy],
1516 [[%token
1517   END  0  "end of file"
1518   ASSIGN  ":="
1519   INCR    "incr"
1522 %token <std::string> IDENTIFIER "identifier"
1523 %type <std::string> id
1524 %token <int> NUMBER "number"
1525 %type  <int> exp
1528 %start unit assignments exp;
1529 unit: assignments exp  { driver.result = $2; };
1531 assignments:
1532   %empty                 {}
1533 | assignments assignment {};
1535 assignment:
1536   id ":=" exp { driver.variables[$id] = $exp; };
1539   "identifier";
1541 exp:
1542   "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp   { $$ = $2 + $3 + $4 + $5; }
1543 | "(" exp ")"   { std::swap ($$, $2); }
1544 | "identifier"  { $$ = driver.variables[$1]; }
1545 | "number"      { std::swap ($$, $1); };
1548 AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --xml input.yy])
1550 # Check the contents of the report.
1551 AT_CHECK([cat input.output], [],
1552 [[Grammar
1554     0 $accept: YY_PARSE_unit unit "end of file"
1555     1        | YY_PARSE_assignments assignments "end of file"
1556     2        | YY_PARSE_exp exp "end of file"
1558     3 unit: assignments exp
1560     4 assignments: %empty
1561     5            | assignments assignment
1563     6 assignment: id ":=" exp
1565     7 id: "identifier"
1567     8 @1: %empty
1569     9 @2: %empty
1571    10 exp: "incr" exp @1 @2 exp
1572    11    | "(" exp ")"
1573    12    | "identifier"
1574    13    | "number"
1577 Terminals, with rules where they appear
1579     "end of file" (0) 0 1 2
1580     error (256)
1581     ":=" (258) 6
1582     "incr" (259) 10
1583     "identifier" <std::string> (260) 7 12
1584     "number" <int> (261) 13
1585     YY_PARSE_unit (262) 0
1586     YY_PARSE_assignments (263) 1
1587     YY_PARSE_exp (264) 2
1588     "(" (265) 11
1589     ")" (266) 11
1592 Nonterminals, with rules where they appear
1594     $accept (12)
1595         on left: 0 1 2
1596     unit (13)
1597         on left: 3
1598         on right: 0
1599     assignments (14)
1600         on left: 4 5
1601         on right: 1 3 5
1602     assignment (15)
1603         on left: 6
1604         on right: 5
1605     id <std::string> (16)
1606         on left: 7
1607         on right: 6
1608     exp <int> (17)
1609         on left: 10 11 12 13
1610         on right: 2 3 6 10 11
1611     @1 <int> (18)
1612         on left: 8
1613         on right: 10
1614     @2 <int> (19)
1615         on left: 9
1616         on right: 10
1619 State 0
1621     0 $accept: . YY_PARSE_unit unit "end of file"
1622     1        | . YY_PARSE_assignments assignments "end of file"
1623     2        | . YY_PARSE_exp exp "end of file"
1625     YY_PARSE_unit         shift, and go to state 1
1626     YY_PARSE_assignments  shift, and go to state 2
1627     YY_PARSE_exp          shift, and go to state 3
1630 State 1
1632     0 $accept: YY_PARSE_unit . unit "end of file"
1633     3 unit: . assignments exp
1634     4 assignments: %empty .
1635     5            | . assignments assignment
1637     $default  reduce using rule 4 (assignments)
1639     unit         go to state 4
1640     assignments  go to state 5
1643 State 2
1645     1 $accept: YY_PARSE_assignments . assignments "end of file"
1646     4 assignments: %empty .
1647     5            | . assignments assignment
1649     $default  reduce using rule 4 (assignments)
1651     assignments  go to state 6
1654 State 3
1656     2 $accept: YY_PARSE_exp . exp "end of file"
1657    10 exp: . "incr" exp @1 @2 exp
1658    11    | . "(" exp ")"
1659    12    | . "identifier"
1660    13    | . "number"
1662     "incr"        shift, and go to state 7
1663     "identifier"  shift, and go to state 8
1664     "number"      shift, and go to state 9
1665     "("           shift, and go to state 10
1667     exp  go to state 11
1670 State 4
1672     0 $accept: YY_PARSE_unit unit . "end of file"
1674     "end of file"  shift, and go to state 12
1677 State 5
1679     3 unit: assignments . exp
1680     5 assignments: assignments . assignment
1681     6 assignment: . id ":=" exp
1682     7 id: . "identifier"
1683    10 exp: . "incr" exp @1 @2 exp
1684    11    | . "(" exp ")"
1685    12    | . "identifier"
1686    13    | . "number"
1688     "incr"        shift, and go to state 7
1689     "identifier"  shift, and go to state 13
1690     "number"      shift, and go to state 9
1691     "("           shift, and go to state 10
1693     assignment  go to state 14
1694     id          go to state 15
1695     exp         go to state 16
1698 State 6
1700     1 $accept: YY_PARSE_assignments assignments . "end of file"
1701     5 assignments: assignments . assignment
1702     6 assignment: . id ":=" exp
1703     7 id: . "identifier"
1705     "end of file"  shift, and go to state 17
1706     "identifier"   shift, and go to state 18
1708     assignment  go to state 14
1709     id          go to state 15
1712 State 7
1714    10 exp: . "incr" exp @1 @2 exp
1715    10    | "incr" . exp @1 @2 exp
1716    11    | . "(" exp ")"
1717    12    | . "identifier"
1718    13    | . "number"
1720     "incr"        shift, and go to state 7
1721     "identifier"  shift, and go to state 8
1722     "number"      shift, and go to state 9
1723     "("           shift, and go to state 10
1725     exp  go to state 19
1728 State 8
1730    12 exp: "identifier" .
1732     $default  reduce using rule 12 (exp)
1735 State 9
1737    13 exp: "number" .
1739     $default  reduce using rule 13 (exp)
1742 State 10
1744    10 exp: . "incr" exp @1 @2 exp
1745    11    | . "(" exp ")"
1746    11    | "(" . exp ")"
1747    12    | . "identifier"
1748    13    | . "number"
1750     "incr"        shift, and go to state 7
1751     "identifier"  shift, and go to state 8
1752     "number"      shift, and go to state 9
1753     "("           shift, and go to state 10
1755     exp  go to state 20
1758 State 11
1760     2 $accept: YY_PARSE_exp exp . "end of file"
1762     "end of file"  shift, and go to state 21
1765 State 12
1767     0 $accept: YY_PARSE_unit unit "end of file" .
1769     $default  accept
1772 State 13
1774     7 id: "identifier" .  [":="]
1775    12 exp: "identifier" .  ["end of file"]
1777     "end of file"  reduce using rule 12 (exp)
1778     $default       reduce using rule 7 (id)
1781 State 14
1783     5 assignments: assignments assignment .
1785     $default  reduce using rule 5 (assignments)
1788 State 15
1790     6 assignment: id . ":=" exp
1792     ":="  shift, and go to state 22
1795 State 16
1797     3 unit: assignments exp .
1799     $default  reduce using rule 3 (unit)
1802 State 17
1804     1 $accept: YY_PARSE_assignments assignments "end of file" .
1806     $default  accept
1809 State 18
1811     7 id: "identifier" .
1813     $default  reduce using rule 7 (id)
1816 State 19
1818     8 @1: %empty .
1819    10 exp: "incr" exp . @1 @2 exp
1821     $default  reduce using rule 8 (@1)
1823     @1  go to state 23
1826 State 20
1828    11 exp: "(" exp . ")"
1830     ")"  shift, and go to state 24
1833 State 21
1835     2 $accept: YY_PARSE_exp exp "end of file" .
1837     $default  accept
1840 State 22
1842     6 assignment: id ":=" . exp
1843    10 exp: . "incr" exp @1 @2 exp
1844    11    | . "(" exp ")"
1845    12    | . "identifier"
1846    13    | . "number"
1848     "incr"        shift, and go to state 7
1849     "identifier"  shift, and go to state 8
1850     "number"      shift, and go to state 9
1851     "("           shift, and go to state 10
1853     exp  go to state 25
1856 State 23
1858     9 @2: %empty .
1859    10 exp: "incr" exp @1 . @2 exp
1861     $default  reduce using rule 9 (@2)
1863     @2  go to state 26
1866 State 24
1868    11 exp: "(" exp ")" .
1870     $default  reduce using rule 11 (exp)
1873 State 25
1875     6 assignment: id ":=" exp .
1877     $default  reduce using rule 6 (assignment)
1880 State 26
1882    10 exp: . "incr" exp @1 @2 exp
1883    10    | "incr" exp @1 @2 . exp
1884    11    | . "(" exp ")"
1885    12    | . "identifier"
1886    13    | . "number"
1888     "incr"        shift, and go to state 7
1889     "identifier"  shift, and go to state 8
1890     "number"      shift, and go to state 9
1891     "("           shift, and go to state 10
1893     exp  go to state 27
1896 State 27
1898    10 exp: "incr" exp @1 @2 exp .
1900     $default  reduce using rule 10 (exp)
1905 AT_CHECK([cat input.gv], [],
1906 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
1907 // Report bugs to <bug-bison@gnu.org>.
1908 // Home page: <https://www.gnu.org/software/bison/>.
1910 digraph "input.yy"
1912   node [fontname = courier, shape = box, colorscheme = paired6]
1913   edge [fontname = courier]
1915   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"]
1916   0 -> 1 [style=solid label="YY_PARSE_unit"]
1917   0 -> 2 [style=solid label="YY_PARSE_assignments"]
1918   0 -> 3 [style=solid label="YY_PARSE_exp"]
1919   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"]
1920   1 -> 4 [style=dashed label="unit"]
1921   1 -> 5 [style=dashed label="assignments"]
1922   1 -> "1R4" [style=solid]
1923  "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
1924   2 [label="State 2\n\l  1 $accept: YY_PARSE_assignments • assignments \"end of file\"\l  4 assignments: • %empty\l  5            | • assignments assignment\l"]
1925   2 -> 6 [style=dashed label="assignments"]
1926   2 -> "2R4" [style=solid]
1927  "2R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
1928   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"]
1929   3 -> 7 [style=solid label="\"incr\""]
1930   3 -> 8 [style=solid label="\"identifier\""]
1931   3 -> 9 [style=solid label="\"number\""]
1932   3 -> 10 [style=solid label="\"(\""]
1933   3 -> 11 [style=dashed label="exp"]
1934   4 [label="State 4\n\l  0 $accept: YY_PARSE_unit unit • \"end of file\"\l"]
1935   4 -> 12 [style=solid label="\"end of file\""]
1936   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"]
1937   5 -> 7 [style=solid label="\"incr\""]
1938   5 -> 13 [style=solid label="\"identifier\""]
1939   5 -> 9 [style=solid label="\"number\""]
1940   5 -> 10 [style=solid label="\"(\""]
1941   5 -> 14 [style=dashed label="assignment"]
1942   5 -> 15 [style=dashed label="id"]
1943   5 -> 16 [style=dashed label="exp"]
1944   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"]
1945   6 -> 17 [style=solid label="\"end of file\""]
1946   6 -> 18 [style=solid label="\"identifier\""]
1947   6 -> 14 [style=dashed label="assignment"]
1948   6 -> 15 [style=dashed label="id"]
1949   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"]
1950   7 -> 7 [style=solid label="\"incr\""]
1951   7 -> 8 [style=solid label="\"identifier\""]
1952   7 -> 9 [style=solid label="\"number\""]
1953   7 -> 10 [style=solid label="\"(\""]
1954   7 -> 19 [style=dashed label="exp"]
1955   8 [label="State 8\n\l 12 exp: \"identifier\" •\l"]
1956   8 -> "8R12" [style=solid]
1957  "8R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
1958   9 [label="State 9\n\l 13 exp: \"number\" •\l"]
1959   9 -> "9R13" [style=solid]
1960  "9R13" [label="R13", fillcolor=3, shape=diamond, style=filled]
1961   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"]
1962   10 -> 7 [style=solid label="\"incr\""]
1963   10 -> 8 [style=solid label="\"identifier\""]
1964   10 -> 9 [style=solid label="\"number\""]
1965   10 -> 10 [style=solid label="\"(\""]
1966   10 -> 20 [style=dashed label="exp"]
1967   11 [label="State 11\n\l  2 $accept: YY_PARSE_exp exp • \"end of file\"\l"]
1968   11 -> 21 [style=solid label="\"end of file\""]
1969   12 [label="State 12\n\l  0 $accept: YY_PARSE_unit unit \"end of file\" •\l"]
1970   12 -> "12R0" [style=solid]
1971  "12R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
1972   13 [label="State 13\n\l  7 id: \"identifier\" •  [\":=\"]\l 12 exp: \"identifier\" •  [\"end of file\"]\l"]
1973   13 -> "13R7" [style=solid]
1974  "13R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
1975   13 -> "13R12" [label="[\"end of file\"]", style=solid]
1976  "13R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
1977   14 [label="State 14\n\l  5 assignments: assignments assignment •\l"]
1978   14 -> "14R5" [style=solid]
1979  "14R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
1980   15 [label="State 15\n\l  6 assignment: id • \":=\" exp\l"]
1981   15 -> 22 [style=solid label="\":=\""]
1982   16 [label="State 16\n\l  3 unit: assignments exp •\l"]
1983   16 -> "16R3" [style=solid]
1984  "16R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
1985   17 [label="State 17\n\l  1 $accept: YY_PARSE_assignments assignments \"end of file\" •\l"]
1986   17 -> "17R1" [style=solid]
1987  "17R1" [label="Acc", fillcolor=1, shape=diamond, style=filled]
1988   18 [label="State 18\n\l  7 id: \"identifier\" •\l"]
1989   18 -> "18R7" [style=solid]
1990  "18R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
1991   19 [label="State 19\n\l  8 @1: • %empty\l 10 exp: \"incr\" exp • @1 @2 exp\l"]
1992   19 -> 23 [style=dashed label="@1"]
1993   19 -> "19R8" [style=solid]
1994  "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
1995   20 [label="State 20\n\l 11 exp: \"(\" exp • \")\"\l"]
1996   20 -> 24 [style=solid label="\")\""]
1997   21 [label="State 21\n\l  2 $accept: YY_PARSE_exp exp \"end of file\" •\l"]
1998   21 -> "21R2" [style=solid]
1999  "21R2" [label="Acc", fillcolor=1, shape=diamond, style=filled]
2000   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"]
2001   22 -> 7 [style=solid label="\"incr\""]
2002   22 -> 8 [style=solid label="\"identifier\""]
2003   22 -> 9 [style=solid label="\"number\""]
2004   22 -> 10 [style=solid label="\"(\""]
2005   22 -> 25 [style=dashed label="exp"]
2006   23 [label="State 23\n\l  9 @2: • %empty\l 10 exp: \"incr\" exp @1 • @2 exp\l"]
2007   23 -> 26 [style=dashed label="@2"]
2008   23 -> "23R9" [style=solid]
2009  "23R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
2010   24 [label="State 24\n\l 11 exp: \"(\" exp \")\" •\l"]
2011   24 -> "24R11" [style=solid]
2012  "24R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
2013   25 [label="State 25\n\l  6 assignment: id \":=\" exp •\l"]
2014   25 -> "25R6" [style=solid]
2015  "25R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
2016   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"]
2017   26 -> 7 [style=solid label="\"incr\""]
2018   26 -> 8 [style=solid label="\"identifier\""]
2019   26 -> 9 [style=solid label="\"number\""]
2020   26 -> 10 [style=solid label="\"(\""]
2021   26 -> 27 [style=dashed label="exp"]
2022   27 [label="State 27\n\l 10 exp: \"incr\" exp @1 @2 exp •\l"]
2023   27 -> "27R10" [style=solid]
2024  "27R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
2029 AT_CHECK([[cat input.xml]], [],
2030 [[<?xml version="1.0"?>
2032 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
2034   <filename>input.yy</filename>
2036   <grammar>
2037     <rules>
2038       <rule number="0" usefulness="useful">
2039         <lhs>$accept</lhs>
2040         <rhs>
2041           <symbol>YY_PARSE_unit</symbol>
2042           <symbol>unit</symbol>
2043           <symbol>&quot;end of file&quot;</symbol>
2044         </rhs>
2045       </rule>
2046       <rule number="1" usefulness="useful">
2047         <lhs>$accept</lhs>
2048         <rhs>
2049           <symbol>YY_PARSE_assignments</symbol>
2050           <symbol>assignments</symbol>
2051           <symbol>&quot;end of file&quot;</symbol>
2052         </rhs>
2053       </rule>
2054       <rule number="2" usefulness="useful">
2055         <lhs>$accept</lhs>
2056         <rhs>
2057           <symbol>YY_PARSE_exp</symbol>
2058           <symbol>exp</symbol>
2059           <symbol>&quot;end of file&quot;</symbol>
2060         </rhs>
2061       </rule>
2062       <rule number="3" usefulness="useful">
2063         <lhs>unit</lhs>
2064         <rhs>
2065           <symbol>assignments</symbol>
2066           <symbol>exp</symbol>
2067         </rhs>
2068       </rule>
2069       <rule number="4" usefulness="useful">
2070         <lhs>assignments</lhs>
2071         <rhs>
2072           <empty/>
2073         </rhs>
2074       </rule>
2075       <rule number="5" usefulness="useful">
2076         <lhs>assignments</lhs>
2077         <rhs>
2078           <symbol>assignments</symbol>
2079           <symbol>assignment</symbol>
2080         </rhs>
2081       </rule>
2082       <rule number="6" usefulness="useful">
2083         <lhs>assignment</lhs>
2084         <rhs>
2085           <symbol>id</symbol>
2086           <symbol>&quot;:=&quot;</symbol>
2087           <symbol>exp</symbol>
2088         </rhs>
2089       </rule>
2090       <rule number="7" usefulness="useful">
2091         <lhs>id</lhs>
2092         <rhs>
2093           <symbol>&quot;identifier&quot;</symbol>
2094         </rhs>
2095       </rule>
2096       <rule number="8" usefulness="useful">
2097         <lhs>@1</lhs>
2098         <rhs>
2099           <empty/>
2100         </rhs>
2101       </rule>
2102       <rule number="9" usefulness="useful">
2103         <lhs>@2</lhs>
2104         <rhs>
2105           <empty/>
2106         </rhs>
2107       </rule>
2108       <rule number="10" usefulness="useful">
2109         <lhs>exp</lhs>
2110         <rhs>
2111           <symbol>&quot;incr&quot;</symbol>
2112           <symbol>exp</symbol>
2113           <symbol>@1</symbol>
2114           <symbol>@2</symbol>
2115           <symbol>exp</symbol>
2116         </rhs>
2117       </rule>
2118       <rule number="11" usefulness="useful">
2119         <lhs>exp</lhs>
2120         <rhs>
2121           <symbol>&quot;(&quot;</symbol>
2122           <symbol>exp</symbol>
2123           <symbol>&quot;)&quot;</symbol>
2124         </rhs>
2125       </rule>
2126       <rule number="12" usefulness="useful">
2127         <lhs>exp</lhs>
2128         <rhs>
2129           <symbol>&quot;identifier&quot;</symbol>
2130         </rhs>
2131       </rule>
2132       <rule number="13" usefulness="useful">
2133         <lhs>exp</lhs>
2134         <rhs>
2135           <symbol>&quot;number&quot;</symbol>
2136         </rhs>
2137       </rule>
2138     </rules>
2139     <terminals>
2140       <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" type="" usefulness="useful"/>
2141       <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
2142       <terminal symbol-number="3" token-number="258" name="&quot;:=&quot;" type="" usefulness="useful"/>
2143       <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
2144       <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
2145       <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" type="int" usefulness="useful"/>
2146       <terminal symbol-number="7" token-number="262" name="YY_PARSE_unit" type="" usefulness="useful"/>
2147       <terminal symbol-number="8" token-number="263" name="YY_PARSE_assignments" type="" usefulness="useful"/>
2148       <terminal symbol-number="9" token-number="264" name="YY_PARSE_exp" type="" usefulness="useful"/>
2149       <terminal symbol-number="10" token-number="265" name="&quot;(&quot;" type="" usefulness="useful"/>
2150       <terminal symbol-number="11" token-number="266" name="&quot;)&quot;" type="" usefulness="useful"/>
2151     </terminals>
2152     <nonterminals>
2153       <nonterminal symbol-number="12" name="$accept" type="" usefulness="useful"/>
2154       <nonterminal symbol-number="13" name="unit" type="" usefulness="useful"/>
2155       <nonterminal symbol-number="14" name="assignments" type="" usefulness="useful"/>
2156       <nonterminal symbol-number="15" name="assignment" type="" usefulness="useful"/>
2157       <nonterminal symbol-number="16" name="id" type="std::string" usefulness="useful"/>
2158       <nonterminal symbol-number="17" name="exp" type="int" usefulness="useful"/>
2159       <nonterminal symbol-number="18" name="@1" type="int" usefulness="useful"/>
2160       <nonterminal symbol-number="19" name="@2" type="int" usefulness="useful"/>
2161     </nonterminals>
2162   </grammar>
2164   <automaton>
2166     <state number="0">
2167       <itemset>
2168         <item rule-number="0" dot="0"/>
2169         <item rule-number="1" dot="0"/>
2170         <item rule-number="2" dot="0"/>
2171       </itemset>
2172       <actions>
2173         <transitions>
2174           <transition type="shift" symbol="YY_PARSE_unit" state="1"/>
2175           <transition type="shift" symbol="YY_PARSE_assignments" state="2"/>
2176           <transition type="shift" symbol="YY_PARSE_exp" state="3"/>
2177         </transitions>
2178         <errors/>
2179         <reductions/>
2180       </actions>
2181       <solved-conflicts/>
2182     </state>
2184     <state number="1">
2185       <itemset>
2186         <item rule-number="0" dot="1"/>
2187         <item rule-number="3" dot="0"/>
2188         <item rule-number="4" dot="0"/>
2189         <item rule-number="5" dot="0"/>
2190       </itemset>
2191       <actions>
2192         <transitions>
2193           <transition type="goto" symbol="unit" state="4"/>
2194           <transition type="goto" symbol="assignments" state="5"/>
2195         </transitions>
2196         <errors/>
2197         <reductions>
2198           <reduction symbol="$default" rule="4" enabled="true"/>
2199         </reductions>
2200       </actions>
2201       <solved-conflicts/>
2202     </state>
2204     <state number="2">
2205       <itemset>
2206         <item rule-number="1" dot="1"/>
2207         <item rule-number="4" dot="0"/>
2208         <item rule-number="5" dot="0"/>
2209       </itemset>
2210       <actions>
2211         <transitions>
2212           <transition type="goto" symbol="assignments" state="6"/>
2213         </transitions>
2214         <errors/>
2215         <reductions>
2216           <reduction symbol="$default" rule="4" enabled="true"/>
2217         </reductions>
2218       </actions>
2219       <solved-conflicts/>
2220     </state>
2222     <state number="3">
2223       <itemset>
2224         <item rule-number="2" dot="1"/>
2225         <item rule-number="10" dot="0"/>
2226         <item rule-number="11" dot="0"/>
2227         <item rule-number="12" dot="0"/>
2228         <item rule-number="13" dot="0"/>
2229       </itemset>
2230       <actions>
2231         <transitions>
2232           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2233           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2234           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2235           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2236           <transition type="goto" symbol="exp" state="11"/>
2237         </transitions>
2238         <errors/>
2239         <reductions/>
2240       </actions>
2241       <solved-conflicts/>
2242     </state>
2244     <state number="4">
2245       <itemset>
2246         <item rule-number="0" dot="2"/>
2247       </itemset>
2248       <actions>
2249         <transitions>
2250           <transition type="shift" symbol="&quot;end of file&quot;" state="12"/>
2251         </transitions>
2252         <errors/>
2253         <reductions/>
2254       </actions>
2255       <solved-conflicts/>
2256     </state>
2258     <state number="5">
2259       <itemset>
2260         <item rule-number="3" dot="1"/>
2261         <item rule-number="5" dot="1"/>
2262         <item rule-number="6" dot="0"/>
2263         <item rule-number="7" dot="0"/>
2264         <item rule-number="10" dot="0"/>
2265         <item rule-number="11" dot="0"/>
2266         <item rule-number="12" dot="0"/>
2267         <item rule-number="13" dot="0"/>
2268       </itemset>
2269       <actions>
2270         <transitions>
2271           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2272           <transition type="shift" symbol="&quot;identifier&quot;" state="13"/>
2273           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2274           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2275           <transition type="goto" symbol="assignment" state="14"/>
2276           <transition type="goto" symbol="id" state="15"/>
2277           <transition type="goto" symbol="exp" state="16"/>
2278         </transitions>
2279         <errors/>
2280         <reductions/>
2281       </actions>
2282       <solved-conflicts/>
2283     </state>
2285     <state number="6">
2286       <itemset>
2287         <item rule-number="1" dot="2"/>
2288         <item rule-number="5" dot="1"/>
2289         <item rule-number="6" dot="0"/>
2290         <item rule-number="7" dot="0"/>
2291       </itemset>
2292       <actions>
2293         <transitions>
2294           <transition type="shift" symbol="&quot;end of file&quot;" state="17"/>
2295           <transition type="shift" symbol="&quot;identifier&quot;" state="18"/>
2296           <transition type="goto" symbol="assignment" state="14"/>
2297           <transition type="goto" symbol="id" state="15"/>
2298         </transitions>
2299         <errors/>
2300         <reductions/>
2301       </actions>
2302       <solved-conflicts/>
2303     </state>
2305     <state number="7">
2306       <itemset>
2307         <item rule-number="10" dot="0"/>
2308         <item rule-number="10" dot="1"/>
2309         <item rule-number="11" dot="0"/>
2310         <item rule-number="12" dot="0"/>
2311         <item rule-number="13" dot="0"/>
2312       </itemset>
2313       <actions>
2314         <transitions>
2315           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2316           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2317           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2318           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2319           <transition type="goto" symbol="exp" state="19"/>
2320         </transitions>
2321         <errors/>
2322         <reductions/>
2323       </actions>
2324       <solved-conflicts/>
2325     </state>
2327     <state number="8">
2328       <itemset>
2329         <item rule-number="12" dot="1"/>
2330       </itemset>
2331       <actions>
2332         <transitions/>
2333         <errors/>
2334         <reductions>
2335           <reduction symbol="$default" rule="12" enabled="true"/>
2336         </reductions>
2337       </actions>
2338       <solved-conflicts/>
2339     </state>
2341     <state number="9">
2342       <itemset>
2343         <item rule-number="13" dot="1"/>
2344       </itemset>
2345       <actions>
2346         <transitions/>
2347         <errors/>
2348         <reductions>
2349           <reduction symbol="$default" rule="13" enabled="true"/>
2350         </reductions>
2351       </actions>
2352       <solved-conflicts/>
2353     </state>
2355     <state number="10">
2356       <itemset>
2357         <item rule-number="10" dot="0"/>
2358         <item rule-number="11" dot="0"/>
2359         <item rule-number="11" dot="1"/>
2360         <item rule-number="12" dot="0"/>
2361         <item rule-number="13" dot="0"/>
2362       </itemset>
2363       <actions>
2364         <transitions>
2365           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2366           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2367           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2368           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2369           <transition type="goto" symbol="exp" state="20"/>
2370         </transitions>
2371         <errors/>
2372         <reductions/>
2373       </actions>
2374       <solved-conflicts/>
2375     </state>
2377     <state number="11">
2378       <itemset>
2379         <item rule-number="2" dot="2"/>
2380       </itemset>
2381       <actions>
2382         <transitions>
2383           <transition type="shift" symbol="&quot;end of file&quot;" state="21"/>
2384         </transitions>
2385         <errors/>
2386         <reductions/>
2387       </actions>
2388       <solved-conflicts/>
2389     </state>
2391     <state number="12">
2392       <itemset>
2393         <item rule-number="0" dot="3"/>
2394       </itemset>
2395       <actions>
2396         <transitions/>
2397         <errors/>
2398         <reductions>
2399           <reduction symbol="$default" rule="accept" enabled="true"/>
2400         </reductions>
2401       </actions>
2402       <solved-conflicts/>
2403     </state>
2405     <state number="13">
2406       <itemset>
2407         <item rule-number="7" dot="1">
2408           <lookaheads>
2409             <symbol>&quot;:=&quot;</symbol>
2410           </lookaheads>
2411         </item>
2412         <item rule-number="12" dot="1">
2413           <lookaheads>
2414             <symbol>&quot;end of file&quot;</symbol>
2415           </lookaheads>
2416         </item>
2417       </itemset>
2418       <actions>
2419         <transitions/>
2420         <errors/>
2421         <reductions>
2422           <reduction symbol="&quot;end of file&quot;" rule="12" enabled="true"/>
2423           <reduction symbol="$default" rule="7" enabled="true"/>
2424         </reductions>
2425       </actions>
2426       <solved-conflicts/>
2427     </state>
2429     <state number="14">
2430       <itemset>
2431         <item rule-number="5" dot="2"/>
2432       </itemset>
2433       <actions>
2434         <transitions/>
2435         <errors/>
2436         <reductions>
2437           <reduction symbol="$default" rule="5" enabled="true"/>
2438         </reductions>
2439       </actions>
2440       <solved-conflicts/>
2441     </state>
2443     <state number="15">
2444       <itemset>
2445         <item rule-number="6" dot="1"/>
2446       </itemset>
2447       <actions>
2448         <transitions>
2449           <transition type="shift" symbol="&quot;:=&quot;" state="22"/>
2450         </transitions>
2451         <errors/>
2452         <reductions/>
2453       </actions>
2454       <solved-conflicts/>
2455     </state>
2457     <state number="16">
2458       <itemset>
2459         <item rule-number="3" dot="2"/>
2460       </itemset>
2461       <actions>
2462         <transitions/>
2463         <errors/>
2464         <reductions>
2465           <reduction symbol="$default" rule="3" enabled="true"/>
2466         </reductions>
2467       </actions>
2468       <solved-conflicts/>
2469     </state>
2471     <state number="17">
2472       <itemset>
2473         <item rule-number="1" dot="3"/>
2474       </itemset>
2475       <actions>
2476         <transitions/>
2477         <errors/>
2478         <reductions>
2479           <reduction symbol="$default" rule="accept" enabled="true"/>
2480         </reductions>
2481       </actions>
2482       <solved-conflicts/>
2483     </state>
2485     <state number="18">
2486       <itemset>
2487         <item rule-number="7" dot="1"/>
2488       </itemset>
2489       <actions>
2490         <transitions/>
2491         <errors/>
2492         <reductions>
2493           <reduction symbol="$default" rule="7" enabled="true"/>
2494         </reductions>
2495       </actions>
2496       <solved-conflicts/>
2497     </state>
2499     <state number="19">
2500       <itemset>
2501         <item rule-number="8" dot="0"/>
2502         <item rule-number="10" dot="2"/>
2503       </itemset>
2504       <actions>
2505         <transitions>
2506           <transition type="goto" symbol="@1" state="23"/>
2507         </transitions>
2508         <errors/>
2509         <reductions>
2510           <reduction symbol="$default" rule="8" enabled="true"/>
2511         </reductions>
2512       </actions>
2513       <solved-conflicts/>
2514     </state>
2516     <state number="20">
2517       <itemset>
2518         <item rule-number="11" dot="2"/>
2519       </itemset>
2520       <actions>
2521         <transitions>
2522           <transition type="shift" symbol="&quot;)&quot;" state="24"/>
2523         </transitions>
2524         <errors/>
2525         <reductions/>
2526       </actions>
2527       <solved-conflicts/>
2528     </state>
2530     <state number="21">
2531       <itemset>
2532         <item rule-number="2" dot="3"/>
2533       </itemset>
2534       <actions>
2535         <transitions/>
2536         <errors/>
2537         <reductions>
2538           <reduction symbol="$default" rule="accept" enabled="true"/>
2539         </reductions>
2540       </actions>
2541       <solved-conflicts/>
2542     </state>
2544     <state number="22">
2545       <itemset>
2546         <item rule-number="6" dot="2"/>
2547         <item rule-number="10" dot="0"/>
2548         <item rule-number="11" dot="0"/>
2549         <item rule-number="12" dot="0"/>
2550         <item rule-number="13" dot="0"/>
2551       </itemset>
2552       <actions>
2553         <transitions>
2554           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2555           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2556           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2557           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2558           <transition type="goto" symbol="exp" state="25"/>
2559         </transitions>
2560         <errors/>
2561         <reductions/>
2562       </actions>
2563       <solved-conflicts/>
2564     </state>
2566     <state number="23">
2567       <itemset>
2568         <item rule-number="9" dot="0"/>
2569         <item rule-number="10" dot="3"/>
2570       </itemset>
2571       <actions>
2572         <transitions>
2573           <transition type="goto" symbol="@2" state="26"/>
2574         </transitions>
2575         <errors/>
2576         <reductions>
2577           <reduction symbol="$default" rule="9" enabled="true"/>
2578         </reductions>
2579       </actions>
2580       <solved-conflicts/>
2581     </state>
2583     <state number="24">
2584       <itemset>
2585         <item rule-number="11" dot="3"/>
2586       </itemset>
2587       <actions>
2588         <transitions/>
2589         <errors/>
2590         <reductions>
2591           <reduction symbol="$default" rule="11" enabled="true"/>
2592         </reductions>
2593       </actions>
2594       <solved-conflicts/>
2595     </state>
2597     <state number="25">
2598       <itemset>
2599         <item rule-number="6" dot="3"/>
2600       </itemset>
2601       <actions>
2602         <transitions/>
2603         <errors/>
2604         <reductions>
2605           <reduction symbol="$default" rule="6" enabled="true"/>
2606         </reductions>
2607       </actions>
2608       <solved-conflicts/>
2609     </state>
2611     <state number="26">
2612       <itemset>
2613         <item rule-number="10" dot="0"/>
2614         <item rule-number="10" dot="4"/>
2615         <item rule-number="11" dot="0"/>
2616         <item rule-number="12" dot="0"/>
2617         <item rule-number="13" dot="0"/>
2618       </itemset>
2619       <actions>
2620         <transitions>
2621           <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
2622           <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
2623           <transition type="shift" symbol="&quot;number&quot;" state="9"/>
2624           <transition type="shift" symbol="&quot;(&quot;" state="10"/>
2625           <transition type="goto" symbol="exp" state="27"/>
2626         </transitions>
2627         <errors/>
2628         <reductions/>
2629       </actions>
2630       <solved-conflicts/>
2631     </state>
2633     <state number="27">
2634       <itemset>
2635         <item rule-number="10" dot="5"/>
2636       </itemset>
2637       <actions>
2638         <transitions/>
2639         <errors/>
2640         <reductions>
2641           <reduction symbol="$default" rule="10" enabled="true"/>
2642         </reductions>
2643       </actions>
2644       <solved-conflicts/>
2645     </state>
2646   </automaton>
2647 </bison-xml-report>
2650 if test x"$XSLTPROC" != x""; then
2651   AT_CHECK([[$XSLTPROC \
2652              `]]AT_SET_ENV[[ bison --print-datadir`/xslt/xml2xhtml.xsl \
2653              input.xml >input.html]])
2654   AT_CHECK([cat input.html], [],
2655 [[<?xml version="1.0" encoding="UTF-8"?>
2656 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2657 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
2658   <head>
2659     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
2660     <title>input.yy - GNU Bison XML Automaton Report</title>
2661     <style type="text/css">
2662       body {
2663         font-family: "Nimbus Sans L", Arial, sans-serif;
2664         font-size: 9pt;
2665       }
2666       a:link {
2667         color: #1f00ff;
2668         text-decoration: none;
2669       }
2670       a:visited {
2671         color: #1f00ff;
2672         text-decoration: none;
2673       }
2674       a:hover {
2675         color: red;
2676       }
2677       #menu a {
2678         text-decoration: underline;
2679       }
2680       .i {
2681         font-style: italic;
2682       }
2683       .pre {
2684         font-family: monospace;
2685         white-space: pre;
2686       }
2687       ol.decimal {
2688         list-style-type: decimal;
2689       }
2690       ol.lower-alpha {
2691         list-style-type: lower-alpha;
2692       }
2693       .dot {
2694         color: #cc0000;
2695       }
2696       #footer {
2697         margin-top: 3.5em;
2698         font-size: 7pt;
2699       }
2700       </style>
2701   </head>
2702   <body><h1>GNU Bison XML Automaton Report</h1><p>
2703     input grammar: <span class="i">input.yy</span></p>
2705 <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>
2707 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
2709 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
2710 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
2712 <h2><a name="grammar" id="grammar"></a> Grammar</h2>
2713 <p class="pre">
2714   <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>
2715   <a name="rule_1" id="rule_1">  1</a>         | <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
2716   <a name="rule_2" id="rule_2">  2</a>         | <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
2718   <a name="rule_3" id="rule_3">  3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
2720   <a name="rule_4" id="rule_4">  4</a> <span class="i">assignments</span> → %empty
2721   <a name="rule_5" id="rule_5">  5</a>             | <span class="i">assignments</span> <span class="i">assignment</span>
2723   <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>
2725   <a name="rule_7" id="rule_7">  7</a> <span class="i">id</span> → <b>"identifier"</b>
2727   <a name="rule_8" id="rule_8">  8</a> <span class="i">@1</span> → %empty
2729   <a name="rule_9" id="rule_9">  9</a> <span class="i">@2</span> → %empty
2731   <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>
2732   <a name="rule_11" id="rule_11"> 11</a>     | <b>"("</b> <span class="i">exp</span> <b>")"</b>
2733   <a name="rule_12" id="rule_12"> 12</a>     | <b>"identifier"</b>
2734   <a name="rule_13" id="rule_13"> 13</a>     | <b>"number"</b>
2735 </p>
2737 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
2739 <ul>
2740   <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>
2741   <li><b>error</b> (256)</li>
2742   <li><b>":="</b> (258) <a href="#rule_6">6</a></li>
2743   <li><b>"incr"</b> (259) <a href="#rule_10">10</a></li>
2744   <li><b>"identifier"</b> &lt;std::string&gt; (260) <a href="#rule_7">7</a> <a href="#rule_12">12</a></li>
2745   <li><b>"number"</b> &lt;int&gt; (261) <a href="#rule_13">13</a></li>
2746   <li><b>YY_PARSE_unit</b> (262) <a href="#rule_0">0</a></li>
2747   <li><b>YY_PARSE_assignments</b> (263) <a href="#rule_1">1</a></li>
2748   <li><b>YY_PARSE_exp</b> (264) <a href="#rule_2">2</a></li>
2749   <li><b>"("</b> (265) <a href="#rule_11">11</a></li>
2750   <li><b>")"</b> (266) <a href="#rule_11">11</a></li>
2751 </ul>
2753 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
2755 <ul>
2756   <li><b>$accept</b> (12)
2757     <ul>
2758       <li>on left: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
2759     </ul>
2760   </li>
2761   <li><b>unit</b> (13)
2762     <ul>
2763       <li>on left: <a href="#rule_3">3</a></li>
2764       <li>on right: <a href="#rule_0">0</a></li>
2765     </ul>
2766   </li>
2767   <li><b>assignments</b> (14)
2768     <ul>
2769       <li>on left: <a href="#rule_4">4</a> <a href="#rule_5">5</a></li>
2770       <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a> <a href="#rule_5">5</a></li>
2771     </ul>
2772   </li>
2773   <li><b>assignment</b> (15)
2774     <ul>
2775       <li>on left: <a href="#rule_6">6</a></li>
2776       <li>on right: <a href="#rule_5">5</a></li>
2777     </ul>
2778   </li>
2779   <li><b>id</b> &lt;std::string&gt; (16)
2780     <ul>
2781       <li>on left: <a href="#rule_7">7</a></li>
2782       <li>on right: <a href="#rule_6">6</a></li>
2783     </ul>
2784   </li>
2785   <li><b>exp</b> &lt;int&gt; (17)
2786     <ul>
2787       <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>
2788       <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>
2789     </ul>
2790   </li>
2791   <li><b>@1</b> &lt;int&gt; (18)
2792     <ul>
2793       <li>on left: <a href="#rule_8">8</a></li>
2794       <li>on right: <a href="#rule_10">10</a></li>
2795     </ul>
2796   </li>
2797   <li><b>@2</b> &lt;int&gt; (19)
2798     <ul>
2799       <li>on left: <a href="#rule_9">9</a></li>
2800       <li>on right: <a href="#rule_10">10</a></li>
2801     </ul>
2802   </li>
2803 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
2805 <h3><a name="state_0" id="state_0"></a>State 0</h3>
2807 <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>
2808   <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>
2809   <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>
2811     YY_PARSE_unit         <a href="#state_1">shift, and go to state 1</a>
2812     YY_PARSE_assignments  <a href="#state_2">shift, and go to state 2</a>
2813     YY_PARSE_exp          <a href="#state_3">shift, and go to state 3</a>
2814 </p>
2816 <h3><a name="state_1" id="state_1"></a>State 1</h3>
2818 <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>
2819   <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>
2820   <a href="#rule_4">  4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
2821   <a href="#rule_5">  5</a>             | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
2823     $default  <a href="#rule_4">reduce using rule 4</a> (assignments)
2825     unit         <a href="#state_4">go to state 4</a>
2826     assignments  <a href="#state_5">go to state 5</a>
2827 </p>
2829 <h3><a name="state_2" id="state_2"></a>State 2</h3>
2831 <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>
2832   <a href="#rule_4">  4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
2833   <a href="#rule_5">  5</a>             | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
2835     $default  <a href="#rule_4">reduce using rule 4</a> (assignments)
2837     assignments  <a href="#state_6">go to state 6</a>
2838 </p>
2840 <h3><a name="state_3" id="state_3"></a>State 3</h3>
2842 <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>
2843   <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>
2844   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2845   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2846   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2848     "incr"        <a href="#state_7">shift, and go to state 7</a>
2849     "identifier"  <a href="#state_8">shift, and go to state 8</a>
2850     "number"      <a href="#state_9">shift, and go to state 9</a>
2851     "("           <a href="#state_10">shift, and go to state 10</a>
2853     exp  <a href="#state_11">go to state 11</a>
2854 </p>
2856 <h3><a name="state_4" id="state_4"></a>State 4</h3>
2858 <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>
2860     "end of file"  <a href="#state_12">shift, and go to state 12</a>
2861 </p>
2863 <h3><a name="state_5" id="state_5"></a>State 5</h3>
2865 <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>
2866   <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>
2867   <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>
2868   <a href="#rule_7">  7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
2869   <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>
2870   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2871   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2872   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2874     "incr"        <a href="#state_7">shift, and go to state 7</a>
2875     "identifier"  <a href="#state_13">shift, and go to state 13</a>
2876     "number"      <a href="#state_9">shift, and go to state 9</a>
2877     "("           <a href="#state_10">shift, and go to state 10</a>
2879     assignment  <a href="#state_14">go to state 14</a>
2880     id          <a href="#state_15">go to state 15</a>
2881     exp         <a href="#state_16">go to state 16</a>
2882 </p>
2884 <h3><a name="state_6" id="state_6"></a>State 6</h3>
2886 <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>
2887   <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>
2888   <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>
2889   <a href="#rule_7">  7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
2891     "end of file"  <a href="#state_17">shift, and go to state 17</a>
2892     "identifier"   <a href="#state_18">shift, and go to state 18</a>
2894     assignment  <a href="#state_14">go to state 14</a>
2895     id          <a href="#state_15">go to state 15</a>
2896 </p>
2898 <h3><a name="state_7" id="state_7"></a>State 7</h3>
2900 <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>
2901   <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>
2902   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2903   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2904   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2906     "incr"        <a href="#state_7">shift, and go to state 7</a>
2907     "identifier"  <a href="#state_8">shift, and go to state 8</a>
2908     "number"      <a href="#state_9">shift, and go to state 9</a>
2909     "("           <a href="#state_10">shift, and go to state 10</a>
2911     exp  <a href="#state_19">go to state 19</a>
2912 </p>
2914 <h3><a name="state_8" id="state_8"></a>State 8</h3>
2916 <p class="pre">  <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
2918     $default  <a href="#rule_12">reduce using rule 12</a> (exp)
2919 </p>
2921 <h3><a name="state_9" id="state_9"></a>State 9</h3>
2923 <p class="pre">  <a href="#rule_13"> 13</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
2925     $default  <a href="#rule_13">reduce using rule 13</a> (exp)
2926 </p>
2928 <h3><a name="state_10" id="state_10"></a>State 10</h3>
2930 <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>
2931   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
2932   <a href="#rule_11"> 11</a>     | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
2933   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
2934   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
2936     "incr"        <a href="#state_7">shift, and go to state 7</a>
2937     "identifier"  <a href="#state_8">shift, and go to state 8</a>
2938     "number"      <a href="#state_9">shift, and go to state 9</a>
2939     "("           <a href="#state_10">shift, and go to state 10</a>
2941     exp  <a href="#state_20">go to state 20</a>
2942 </p>
2944 <h3><a name="state_11" id="state_11"></a>State 11</h3>
2946 <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>
2948     "end of file"  <a href="#state_21">shift, and go to state 21</a>
2949 </p>
2951 <h3><a name="state_12" id="state_12"></a>State 12</h3>
2953 <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>
2955     $default  accept
2956 </p>
2958 <h3><a name="state_13" id="state_13"></a>State 13</h3>
2960 <p class="pre">  <a href="#rule_7">  7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>  [":="]
2961   <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>  ["end of file"]
2963     "end of file"  <a href="#rule_12">reduce using rule 12</a> (exp)
2964     $default       <a href="#rule_7">reduce using rule 7</a> (id)
2965 </p>
2967 <h3><a name="state_14" id="state_14"></a>State 14</h3>
2969 <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>
2971     $default  <a href="#rule_5">reduce using rule 5</a> (assignments)
2972 </p>
2974 <h3><a name="state_15" id="state_15"></a>State 15</h3>
2976 <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>
2978     ":="  <a href="#state_22">shift, and go to state 22</a>
2979 </p>
2981 <h3><a name="state_16" id="state_16"></a>State 16</h3>
2983 <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>
2985     $default  <a href="#rule_3">reduce using rule 3</a> (unit)
2986 </p>
2988 <h3><a name="state_17" id="state_17"></a>State 17</h3>
2990 <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>
2992     $default  accept
2993 </p>
2995 <h3><a name="state_18" id="state_18"></a>State 18</h3>
2997 <p class="pre">  <a href="#rule_7">  7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>
2999     $default  <a href="#rule_7">reduce using rule 7</a> (id)
3000 </p>
3002 <h3><a name="state_19" id="state_19"></a>State 19</h3>
3004 <p class="pre">  <a href="#rule_8">  8</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
3005   <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>
3007     $default  <a href="#rule_8">reduce using rule 8</a> (@1)
3009     @1  <a href="#state_23">go to state 23</a>
3010 </p>
3012 <h3><a name="state_20" id="state_20"></a>State 20</h3>
3014 <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>
3016     ")"  <a href="#state_24">shift, and go to state 24</a>
3017 </p>
3019 <h3><a name="state_21" id="state_21"></a>State 21</h3>
3021 <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>
3023     $default  accept
3024 </p>
3026 <h3><a name="state_22" id="state_22"></a>State 22</h3>
3028 <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>
3029   <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>
3030   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
3031   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
3032   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
3034     "incr"        <a href="#state_7">shift, and go to state 7</a>
3035     "identifier"  <a href="#state_8">shift, and go to state 8</a>
3036     "number"      <a href="#state_9">shift, and go to state 9</a>
3037     "("           <a href="#state_10">shift, and go to state 10</a>
3039     exp  <a href="#state_25">go to state 25</a>
3040 </p>
3042 <h3><a name="state_23" id="state_23"></a>State 23</h3>
3044 <p class="pre">  <a href="#rule_9">  9</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
3045   <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>
3047     $default  <a href="#rule_9">reduce using rule 9</a> (@2)
3049     @2  <a href="#state_26">go to state 26</a>
3050 </p>
3052 <h3><a name="state_24" id="state_24"></a>State 24</h3>
3054 <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>
3056     $default  <a href="#rule_11">reduce using rule 11</a> (exp)
3057 </p>
3059 <h3><a name="state_25" id="state_25"></a>State 25</h3>
3061 <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>
3063     $default  <a href="#rule_6">reduce using rule 6</a> (assignment)
3064 </p>
3066 <h3><a name="state_26" id="state_26"></a>State 26</h3>
3068 <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>
3069   <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>
3070   <a href="#rule_11"> 11</a>     | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
3071   <a href="#rule_12"> 12</a>     | <span class="dot">•</span> <b>"identifier"</b>
3072   <a href="#rule_13"> 13</a>     | <span class="dot">•</span> <b>"number"</b>
3074     "incr"        <a href="#state_7">shift, and go to state 7</a>
3075     "identifier"  <a href="#state_8">shift, and go to state 8</a>
3076     "number"      <a href="#state_9">shift, and go to state 9</a>
3077     "("           <a href="#state_10">shift, and go to state 10</a>
3079     exp  <a href="#state_27">go to state 27</a>
3080 </p>
3082 <h3><a name="state_27" id="state_27"></a>State 27</h3>
3084 <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>
3086     $default  <a href="#rule_10">reduce using rule 10</a> (exp)
3087 </p>
3089 <div id="footer"><hr />This document was generated using
3090       <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
3091       GNU Bison ]AT_PACKAGE_VERSION[</a>
3092       XML Automaton Report.<br />
3093       Verbatim copying and distribution of this entire page is
3094       permitted in any medium, provided this notice is preserved.</div></body>
3095 </html>
3099 AT_BISON_OPTION_POPDEFS
3100 AT_CLEANUP
3103 ## ------------------------ ##
3104 ## Reports with conflicts.  ##
3105 ## ------------------------ ##
3107 AT_SETUP([Reports with conflicts])
3109 AT_KEYWORDS([cex report])
3111 # We need UTF-8 support for correct screen-width computation of UTF-8
3112 # characters.  Skip the test if not available.
3113 locale=`locale -a | $EGREP '^en_US\.(UTF-8|utf8)$' | sed 1q`
3114 AT_SKIP_IF([[test x = x"$locale"]])
3116 AT_SKIP_IF([[test x"$XSLTPROC" = x]])
3118 AT_BISON_OPTION_PUSHDEFS
3119 AT_DATA([input.y],
3120 [[%left "+"
3123 : exp "⊕" exp
3124 | exp "+" exp
3125 | exp "+" exp
3126 | "number"
3127 | "Ñùṃéℝô"
3130 AT_CHECK([LC_ALL="$locale" bison -fno-caret -o input.cc -rall -Wcex --graph=input.gv --html --xml input.y], [], [],
3131 [[input.y: warning: 3 shift/reduce conflicts [-Wconflicts-sr]
3132 input.y: warning: 3 reduce/reduce conflicts [-Wconflicts-rr]
3133 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3134   Example: exp "+" exp • "⊕" exp
3135   Shift derivation
3136     exp
3137     ↳ 2: exp "+" exp
3138                  ↳ 1: exp • "⊕" exp
3139   Reduce derivation
3140     exp
3141     ↳ 1: exp                "⊕" exp
3142          ↳ 2: exp "+" exp •
3143 input.y: warning: reduce/reduce conflict on tokens $end, "+", "⊕" [-Wcounterexamples]
3144   Example: exp "+" exp •
3145   First reduce derivation
3146     exp
3147     ↳ 2: exp "+" exp •
3148   Second reduce derivation
3149     exp
3150     ↳ 3: exp "+" exp •
3151 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3152   Example: exp "+" exp • "⊕" exp
3153   Shift derivation
3154     exp
3155     ↳ 2: exp "+" exp
3156                  ↳ 1: exp • "⊕" exp
3157   Reduce derivation
3158     exp
3159     ↳ 1: exp                "⊕" exp
3160          ↳ 3: exp "+" exp •
3161 input.y: warning: shift/reduce conflict on token "⊕" [-Wcounterexamples]
3162   Example: exp "⊕" exp • "⊕" exp
3163   Shift derivation
3164     exp
3165     ↳ 1: exp "⊕" exp
3166                  ↳ 1: exp • "⊕" exp
3167   Reduce derivation
3168     exp
3169     ↳ 1: exp                "⊕" exp
3170          ↳ 1: exp "⊕" exp •
3171 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3172   Example: exp "⊕" exp • "+" exp
3173   Shift derivation
3174     exp
3175     ↳ 1: exp "⊕" exp
3176                  ↳ 2: exp • "+" exp
3177   Reduce derivation
3178     exp
3179     ↳ 2: exp                "+" exp
3180          ↳ 1: exp "⊕" exp •
3181 input.y: warning: shift/reduce conflict on token "+" [-Wcounterexamples]
3182   Example: exp "⊕" exp • "+" exp
3183   Shift derivation
3184     exp
3185     ↳ 1: exp "⊕" exp
3186                  ↳ 3: exp • "+" exp
3187   Reduce derivation
3188     exp
3189     ↳ 2: exp                "+" exp
3190          ↳ 1: exp "⊕" exp •
3191 input.y:6.3-13: warning: rule useless in parser due to conflicts [-Wother]
3194 # Check the contents of the report.
3195 # FIXME: Avoid trailing white spaces.
3196 AT_CHECK([sed -e 's/ *$//' input.output], [],
3197 [[Rules useless in parser due to conflicts
3199     3 exp: exp "+" exp
3202 State 7 conflicts: 1 shift/reduce, 3 reduce/reduce
3203 State 8 conflicts: 2 shift/reduce
3206 Grammar
3208     0 $accept: exp $end
3210     1 exp: exp "⊕" exp
3211     2    | exp "+" exp
3212     3    | exp "+" exp
3213     4    | "number"
3214     5    | "Ñùṃéℝô"
3217 Terminals, with rules where they appear
3219     $end (0) 0
3220     error (256)
3221     "+" (258) 2 3
3222     "⊕" (259) 1
3223     "number" (260) 4
3224     "Ñùṃéℝô" (261) 5
3227 Nonterminals, with rules where they appear
3229     $accept (7)
3230         on left: 0
3231     exp (8)
3232         on left: 1 2 3 4 5
3233         on right: 0 1 2 3
3236 State 0
3238     0 $accept: • exp $end
3239     1 exp: • exp "⊕" exp
3240     2    | • exp "+" exp
3241     3    | • exp "+" exp
3242     4    | • "number"
3243     5    | • "Ñùṃéℝô"
3245     "number"  shift, and go to state 1
3246     "Ñùṃéℝô"  shift, and go to state 2
3248     exp  go to state 3
3251 State 1
3253     4 exp: "number" •
3255     $default  reduce using rule 4 (exp)
3258 State 2
3260     5 exp: "Ñùṃéℝô" •
3262     $default  reduce using rule 5 (exp)
3265 State 3
3267     0 $accept: exp • $end
3268     1 exp: exp • "⊕" exp
3269     2    | exp • "+" exp
3270     3    | exp • "+" exp
3272     $end  shift, and go to state 4
3273     "+"   shift, and go to state 5
3274     "⊕"   shift, and go to state 6
3277 State 4
3279     0 $accept: exp $end •
3281     $default  accept
3284 State 5
3286     1 exp: • exp "⊕" exp
3287     2    | • exp "+" exp
3288     2    | exp "+" • exp
3289     3    | • exp "+" exp
3290     3    | exp "+" • exp
3291     4    | • "number"
3292     5    | • "Ñùṃéℝô"
3294     "number"  shift, and go to state 1
3295     "Ñùṃéℝô"  shift, and go to state 2
3297     exp  go to state 7
3300 State 6
3302     1 exp: • exp "⊕" exp
3303     1    | exp "⊕" • exp
3304     2    | • exp "+" exp
3305     3    | • exp "+" exp
3306     4    | • "number"
3307     5    | • "Ñùṃéℝô"
3309     "number"  shift, and go to state 1
3310     "Ñùṃéℝô"  shift, and go to state 2
3312     exp  go to state 8
3315 State 7
3317     1 exp: exp • "⊕" exp
3318     2    | exp • "+" exp
3319     2    | exp "+" exp •  [$end, "+", "⊕"]
3320     3    | exp • "+" exp
3321     3    | exp "+" exp •  [$end, "+", "⊕"]
3323     "⊕"  shift, and go to state 6
3325     $end      reduce using rule 2 (exp)
3326     $end      [reduce using rule 3 (exp)]
3327     "+"       reduce using rule 2 (exp)
3328     "+"       [reduce using rule 3 (exp)]
3329     "⊕"       [reduce using rule 2 (exp)]
3330     "⊕"       [reduce using rule 3 (exp)]
3331     $default  reduce using rule 2 (exp)
3333     Conflict between rule 2 and token "+" resolved as reduce (%left "+").
3335     shift/reduce conflict on token "⊕":
3336         2 exp: exp "+" exp •
3337         1 exp: exp • "⊕" exp
3338       Example: exp "+" exp • "⊕" exp
3339       Shift derivation
3340         exp
3341         ↳ 2: exp "+" exp
3342                      ↳ 1: exp • "⊕" exp
3343       Reduce derivation
3344         exp
3345         ↳ 1: exp                "⊕" exp
3346              ↳ 2: exp "+" exp •
3348     reduce/reduce conflict on tokens $end, "+", "⊕":
3349         2 exp: exp "+" exp •
3350         3 exp: exp "+" exp •
3351       Example: exp "+" exp •
3352       First reduce derivation
3353         exp
3354         ↳ 2: exp "+" exp •
3355       Second reduce derivation
3356         exp
3357         ↳ 3: exp "+" exp •
3359     shift/reduce conflict on token "⊕":
3360         3 exp: exp "+" exp •
3361         1 exp: exp • "⊕" exp
3362       Example: exp "+" exp • "⊕" exp
3363       Shift derivation
3364         exp
3365         ↳ 2: exp "+" exp
3366                      ↳ 1: exp • "⊕" exp
3367       Reduce derivation
3368         exp
3369         ↳ 1: exp                "⊕" exp
3370              ↳ 3: exp "+" exp •
3374 State 8
3376     1 exp: exp • "⊕" exp
3377     1    | exp "⊕" exp •  [$end, "+", "⊕"]
3378     2    | exp • "+" exp
3379     3    | exp • "+" exp
3381     "+"  shift, and go to state 5
3382     "⊕"  shift, and go to state 6
3384     "+"       [reduce using rule 1 (exp)]
3385     "⊕"       [reduce using rule 1 (exp)]
3386     $default  reduce using rule 1 (exp)
3388     shift/reduce conflict on token "⊕":
3389         1 exp: exp "⊕" exp •
3390         1 exp: exp • "⊕" exp
3391       Example: exp "⊕" exp • "⊕" exp
3392       Shift derivation
3393         exp
3394         ↳ 1: exp "⊕" exp
3395                      ↳ 1: exp • "⊕" exp
3396       Reduce derivation
3397         exp
3398         ↳ 1: exp                "⊕" exp
3399              ↳ 1: exp "⊕" exp •
3401     shift/reduce conflict on token "+":
3402         1 exp: exp "⊕" exp •
3403         2 exp: exp • "+" exp
3404       Example: exp "⊕" exp • "+" exp
3405       Shift derivation
3406         exp
3407         ↳ 1: exp "⊕" exp
3408                      ↳ 2: exp • "+" exp
3409       Reduce derivation
3410         exp
3411         ↳ 2: exp                "+" exp
3412              ↳ 1: exp "⊕" exp •
3414     shift/reduce conflict on token "+":
3415         1 exp: exp "⊕" exp •
3416         3 exp: exp • "+" exp
3417       Example: exp "⊕" exp • "+" exp
3418       Shift derivation
3419         exp
3420         ↳ 1: exp "⊕" exp
3421                      ↳ 3: exp • "+" exp
3422       Reduce derivation
3423         exp
3424         ↳ 2: exp                "+" exp
3425              ↳ 1: exp "⊕" exp •
3432 AT_CHECK([cat input.gv], [],
3433 [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
3434 // Report bugs to <bug-bison@gnu.org>.
3435 // Home page: <https://www.gnu.org/software/bison/>.
3437 digraph "input.y"
3439   node [fontname = courier, shape = box, colorscheme = paired6]
3440   edge [fontname = courier]
3442   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"]
3443   0 -> 1 [style=solid label="\"number\""]
3444   0 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3445   0 -> 3 [style=dashed label="exp"]
3446   1 [label="State 1\n\l  4 exp: \"number\" •\l"]
3447   1 -> "1R4" [style=solid]
3448  "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
3449   2 [label="State 2\n\l  5 exp: \"Ñùṃéℝô\" •\l"]
3450   2 -> "2R5" [style=solid]
3451  "2R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
3452   3 [label="State 3\n\l  0 $accept: exp • $end\l  1 exp: exp • \"⊕\" exp\l  2    | exp • \"+\" exp\l  3    | exp • \"+\" exp\l"]
3453   3 -> 4 [style=solid label="$end"]
3454   3 -> 5 [style=solid label="\"+\""]
3455   3 -> 6 [style=solid label="\"⊕\""]
3456   4 [label="State 4\n\l  0 $accept: exp $end •\l"]
3457   4 -> "4R0" [style=solid]
3458  "4R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
3459   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"]
3460   5 -> 1 [style=solid label="\"number\""]
3461   5 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3462   5 -> 7 [style=dashed label="exp"]
3463   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"]
3464   6 -> 1 [style=solid label="\"number\""]
3465   6 -> 2 [style=solid label="\"Ñùṃéℝô\""]
3466   6 -> 8 [style=dashed label="exp"]
3467   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"]
3468   7 -> 6 [style=solid label="\"⊕\""]
3469   7 -> "7R2d" [label="[\"⊕\"]", style=solid]
3470  "7R2d" [label="R2", fillcolor=5, shape=diamond, style=filled]
3471   7 -> "7R2" [style=solid]
3472  "7R2" [label="R2", fillcolor=3, shape=diamond, style=filled]
3473   7 -> "7R3d" [label="[$end, \"+\", \"⊕\"]", style=solid]
3474  "7R3d" [label="R3", fillcolor=5, shape=diamond, style=filled]
3475   8 [label="State 8\n\l  1 exp: exp • \"⊕\" exp\l  1    | exp \"⊕\" exp •  [$end, \"+\", \"⊕\"]\l  2    | exp • \"+\" exp\l  3    | exp • \"+\" exp\l"]
3476   8 -> 5 [style=solid label="\"+\""]
3477   8 -> 6 [style=solid label="\"⊕\""]
3478   8 -> "8R1d" [label="[\"+\", \"⊕\"]", style=solid]
3479  "8R1d" [label="R1", fillcolor=5, shape=diamond, style=filled]
3480   8 -> "8R1" [style=solid]
3481  "8R1" [label="R1", fillcolor=3, shape=diamond, style=filled]
3486 AT_CHECK([[cat input.xml]], [],
3487 [[<?xml version="1.0"?>
3489 <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
3491   <filename>input.y</filename>
3493   <grammar>
3494     <rules>
3495       <rule number="0" usefulness="useful">
3496         <lhs>$accept</lhs>
3497         <rhs>
3498           <symbol>exp</symbol>
3499           <symbol>$end</symbol>
3500         </rhs>
3501       </rule>
3502       <rule number="1" usefulness="useful">
3503         <lhs>exp</lhs>
3504         <rhs>
3505           <symbol>exp</symbol>
3506           <symbol>&quot;⊕&quot;</symbol>
3507           <symbol>exp</symbol>
3508         </rhs>
3509       </rule>
3510       <rule number="2" usefulness="useful">
3511         <lhs>exp</lhs>
3512         <rhs>
3513           <symbol>exp</symbol>
3514           <symbol>&quot;+&quot;</symbol>
3515           <symbol>exp</symbol>
3516         </rhs>
3517       </rule>
3518       <rule number="3" usefulness="useless-in-parser">
3519         <lhs>exp</lhs>
3520         <rhs>
3521           <symbol>exp</symbol>
3522           <symbol>&quot;+&quot;</symbol>
3523           <symbol>exp</symbol>
3524         </rhs>
3525       </rule>
3526       <rule number="4" usefulness="useful">
3527         <lhs>exp</lhs>
3528         <rhs>
3529           <symbol>&quot;number&quot;</symbol>
3530         </rhs>
3531       </rule>
3532       <rule number="5" usefulness="useful">
3533         <lhs>exp</lhs>
3534         <rhs>
3535           <symbol>&quot;Ñùṃéℝô&quot;</symbol>
3536         </rhs>
3537       </rule>
3538     </rules>
3539     <terminals>
3540       <terminal symbol-number="0" token-number="0" name="$end" type="" usefulness="useful"/>
3541       <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
3542       <terminal symbol-number="3" token-number="258" name="&quot;+&quot;" type="" usefulness="useful" prec="1" assoc="left"/>
3543       <terminal symbol-number="4" token-number="259" name="&quot;⊕&quot;" type="" usefulness="useful"/>
3544       <terminal symbol-number="5" token-number="260" name="&quot;number&quot;" type="" usefulness="useful"/>
3545       <terminal symbol-number="6" token-number="261" name="&quot;Ñùṃéℝô&quot;" type="" usefulness="useful"/>
3546     </terminals>
3547     <nonterminals>
3548       <nonterminal symbol-number="7" name="$accept" type="" usefulness="useful"/>
3549       <nonterminal symbol-number="8" name="exp" type="" usefulness="useful"/>
3550     </nonterminals>
3551   </grammar>
3553   <automaton>
3555     <state number="0">
3556       <itemset>
3557         <item rule-number="0" dot="0"/>
3558         <item rule-number="1" dot="0"/>
3559         <item rule-number="2" dot="0"/>
3560         <item rule-number="3" dot="0"/>
3561         <item rule-number="4" dot="0"/>
3562         <item rule-number="5" dot="0"/>
3563       </itemset>
3564       <actions>
3565         <transitions>
3566           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3567           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3568           <transition type="goto" symbol="exp" state="3"/>
3569         </transitions>
3570         <errors/>
3571         <reductions/>
3572       </actions>
3573       <solved-conflicts/>
3574     </state>
3576     <state number="1">
3577       <itemset>
3578         <item rule-number="4" dot="1"/>
3579       </itemset>
3580       <actions>
3581         <transitions/>
3582         <errors/>
3583         <reductions>
3584           <reduction symbol="$default" rule="4" enabled="true"/>
3585         </reductions>
3586       </actions>
3587       <solved-conflicts/>
3588     </state>
3590     <state number="2">
3591       <itemset>
3592         <item rule-number="5" dot="1"/>
3593       </itemset>
3594       <actions>
3595         <transitions/>
3596         <errors/>
3597         <reductions>
3598           <reduction symbol="$default" rule="5" enabled="true"/>
3599         </reductions>
3600       </actions>
3601       <solved-conflicts/>
3602     </state>
3604     <state number="3">
3605       <itemset>
3606         <item rule-number="0" dot="1"/>
3607         <item rule-number="1" dot="1"/>
3608         <item rule-number="2" dot="1"/>
3609         <item rule-number="3" dot="1"/>
3610       </itemset>
3611       <actions>
3612         <transitions>
3613           <transition type="shift" symbol="$end" state="4"/>
3614           <transition type="shift" symbol="&quot;+&quot;" state="5"/>
3615           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3616         </transitions>
3617         <errors/>
3618         <reductions/>
3619       </actions>
3620       <solved-conflicts/>
3621     </state>
3623     <state number="4">
3624       <itemset>
3625         <item rule-number="0" dot="2"/>
3626       </itemset>
3627       <actions>
3628         <transitions/>
3629         <errors/>
3630         <reductions>
3631           <reduction symbol="$default" rule="accept" enabled="true"/>
3632         </reductions>
3633       </actions>
3634       <solved-conflicts/>
3635     </state>
3637     <state number="5">
3638       <itemset>
3639         <item rule-number="1" dot="0"/>
3640         <item rule-number="2" dot="0"/>
3641         <item rule-number="2" dot="2"/>
3642         <item rule-number="3" dot="0"/>
3643         <item rule-number="3" dot="2"/>
3644         <item rule-number="4" dot="0"/>
3645         <item rule-number="5" dot="0"/>
3646       </itemset>
3647       <actions>
3648         <transitions>
3649           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3650           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3651           <transition type="goto" symbol="exp" state="7"/>
3652         </transitions>
3653         <errors/>
3654         <reductions/>
3655       </actions>
3656       <solved-conflicts/>
3657     </state>
3659     <state number="6">
3660       <itemset>
3661         <item rule-number="1" dot="0"/>
3662         <item rule-number="1" dot="2"/>
3663         <item rule-number="2" dot="0"/>
3664         <item rule-number="3" dot="0"/>
3665         <item rule-number="4" dot="0"/>
3666         <item rule-number="5" dot="0"/>
3667       </itemset>
3668       <actions>
3669         <transitions>
3670           <transition type="shift" symbol="&quot;number&quot;" state="1"/>
3671           <transition type="shift" symbol="&quot;Ñùṃéℝô&quot;" state="2"/>
3672           <transition type="goto" symbol="exp" state="8"/>
3673         </transitions>
3674         <errors/>
3675         <reductions/>
3676       </actions>
3677       <solved-conflicts/>
3678     </state>
3680     <state number="7">
3681       <itemset>
3682         <item rule-number="1" dot="1"/>
3683         <item rule-number="2" dot="1"/>
3684         <item rule-number="2" dot="3">
3685           <lookaheads>
3686             <symbol>$end</symbol>
3687             <symbol>&quot;+&quot;</symbol>
3688             <symbol>&quot;⊕&quot;</symbol>
3689           </lookaheads>
3690         </item>
3691         <item rule-number="3" dot="1"/>
3692         <item rule-number="3" dot="3">
3693           <lookaheads>
3694             <symbol>$end</symbol>
3695             <symbol>&quot;+&quot;</symbol>
3696             <symbol>&quot;⊕&quot;</symbol>
3697           </lookaheads>
3698         </item>
3699       </itemset>
3700       <actions>
3701         <transitions>
3702           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3703         </transitions>
3704         <errors/>
3705         <reductions>
3706           <reduction symbol="$end" rule="2" enabled="true"/>
3707           <reduction symbol="$end" rule="3" enabled="false"/>
3708           <reduction symbol="&quot;+&quot;" rule="2" enabled="true"/>
3709           <reduction symbol="&quot;+&quot;" rule="3" enabled="false"/>
3710           <reduction symbol="&quot;⊕&quot;" rule="2" enabled="false"/>
3711           <reduction symbol="&quot;⊕&quot;" rule="3" enabled="false"/>
3712           <reduction symbol="$default" rule="2" enabled="true"/>
3713         </reductions>
3714       </actions>
3715       <solved-conflicts>
3716         <resolution rule="2" symbol="&quot;+&quot;" type="reduce">%left &quot;+&quot;</resolution>
3717       </solved-conflicts>
3718     </state>
3720     <state number="8">
3721       <itemset>
3722         <item rule-number="1" dot="1"/>
3723         <item rule-number="1" dot="3">
3724           <lookaheads>
3725             <symbol>$end</symbol>
3726             <symbol>&quot;+&quot;</symbol>
3727             <symbol>&quot;⊕&quot;</symbol>
3728           </lookaheads>
3729         </item>
3730         <item rule-number="2" dot="1"/>
3731         <item rule-number="3" dot="1"/>
3732       </itemset>
3733       <actions>
3734         <transitions>
3735           <transition type="shift" symbol="&quot;+&quot;" state="5"/>
3736           <transition type="shift" symbol="&quot;⊕&quot;" state="6"/>
3737         </transitions>
3738         <errors/>
3739         <reductions>
3740           <reduction symbol="&quot;+&quot;" rule="1" enabled="false"/>
3741           <reduction symbol="&quot;⊕&quot;" rule="1" enabled="false"/>
3742           <reduction symbol="$default" rule="1" enabled="true"/>
3743         </reductions>
3744       </actions>
3745       <solved-conflicts/>
3746     </state>
3747   </automaton>
3748 </bison-xml-report>
3752 AT_CHECK([[cat input.html]], [],
3753 [[<?xml version="1.0" encoding="UTF-8"?>
3754 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3755 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
3756   <head>
3757     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
3758     <title>input.y - GNU Bison XML Automaton Report</title>
3759     <style type="text/css">
3760       body {
3761         font-family: "Nimbus Sans L", Arial, sans-serif;
3762         font-size: 9pt;
3763       }
3764       a:link {
3765         color: #1f00ff;
3766         text-decoration: none;
3767       }
3768       a:visited {
3769         color: #1f00ff;
3770         text-decoration: none;
3771       }
3772       a:hover {
3773         color: red;
3774       }
3775       #menu a {
3776         text-decoration: underline;
3777       }
3778       .i {
3779         font-style: italic;
3780       }
3781       .pre {
3782         font-family: monospace;
3783         white-space: pre;
3784       }
3785       ol.decimal {
3786         list-style-type: decimal;
3787       }
3788       ol.lower-alpha {
3789         list-style-type: lower-alpha;
3790       }
3791       .dot {
3792         color: #cc0000;
3793       }
3794       #footer {
3795         margin-top: 3.5em;
3796         font-size: 7pt;
3797       }
3798       </style>
3799   </head>
3800   <body><h1>GNU Bison XML Automaton Report</h1><p>
3801     input grammar: <span class="i">input.y</span></p>
3803 <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>
3805 <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
3807 <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
3808 <h2><a name="rules_useless_in_parser" id="rules_useless_in_parser"></a> Rules useless in parser due to conflicts</h2>
3809 <p class="pre">
3810   <a href="#rule_3">  3</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3811 </p>
3813 <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
3815 <p class="pre"><a href="#state_7">State 7</a> conflicts: 1 shift/reduce, 3 reduce/reduce
3816 <a href="#state_8">State 8</a> conflicts: 2 shift/reduce
3819 </p><h2><a name="grammar" id="grammar"></a> Grammar</h2>
3820 <p class="pre">
3821   <a name="rule_0" id="rule_0">  0</a> <span class="i">$accept</span> → <span class="i">exp</span> <b>$end</b>
3823   <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>
3824   <a name="rule_2" id="rule_2">  2</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3825   <a name="rule_3" id="rule_3">  3</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3826   <a name="rule_4" id="rule_4">  4</a>     | <b>"number"</b>
3827   <a name="rule_5" id="rule_5">  5</a>     | <b>"Ñùṃéℝô"</b>
3828 </p>
3830 <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
3832 <ul>
3833   <li><b>$end</b> (0) <a href="#rule_0">0</a></li>
3834   <li><b>error</b> (256)</li>
3835   <li><b>"+"</b> (258) <a href="#rule_2">2</a> <a href="#rule_3">3</a></li>
3836   <li><b>"⊕"</b> (259) <a href="#rule_1">1</a></li>
3837   <li><b>"number"</b> (260) <a href="#rule_4">4</a></li>
3838   <li><b>"Ñùṃéℝô"</b> (261) <a href="#rule_5">5</a></li>
3839 </ul>
3841 <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
3843 <ul>
3844   <li><b>$accept</b> (7)
3845     <ul>
3846       <li>on left: <a href="#rule_0">0</a></li>
3847     </ul>
3848   </li>
3849   <li><b>exp</b> (8)
3850     <ul>
3851       <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>
3852       <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>
3853     </ul>
3854   </li>
3855 </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
3857 <h3><a name="state_0" id="state_0"></a>State 0</h3>
3859 <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>
3860   <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>
3861   <a href="#rule_2">  2</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3862   <a href="#rule_3">  3</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3863   <a href="#rule_4">  4</a>     | <span class="dot">•</span> <b>"number"</b>
3864   <a href="#rule_5">  5</a>     | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3866     "number"  <a href="#state_1">shift, and go to state 1</a>
3867     "Ñùṃéℝô"  <a href="#state_2">shift, and go to state 2</a>
3869     exp  <a href="#state_3">go to state 3</a>
3870 </p>
3872 <h3><a name="state_1" id="state_1"></a>State 1</h3>
3874 <p class="pre">  <a href="#rule_4">  4</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
3876     $default  <a href="#rule_4">reduce using rule 4</a> (exp)
3877 </p>
3879 <h3><a name="state_2" id="state_2"></a>State 2</h3>
3881 <p class="pre">  <a href="#rule_5">  5</a> <span class="i">exp</span> → <b>"Ñùṃéℝô"</b> <span class="dot">•</span>
3883     $default  <a href="#rule_5">reduce using rule 5</a> (exp)
3884 </p>
3886 <h3><a name="state_3" id="state_3"></a>State 3</h3>
3888 <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>
3889   <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>
3890   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3891   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3893     $end  <a href="#state_4">shift, and go to state 4</a>
3894     "+"   <a href="#state_5">shift, and go to state 5</a>
3895     "⊕"   <a href="#state_6">shift, and go to state 6</a>
3896 </p>
3898 <h3><a name="state_4" id="state_4"></a>State 4</h3>
3900 <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>
3902     $default  accept
3903 </p>
3905 <h3><a name="state_5" id="state_5"></a>State 5</h3>
3907 <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>
3908   <a href="#rule_2">  2</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3909   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <b>"+"</b> <span class="dot">•</span> <span class="i">exp</span>
3910   <a href="#rule_3">  3</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3911   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <b>"+"</b> <span class="dot">•</span> <span class="i">exp</span>
3912   <a href="#rule_4">  4</a>     | <span class="dot">•</span> <b>"number"</b>
3913   <a href="#rule_5">  5</a>     | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3915     "number"  <a href="#state_1">shift, and go to state 1</a>
3916     "Ñùṃéℝô"  <a href="#state_2">shift, and go to state 2</a>
3918     exp  <a href="#state_7">go to state 7</a>
3919 </p>
3921 <h3><a name="state_6" id="state_6"></a>State 6</h3>
3923 <p class="pre">  <a href="#rule_1">  1</a> <span class="i">exp</span> → <span class="dot">•</span> <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
3924   <a href="#rule_1">  1</a>     | <span class="i">exp</span> <b>"⊕"</b> <span class="dot">•</span> <span class="i">exp</span>
3925   <a href="#rule_2">  2</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3926   <a href="#rule_3">  3</a>     | <span class="dot">•</span> <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
3927   <a href="#rule_4">  4</a>     | <span class="dot">•</span> <b>"number"</b>
3928   <a href="#rule_5">  5</a>     | <span class="dot">•</span> <b>"Ñùṃéℝô"</b>
3930     "number"  <a href="#state_1">shift, and go to state 1</a>
3931     "Ñùṃéℝô"  <a href="#state_2">shift, and go to state 2</a>
3933     exp  <a href="#state_8">go to state 8</a>
3934 </p>
3936 <h3><a name="state_7" id="state_7"></a>State 7</h3>
3938 <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>
3939   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3940   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span> <span class="dot">•</span>  [$end, "+", "⊕"]
3941   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3942   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span> <span class="dot">•</span>  [$end, "+", "⊕"]
3944     "⊕"  <a href="#state_6">shift, and go to state 6</a>
3946     $end      <a href="#rule_2">reduce using rule 2</a> (exp)
3947     $end      [<a href="#rule_3">reduce using rule 3</a> (exp)]
3948     "+"       <a href="#rule_2">reduce using rule 2</a> (exp)
3949     "+"       [<a href="#rule_3">reduce using rule 3</a> (exp)]
3950     "⊕"       [<a href="#rule_2">reduce using rule 2</a> (exp)]
3951     "⊕"       [<a href="#rule_3">reduce using rule 3</a> (exp)]
3952     $default  <a href="#rule_2">reduce using rule 2</a> (exp)
3954     Conflict between <a href="#rule_2">rule 2</a> and token "+" resolved as reduce (%left "+").
3955 </p>
3957 <h3><a name="state_8" id="state_8"></a>State 8</h3>
3959 <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>
3960   <a href="#rule_1">  1</a>     | <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span> <span class="dot">•</span>  [$end, "+", "⊕"]
3961   <a href="#rule_2">  2</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3962   <a href="#rule_3">  3</a>     | <span class="i">exp</span> <span class="dot">•</span> <b>"+"</b> <span class="i">exp</span>
3964     "+"  <a href="#state_5">shift, and go to state 5</a>
3965     "⊕"  <a href="#state_6">shift, and go to state 6</a>
3967     "+"       [<a href="#rule_1">reduce using rule 1</a> (exp)]
3968     "⊕"       [<a href="#rule_1">reduce using rule 1</a> (exp)]
3969     $default  <a href="#rule_1">reduce using rule 1</a> (exp)
3970 </p>
3972 <div id="footer"><hr />This document was generated using
3973       <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
3974       GNU Bison ]AT_PACKAGE_VERSION[</a>
3975       XML Automaton Report.<br />
3976       Verbatim copying and distribution of this entire page is
3977       permitted in any medium, provided this notice is preserved.</div></body>
3978 </html>
3981 AT_BISON_OPTION_POPDEFS
3982 AT_CLEANUP