summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAkim Demaille <akim.demaille@gmail.com>2021-09-02 07:24:01 +0200
committerAkim Demaille <akim.demaille@gmail.com>2021-09-02 07:27:42 +0200
commitda0f993fb950df1030725ce51ac766dd7425ff80 (patch)
tree7fbda3963ac3f97bb3ba46f2024ce655ac304ab6 /tests
parent075a87905210c50058f38debf045f665720ece93 (diff)
downloadbison-da0f993fb950df1030725ce51ac766dd7425ff80.tar.gz
tests: disable "Multistart reports"
For some reason this test fails on Solaris/x86. But multistart is not part of 3.8, so we can postpone the debugging of this issue. Reported by Dagobert Michelsen. <https://lists.gnu.org/r/bug-bison/2021-08/msg00027.html> * tests/report.at (Multistart reports): Comment out.
Diffstat (limited to 'tests')
-rw-r--r--tests/report.at3193
1 files changed, 1598 insertions, 1595 deletions
diff --git a/tests/report.at b/tests/report.at
index 77b8af4e..83c418f6 100644
--- a/tests/report.at
+++ b/tests/report.at
@@ -1516,1601 +1516,1604 @@ AT_BISON_OPTION_POPDEFS
AT_CLEANUP
-## -------------------- ##
-## Multistart reports. ##
-## -------------------- ##
-
-AT_SETUP([Multistart reports])
-
-AT_KEYWORDS([multistart report])
-
-AT_BISON_OPTION_PUSHDEFS
-AT_DATA([input.yy],
-[[%token
- END 0 "end of file"
- ASSIGN ":="
- INCR "incr"
-;
-
-%token <std::string> IDENTIFIER "identifier"
-%type <std::string> id
-%token <int> NUMBER "number"
-%type <int> exp
-
-%%
-%start unit assignments exp;
-unit: assignments exp { driver.result = $2; };
-
-assignments:
- %empty {}
-| assignments assignment {};
-
-assignment:
- id ":=" exp { driver.variables[$id] = $exp; };
-
-id:
- "identifier";
-
-exp:
- "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp { $$ = $2 + $3 + $4 + $5; }
-| "(" exp ")" { std::swap ($$, $2); }
-| "identifier" { $$ = driver.variables[$1]; }
-| "number" { std::swap ($$, $1); };
-]])
-
-AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --xml input.yy])
-
-# Check the contents of the report.
-AT_CHECK([cat input.output], [],
-[[Grammar
-
- 0 $accept: YY_PARSE_unit unit "end of file"
- 1 | YY_PARSE_assignments assignments "end of file"
- 2 | YY_PARSE_exp exp "end of file"
-
- 3 unit: assignments exp
-
- 4 assignments: %empty
- 5 | assignments assignment
-
- 6 assignment: id ":=" exp
-
- 7 id: "identifier"
-
- 8 @1: %empty
-
- 9 @2: %empty
-
- 10 exp: "incr" exp @1 @2 exp
- 11 | "(" exp ")"
- 12 | "identifier"
- 13 | "number"
-
-
-Terminals, with rules where they appear
-
- "end of file" (0) 0 1 2
- error (256)
- ":=" (258) 6
- "incr" (259) 10
- "identifier" <std::string> (260) 7 12
- "number" <int> (261) 13
- YY_PARSE_unit (262) 0
- YY_PARSE_assignments (263) 1
- YY_PARSE_exp (264) 2
- "(" (265) 11
- ")" (266) 11
-
-
-Nonterminals, with rules where they appear
-
- $accept (12)
- on left: 0 1 2
- unit (13)
- on left: 3
- on right: 0
- assignments (14)
- on left: 4 5
- on right: 1 3 5
- assignment (15)
- on left: 6
- on right: 5
- id <std::string> (16)
- on left: 7
- on right: 6
- exp <int> (17)
- on left: 10 11 12 13
- on right: 2 3 6 10 11
- @1 <int> (18)
- on left: 8
- on right: 10
- @2 <int> (19)
- on left: 9
- on right: 10
-
-
-State 0
-
- 0 $accept: . YY_PARSE_unit unit "end of file"
- 1 | . YY_PARSE_assignments assignments "end of file"
- 2 | . YY_PARSE_exp exp "end of file"
-
- YY_PARSE_unit shift, and go to state 1
- YY_PARSE_assignments shift, and go to state 2
- YY_PARSE_exp shift, and go to state 3
-
-
-State 1
-
- 0 $accept: YY_PARSE_unit . unit "end of file"
- 3 unit: . assignments exp
- 4 assignments: %empty .
- 5 | . assignments assignment
-
- $default reduce using rule 4 (assignments)
-
- unit go to state 4
- assignments go to state 5
-
-
-State 2
-
- 1 $accept: YY_PARSE_assignments . assignments "end of file"
- 4 assignments: %empty .
- 5 | . assignments assignment
-
- $default reduce using rule 4 (assignments)
-
- assignments go to state 6
-
-
-State 3
-
- 2 $accept: YY_PARSE_exp . exp "end of file"
- 10 exp: . "incr" exp @1 @2 exp
- 11 | . "(" exp ")"
- 12 | . "identifier"
- 13 | . "number"
-
- "incr" shift, and go to state 7
- "identifier" shift, and go to state 8
- "number" shift, and go to state 9
- "(" shift, and go to state 10
-
- exp go to state 11
-
-
-State 4
-
- 0 $accept: YY_PARSE_unit unit . "end of file"
-
- "end of file" shift, and go to state 12
-
-
-State 5
-
- 3 unit: assignments . exp
- 5 assignments: assignments . assignment
- 6 assignment: . id ":=" exp
- 7 id: . "identifier"
- 10 exp: . "incr" exp @1 @2 exp
- 11 | . "(" exp ")"
- 12 | . "identifier"
- 13 | . "number"
-
- "incr" shift, and go to state 7
- "identifier" shift, and go to state 13
- "number" shift, and go to state 9
- "(" shift, and go to state 10
-
- assignment go to state 14
- id go to state 15
- exp go to state 16
-
-
-State 6
-
- 1 $accept: YY_PARSE_assignments assignments . "end of file"
- 5 assignments: assignments . assignment
- 6 assignment: . id ":=" exp
- 7 id: . "identifier"
-
- "end of file" shift, and go to state 17
- "identifier" shift, and go to state 18
-
- assignment go to state 14
- id go to state 15
-
-
-State 7
-
- 10 exp: . "incr" exp @1 @2 exp
- 10 | "incr" . exp @1 @2 exp
- 11 | . "(" exp ")"
- 12 | . "identifier"
- 13 | . "number"
-
- "incr" shift, and go to state 7
- "identifier" shift, and go to state 8
- "number" shift, and go to state 9
- "(" shift, and go to state 10
-
- exp go to state 19
-
-
-State 8
-
- 12 exp: "identifier" .
-
- $default reduce using rule 12 (exp)
-
-
-State 9
-
- 13 exp: "number" .
-
- $default reduce using rule 13 (exp)
-
-
-State 10
-
- 10 exp: . "incr" exp @1 @2 exp
- 11 | . "(" exp ")"
- 11 | "(" . exp ")"
- 12 | . "identifier"
- 13 | . "number"
-
- "incr" shift, and go to state 7
- "identifier" shift, and go to state 8
- "number" shift, and go to state 9
- "(" shift, and go to state 10
-
- exp go to state 20
-
-
-State 11
-
- 2 $accept: YY_PARSE_exp exp . "end of file"
-
- "end of file" shift, and go to state 21
-
-
-State 12
-
- 0 $accept: YY_PARSE_unit unit "end of file" .
-
- $default accept
-
-
-State 13
-
- 7 id: "identifier" . [":="]
- 12 exp: "identifier" . ["end of file"]
-
- "end of file" reduce using rule 12 (exp)
- $default reduce using rule 7 (id)
-
-
-State 14
-
- 5 assignments: assignments assignment .
-
- $default reduce using rule 5 (assignments)
-
-
-State 15
-
- 6 assignment: id . ":=" exp
-
- ":=" shift, and go to state 22
-
-
-State 16
-
- 3 unit: assignments exp .
-
- $default reduce using rule 3 (unit)
-
-
-State 17
-
- 1 $accept: YY_PARSE_assignments assignments "end of file" .
-
- $default accept
-
-
-State 18
-
- 7 id: "identifier" .
-
- $default reduce using rule 7 (id)
-
-
-State 19
-
- 8 @1: %empty .
- 10 exp: "incr" exp . @1 @2 exp
-
- $default reduce using rule 8 (@1)
-
- @1 go to state 23
-
-
-State 20
-
- 11 exp: "(" exp . ")"
-
- ")" shift, and go to state 24
-
-
-State 21
-
- 2 $accept: YY_PARSE_exp exp "end of file" .
-
- $default accept
-
-
-State 22
-
- 6 assignment: id ":=" . exp
- 10 exp: . "incr" exp @1 @2 exp
- 11 | . "(" exp ")"
- 12 | . "identifier"
- 13 | . "number"
-
- "incr" shift, and go to state 7
- "identifier" shift, and go to state 8
- "number" shift, and go to state 9
- "(" shift, and go to state 10
-
- exp go to state 25
-
-
-State 23
-
- 9 @2: %empty .
- 10 exp: "incr" exp @1 . @2 exp
-
- $default reduce using rule 9 (@2)
-
- @2 go to state 26
-
-
-State 24
-
- 11 exp: "(" exp ")" .
-
- $default reduce using rule 11 (exp)
-
-
-State 25
-
- 6 assignment: id ":=" exp .
-
- $default reduce using rule 6 (assignment)
-
-
-State 26
-
- 10 exp: . "incr" exp @1 @2 exp
- 10 | "incr" exp @1 @2 . exp
- 11 | . "(" exp ")"
- 12 | . "identifier"
- 13 | . "number"
-
- "incr" shift, and go to state 7
- "identifier" shift, and go to state 8
- "number" shift, and go to state 9
- "(" shift, and go to state 10
-
- exp go to state 27
-
-
-State 27
-
- 10 exp: "incr" exp @1 @2 exp .
-
- $default reduce using rule 10 (exp)
-]])
-
-
-
-AT_CHECK([cat input.gv], [],
-[[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
-// Report bugs to <bug-bison@gnu.org>.
-// Home page: <https://www.gnu.org/software/bison/>.
-
-digraph "input.yy"
-{
- node [fontname = courier, shape = box, colorscheme = paired6]
- edge [fontname = courier]
-
- 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"]
- 0 -> 1 [style=solid label="YY_PARSE_unit"]
- 0 -> 2 [style=solid label="YY_PARSE_assignments"]
- 0 -> 3 [style=solid label="YY_PARSE_exp"]
- 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"]
- 1 -> 4 [style=dashed label="unit"]
- 1 -> 5 [style=dashed label="assignments"]
- 1 -> "1R4" [style=solid]
- "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
- 2 [label="State 2\n\l 1 $accept: YY_PARSE_assignments • assignments \"end of file\"\l 4 assignments: • %empty\l 5 | • assignments assignment\l"]
- 2 -> 6 [style=dashed label="assignments"]
- 2 -> "2R4" [style=solid]
- "2R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
- 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"]
- 3 -> 7 [style=solid label="\"incr\""]
- 3 -> 8 [style=solid label="\"identifier\""]
- 3 -> 9 [style=solid label="\"number\""]
- 3 -> 10 [style=solid label="\"(\""]
- 3 -> 11 [style=dashed label="exp"]
- 4 [label="State 4\n\l 0 $accept: YY_PARSE_unit unit • \"end of file\"\l"]
- 4 -> 12 [style=solid label="\"end of file\""]
- 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"]
- 5 -> 7 [style=solid label="\"incr\""]
- 5 -> 13 [style=solid label="\"identifier\""]
- 5 -> 9 [style=solid label="\"number\""]
- 5 -> 10 [style=solid label="\"(\""]
- 5 -> 14 [style=dashed label="assignment"]
- 5 -> 15 [style=dashed label="id"]
- 5 -> 16 [style=dashed label="exp"]
- 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"]
- 6 -> 17 [style=solid label="\"end of file\""]
- 6 -> 18 [style=solid label="\"identifier\""]
- 6 -> 14 [style=dashed label="assignment"]
- 6 -> 15 [style=dashed label="id"]
- 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"]
- 7 -> 7 [style=solid label="\"incr\""]
- 7 -> 8 [style=solid label="\"identifier\""]
- 7 -> 9 [style=solid label="\"number\""]
- 7 -> 10 [style=solid label="\"(\""]
- 7 -> 19 [style=dashed label="exp"]
- 8 [label="State 8\n\l 12 exp: \"identifier\" •\l"]
- 8 -> "8R12" [style=solid]
- "8R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
- 9 [label="State 9\n\l 13 exp: \"number\" •\l"]
- 9 -> "9R13" [style=solid]
- "9R13" [label="R13", fillcolor=3, shape=diamond, style=filled]
- 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"]
- 10 -> 7 [style=solid label="\"incr\""]
- 10 -> 8 [style=solid label="\"identifier\""]
- 10 -> 9 [style=solid label="\"number\""]
- 10 -> 10 [style=solid label="\"(\""]
- 10 -> 20 [style=dashed label="exp"]
- 11 [label="State 11\n\l 2 $accept: YY_PARSE_exp exp • \"end of file\"\l"]
- 11 -> 21 [style=solid label="\"end of file\""]
- 12 [label="State 12\n\l 0 $accept: YY_PARSE_unit unit \"end of file\" •\l"]
- 12 -> "12R0" [style=solid]
- "12R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
- 13 [label="State 13\n\l 7 id: \"identifier\" • [\":=\"]\l 12 exp: \"identifier\" • [\"end of file\"]\l"]
- 13 -> "13R7" [style=solid]
- "13R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
- 13 -> "13R12" [label="[\"end of file\"]", style=solid]
- "13R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
- 14 [label="State 14\n\l 5 assignments: assignments assignment •\l"]
- 14 -> "14R5" [style=solid]
- "14R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
- 15 [label="State 15\n\l 6 assignment: id • \":=\" exp\l"]
- 15 -> 22 [style=solid label="\":=\""]
- 16 [label="State 16\n\l 3 unit: assignments exp •\l"]
- 16 -> "16R3" [style=solid]
- "16R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
- 17 [label="State 17\n\l 1 $accept: YY_PARSE_assignments assignments \"end of file\" •\l"]
- 17 -> "17R1" [style=solid]
- "17R1" [label="Acc", fillcolor=1, shape=diamond, style=filled]
- 18 [label="State 18\n\l 7 id: \"identifier\" •\l"]
- 18 -> "18R7" [style=solid]
- "18R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
- 19 [label="State 19\n\l 8 @1: • %empty\l 10 exp: \"incr\" exp • @1 @2 exp\l"]
- 19 -> 23 [style=dashed label="@1"]
- 19 -> "19R8" [style=solid]
- "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
- 20 [label="State 20\n\l 11 exp: \"(\" exp • \")\"\l"]
- 20 -> 24 [style=solid label="\")\""]
- 21 [label="State 21\n\l 2 $accept: YY_PARSE_exp exp \"end of file\" •\l"]
- 21 -> "21R2" [style=solid]
- "21R2" [label="Acc", fillcolor=1, shape=diamond, style=filled]
- 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"]
- 22 -> 7 [style=solid label="\"incr\""]
- 22 -> 8 [style=solid label="\"identifier\""]
- 22 -> 9 [style=solid label="\"number\""]
- 22 -> 10 [style=solid label="\"(\""]
- 22 -> 25 [style=dashed label="exp"]
- 23 [label="State 23\n\l 9 @2: • %empty\l 10 exp: \"incr\" exp @1 • @2 exp\l"]
- 23 -> 26 [style=dashed label="@2"]
- 23 -> "23R9" [style=solid]
- "23R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
- 24 [label="State 24\n\l 11 exp: \"(\" exp \")\" •\l"]
- 24 -> "24R11" [style=solid]
- "24R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
- 25 [label="State 25\n\l 6 assignment: id \":=\" exp •\l"]
- 25 -> "25R6" [style=solid]
- "25R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
- 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"]
- 26 -> 7 [style=solid label="\"incr\""]
- 26 -> 8 [style=solid label="\"identifier\""]
- 26 -> 9 [style=solid label="\"number\""]
- 26 -> 10 [style=solid label="\"(\""]
- 26 -> 27 [style=dashed label="exp"]
- 27 [label="State 27\n\l 10 exp: \"incr\" exp @1 @2 exp •\l"]
- 27 -> "27R10" [style=solid]
- "27R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
-}
-]])
-
-
-AT_CHECK([[cat input.xml]], [],
-[[<?xml version="1.0"?>
-
-<bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
-
- <filename>input.yy</filename>
-
- <grammar>
- <rules>
- <rule number="0" usefulness="useful">
- <lhs>$accept</lhs>
- <rhs>
- <symbol>YY_PARSE_unit</symbol>
- <symbol>unit</symbol>
- <symbol>&quot;end of file&quot;</symbol>
- </rhs>
- </rule>
- <rule number="1" usefulness="useful">
- <lhs>$accept</lhs>
- <rhs>
- <symbol>YY_PARSE_assignments</symbol>
- <symbol>assignments</symbol>
- <symbol>&quot;end of file&quot;</symbol>
- </rhs>
- </rule>
- <rule number="2" usefulness="useful">
- <lhs>$accept</lhs>
- <rhs>
- <symbol>YY_PARSE_exp</symbol>
- <symbol>exp</symbol>
- <symbol>&quot;end of file&quot;</symbol>
- </rhs>
- </rule>
- <rule number="3" usefulness="useful">
- <lhs>unit</lhs>
- <rhs>
- <symbol>assignments</symbol>
- <symbol>exp</symbol>
- </rhs>
- </rule>
- <rule number="4" usefulness="useful">
- <lhs>assignments</lhs>
- <rhs>
- <empty/>
- </rhs>
- </rule>
- <rule number="5" usefulness="useful">
- <lhs>assignments</lhs>
- <rhs>
- <symbol>assignments</symbol>
- <symbol>assignment</symbol>
- </rhs>
- </rule>
- <rule number="6" usefulness="useful">
- <lhs>assignment</lhs>
- <rhs>
- <symbol>id</symbol>
- <symbol>&quot;:=&quot;</symbol>
- <symbol>exp</symbol>
- </rhs>
- </rule>
- <rule number="7" usefulness="useful">
- <lhs>id</lhs>
- <rhs>
- <symbol>&quot;identifier&quot;</symbol>
- </rhs>
- </rule>
- <rule number="8" usefulness="useful">
- <lhs>@1</lhs>
- <rhs>
- <empty/>
- </rhs>
- </rule>
- <rule number="9" usefulness="useful">
- <lhs>@2</lhs>
- <rhs>
- <empty/>
- </rhs>
- </rule>
- <rule number="10" usefulness="useful">
- <lhs>exp</lhs>
- <rhs>
- <symbol>&quot;incr&quot;</symbol>
- <symbol>exp</symbol>
- <symbol>@1</symbol>
- <symbol>@2</symbol>
- <symbol>exp</symbol>
- </rhs>
- </rule>
- <rule number="11" usefulness="useful">
- <lhs>exp</lhs>
- <rhs>
- <symbol>&quot;(&quot;</symbol>
- <symbol>exp</symbol>
- <symbol>&quot;)&quot;</symbol>
- </rhs>
- </rule>
- <rule number="12" usefulness="useful">
- <lhs>exp</lhs>
- <rhs>
- <symbol>&quot;identifier&quot;</symbol>
- </rhs>
- </rule>
- <rule number="13" usefulness="useful">
- <lhs>exp</lhs>
- <rhs>
- <symbol>&quot;number&quot;</symbol>
- </rhs>
- </rule>
- </rules>
- <terminals>
- <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" type="" usefulness="useful"/>
- <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
- <terminal symbol-number="3" token-number="258" name="&quot;:=&quot;" type="" usefulness="useful"/>
- <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
- <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
- <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" type="int" usefulness="useful"/>
- <terminal symbol-number="7" token-number="262" name="YY_PARSE_unit" type="" usefulness="useful"/>
- <terminal symbol-number="8" token-number="263" name="YY_PARSE_assignments" type="" usefulness="useful"/>
- <terminal symbol-number="9" token-number="264" name="YY_PARSE_exp" type="" usefulness="useful"/>
- <terminal symbol-number="10" token-number="265" name="&quot;(&quot;" type="" usefulness="useful"/>
- <terminal symbol-number="11" token-number="266" name="&quot;)&quot;" type="" usefulness="useful"/>
- </terminals>
- <nonterminals>
- <nonterminal symbol-number="12" name="$accept" type="" usefulness="useful"/>
- <nonterminal symbol-number="13" name="unit" type="" usefulness="useful"/>
- <nonterminal symbol-number="14" name="assignments" type="" usefulness="useful"/>
- <nonterminal symbol-number="15" name="assignment" type="" usefulness="useful"/>
- <nonterminal symbol-number="16" name="id" type="std::string" usefulness="useful"/>
- <nonterminal symbol-number="17" name="exp" type="int" usefulness="useful"/>
- <nonterminal symbol-number="18" name="@1" type="int" usefulness="useful"/>
- <nonterminal symbol-number="19" name="@2" type="int" usefulness="useful"/>
- </nonterminals>
- </grammar>
-
- <automaton>
-
- <state number="0">
- <itemset>
- <item rule-number="0" dot="0"/>
- <item rule-number="1" dot="0"/>
- <item rule-number="2" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="YY_PARSE_unit" state="1"/>
- <transition type="shift" symbol="YY_PARSE_assignments" state="2"/>
- <transition type="shift" symbol="YY_PARSE_exp" state="3"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="1">
- <itemset>
- <item rule-number="0" dot="1"/>
- <item rule-number="3" dot="0"/>
- <item rule-number="4" dot="0"/>
- <item rule-number="5" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="goto" symbol="unit" state="4"/>
- <transition type="goto" symbol="assignments" state="5"/>
- </transitions>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="4" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="2">
- <itemset>
- <item rule-number="1" dot="1"/>
- <item rule-number="4" dot="0"/>
- <item rule-number="5" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="goto" symbol="assignments" state="6"/>
- </transitions>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="4" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="3">
- <itemset>
- <item rule-number="2" dot="1"/>
- <item rule-number="10" dot="0"/>
- <item rule-number="11" dot="0"/>
- <item rule-number="12" dot="0"/>
- <item rule-number="13" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
- <transition type="shift" symbol="&quot;number&quot;" state="9"/>
- <transition type="shift" symbol="&quot;(&quot;" state="10"/>
- <transition type="goto" symbol="exp" state="11"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="4">
- <itemset>
- <item rule-number="0" dot="2"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;end of file&quot;" state="12"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="5">
- <itemset>
- <item rule-number="3" dot="1"/>
- <item rule-number="5" dot="1"/>
- <item rule-number="6" dot="0"/>
- <item rule-number="7" dot="0"/>
- <item rule-number="10" dot="0"/>
- <item rule-number="11" dot="0"/>
- <item rule-number="12" dot="0"/>
- <item rule-number="13" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="13"/>
- <transition type="shift" symbol="&quot;number&quot;" state="9"/>
- <transition type="shift" symbol="&quot;(&quot;" state="10"/>
- <transition type="goto" symbol="assignment" state="14"/>
- <transition type="goto" symbol="id" state="15"/>
- <transition type="goto" symbol="exp" state="16"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="6">
- <itemset>
- <item rule-number="1" dot="2"/>
- <item rule-number="5" dot="1"/>
- <item rule-number="6" dot="0"/>
- <item rule-number="7" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;end of file&quot;" state="17"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="18"/>
- <transition type="goto" symbol="assignment" state="14"/>
- <transition type="goto" symbol="id" state="15"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="7">
- <itemset>
- <item rule-number="10" dot="0"/>
- <item rule-number="10" dot="1"/>
- <item rule-number="11" dot="0"/>
- <item rule-number="12" dot="0"/>
- <item rule-number="13" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
- <transition type="shift" symbol="&quot;number&quot;" state="9"/>
- <transition type="shift" symbol="&quot;(&quot;" state="10"/>
- <transition type="goto" symbol="exp" state="19"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="8">
- <itemset>
- <item rule-number="12" dot="1"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="12" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="9">
- <itemset>
- <item rule-number="13" dot="1"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="13" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="10">
- <itemset>
- <item rule-number="10" dot="0"/>
- <item rule-number="11" dot="0"/>
- <item rule-number="11" dot="1"/>
- <item rule-number="12" dot="0"/>
- <item rule-number="13" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
- <transition type="shift" symbol="&quot;number&quot;" state="9"/>
- <transition type="shift" symbol="&quot;(&quot;" state="10"/>
- <transition type="goto" symbol="exp" state="20"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="11">
- <itemset>
- <item rule-number="2" dot="2"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;end of file&quot;" state="21"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="12">
- <itemset>
- <item rule-number="0" dot="3"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="accept" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="13">
- <itemset>
- <item rule-number="7" dot="1">
- <lookaheads>
- <symbol>&quot;:=&quot;</symbol>
- </lookaheads>
- </item>
- <item rule-number="12" dot="1">
- <lookaheads>
- <symbol>&quot;end of file&quot;</symbol>
- </lookaheads>
- </item>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="&quot;end of file&quot;" rule="12" enabled="true"/>
- <reduction symbol="$default" rule="7" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="14">
- <itemset>
- <item rule-number="5" dot="2"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="5" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="15">
- <itemset>
- <item rule-number="6" dot="1"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;:=&quot;" state="22"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="16">
- <itemset>
- <item rule-number="3" dot="2"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="3" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="17">
- <itemset>
- <item rule-number="1" dot="3"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="accept" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="18">
- <itemset>
- <item rule-number="7" dot="1"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="7" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="19">
- <itemset>
- <item rule-number="8" dot="0"/>
- <item rule-number="10" dot="2"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="goto" symbol="@1" state="23"/>
- </transitions>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="8" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="20">
- <itemset>
- <item rule-number="11" dot="2"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;)&quot;" state="24"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="21">
- <itemset>
- <item rule-number="2" dot="3"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="accept" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="22">
- <itemset>
- <item rule-number="6" dot="2"/>
- <item rule-number="10" dot="0"/>
- <item rule-number="11" dot="0"/>
- <item rule-number="12" dot="0"/>
- <item rule-number="13" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
- <transition type="shift" symbol="&quot;number&quot;" state="9"/>
- <transition type="shift" symbol="&quot;(&quot;" state="10"/>
- <transition type="goto" symbol="exp" state="25"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="23">
- <itemset>
- <item rule-number="9" dot="0"/>
- <item rule-number="10" dot="3"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="goto" symbol="@2" state="26"/>
- </transitions>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="9" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="24">
- <itemset>
- <item rule-number="11" dot="3"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="11" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="25">
- <itemset>
- <item rule-number="6" dot="3"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="6" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="26">
- <itemset>
- <item rule-number="10" dot="0"/>
- <item rule-number="10" dot="4"/>
- <item rule-number="11" dot="0"/>
- <item rule-number="12" dot="0"/>
- <item rule-number="13" dot="0"/>
- </itemset>
- <actions>
- <transitions>
- <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
- <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
- <transition type="shift" symbol="&quot;number&quot;" state="9"/>
- <transition type="shift" symbol="&quot;(&quot;" state="10"/>
- <transition type="goto" symbol="exp" state="27"/>
- </transitions>
- <errors/>
- <reductions/>
- </actions>
- <solved-conflicts/>
- </state>
-
- <state number="27">
- <itemset>
- <item rule-number="10" dot="5"/>
- </itemset>
- <actions>
- <transitions/>
- <errors/>
- <reductions>
- <reduction symbol="$default" rule="10" enabled="true"/>
- </reductions>
- </actions>
- <solved-conflicts/>
- </state>
- </automaton>
-</bison-xml-report>
-]])
-
-if test x"$XSLTPROC" != x""; then
- AT_CHECK([[$XSLTPROC \
- `]]AT_SET_ENV[[ bison --print-datadir`/xslt/xml2xhtml.xsl \
- input.xml >input.html]])
- AT_CHECK_HTML([input.html],
-[[<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
- <head>
- <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
- <title>input.yy - GNU Bison XML Automaton Report</title>
- <style type="text/css">
- body {
- font-family: "Nimbus Sans L", Arial, sans-serif;
- font-size: 9pt;
- }
- a:link {
- color: #1f00ff;
- text-decoration: none;
- }
- a:visited {
- color: #1f00ff;
- text-decoration: none;
- }
- a:hover {
- color: red;
- }
- #menu a {
- text-decoration: underline;
- }
- .i {
- font-style: italic;
- }
- .pre {
- font-family: monospace;
- white-space: pre;
- }
- ol.decimal {
- list-style-type: decimal;
- }
- ol.lower-alpha {
- list-style-type: lower-alpha;
- }
- .dot {
- color: #cc0000;
- }
- #footer {
- margin-top: 3.5em;
- font-size: 7pt;
- }
- </style>
- </head>
- <body><h1>GNU Bison XML Automaton Report</h1><p>
- input grammar: <span class="i">input.yy</span></p>
-
-<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>
-
-<h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
-
-<h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
-<h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
-
-<h2><a name="grammar" id="grammar"></a> Grammar</h2>
-<p class="pre">
- <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>
- <a name="rule_1" id="rule_1"> 1</a> | <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
- <a name="rule_2" id="rule_2"> 2</a> | <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
-
- <a name="rule_3" id="rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
-
- <a name="rule_4" id="rule_4"> 4</a> <span class="i">assignments</span> → %empty
- <a name="rule_5" id="rule_5"> 5</a> | <span class="i">assignments</span> <span class="i">assignment</span>
-
- <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>
-
- <a name="rule_7" id="rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b>
-
- <a name="rule_8" id="rule_8"> 8</a> <span class="i">@1</span> → %empty
-
- <a name="rule_9" id="rule_9"> 9</a> <span class="i">@2</span> → %empty
-
- <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>
- <a name="rule_11" id="rule_11"> 11</a> | <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a name="rule_12" id="rule_12"> 12</a> | <b>"identifier"</b>
- <a name="rule_13" id="rule_13"> 13</a> | <b>"number"</b>
-</p>
-
-<h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
-
-<ul>
- <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>
- <li><b>error</b> (256)</li>
- <li><b>":="</b> (258) <a href="#rule_6">6</a></li>
- <li><b>"incr"</b> (259) <a href="#rule_10">10</a></li>
- <li><b>"identifier"</b> &lt;std::string&gt; (260) <a href="#rule_7">7</a> <a href="#rule_12">12</a></li>
- <li><b>"number"</b> &lt;int&gt; (261) <a href="#rule_13">13</a></li>
- <li><b>YY_PARSE_unit</b> (262) <a href="#rule_0">0</a></li>
- <li><b>YY_PARSE_assignments</b> (263) <a href="#rule_1">1</a></li>
- <li><b>YY_PARSE_exp</b> (264) <a href="#rule_2">2</a></li>
- <li><b>"("</b> (265) <a href="#rule_11">11</a></li>
- <li><b>")"</b> (266) <a href="#rule_11">11</a></li>
-</ul>
-
-<h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
-
-<ul>
- <li><b>$accept</b> (12)
- <ul>
- <li>on left: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
- </ul>
- </li>
- <li><b>unit</b> (13)
- <ul>
- <li>on left: <a href="#rule_3">3</a></li>
- <li>on right: <a href="#rule_0">0</a></li>
- </ul>
- </li>
- <li><b>assignments</b> (14)
- <ul>
- <li>on left: <a href="#rule_4">4</a> <a href="#rule_5">5</a></li>
- <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a> <a href="#rule_5">5</a></li>
- </ul>
- </li>
- <li><b>assignment</b> (15)
- <ul>
- <li>on left: <a href="#rule_6">6</a></li>
- <li>on right: <a href="#rule_5">5</a></li>
- </ul>
- </li>
- <li><b>id</b> &lt;std::string&gt; (16)
- <ul>
- <li>on left: <a href="#rule_7">7</a></li>
- <li>on right: <a href="#rule_6">6</a></li>
- </ul>
- </li>
- <li><b>exp</b> &lt;int&gt; (17)
- <ul>
- <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>
- <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>
- </ul>
- </li>
- <li><b>@1</b> &lt;int&gt; (18)
- <ul>
- <li>on left: <a href="#rule_8">8</a></li>
- <li>on right: <a href="#rule_10">10</a></li>
- </ul>
- </li>
- <li><b>@2</b> &lt;int&gt; (19)
- <ul>
- <li>on left: <a href="#rule_9">9</a></li>
- <li>on right: <a href="#rule_10">10</a></li>
- </ul>
- </li>
-</ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
-
-<h3><a name="state_0" id="state_0"></a>State 0</h3>
-
-<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>
- <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>
- <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>
-
- YY_PARSE_unit <a href="#state_1">shift, and go to state 1</a>
- YY_PARSE_assignments <a href="#state_2">shift, and go to state 2</a>
- YY_PARSE_exp <a href="#state_3">shift, and go to state 3</a>
-</p>
-
-<h3><a name="state_1" id="state_1"></a>State 1</h3>
-
-<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>
- <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>
- <a href="#rule_4"> 4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
- <a href="#rule_5"> 5</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
-
- $default <a href="#rule_4">reduce using rule 4</a> (assignments)
-
- unit <a href="#state_4">go to state 4</a>
- assignments <a href="#state_5">go to state 5</a>
-</p>
-
-<h3><a name="state_2" id="state_2"></a>State 2</h3>
-
-<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>
- <a href="#rule_4"> 4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
- <a href="#rule_5"> 5</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
-
- $default <a href="#rule_4">reduce using rule 4</a> (assignments)
-
- assignments <a href="#state_6">go to state 6</a>
-</p>
-
-<h3><a name="state_3" id="state_3"></a>State 3</h3>
-
-<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>
- <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>
- <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
- <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
-
- "incr" <a href="#state_7">shift, and go to state 7</a>
- "identifier" <a href="#state_8">shift, and go to state 8</a>
- "number" <a href="#state_9">shift, and go to state 9</a>
- "(" <a href="#state_10">shift, and go to state 10</a>
-
- exp <a href="#state_11">go to state 11</a>
-</p>
-
-<h3><a name="state_4" id="state_4"></a>State 4</h3>
-
-<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>
-
- "end of file" <a href="#state_12">shift, and go to state 12</a>
-</p>
-
-<h3><a name="state_5" id="state_5"></a>State 5</h3>
-
-<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>
- <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>
- <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>
- <a href="#rule_7"> 7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
- <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>
- <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
- <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
-
- "incr" <a href="#state_7">shift, and go to state 7</a>
- "identifier" <a href="#state_13">shift, and go to state 13</a>
- "number" <a href="#state_9">shift, and go to state 9</a>
- "(" <a href="#state_10">shift, and go to state 10</a>
-
- assignment <a href="#state_14">go to state 14</a>
- id <a href="#state_15">go to state 15</a>
- exp <a href="#state_16">go to state 16</a>
-</p>
-
-<h3><a name="state_6" id="state_6"></a>State 6</h3>
-
-<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>
- <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>
- <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>
- <a href="#rule_7"> 7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
-
- "end of file" <a href="#state_17">shift, and go to state 17</a>
- "identifier" <a href="#state_18">shift, and go to state 18</a>
-
- assignment <a href="#state_14">go to state 14</a>
- id <a href="#state_15">go to state 15</a>
-</p>
-
-<h3><a name="state_7" id="state_7"></a>State 7</h3>
-
-<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>
- <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>
- <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
- <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
-
- "incr" <a href="#state_7">shift, and go to state 7</a>
- "identifier" <a href="#state_8">shift, and go to state 8</a>
- "number" <a href="#state_9">shift, and go to state 9</a>
- "(" <a href="#state_10">shift, and go to state 10</a>
-
- exp <a href="#state_19">go to state 19</a>
-</p>
-
-<h3><a name="state_8" id="state_8"></a>State 8</h3>
-
-<p class="pre"> <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
-
- $default <a href="#rule_12">reduce using rule 12</a> (exp)
-</p>
-
-<h3><a name="state_9" id="state_9"></a>State 9</h3>
-
-<p class="pre"> <a href="#rule_13"> 13</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
-
- $default <a href="#rule_13">reduce using rule 13</a> (exp)
-</p>
-
-<h3><a name="state_10" id="state_10"></a>State 10</h3>
-
-<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>
- <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_11"> 11</a> | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
- <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
-
- "incr" <a href="#state_7">shift, and go to state 7</a>
- "identifier" <a href="#state_8">shift, and go to state 8</a>
- "number" <a href="#state_9">shift, and go to state 9</a>
- "(" <a href="#state_10">shift, and go to state 10</a>
-
- exp <a href="#state_20">go to state 20</a>
-</p>
-
-<h3><a name="state_11" id="state_11"></a>State 11</h3>
-
-<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>
-
- "end of file" <a href="#state_21">shift, and go to state 21</a>
-</p>
-
-<h3><a name="state_12" id="state_12"></a>State 12</h3>
-
-<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>
-
- $default accept
-</p>
-
-<h3><a name="state_13" id="state_13"></a>State 13</h3>
-
-<p class="pre"> <a href="#rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span> [":="]
- <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span> ["end of file"]
-
- "end of file" <a href="#rule_12">reduce using rule 12</a> (exp)
- $default <a href="#rule_7">reduce using rule 7</a> (id)
-</p>
-
-<h3><a name="state_14" id="state_14"></a>State 14</h3>
-
-<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>
-
- $default <a href="#rule_5">reduce using rule 5</a> (assignments)
-</p>
-
-<h3><a name="state_15" id="state_15"></a>State 15</h3>
-
-<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>
-
- ":=" <a href="#state_22">shift, and go to state 22</a>
-</p>
-
-<h3><a name="state_16" id="state_16"></a>State 16</h3>
-
-<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>
-
- $default <a href="#rule_3">reduce using rule 3</a> (unit)
-</p>
-
-<h3><a name="state_17" id="state_17"></a>State 17</h3>
-
-<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>
-
- $default accept
-</p>
-
-<h3><a name="state_18" id="state_18"></a>State 18</h3>
-
-<p class="pre"> <a href="#rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>
-
- $default <a href="#rule_7">reduce using rule 7</a> (id)
-</p>
-
-<h3><a name="state_19" id="state_19"></a>State 19</h3>
-
-<p class="pre"> <a href="#rule_8"> 8</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
- <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>
-
- $default <a href="#rule_8">reduce using rule 8</a> (@1)
-
- @1 <a href="#state_23">go to state 23</a>
-</p>
-
-<h3><a name="state_20" id="state_20"></a>State 20</h3>
-
-<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>
-
- ")" <a href="#state_24">shift, and go to state 24</a>
-</p>
-
-<h3><a name="state_21" id="state_21"></a>State 21</h3>
-
-<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>
-
- $default accept
-</p>
-
-<h3><a name="state_22" id="state_22"></a>State 22</h3>
-
-<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>
- <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>
- <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
- <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
-
- "incr" <a href="#state_7">shift, and go to state 7</a>
- "identifier" <a href="#state_8">shift, and go to state 8</a>
- "number" <a href="#state_9">shift, and go to state 9</a>
- "(" <a href="#state_10">shift, and go to state 10</a>
-
- exp <a href="#state_25">go to state 25</a>
-</p>
-
-<h3><a name="state_23" id="state_23"></a>State 23</h3>
-
-<p class="pre"> <a href="#rule_9"> 9</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
- <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>
-
- $default <a href="#rule_9">reduce using rule 9</a> (@2)
-
- @2 <a href="#state_26">go to state 26</a>
-</p>
-
-<h3><a name="state_24" id="state_24"></a>State 24</h3>
-
-<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>
-
- $default <a href="#rule_11">reduce using rule 11</a> (exp)
-</p>
-
-<h3><a name="state_25" id="state_25"></a>State 25</h3>
-
-<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>
-
- $default <a href="#rule_6">reduce using rule 6</a> (assignment)
-</p>
-
-<h3><a name="state_26" id="state_26"></a>State 26</h3>
-
-<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>
- <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>
- <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
- <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
- <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
-
- "incr" <a href="#state_7">shift, and go to state 7</a>
- "identifier" <a href="#state_8">shift, and go to state 8</a>
- "number" <a href="#state_9">shift, and go to state 9</a>
- "(" <a href="#state_10">shift, and go to state 10</a>
-
- exp <a href="#state_27">go to state 27</a>
-</p>
-
-<h3><a name="state_27" id="state_27"></a>State 27</h3>
-
-<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>
-
- $default <a href="#rule_10">reduce using rule 10</a> (exp)
-</p>
-
-<div id="footer"><hr />This document was generated using
- <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
- GNU Bison ]AT_PACKAGE_VERSION[</a>
- XML Automaton Report.<br />
- Verbatim copying and distribution of this entire page is
- permitted in any medium, provided this notice is preserved.</div></body>
-</html>
-]])
-fi
-
-AT_BISON_OPTION_POPDEFS
-AT_CLEANUP
+dnl Disable because aborts on some architectures. Not scheduled for 3.8 anyway.
+dnl <https://lists.gnu.org/r/bug-bison/2021-08/msg00027.html>
+dnl
+dnl ## -------------------- ##
+dnl ## Multistart reports. ##
+dnl ## -------------------- ##
+dnl
+dnl AT_SETUP([Multistart reports])
+dnl
+dnl AT_KEYWORDS([multistart report])
+dnl
+dnl AT_BISON_OPTION_PUSHDEFS
+dnl AT_DATA([input.yy],
+dnl [[%token
+dnl END 0 "end of file"
+dnl ASSIGN ":="
+dnl INCR "incr"
+dnl ;
+dnl
+dnl %token <std::string> IDENTIFIER "identifier"
+dnl %type <std::string> id
+dnl %token <int> NUMBER "number"
+dnl %type <int> exp
+dnl
+dnl %%
+dnl %start unit assignments exp;
+dnl unit: assignments exp { driver.result = $2; };
+dnl
+dnl assignments:
+dnl %empty {}
+dnl | assignments assignment {};
+dnl
+dnl assignment:
+dnl id ":=" exp { driver.variables[$id] = $exp; };
+dnl
+dnl id:
+dnl "identifier";
+dnl
+dnl exp:
+dnl "incr" exp <int>{ $$ = 1; } <int>{ $$ = 10; } exp { $$ = $2 + $3 + $4 + $5; }
+dnl | "(" exp ")" { std::swap ($$, $2); }
+dnl | "identifier" { $$ = driver.variables[$1]; }
+dnl | "number" { std::swap ($$, $1); };
+dnl ]])
+dnl
+dnl AT_BISON_CHECK([-o input.cc -rall --graph=input.gv --xml input.yy])
+dnl
+dnl # Check the contents of the report.
+dnl AT_CHECK([cat input.output], [],
+dnl [[Grammar
+dnl
+dnl 0 $accept: YY_PARSE_unit unit "end of file"
+dnl 1 | YY_PARSE_assignments assignments "end of file"
+dnl 2 | YY_PARSE_exp exp "end of file"
+dnl
+dnl 3 unit: assignments exp
+dnl
+dnl 4 assignments: %empty
+dnl 5 | assignments assignment
+dnl
+dnl 6 assignment: id ":=" exp
+dnl
+dnl 7 id: "identifier"
+dnl
+dnl 8 @1: %empty
+dnl
+dnl 9 @2: %empty
+dnl
+dnl 10 exp: "incr" exp @1 @2 exp
+dnl 11 | "(" exp ")"
+dnl 12 | "identifier"
+dnl 13 | "number"
+dnl
+dnl
+dnl Terminals, with rules where they appear
+dnl
+dnl "end of file" (0) 0 1 2
+dnl error (256)
+dnl ":=" (258) 6
+dnl "incr" (259) 10
+dnl "identifier" <std::string> (260) 7 12
+dnl "number" <int> (261) 13
+dnl YY_PARSE_unit (262) 0
+dnl YY_PARSE_assignments (263) 1
+dnl YY_PARSE_exp (264) 2
+dnl "(" (265) 11
+dnl ")" (266) 11
+dnl
+dnl
+dnl Nonterminals, with rules where they appear
+dnl
+dnl $accept (12)
+dnl on left: 0 1 2
+dnl unit (13)
+dnl on left: 3
+dnl on right: 0
+dnl assignments (14)
+dnl on left: 4 5
+dnl on right: 1 3 5
+dnl assignment (15)
+dnl on left: 6
+dnl on right: 5
+dnl id <std::string> (16)
+dnl on left: 7
+dnl on right: 6
+dnl exp <int> (17)
+dnl on left: 10 11 12 13
+dnl on right: 2 3 6 10 11
+dnl @1 <int> (18)
+dnl on left: 8
+dnl on right: 10
+dnl @2 <int> (19)
+dnl on left: 9
+dnl on right: 10
+dnl
+dnl
+dnl State 0
+dnl
+dnl 0 $accept: . YY_PARSE_unit unit "end of file"
+dnl 1 | . YY_PARSE_assignments assignments "end of file"
+dnl 2 | . YY_PARSE_exp exp "end of file"
+dnl
+dnl YY_PARSE_unit shift, and go to state 1
+dnl YY_PARSE_assignments shift, and go to state 2
+dnl YY_PARSE_exp shift, and go to state 3
+dnl
+dnl
+dnl State 1
+dnl
+dnl 0 $accept: YY_PARSE_unit . unit "end of file"
+dnl 3 unit: . assignments exp
+dnl 4 assignments: %empty .
+dnl 5 | . assignments assignment
+dnl
+dnl $default reduce using rule 4 (assignments)
+dnl
+dnl unit go to state 4
+dnl assignments go to state 5
+dnl
+dnl
+dnl State 2
+dnl
+dnl 1 $accept: YY_PARSE_assignments . assignments "end of file"
+dnl 4 assignments: %empty .
+dnl 5 | . assignments assignment
+dnl
+dnl $default reduce using rule 4 (assignments)
+dnl
+dnl assignments go to state 6
+dnl
+dnl
+dnl State 3
+dnl
+dnl 2 $accept: YY_PARSE_exp . exp "end of file"
+dnl 10 exp: . "incr" exp @1 @2 exp
+dnl 11 | . "(" exp ")"
+dnl 12 | . "identifier"
+dnl 13 | . "number"
+dnl
+dnl "incr" shift, and go to state 7
+dnl "identifier" shift, and go to state 8
+dnl "number" shift, and go to state 9
+dnl "(" shift, and go to state 10
+dnl
+dnl exp go to state 11
+dnl
+dnl
+dnl State 4
+dnl
+dnl 0 $accept: YY_PARSE_unit unit . "end of file"
+dnl
+dnl "end of file" shift, and go to state 12
+dnl
+dnl
+dnl State 5
+dnl
+dnl 3 unit: assignments . exp
+dnl 5 assignments: assignments . assignment
+dnl 6 assignment: . id ":=" exp
+dnl 7 id: . "identifier"
+dnl 10 exp: . "incr" exp @1 @2 exp
+dnl 11 | . "(" exp ")"
+dnl 12 | . "identifier"
+dnl 13 | . "number"
+dnl
+dnl "incr" shift, and go to state 7
+dnl "identifier" shift, and go to state 13
+dnl "number" shift, and go to state 9
+dnl "(" shift, and go to state 10
+dnl
+dnl assignment go to state 14
+dnl id go to state 15
+dnl exp go to state 16
+dnl
+dnl
+dnl State 6
+dnl
+dnl 1 $accept: YY_PARSE_assignments assignments . "end of file"
+dnl 5 assignments: assignments . assignment
+dnl 6 assignment: . id ":=" exp
+dnl 7 id: . "identifier"
+dnl
+dnl "end of file" shift, and go to state 17
+dnl "identifier" shift, and go to state 18
+dnl
+dnl assignment go to state 14
+dnl id go to state 15
+dnl
+dnl
+dnl State 7
+dnl
+dnl 10 exp: . "incr" exp @1 @2 exp
+dnl 10 | "incr" . exp @1 @2 exp
+dnl 11 | . "(" exp ")"
+dnl 12 | . "identifier"
+dnl 13 | . "number"
+dnl
+dnl "incr" shift, and go to state 7
+dnl "identifier" shift, and go to state 8
+dnl "number" shift, and go to state 9
+dnl "(" shift, and go to state 10
+dnl
+dnl exp go to state 19
+dnl
+dnl
+dnl State 8
+dnl
+dnl 12 exp: "identifier" .
+dnl
+dnl $default reduce using rule 12 (exp)
+dnl
+dnl
+dnl State 9
+dnl
+dnl 13 exp: "number" .
+dnl
+dnl $default reduce using rule 13 (exp)
+dnl
+dnl
+dnl State 10
+dnl
+dnl 10 exp: . "incr" exp @1 @2 exp
+dnl 11 | . "(" exp ")"
+dnl 11 | "(" . exp ")"
+dnl 12 | . "identifier"
+dnl 13 | . "number"
+dnl
+dnl "incr" shift, and go to state 7
+dnl "identifier" shift, and go to state 8
+dnl "number" shift, and go to state 9
+dnl "(" shift, and go to state 10
+dnl
+dnl exp go to state 20
+dnl
+dnl
+dnl State 11
+dnl
+dnl 2 $accept: YY_PARSE_exp exp . "end of file"
+dnl
+dnl "end of file" shift, and go to state 21
+dnl
+dnl
+dnl State 12
+dnl
+dnl 0 $accept: YY_PARSE_unit unit "end of file" .
+dnl
+dnl $default accept
+dnl
+dnl
+dnl State 13
+dnl
+dnl 7 id: "identifier" . [":="]
+dnl 12 exp: "identifier" . ["end of file"]
+dnl
+dnl "end of file" reduce using rule 12 (exp)
+dnl $default reduce using rule 7 (id)
+dnl
+dnl
+dnl State 14
+dnl
+dnl 5 assignments: assignments assignment .
+dnl
+dnl $default reduce using rule 5 (assignments)
+dnl
+dnl
+dnl State 15
+dnl
+dnl 6 assignment: id . ":=" exp
+dnl
+dnl ":=" shift, and go to state 22
+dnl
+dnl
+dnl State 16
+dnl
+dnl 3 unit: assignments exp .
+dnl
+dnl $default reduce using rule 3 (unit)
+dnl
+dnl
+dnl State 17
+dnl
+dnl 1 $accept: YY_PARSE_assignments assignments "end of file" .
+dnl
+dnl $default accept
+dnl
+dnl
+dnl State 18
+dnl
+dnl 7 id: "identifier" .
+dnl
+dnl $default reduce using rule 7 (id)
+dnl
+dnl
+dnl State 19
+dnl
+dnl 8 @1: %empty .
+dnl 10 exp: "incr" exp . @1 @2 exp
+dnl
+dnl $default reduce using rule 8 (@1)
+dnl
+dnl @1 go to state 23
+dnl
+dnl
+dnl State 20
+dnl
+dnl 11 exp: "(" exp . ")"
+dnl
+dnl ")" shift, and go to state 24
+dnl
+dnl
+dnl State 21
+dnl
+dnl 2 $accept: YY_PARSE_exp exp "end of file" .
+dnl
+dnl $default accept
+dnl
+dnl
+dnl State 22
+dnl
+dnl 6 assignment: id ":=" . exp
+dnl 10 exp: . "incr" exp @1 @2 exp
+dnl 11 | . "(" exp ")"
+dnl 12 | . "identifier"
+dnl 13 | . "number"
+dnl
+dnl "incr" shift, and go to state 7
+dnl "identifier" shift, and go to state 8
+dnl "number" shift, and go to state 9
+dnl "(" shift, and go to state 10
+dnl
+dnl exp go to state 25
+dnl
+dnl
+dnl State 23
+dnl
+dnl 9 @2: %empty .
+dnl 10 exp: "incr" exp @1 . @2 exp
+dnl
+dnl $default reduce using rule 9 (@2)
+dnl
+dnl @2 go to state 26
+dnl
+dnl
+dnl State 24
+dnl
+dnl 11 exp: "(" exp ")" .
+dnl
+dnl $default reduce using rule 11 (exp)
+dnl
+dnl
+dnl State 25
+dnl
+dnl 6 assignment: id ":=" exp .
+dnl
+dnl $default reduce using rule 6 (assignment)
+dnl
+dnl
+dnl State 26
+dnl
+dnl 10 exp: . "incr" exp @1 @2 exp
+dnl 10 | "incr" exp @1 @2 . exp
+dnl 11 | . "(" exp ")"
+dnl 12 | . "identifier"
+dnl 13 | . "number"
+dnl
+dnl "incr" shift, and go to state 7
+dnl "identifier" shift, and go to state 8
+dnl "number" shift, and go to state 9
+dnl "(" shift, and go to state 10
+dnl
+dnl exp go to state 27
+dnl
+dnl
+dnl State 27
+dnl
+dnl 10 exp: "incr" exp @1 @2 exp .
+dnl
+dnl $default reduce using rule 10 (exp)
+dnl ]])
+dnl
+dnl
+dnl
+dnl AT_CHECK([cat input.gv], [],
+dnl [[// Generated by GNU Bison ]AT_PACKAGE_VERSION[.
+dnl // Report bugs to <bug-bison@gnu.org>.
+dnl // Home page: <https://www.gnu.org/software/bison/>.
+dnl
+dnl digraph "input.yy"
+dnl {
+dnl node [fontname = courier, shape = box, colorscheme = paired6]
+dnl edge [fontname = courier]
+dnl
+dnl 0 [label="State 0\n\l 0 $accept: • YY_PARSE_unit unit \"end of file\"\l 1 | • YY_PARSE_assignments assignments \"end of file\"\l 2 | • YY_PARSE_exp exp \"end of file\"\l"]
+dnl 0 -> 1 [style=solid label="YY_PARSE_unit"]
+dnl 0 -> 2 [style=solid label="YY_PARSE_assignments"]
+dnl 0 -> 3 [style=solid label="YY_PARSE_exp"]
+dnl 1 [label="State 1\n\l 0 $accept: YY_PARSE_unit • unit \"end of file\"\l 3 unit: • assignments exp\l 4 assignments: • %empty\l 5 | • assignments assignment\l"]
+dnl 1 -> 4 [style=dashed label="unit"]
+dnl 1 -> 5 [style=dashed label="assignments"]
+dnl 1 -> "1R4" [style=solid]
+dnl "1R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
+dnl 2 [label="State 2\n\l 1 $accept: YY_PARSE_assignments • assignments \"end of file\"\l 4 assignments: • %empty\l 5 | • assignments assignment\l"]
+dnl 2 -> 6 [style=dashed label="assignments"]
+dnl 2 -> "2R4" [style=solid]
+dnl "2R4" [label="R4", fillcolor=3, shape=diamond, style=filled]
+dnl 3 [label="State 3\n\l 2 $accept: YY_PARSE_exp • exp \"end of file\"\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
+dnl 3 -> 7 [style=solid label="\"incr\""]
+dnl 3 -> 8 [style=solid label="\"identifier\""]
+dnl 3 -> 9 [style=solid label="\"number\""]
+dnl 3 -> 10 [style=solid label="\"(\""]
+dnl 3 -> 11 [style=dashed label="exp"]
+dnl 4 [label="State 4\n\l 0 $accept: YY_PARSE_unit unit • \"end of file\"\l"]
+dnl 4 -> 12 [style=solid label="\"end of file\""]
+dnl 5 [label="State 5\n\l 3 unit: assignments • exp\l 5 assignments: assignments • assignment\l 6 assignment: • id \":=\" exp\l 7 id: • \"identifier\"\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
+dnl 5 -> 7 [style=solid label="\"incr\""]
+dnl 5 -> 13 [style=solid label="\"identifier\""]
+dnl 5 -> 9 [style=solid label="\"number\""]
+dnl 5 -> 10 [style=solid label="\"(\""]
+dnl 5 -> 14 [style=dashed label="assignment"]
+dnl 5 -> 15 [style=dashed label="id"]
+dnl 5 -> 16 [style=dashed label="exp"]
+dnl 6 [label="State 6\n\l 1 $accept: YY_PARSE_assignments assignments • \"end of file\"\l 5 assignments: assignments • assignment\l 6 assignment: • id \":=\" exp\l 7 id: • \"identifier\"\l"]
+dnl 6 -> 17 [style=solid label="\"end of file\""]
+dnl 6 -> 18 [style=solid label="\"identifier\""]
+dnl 6 -> 14 [style=dashed label="assignment"]
+dnl 6 -> 15 [style=dashed label="id"]
+dnl 7 [label="State 7\n\l 10 exp: • \"incr\" exp @1 @2 exp\l 10 | \"incr\" • exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
+dnl 7 -> 7 [style=solid label="\"incr\""]
+dnl 7 -> 8 [style=solid label="\"identifier\""]
+dnl 7 -> 9 [style=solid label="\"number\""]
+dnl 7 -> 10 [style=solid label="\"(\""]
+dnl 7 -> 19 [style=dashed label="exp"]
+dnl 8 [label="State 8\n\l 12 exp: \"identifier\" •\l"]
+dnl 8 -> "8R12" [style=solid]
+dnl "8R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
+dnl 9 [label="State 9\n\l 13 exp: \"number\" •\l"]
+dnl 9 -> "9R13" [style=solid]
+dnl "9R13" [label="R13", fillcolor=3, shape=diamond, style=filled]
+dnl 10 [label="State 10\n\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 11 | \"(\" • exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
+dnl 10 -> 7 [style=solid label="\"incr\""]
+dnl 10 -> 8 [style=solid label="\"identifier\""]
+dnl 10 -> 9 [style=solid label="\"number\""]
+dnl 10 -> 10 [style=solid label="\"(\""]
+dnl 10 -> 20 [style=dashed label="exp"]
+dnl 11 [label="State 11\n\l 2 $accept: YY_PARSE_exp exp • \"end of file\"\l"]
+dnl 11 -> 21 [style=solid label="\"end of file\""]
+dnl 12 [label="State 12\n\l 0 $accept: YY_PARSE_unit unit \"end of file\" •\l"]
+dnl 12 -> "12R0" [style=solid]
+dnl "12R0" [label="Acc", fillcolor=1, shape=diamond, style=filled]
+dnl 13 [label="State 13\n\l 7 id: \"identifier\" • [\":=\"]\l 12 exp: \"identifier\" • [\"end of file\"]\l"]
+dnl 13 -> "13R7" [style=solid]
+dnl "13R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
+dnl 13 -> "13R12" [label="[\"end of file\"]", style=solid]
+dnl "13R12" [label="R12", fillcolor=3, shape=diamond, style=filled]
+dnl 14 [label="State 14\n\l 5 assignments: assignments assignment •\l"]
+dnl 14 -> "14R5" [style=solid]
+dnl "14R5" [label="R5", fillcolor=3, shape=diamond, style=filled]
+dnl 15 [label="State 15\n\l 6 assignment: id • \":=\" exp\l"]
+dnl 15 -> 22 [style=solid label="\":=\""]
+dnl 16 [label="State 16\n\l 3 unit: assignments exp •\l"]
+dnl 16 -> "16R3" [style=solid]
+dnl "16R3" [label="R3", fillcolor=3, shape=diamond, style=filled]
+dnl 17 [label="State 17\n\l 1 $accept: YY_PARSE_assignments assignments \"end of file\" •\l"]
+dnl 17 -> "17R1" [style=solid]
+dnl "17R1" [label="Acc", fillcolor=1, shape=diamond, style=filled]
+dnl 18 [label="State 18\n\l 7 id: \"identifier\" •\l"]
+dnl 18 -> "18R7" [style=solid]
+dnl "18R7" [label="R7", fillcolor=3, shape=diamond, style=filled]
+dnl 19 [label="State 19\n\l 8 @1: • %empty\l 10 exp: \"incr\" exp • @1 @2 exp\l"]
+dnl 19 -> 23 [style=dashed label="@1"]
+dnl 19 -> "19R8" [style=solid]
+dnl "19R8" [label="R8", fillcolor=3, shape=diamond, style=filled]
+dnl 20 [label="State 20\n\l 11 exp: \"(\" exp • \")\"\l"]
+dnl 20 -> 24 [style=solid label="\")\""]
+dnl 21 [label="State 21\n\l 2 $accept: YY_PARSE_exp exp \"end of file\" •\l"]
+dnl 21 -> "21R2" [style=solid]
+dnl "21R2" [label="Acc", fillcolor=1, shape=diamond, style=filled]
+dnl 22 [label="State 22\n\l 6 assignment: id \":=\" • exp\l 10 exp: • \"incr\" exp @1 @2 exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
+dnl 22 -> 7 [style=solid label="\"incr\""]
+dnl 22 -> 8 [style=solid label="\"identifier\""]
+dnl 22 -> 9 [style=solid label="\"number\""]
+dnl 22 -> 10 [style=solid label="\"(\""]
+dnl 22 -> 25 [style=dashed label="exp"]
+dnl 23 [label="State 23\n\l 9 @2: • %empty\l 10 exp: \"incr\" exp @1 • @2 exp\l"]
+dnl 23 -> 26 [style=dashed label="@2"]
+dnl 23 -> "23R9" [style=solid]
+dnl "23R9" [label="R9", fillcolor=3, shape=diamond, style=filled]
+dnl 24 [label="State 24\n\l 11 exp: \"(\" exp \")\" •\l"]
+dnl 24 -> "24R11" [style=solid]
+dnl "24R11" [label="R11", fillcolor=3, shape=diamond, style=filled]
+dnl 25 [label="State 25\n\l 6 assignment: id \":=\" exp •\l"]
+dnl 25 -> "25R6" [style=solid]
+dnl "25R6" [label="R6", fillcolor=3, shape=diamond, style=filled]
+dnl 26 [label="State 26\n\l 10 exp: • \"incr\" exp @1 @2 exp\l 10 | \"incr\" exp @1 @2 • exp\l 11 | • \"(\" exp \")\"\l 12 | • \"identifier\"\l 13 | • \"number\"\l"]
+dnl 26 -> 7 [style=solid label="\"incr\""]
+dnl 26 -> 8 [style=solid label="\"identifier\""]
+dnl 26 -> 9 [style=solid label="\"number\""]
+dnl 26 -> 10 [style=solid label="\"(\""]
+dnl 26 -> 27 [style=dashed label="exp"]
+dnl 27 [label="State 27\n\l 10 exp: \"incr\" exp @1 @2 exp •\l"]
+dnl 27 -> "27R10" [style=solid]
+dnl "27R10" [label="R10", fillcolor=3, shape=diamond, style=filled]
+dnl }
+dnl ]])
+dnl
+dnl
+dnl AT_CHECK([[cat input.xml]], [],
+dnl [[<?xml version="1.0"?>
+dnl
+dnl <bison-xml-report version="]AT_PACKAGE_VERSION[" bug-report="bug-bison@gnu.org" url="https://www.gnu.org/software/bison/">
+dnl
+dnl <filename>input.yy</filename>
+dnl
+dnl <grammar>
+dnl <rules>
+dnl <rule number="0" usefulness="useful">
+dnl <lhs>$accept</lhs>
+dnl <rhs>
+dnl <symbol>YY_PARSE_unit</symbol>
+dnl <symbol>unit</symbol>
+dnl <symbol>&quot;end of file&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="1" usefulness="useful">
+dnl <lhs>$accept</lhs>
+dnl <rhs>
+dnl <symbol>YY_PARSE_assignments</symbol>
+dnl <symbol>assignments</symbol>
+dnl <symbol>&quot;end of file&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="2" usefulness="useful">
+dnl <lhs>$accept</lhs>
+dnl <rhs>
+dnl <symbol>YY_PARSE_exp</symbol>
+dnl <symbol>exp</symbol>
+dnl <symbol>&quot;end of file&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="3" usefulness="useful">
+dnl <lhs>unit</lhs>
+dnl <rhs>
+dnl <symbol>assignments</symbol>
+dnl <symbol>exp</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="4" usefulness="useful">
+dnl <lhs>assignments</lhs>
+dnl <rhs>
+dnl <empty/>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="5" usefulness="useful">
+dnl <lhs>assignments</lhs>
+dnl <rhs>
+dnl <symbol>assignments</symbol>
+dnl <symbol>assignment</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="6" usefulness="useful">
+dnl <lhs>assignment</lhs>
+dnl <rhs>
+dnl <symbol>id</symbol>
+dnl <symbol>&quot;:=&quot;</symbol>
+dnl <symbol>exp</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="7" usefulness="useful">
+dnl <lhs>id</lhs>
+dnl <rhs>
+dnl <symbol>&quot;identifier&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="8" usefulness="useful">
+dnl <lhs>@1</lhs>
+dnl <rhs>
+dnl <empty/>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="9" usefulness="useful">
+dnl <lhs>@2</lhs>
+dnl <rhs>
+dnl <empty/>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="10" usefulness="useful">
+dnl <lhs>exp</lhs>
+dnl <rhs>
+dnl <symbol>&quot;incr&quot;</symbol>
+dnl <symbol>exp</symbol>
+dnl <symbol>@1</symbol>
+dnl <symbol>@2</symbol>
+dnl <symbol>exp</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="11" usefulness="useful">
+dnl <lhs>exp</lhs>
+dnl <rhs>
+dnl <symbol>&quot;(&quot;</symbol>
+dnl <symbol>exp</symbol>
+dnl <symbol>&quot;)&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="12" usefulness="useful">
+dnl <lhs>exp</lhs>
+dnl <rhs>
+dnl <symbol>&quot;identifier&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl <rule number="13" usefulness="useful">
+dnl <lhs>exp</lhs>
+dnl <rhs>
+dnl <symbol>&quot;number&quot;</symbol>
+dnl </rhs>
+dnl </rule>
+dnl </rules>
+dnl <terminals>
+dnl <terminal symbol-number="0" token-number="0" name="&quot;end of file&quot;" type="" usefulness="useful"/>
+dnl <terminal symbol-number="1" token-number="256" name="error" type="" usefulness="useful"/>
+dnl <terminal symbol-number="3" token-number="258" name="&quot;:=&quot;" type="" usefulness="useful"/>
+dnl <terminal symbol-number="4" token-number="259" name="&quot;incr&quot;" type="" usefulness="useful"/>
+dnl <terminal symbol-number="5" token-number="260" name="&quot;identifier&quot;" type="std::string" usefulness="useful"/>
+dnl <terminal symbol-number="6" token-number="261" name="&quot;number&quot;" type="int" usefulness="useful"/>
+dnl <terminal symbol-number="7" token-number="262" name="YY_PARSE_unit" type="" usefulness="useful"/>
+dnl <terminal symbol-number="8" token-number="263" name="YY_PARSE_assignments" type="" usefulness="useful"/>
+dnl <terminal symbol-number="9" token-number="264" name="YY_PARSE_exp" type="" usefulness="useful"/>
+dnl <terminal symbol-number="10" token-number="265" name="&quot;(&quot;" type="" usefulness="useful"/>
+dnl <terminal symbol-number="11" token-number="266" name="&quot;)&quot;" type="" usefulness="useful"/>
+dnl </terminals>
+dnl <nonterminals>
+dnl <nonterminal symbol-number="12" name="$accept" type="" usefulness="useful"/>
+dnl <nonterminal symbol-number="13" name="unit" type="" usefulness="useful"/>
+dnl <nonterminal symbol-number="14" name="assignments" type="" usefulness="useful"/>
+dnl <nonterminal symbol-number="15" name="assignment" type="" usefulness="useful"/>
+dnl <nonterminal symbol-number="16" name="id" type="std::string" usefulness="useful"/>
+dnl <nonterminal symbol-number="17" name="exp" type="int" usefulness="useful"/>
+dnl <nonterminal symbol-number="18" name="@1" type="int" usefulness="useful"/>
+dnl <nonterminal symbol-number="19" name="@2" type="int" usefulness="useful"/>
+dnl </nonterminals>
+dnl </grammar>
+dnl
+dnl <automaton>
+dnl
+dnl <state number="0">
+dnl <itemset>
+dnl <item rule-number="0" dot="0"/>
+dnl <item rule-number="1" dot="0"/>
+dnl <item rule-number="2" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="YY_PARSE_unit" state="1"/>
+dnl <transition type="shift" symbol="YY_PARSE_assignments" state="2"/>
+dnl <transition type="shift" symbol="YY_PARSE_exp" state="3"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="1">
+dnl <itemset>
+dnl <item rule-number="0" dot="1"/>
+dnl <item rule-number="3" dot="0"/>
+dnl <item rule-number="4" dot="0"/>
+dnl <item rule-number="5" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="goto" symbol="unit" state="4"/>
+dnl <transition type="goto" symbol="assignments" state="5"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="4" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="2">
+dnl <itemset>
+dnl <item rule-number="1" dot="1"/>
+dnl <item rule-number="4" dot="0"/>
+dnl <item rule-number="5" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="goto" symbol="assignments" state="6"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="4" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="3">
+dnl <itemset>
+dnl <item rule-number="2" dot="1"/>
+dnl <item rule-number="10" dot="0"/>
+dnl <item rule-number="11" dot="0"/>
+dnl <item rule-number="12" dot="0"/>
+dnl <item rule-number="13" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
+dnl <transition type="shift" symbol="&quot;number&quot;" state="9"/>
+dnl <transition type="shift" symbol="&quot;(&quot;" state="10"/>
+dnl <transition type="goto" symbol="exp" state="11"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="4">
+dnl <itemset>
+dnl <item rule-number="0" dot="2"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;end of file&quot;" state="12"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="5">
+dnl <itemset>
+dnl <item rule-number="3" dot="1"/>
+dnl <item rule-number="5" dot="1"/>
+dnl <item rule-number="6" dot="0"/>
+dnl <item rule-number="7" dot="0"/>
+dnl <item rule-number="10" dot="0"/>
+dnl <item rule-number="11" dot="0"/>
+dnl <item rule-number="12" dot="0"/>
+dnl <item rule-number="13" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="13"/>
+dnl <transition type="shift" symbol="&quot;number&quot;" state="9"/>
+dnl <transition type="shift" symbol="&quot;(&quot;" state="10"/>
+dnl <transition type="goto" symbol="assignment" state="14"/>
+dnl <transition type="goto" symbol="id" state="15"/>
+dnl <transition type="goto" symbol="exp" state="16"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="6">
+dnl <itemset>
+dnl <item rule-number="1" dot="2"/>
+dnl <item rule-number="5" dot="1"/>
+dnl <item rule-number="6" dot="0"/>
+dnl <item rule-number="7" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;end of file&quot;" state="17"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="18"/>
+dnl <transition type="goto" symbol="assignment" state="14"/>
+dnl <transition type="goto" symbol="id" state="15"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="7">
+dnl <itemset>
+dnl <item rule-number="10" dot="0"/>
+dnl <item rule-number="10" dot="1"/>
+dnl <item rule-number="11" dot="0"/>
+dnl <item rule-number="12" dot="0"/>
+dnl <item rule-number="13" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
+dnl <transition type="shift" symbol="&quot;number&quot;" state="9"/>
+dnl <transition type="shift" symbol="&quot;(&quot;" state="10"/>
+dnl <transition type="goto" symbol="exp" state="19"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="8">
+dnl <itemset>
+dnl <item rule-number="12" dot="1"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="12" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="9">
+dnl <itemset>
+dnl <item rule-number="13" dot="1"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="13" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="10">
+dnl <itemset>
+dnl <item rule-number="10" dot="0"/>
+dnl <item rule-number="11" dot="0"/>
+dnl <item rule-number="11" dot="1"/>
+dnl <item rule-number="12" dot="0"/>
+dnl <item rule-number="13" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
+dnl <transition type="shift" symbol="&quot;number&quot;" state="9"/>
+dnl <transition type="shift" symbol="&quot;(&quot;" state="10"/>
+dnl <transition type="goto" symbol="exp" state="20"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="11">
+dnl <itemset>
+dnl <item rule-number="2" dot="2"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;end of file&quot;" state="21"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="12">
+dnl <itemset>
+dnl <item rule-number="0" dot="3"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="accept" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="13">
+dnl <itemset>
+dnl <item rule-number="7" dot="1">
+dnl <lookaheads>
+dnl <symbol>&quot;:=&quot;</symbol>
+dnl </lookaheads>
+dnl </item>
+dnl <item rule-number="12" dot="1">
+dnl <lookaheads>
+dnl <symbol>&quot;end of file&quot;</symbol>
+dnl </lookaheads>
+dnl </item>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="&quot;end of file&quot;" rule="12" enabled="true"/>
+dnl <reduction symbol="$default" rule="7" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="14">
+dnl <itemset>
+dnl <item rule-number="5" dot="2"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="5" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="15">
+dnl <itemset>
+dnl <item rule-number="6" dot="1"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;:=&quot;" state="22"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="16">
+dnl <itemset>
+dnl <item rule-number="3" dot="2"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="3" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="17">
+dnl <itemset>
+dnl <item rule-number="1" dot="3"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="accept" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="18">
+dnl <itemset>
+dnl <item rule-number="7" dot="1"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="7" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="19">
+dnl <itemset>
+dnl <item rule-number="8" dot="0"/>
+dnl <item rule-number="10" dot="2"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="goto" symbol="@1" state="23"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="8" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="20">
+dnl <itemset>
+dnl <item rule-number="11" dot="2"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;)&quot;" state="24"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="21">
+dnl <itemset>
+dnl <item rule-number="2" dot="3"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="accept" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="22">
+dnl <itemset>
+dnl <item rule-number="6" dot="2"/>
+dnl <item rule-number="10" dot="0"/>
+dnl <item rule-number="11" dot="0"/>
+dnl <item rule-number="12" dot="0"/>
+dnl <item rule-number="13" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
+dnl <transition type="shift" symbol="&quot;number&quot;" state="9"/>
+dnl <transition type="shift" symbol="&quot;(&quot;" state="10"/>
+dnl <transition type="goto" symbol="exp" state="25"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="23">
+dnl <itemset>
+dnl <item rule-number="9" dot="0"/>
+dnl <item rule-number="10" dot="3"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="goto" symbol="@2" state="26"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="9" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="24">
+dnl <itemset>
+dnl <item rule-number="11" dot="3"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="11" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="25">
+dnl <itemset>
+dnl <item rule-number="6" dot="3"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="6" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="26">
+dnl <itemset>
+dnl <item rule-number="10" dot="0"/>
+dnl <item rule-number="10" dot="4"/>
+dnl <item rule-number="11" dot="0"/>
+dnl <item rule-number="12" dot="0"/>
+dnl <item rule-number="13" dot="0"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions>
+dnl <transition type="shift" symbol="&quot;incr&quot;" state="7"/>
+dnl <transition type="shift" symbol="&quot;identifier&quot;" state="8"/>
+dnl <transition type="shift" symbol="&quot;number&quot;" state="9"/>
+dnl <transition type="shift" symbol="&quot;(&quot;" state="10"/>
+dnl <transition type="goto" symbol="exp" state="27"/>
+dnl </transitions>
+dnl <errors/>
+dnl <reductions/>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl
+dnl <state number="27">
+dnl <itemset>
+dnl <item rule-number="10" dot="5"/>
+dnl </itemset>
+dnl <actions>
+dnl <transitions/>
+dnl <errors/>
+dnl <reductions>
+dnl <reduction symbol="$default" rule="10" enabled="true"/>
+dnl </reductions>
+dnl </actions>
+dnl <solved-conflicts/>
+dnl </state>
+dnl </automaton>
+dnl </bison-xml-report>
+dnl ]])
+dnl
+dnl if test x"$XSLTPROC" != x""; then
+dnl AT_CHECK([[$XSLTPROC \
+dnl `]]AT_SET_ENV[[ bison --print-datadir`/xslt/xml2xhtml.xsl \
+dnl input.xml >input.html]])
+dnl AT_CHECK_HTML([input.html],
+dnl [[<?xml version="1.0" encoding="UTF-8"?>
+dnl <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+dnl <html xmlns="http://www.w3.org/1999/xhtml" xmlns:bison="https://www.gnu.org/software/bison/">
+dnl <head>
+dnl <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
+dnl <title>input.yy - GNU Bison XML Automaton Report</title>
+dnl <style type="text/css">
+dnl body {
+dnl font-family: "Nimbus Sans L", Arial, sans-serif;
+dnl font-size: 9pt;
+dnl }
+dnl a:link {
+dnl color: #1f00ff;
+dnl text-decoration: none;
+dnl }
+dnl a:visited {
+dnl color: #1f00ff;
+dnl text-decoration: none;
+dnl }
+dnl a:hover {
+dnl color: red;
+dnl }
+dnl #menu a {
+dnl text-decoration: underline;
+dnl }
+dnl .i {
+dnl font-style: italic;
+dnl }
+dnl .pre {
+dnl font-family: monospace;
+dnl white-space: pre;
+dnl }
+dnl ol.decimal {
+dnl list-style-type: decimal;
+dnl }
+dnl ol.lower-alpha {
+dnl list-style-type: lower-alpha;
+dnl }
+dnl .dot {
+dnl color: #cc0000;
+dnl }
+dnl #footer {
+dnl margin-top: 3.5em;
+dnl font-size: 7pt;
+dnl }
+dnl </style>
+dnl </head>
+dnl <body><h1>GNU Bison XML Automaton Report</h1><p>
+dnl input grammar: <span class="i">input.yy</span></p>
+dnl
+dnl <h3>Table of Contents</h3><ul id="menu"><li><a href="#reductions">Reductions</a><ul class="lower-alpha"><li><a href="#nonterminals_useless_in_grammar">Nonterminals useless in grammar</a></li><li><a href="#terminals_unused_in_grammar">Terminals unused in grammar</a></li><li><a href="#rules_useless_in_grammar">Rules useless in grammar</a></li></ul></li><li><a href="#conflicts">Conflicts</a></li><li><a href="#grammar">Grammar</a><ul class="lower-alpha"><li><a href="#grammar">Itemset</a></li><li><a href="#terminals">Terminal symbols</a></li><li><a href="#nonterminals">Nonterminal symbols</a></li></ul></li><li><a href="#automaton">Automaton</a></li></ul><h2><a name="reductions" id="reductions"></a> Reductions</h2><h3><a name="nonterminals_useless_in_grammar" id="nonterminals_useless_in_grammar"></a> Nonterminals useless in grammar</h3>
+dnl
+dnl <h3><a name="terminals_unused_in_grammar" id="terminals_unused_in_grammar"></a> Terminals unused in grammar</h3>
+dnl
+dnl <h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
+dnl <h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
+dnl
+dnl <h2><a name="grammar" id="grammar"></a> Grammar</h2>
+dnl <p class="pre">
+dnl <a name="rule_0" id="rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="i">unit</span> <b>"end of file"</b>
+dnl <a name="rule_1" id="rule_1"> 1</a> | <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
+dnl <a name="rule_2" id="rule_2"> 2</a> | <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
+dnl
+dnl <a name="rule_3" id="rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
+dnl
+dnl <a name="rule_4" id="rule_4"> 4</a> <span class="i">assignments</span> → %empty
+dnl <a name="rule_5" id="rule_5"> 5</a> | <span class="i">assignments</span> <span class="i">assignment</span>
+dnl
+dnl <a name="rule_6" id="rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
+dnl
+dnl <a name="rule_7" id="rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b>
+dnl
+dnl <a name="rule_8" id="rule_8"> 8</a> <span class="i">@1</span> → %empty
+dnl
+dnl <a name="rule_9" id="rule_9"> 9</a> <span class="i">@2</span> → %empty
+dnl
+dnl <a name="rule_10" id="rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a name="rule_11" id="rule_11"> 11</a> | <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a name="rule_12" id="rule_12"> 12</a> | <b>"identifier"</b>
+dnl <a name="rule_13" id="rule_13"> 13</a> | <b>"number"</b>
+dnl </p>
+dnl
+dnl <h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
+dnl
+dnl <ul>
+dnl <li><b>"end of file"</b> (0) <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
+dnl <li><b>error</b> (256)</li>
+dnl <li><b>":="</b> (258) <a href="#rule_6">6</a></li>
+dnl <li><b>"incr"</b> (259) <a href="#rule_10">10</a></li>
+dnl <li><b>"identifier"</b> &lt;std::string&gt; (260) <a href="#rule_7">7</a> <a href="#rule_12">12</a></li>
+dnl <li><b>"number"</b> &lt;int&gt; (261) <a href="#rule_13">13</a></li>
+dnl <li><b>YY_PARSE_unit</b> (262) <a href="#rule_0">0</a></li>
+dnl <li><b>YY_PARSE_assignments</b> (263) <a href="#rule_1">1</a></li>
+dnl <li><b>YY_PARSE_exp</b> (264) <a href="#rule_2">2</a></li>
+dnl <li><b>"("</b> (265) <a href="#rule_11">11</a></li>
+dnl <li><b>")"</b> (266) <a href="#rule_11">11</a></li>
+dnl </ul>
+dnl
+dnl <h3><a name="nonterminals" id="nonterminals"></a> Nonterminals, with rules where they appear</h3>
+dnl
+dnl <ul>
+dnl <li><b>$accept</b> (12)
+dnl <ul>
+dnl <li>on left: <a href="#rule_0">0</a> <a href="#rule_1">1</a> <a href="#rule_2">2</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>unit</b> (13)
+dnl <ul>
+dnl <li>on left: <a href="#rule_3">3</a></li>
+dnl <li>on right: <a href="#rule_0">0</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>assignments</b> (14)
+dnl <ul>
+dnl <li>on left: <a href="#rule_4">4</a> <a href="#rule_5">5</a></li>
+dnl <li>on right: <a href="#rule_1">1</a> <a href="#rule_3">3</a> <a href="#rule_5">5</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>assignment</b> (15)
+dnl <ul>
+dnl <li>on left: <a href="#rule_6">6</a></li>
+dnl <li>on right: <a href="#rule_5">5</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>id</b> &lt;std::string&gt; (16)
+dnl <ul>
+dnl <li>on left: <a href="#rule_7">7</a></li>
+dnl <li>on right: <a href="#rule_6">6</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>exp</b> &lt;int&gt; (17)
+dnl <ul>
+dnl <li>on left: <a href="#rule_10">10</a> <a href="#rule_11">11</a> <a href="#rule_12">12</a> <a href="#rule_13">13</a></li>
+dnl <li>on right: <a href="#rule_2">2</a> <a href="#rule_3">3</a> <a href="#rule_6">6</a> <a href="#rule_10">10</a> <a href="#rule_11">11</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>@1</b> &lt;int&gt; (18)
+dnl <ul>
+dnl <li>on left: <a href="#rule_8">8</a></li>
+dnl <li>on right: <a href="#rule_10">10</a></li>
+dnl </ul>
+dnl </li>
+dnl <li><b>@2</b> &lt;int&gt; (19)
+dnl <ul>
+dnl <li>on left: <a href="#rule_9">9</a></li>
+dnl <li>on right: <a href="#rule_10">10</a></li>
+dnl </ul>
+dnl </li>
+dnl </ul><h2><a name="automaton" id="automaton"></a> Automaton</h2>
+dnl
+dnl <h3><a name="state_0" id="state_0"></a>State 0</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <span class="dot">•</span> <b>YY_PARSE_unit</b> <span class="i">unit</span> <b>"end of file"</b>
+dnl <a href="#rule_1"> 1</a> | <span class="dot">•</span> <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b>
+dnl <a href="#rule_2"> 2</a> | <span class="dot">•</span> <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b>
+dnl
+dnl YY_PARSE_unit <a href="#state_1">shift, and go to state 1</a>
+dnl YY_PARSE_assignments <a href="#state_2">shift, and go to state 2</a>
+dnl YY_PARSE_exp <a href="#state_3">shift, and go to state 3</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_1" id="state_1"></a>State 1</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="dot">•</span> <span class="i">unit</span> <b>"end of file"</b>
+dnl <a href="#rule_3"> 3</a> <span class="i">unit</span> → <span class="dot">•</span> <span class="i">assignments</span> <span class="i">exp</span>
+dnl <a href="#rule_4"> 4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
+dnl <a href="#rule_5"> 5</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
+dnl
+dnl $default <a href="#rule_4">reduce using rule 4</a> (assignments)
+dnl
+dnl unit <a href="#state_4">go to state 4</a>
+dnl assignments <a href="#state_5">go to state 5</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_2" id="state_2"></a>State 2</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">$accept</span> → <b>YY_PARSE_assignments</b> <span class="dot">•</span> <span class="i">assignments</span> <b>"end of file"</b>
+dnl <a href="#rule_4"> 4</a> <span class="i">assignments</span> → <span class="dot">•</span> %empty
+dnl <a href="#rule_5"> 5</a> | <span class="dot">•</span> <span class="i">assignments</span> <span class="i">assignment</span>
+dnl
+dnl $default <a href="#rule_4">reduce using rule 4</a> (assignments)
+dnl
+dnl assignments <a href="#state_6">go to state 6</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_3" id="state_3"></a>State 3</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_2"> 2</a> <span class="i">$accept</span> → <b>YY_PARSE_exp</b> <span class="dot">•</span> <span class="i">exp</span> <b>"end of file"</b>
+dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
+dnl
+dnl "incr" <a href="#state_7">shift, and go to state 7</a>
+dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
+dnl "number" <a href="#state_9">shift, and go to state 9</a>
+dnl "(" <a href="#state_10">shift, and go to state 10</a>
+dnl
+dnl exp <a href="#state_11">go to state 11</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_4" id="state_4"></a>State 4</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="i">unit</span> <span class="dot">•</span> <b>"end of file"</b>
+dnl
+dnl "end of file" <a href="#state_12">shift, and go to state 12</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_5" id="state_5"></a>State 5</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">exp</span>
+dnl <a href="#rule_5"> 5</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">assignment</span>
+dnl <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="dot">•</span> <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
+dnl <a href="#rule_7"> 7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
+dnl
+dnl "incr" <a href="#state_7">shift, and go to state 7</a>
+dnl "identifier" <a href="#state_13">shift, and go to state 13</a>
+dnl "number" <a href="#state_9">shift, and go to state 9</a>
+dnl "(" <a href="#state_10">shift, and go to state 10</a>
+dnl
+dnl assignment <a href="#state_14">go to state 14</a>
+dnl id <a href="#state_15">go to state 15</a>
+dnl exp <a href="#state_16">go to state 16</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_6" id="state_6"></a>State 6</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">$accept</span> → <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <span class="dot">•</span> <b>"end of file"</b>
+dnl <a href="#rule_5"> 5</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="dot">•</span> <span class="i">assignment</span>
+dnl <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="dot">•</span> <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
+dnl <a href="#rule_7"> 7</a> <span class="i">id</span> → <span class="dot">•</span> <b>"identifier"</b>
+dnl
+dnl "end of file" <a href="#state_17">shift, and go to state 17</a>
+dnl "identifier" <a href="#state_18">shift, and go to state 18</a>
+dnl
+dnl assignment <a href="#state_14">go to state 14</a>
+dnl id <a href="#state_15">go to state 15</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_7" id="state_7"></a>State 7</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_10"> 10</a> | <b>"incr"</b> <span class="dot">•</span> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
+dnl
+dnl "incr" <a href="#state_7">shift, and go to state 7</a>
+dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
+dnl "number" <a href="#state_9">shift, and go to state 9</a>
+dnl "(" <a href="#state_10">shift, and go to state 10</a>
+dnl
+dnl exp <a href="#state_19">go to state 19</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_8" id="state_8"></a>State 8</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_12">reduce using rule 12</a> (exp)
+dnl </p>
+dnl
+dnl <h3><a name="state_9" id="state_9"></a>State 9</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_13"> 13</a> <span class="i">exp</span> → <b>"number"</b> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_13">reduce using rule 13</a> (exp)
+dnl </p>
+dnl
+dnl <h3><a name="state_10" id="state_10"></a>State 10</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_11"> 11</a> | <b>"("</b> <span class="dot">•</span> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
+dnl
+dnl "incr" <a href="#state_7">shift, and go to state 7</a>
+dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
+dnl "number" <a href="#state_9">shift, and go to state 9</a>
+dnl "(" <a href="#state_10">shift, and go to state 10</a>
+dnl
+dnl exp <a href="#state_20">go to state 20</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_11" id="state_11"></a>State 11</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_2"> 2</a> <span class="i">$accept</span> → <b>YY_PARSE_exp</b> <span class="i">exp</span> <span class="dot">•</span> <b>"end of file"</b>
+dnl
+dnl "end of file" <a href="#state_21">shift, and go to state 21</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_12" id="state_12"></a>State 12</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_0"> 0</a> <span class="i">$accept</span> → <b>YY_PARSE_unit</b> <span class="i">unit</span> <b>"end of file"</b> <span class="dot">•</span>
+dnl
+dnl $default accept
+dnl </p>
+dnl
+dnl <h3><a name="state_13" id="state_13"></a>State 13</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span> [":="]
+dnl <a href="#rule_12"> 12</a> <span class="i">exp</span> → <b>"identifier"</b> <span class="dot">•</span> ["end of file"]
+dnl
+dnl "end of file" <a href="#rule_12">reduce using rule 12</a> (exp)
+dnl $default <a href="#rule_7">reduce using rule 7</a> (id)
+dnl </p>
+dnl
+dnl <h3><a name="state_14" id="state_14"></a>State 14</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_5"> 5</a> <span class="i">assignments</span> → <span class="i">assignments</span> <span class="i">assignment</span> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_5">reduce using rule 5</a> (assignments)
+dnl </p>
+dnl
+dnl <h3><a name="state_15" id="state_15"></a>State 15</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <span class="dot">•</span> <b>":="</b> <span class="i">exp</span>
+dnl
+dnl ":=" <a href="#state_22">shift, and go to state 22</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_16" id="state_16"></a>State 16</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_3"> 3</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_3">reduce using rule 3</a> (unit)
+dnl </p>
+dnl
+dnl <h3><a name="state_17" id="state_17"></a>State 17</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_1"> 1</a> <span class="i">$accept</span> → <b>YY_PARSE_assignments</b> <span class="i">assignments</span> <b>"end of file"</b> <span class="dot">•</span>
+dnl
+dnl $default accept
+dnl </p>
+dnl
+dnl <h3><a name="state_18" id="state_18"></a>State 18</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_7"> 7</a> <span class="i">id</span> → <b>"identifier"</b> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_7">reduce using rule 7</a> (id)
+dnl </p>
+dnl
+dnl <h3><a name="state_19" id="state_19"></a>State 19</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_8"> 8</a> <span class="i">@1</span> → <span class="dot">•</span> %empty
+dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="dot">•</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl
+dnl $default <a href="#rule_8">reduce using rule 8</a> (@1)
+dnl
+dnl @1 <a href="#state_23">go to state 23</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_20" id="state_20"></a>State 20</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_11"> 11</a> <span class="i">exp</span> → <b>"("</b> <span class="i">exp</span> <span class="dot">•</span> <b>")"</b>
+dnl
+dnl ")" <a href="#state_24">shift, and go to state 24</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_21" id="state_21"></a>State 21</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_2"> 2</a> <span class="i">$accept</span> → <b>YY_PARSE_exp</b> <span class="i">exp</span> <b>"end of file"</b> <span class="dot">•</span>
+dnl
+dnl $default accept
+dnl </p>
+dnl
+dnl <h3><a name="state_22" id="state_22"></a>State 22</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="dot">•</span> <span class="i">exp</span>
+dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
+dnl
+dnl "incr" <a href="#state_7">shift, and go to state 7</a>
+dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
+dnl "number" <a href="#state_9">shift, and go to state 9</a>
+dnl "(" <a href="#state_10">shift, and go to state 10</a>
+dnl
+dnl exp <a href="#state_25">go to state 25</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_23" id="state_23"></a>State 23</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_9"> 9</a> <span class="i">@2</span> → <span class="dot">•</span> %empty
+dnl <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="dot">•</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl
+dnl $default <a href="#rule_9">reduce using rule 9</a> (@2)
+dnl
+dnl @2 <a href="#state_26">go to state 26</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_24" id="state_24"></a>State 24</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_11"> 11</a> <span class="i">exp</span> → <b>"("</b> <span class="i">exp</span> <b>")"</b> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_11">reduce using rule 11</a> (exp)
+dnl </p>
+dnl
+dnl <h3><a name="state_25" id="state_25"></a>State 25</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_6"> 6</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_6">reduce using rule 6</a> (assignment)
+dnl </p>
+dnl
+dnl <h3><a name="state_26" id="state_26"></a>State 26</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <span class="dot">•</span> <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
+dnl <a href="#rule_10"> 10</a> | <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="dot">•</span> <span class="i">exp</span>
+dnl <a href="#rule_11"> 11</a> | <span class="dot">•</span> <b>"("</b> <span class="i">exp</span> <b>")"</b>
+dnl <a href="#rule_12"> 12</a> | <span class="dot">•</span> <b>"identifier"</b>
+dnl <a href="#rule_13"> 13</a> | <span class="dot">•</span> <b>"number"</b>
+dnl
+dnl "incr" <a href="#state_7">shift, and go to state 7</a>
+dnl "identifier" <a href="#state_8">shift, and go to state 8</a>
+dnl "number" <a href="#state_9">shift, and go to state 9</a>
+dnl "(" <a href="#state_10">shift, and go to state 10</a>
+dnl
+dnl exp <a href="#state_27">go to state 27</a>
+dnl </p>
+dnl
+dnl <h3><a name="state_27" id="state_27"></a>State 27</h3>
+dnl
+dnl <p class="pre"> <a href="#rule_10"> 10</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span> <span class="dot">•</span>
+dnl
+dnl $default <a href="#rule_10">reduce using rule 10</a> (exp)
+dnl </p>
+dnl
+dnl <div id="footer"><hr />This document was generated using
+dnl <a href="https://www.gnu.org/software/bison/" title="GNU Bison">
+dnl GNU Bison ]AT_PACKAGE_VERSION[</a>
+dnl XML Automaton Report.<br />
+dnl Verbatim copying and distribution of this entire page is
+dnl permitted in any medium, provided this notice is preserved.</div></body>
+dnl </html>
+dnl ]])
+dnl fi
+dnl
+dnl AT_BISON_OPTION_POPDEFS
+dnl AT_CLEANUP
## ------------------------ ##