mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-15 15:23:02 +00:00
Use $accept and $end, as BYacc and BTYacc do, instead of $axiom and $.
* src/symtab.h, src/symtab.c (eoftoken, axiom): Rename as... (endtoken, accept): these. * src/reader.c (reader): Set endtoken's default tag to "$end". Set undeftoken's tag to "$undefined" instead of "$undefined.". * doc/bison.texinfo (Table of Symbols): Mention $accept and $end. Adjust.
This commit is contained in:
@@ -150,7 +150,7 @@ AT_CHECK([cat input.output], [],
|
||||
|
||||
Grammar
|
||||
|
||||
0 $axiom: exp $
|
||||
0 $accept: exp $end
|
||||
|
||||
1 exp: exp OP exp
|
||||
2 | NUM
|
||||
@@ -158,7 +158,7 @@ Grammar
|
||||
|
||||
Terminals, with rules where they appear
|
||||
|
||||
$ (0) 0
|
||||
$end (0) 0
|
||||
error (256)
|
||||
NUM (258) 2
|
||||
OP (259) 1
|
||||
@@ -166,7 +166,7 @@ OP (259) 1
|
||||
|
||||
Nonterminals, with rules where they appear
|
||||
|
||||
$axiom (5)
|
||||
$accept (5)
|
||||
on left: 0
|
||||
exp (6)
|
||||
on left: 1 2, on right: 0 1
|
||||
@@ -174,7 +174,7 @@ exp (6)
|
||||
|
||||
state 0
|
||||
|
||||
0 $axiom: . exp $
|
||||
0 $accept: . exp $end
|
||||
1 exp: . exp OP exp
|
||||
2 | . NUM
|
||||
|
||||
@@ -192,16 +192,16 @@ state 1
|
||||
|
||||
state 2
|
||||
|
||||
0 $axiom: exp . $
|
||||
0 $accept: exp . $end
|
||||
1 exp: exp . OP exp
|
||||
|
||||
$ shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
$end shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
|
||||
|
||||
state 3
|
||||
|
||||
0 $axiom: exp $ .
|
||||
0 $accept: exp $end .
|
||||
|
||||
$default accept
|
||||
|
||||
@@ -219,8 +219,8 @@ state 4
|
||||
|
||||
state 5
|
||||
|
||||
1 exp: exp . OP exp [$, OP]
|
||||
1 | exp OP exp . [$, OP]
|
||||
1 exp: exp . OP exp [$end, OP]
|
||||
1 | exp OP exp . [$end, OP]
|
||||
|
||||
OP shift, and go to state 4
|
||||
|
||||
@@ -253,7 +253,7 @@ AT_CHECK([bison input.y -o input.c --report=all])
|
||||
AT_CHECK([cat input.output], [],
|
||||
[[Grammar
|
||||
|
||||
0 $axiom: exp $
|
||||
0 $accept: exp $end
|
||||
|
||||
1 exp: exp OP exp
|
||||
2 | NUM
|
||||
@@ -261,7 +261,7 @@ AT_CHECK([cat input.output], [],
|
||||
|
||||
Terminals, with rules where they appear
|
||||
|
||||
$ (0) 0
|
||||
$end (0) 0
|
||||
error (256)
|
||||
NUM (258) 2
|
||||
OP (259) 1
|
||||
@@ -269,7 +269,7 @@ OP (259) 1
|
||||
|
||||
Nonterminals, with rules where they appear
|
||||
|
||||
$axiom (5)
|
||||
$accept (5)
|
||||
on left: 0
|
||||
exp (6)
|
||||
on left: 1 2, on right: 0 1
|
||||
@@ -277,7 +277,7 @@ exp (6)
|
||||
|
||||
state 0
|
||||
|
||||
0 $axiom: . exp $
|
||||
0 $accept: . exp $end
|
||||
1 exp: . exp OP exp
|
||||
2 | . NUM
|
||||
|
||||
@@ -295,16 +295,16 @@ state 1
|
||||
|
||||
state 2
|
||||
|
||||
0 $axiom: exp . $
|
||||
0 $accept: exp . $end
|
||||
1 exp: exp . OP exp
|
||||
|
||||
$ shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
$end shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
|
||||
|
||||
state 3
|
||||
|
||||
0 $axiom: exp $ .
|
||||
0 $accept: exp $end .
|
||||
|
||||
$default accept
|
||||
|
||||
@@ -322,8 +322,8 @@ state 4
|
||||
|
||||
state 5
|
||||
|
||||
1 exp: exp . OP exp [$, OP]
|
||||
1 | exp OP exp . [$, OP]
|
||||
1 exp: exp . OP exp [$end, OP]
|
||||
1 | exp OP exp . [$end, OP]
|
||||
|
||||
$default reduce using rule 1 (exp)
|
||||
Conflict between rule 1 and token OP resolved as reduce (%left OP).
|
||||
@@ -339,19 +339,19 @@ AT_CLEANUP
|
||||
# When there are RR conflicts, some rules are disabled. Usually it is
|
||||
# simply displayed as:
|
||||
#
|
||||
# $ reduce using rule 3 (num)
|
||||
# $ [reduce using rule 4 (id)]
|
||||
# $end reduce using rule 3 (num)
|
||||
# $end [reduce using rule 4 (id)]
|
||||
#
|
||||
# But when `reduce 3' is the default action, we'd produce:
|
||||
#
|
||||
# $ [reduce using rule 4 (id)]
|
||||
# $end [reduce using rule 4 (id)]
|
||||
# $default reduce using rule 3 (num)
|
||||
#
|
||||
# In this precise case (a reduction is masked by the default
|
||||
# reduction), we make the `reduce 3' explicit:
|
||||
#
|
||||
# $ reduce using rule 3 (num)
|
||||
# $ [reduce using rule 4 (id)]
|
||||
# $end reduce using rule 3 (num)
|
||||
# $end [reduce using rule 4 (id)]
|
||||
# $default reduce using rule 3 (num)
|
||||
#
|
||||
# Maybe that's not the best display, but then, please propose something
|
||||
@@ -379,7 +379,7 @@ AT_CHECK([cat input.output], [],
|
||||
|
||||
Grammar
|
||||
|
||||
0 $axiom: exp $
|
||||
0 $accept: exp $end
|
||||
|
||||
1 exp: num
|
||||
2 | id
|
||||
@@ -391,14 +391,14 @@ Grammar
|
||||
|
||||
Terminals, with rules where they appear
|
||||
|
||||
$ (0) 0
|
||||
$end (0) 0
|
||||
'0' (48) 3 4
|
||||
error (256)
|
||||
|
||||
|
||||
Nonterminals, with rules where they appear
|
||||
|
||||
$axiom (4)
|
||||
$accept (4)
|
||||
on left: 0
|
||||
exp (5)
|
||||
on left: 1 2, on right: 0
|
||||
@@ -410,7 +410,7 @@ id (7)
|
||||
|
||||
state 0
|
||||
|
||||
0 $axiom: . exp $
|
||||
0 $accept: . exp $end
|
||||
1 exp: . num
|
||||
2 | . id
|
||||
3 num: . '0'
|
||||
@@ -425,19 +425,19 @@ state 0
|
||||
|
||||
state 1
|
||||
|
||||
3 num: '0' . [$]
|
||||
4 id: '0' . [$]
|
||||
3 num: '0' . [$end]
|
||||
4 id: '0' . [$end]
|
||||
|
||||
$ reduce using rule 3 (num)
|
||||
$ [reduce using rule 4 (id)]
|
||||
$end reduce using rule 3 (num)
|
||||
$end [reduce using rule 4 (id)]
|
||||
$default reduce using rule 3 (num)
|
||||
|
||||
|
||||
state 2
|
||||
|
||||
0 $axiom: exp . $
|
||||
0 $accept: exp . $end
|
||||
|
||||
$ shift, and go to state 5
|
||||
$end shift, and go to state 5
|
||||
|
||||
|
||||
state 3
|
||||
@@ -456,7 +456,7 @@ state 4
|
||||
|
||||
state 5
|
||||
|
||||
0 $axiom: exp $ .
|
||||
0 $accept: exp $end .
|
||||
|
||||
$default accept
|
||||
]])
|
||||
|
||||
Reference in New Issue
Block a user