mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-12 13:53:03 +00:00
* src/print.c (print_shifts, print_gotos): Merge into...
(print_transitions): this. (print_transitions, print_errs, print_reductions): Align the lookaheads columns. (print_core, print_transitions, print_errs, print_state, print_grammar): Output empty lines separator before, not after. (state_default_rule_compute): Rename as... (state_default_rule): this. * tests/conflicts.at (Defaulted Conflicted Reduction), (Unresolved SR Conflicts, Resolved SR Conflicts): Adjust. * tests/regression.at (Rule Line Numbers, Web2c Report): Adjust.
This commit is contained in:
@@ -178,18 +178,16 @@ state 0
|
||||
1 exp: . exp OP exp
|
||||
2 | . NUM
|
||||
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 2
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 2
|
||||
|
||||
|
||||
state 1
|
||||
|
||||
2 exp: NUM .
|
||||
|
||||
$default reduce using rule 2 (exp)
|
||||
|
||||
$default reduce using rule 2 (exp)
|
||||
|
||||
|
||||
state 2
|
||||
@@ -197,9 +195,8 @@ state 2
|
||||
0 $axiom: exp . $
|
||||
1 exp: exp . OP exp
|
||||
|
||||
$ shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
|
||||
$ shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
|
||||
|
||||
state 3
|
||||
@@ -215,10 +212,9 @@ state 4
|
||||
1 | exp OP . exp
|
||||
2 | . NUM
|
||||
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 5
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 5
|
||||
|
||||
|
||||
state 5
|
||||
@@ -226,13 +222,10 @@ state 5
|
||||
1 exp: exp . OP exp [$, OP]
|
||||
1 | exp OP exp . [$, OP]
|
||||
|
||||
OP shift, and go to state 4
|
||||
|
||||
OP [reduce using rule 1 (exp)]
|
||||
$default reduce using rule 1 (exp)
|
||||
|
||||
|
||||
OP shift, and go to state 4
|
||||
|
||||
OP [reduce using rule 1 (exp)]
|
||||
$default reduce using rule 1 (exp)
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -288,18 +281,16 @@ state 0
|
||||
1 exp: . exp OP exp
|
||||
2 | . NUM
|
||||
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 2
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 2
|
||||
|
||||
|
||||
state 1
|
||||
|
||||
2 exp: NUM .
|
||||
|
||||
$default reduce using rule 2 (exp)
|
||||
|
||||
$default reduce using rule 2 (exp)
|
||||
|
||||
|
||||
state 2
|
||||
@@ -307,9 +298,8 @@ state 2
|
||||
0 $axiom: exp . $
|
||||
1 exp: exp . OP exp
|
||||
|
||||
$ shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
|
||||
$ shift, and go to state 3
|
||||
OP shift, and go to state 4
|
||||
|
||||
|
||||
state 3
|
||||
@@ -325,10 +315,9 @@ state 4
|
||||
1 | exp OP . exp
|
||||
2 | . NUM
|
||||
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 5
|
||||
NUM shift, and go to state 1
|
||||
|
||||
exp go to state 5
|
||||
|
||||
|
||||
state 5
|
||||
@@ -336,12 +325,8 @@ state 5
|
||||
1 exp: exp . OP exp [$, OP]
|
||||
1 | exp OP exp . [$, OP]
|
||||
|
||||
|
||||
$default reduce using rule 1 (exp)
|
||||
|
||||
$default reduce using rule 1 (exp)
|
||||
Conflict between rule 2 and token OP resolved as shift (%left OP).
|
||||
|
||||
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -431,12 +416,11 @@ state 0
|
||||
3 num: . '0'
|
||||
4 id: . '0'
|
||||
|
||||
'0' shift, and go to state 1
|
||||
|
||||
exp go to state 2
|
||||
num go to state 3
|
||||
id go to state 4
|
||||
'0' shift, and go to state 1
|
||||
|
||||
exp go to state 2
|
||||
num go to state 3
|
||||
id go to state 4
|
||||
|
||||
|
||||
state 1
|
||||
@@ -444,34 +428,30 @@ state 1
|
||||
3 num: '0' . [$]
|
||||
4 id: '0' . [$]
|
||||
|
||||
$ reduce using rule 3 (num)
|
||||
$ [reduce using rule 4 (id)]
|
||||
$default reduce using rule 3 (num)
|
||||
|
||||
$ reduce using rule 3 (num)
|
||||
$ [reduce using rule 4 (id)]
|
||||
$default reduce using rule 3 (num)
|
||||
|
||||
|
||||
state 2
|
||||
|
||||
0 $axiom: exp . $
|
||||
|
||||
$ shift, and go to state 5
|
||||
|
||||
$ shift, and go to state 5
|
||||
|
||||
|
||||
state 3
|
||||
|
||||
1 exp: num .
|
||||
|
||||
$default reduce using rule 1 (exp)
|
||||
|
||||
$default reduce using rule 1 (exp)
|
||||
|
||||
|
||||
state 4
|
||||
|
||||
2 exp: id .
|
||||
|
||||
$default reduce using rule 2 (exp)
|
||||
|
||||
$default reduce using rule 2 (exp)
|
||||
|
||||
|
||||
state 5
|
||||
@@ -479,8 +459,6 @@ state 5
|
||||
0 $axiom: exp $ .
|
||||
|
||||
$default accept
|
||||
|
||||
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
@@ -186,47 +186,42 @@ state 0
|
||||
|
||||
0 $axiom: . expr $
|
||||
|
||||
'a' shift, and go to state 1
|
||||
'a' shift, and go to state 1
|
||||
|
||||
$default reduce using rule 3 (@2)
|
||||
|
||||
expr go to state 2
|
||||
@2 go to state 3
|
||||
$default reduce using rule 3 (@2)
|
||||
|
||||
expr go to state 2
|
||||
@2 go to state 3
|
||||
|
||||
|
||||
state 1
|
||||
|
||||
2 expr: 'a' . @1 'b'
|
||||
|
||||
$default reduce using rule 1 (@1)
|
||||
|
||||
@1 go to state 4
|
||||
$default reduce using rule 1 (@1)
|
||||
|
||||
@1 go to state 4
|
||||
|
||||
|
||||
state 2
|
||||
|
||||
0 $axiom: expr . $
|
||||
|
||||
$ shift, and go to state 5
|
||||
|
||||
$ shift, and go to state 5
|
||||
|
||||
|
||||
state 3
|
||||
|
||||
4 expr: @2 . 'c'
|
||||
|
||||
'c' shift, and go to state 6
|
||||
|
||||
'c' shift, and go to state 6
|
||||
|
||||
|
||||
state 4
|
||||
|
||||
2 expr: 'a' @1 . 'b'
|
||||
|
||||
'b' shift, and go to state 7
|
||||
|
||||
'b' shift, and go to state 7
|
||||
|
||||
|
||||
state 5
|
||||
@@ -240,18 +235,14 @@ state 6
|
||||
|
||||
4 expr: @2 'c' .
|
||||
|
||||
$default reduce using rule 4 (expr)
|
||||
|
||||
$default reduce using rule 4 (expr)
|
||||
|
||||
|
||||
state 7
|
||||
|
||||
2 expr: 'a' @1 'b' .
|
||||
|
||||
$default reduce using rule 2 (expr)
|
||||
|
||||
|
||||
|
||||
$default reduce using rule 2 (expr)
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -378,23 +369,33 @@ CONST_DEC:
|
||||
]])
|
||||
|
||||
AT_CHECK([bison -v input.y])
|
||||
sed -n 's/ *$//;/^$/!p' input.output >input.report
|
||||
AT_CHECK([cat input.report], 0,
|
||||
AT_CHECK([cat input.output], 0,
|
||||
[[Grammar
|
||||
|
||||
0 $axiom: CONST_DEC_PART $
|
||||
|
||||
1 CONST_DEC_PART: CONST_DEC_LIST
|
||||
|
||||
2 CONST_DEC_LIST: CONST_DEC
|
||||
3 | CONST_DEC_LIST CONST_DEC
|
||||
|
||||
4 @1: /* empty */
|
||||
|
||||
5 CONST_DEC: @1 undef_id_tok '=' const_id_tok ';'
|
||||
|
||||
|
||||
Terminals, with rules where they appear
|
||||
|
||||
$ (0) 0
|
||||
';' (59) 5
|
||||
'=' (61) 5
|
||||
error (256)
|
||||
undef_id_tok (258) 5
|
||||
const_id_tok (259) 5
|
||||
|
||||
|
||||
Nonterminals, with rules where they appear
|
||||
|
||||
$axiom (7)
|
||||
on left: 0
|
||||
CONST_DEC_PART (8)
|
||||
@@ -405,47 +406,93 @@ CONST_DEC (10)
|
||||
on left: 5, on right: 2 3
|
||||
@1 (11)
|
||||
on left: 4, on right: 5
|
||||
|
||||
|
||||
state 0
|
||||
|
||||
0 $axiom: . CONST_DEC_PART $
|
||||
$default reduce using rule 4 (@1)
|
||||
CONST_DEC_PART go to state 1
|
||||
CONST_DEC_LIST go to state 2
|
||||
CONST_DEC go to state 3
|
||||
@1 go to state 4
|
||||
|
||||
$default reduce using rule 4 (@1)
|
||||
|
||||
CONST_DEC_PART go to state 1
|
||||
CONST_DEC_LIST go to state 2
|
||||
CONST_DEC go to state 3
|
||||
@1 go to state 4
|
||||
|
||||
|
||||
state 1
|
||||
|
||||
0 $axiom: CONST_DEC_PART . $
|
||||
$ shift, and go to state 5
|
||||
|
||||
$ shift, and go to state 5
|
||||
|
||||
|
||||
state 2
|
||||
|
||||
1 CONST_DEC_PART: CONST_DEC_LIST .
|
||||
3 CONST_DEC_LIST: CONST_DEC_LIST . CONST_DEC
|
||||
undef_id_tok reduce using rule 4 (@1)
|
||||
$default reduce using rule 1 (CONST_DEC_PART)
|
||||
CONST_DEC go to state 6
|
||||
@1 go to state 4
|
||||
|
||||
undef_id_tok reduce using rule 4 (@1)
|
||||
$default reduce using rule 1 (CONST_DEC_PART)
|
||||
|
||||
CONST_DEC go to state 6
|
||||
@1 go to state 4
|
||||
|
||||
|
||||
state 3
|
||||
|
||||
2 CONST_DEC_LIST: CONST_DEC .
|
||||
$default reduce using rule 2 (CONST_DEC_LIST)
|
||||
|
||||
$default reduce using rule 2 (CONST_DEC_LIST)
|
||||
|
||||
|
||||
state 4
|
||||
|
||||
5 CONST_DEC: @1 . undef_id_tok '=' const_id_tok ';'
|
||||
undef_id_tok shift, and go to state 7
|
||||
|
||||
undef_id_tok shift, and go to state 7
|
||||
|
||||
|
||||
state 5
|
||||
|
||||
0 $axiom: CONST_DEC_PART $ .
|
||||
|
||||
$default accept
|
||||
|
||||
|
||||
state 6
|
||||
|
||||
3 CONST_DEC_LIST: CONST_DEC_LIST CONST_DEC .
|
||||
$default reduce using rule 3 (CONST_DEC_LIST)
|
||||
|
||||
$default reduce using rule 3 (CONST_DEC_LIST)
|
||||
|
||||
|
||||
state 7
|
||||
|
||||
5 CONST_DEC: @1 undef_id_tok . '=' const_id_tok ';'
|
||||
'=' shift, and go to state 8
|
||||
|
||||
'=' shift, and go to state 8
|
||||
|
||||
|
||||
state 8
|
||||
|
||||
5 CONST_DEC: @1 undef_id_tok '=' . const_id_tok ';'
|
||||
const_id_tok shift, and go to state 9
|
||||
|
||||
const_id_tok shift, and go to state 9
|
||||
|
||||
|
||||
state 9
|
||||
|
||||
5 CONST_DEC: @1 undef_id_tok '=' const_id_tok . ';'
|
||||
';' shift, and go to state 10
|
||||
|
||||
';' shift, and go to state 10
|
||||
|
||||
|
||||
state 10
|
||||
|
||||
5 CONST_DEC: @1 undef_id_tok '=' const_id_tok ';' .
|
||||
$default reduce using rule 5 (CONST_DEC)
|
||||
|
||||
$default reduce using rule 5 (CONST_DEC)
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
|
||||
Reference in New Issue
Block a user