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:
Akim Demaille
2002-07-29 17:30:33 +00:00
parent 1bfb97dba5
commit 88bce5a2ef
15 changed files with 163 additions and 131 deletions

View File

@@ -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
]])