GNU Bison XML Automaton Report

input grammar: ielr_paper_fig_5_grammar.y

Table of Contents

Reductions

Nonterminals useless in grammar

Terminals unused in grammar

Rules useless in grammar

Conflicts

Grammar

0 $acceptbig_s $end 1 big_ssmall_a big_a big_b small_a 2 | small_b big_a big_b small_b 3 big_asmall_a big_c big_d big_e 4 big_bsmall_c 5 | %empty 6 big_cbig_d 7 big_dsmall_a 8 big_esmall_a 9 | %empty

Terminals, with rules where they appear

Nonterminals, with rules where they appear

Automaton

State 0

0 $accept big_s $end 1 big_s small_a big_a big_b small_a 2 | small_b big_a big_b small_b small_b shift, and go to state 1 small_a shift, and go to state 2 big_s go to state 3

State 1

2 big_ssmall_b big_a big_b small_b 3 big_a small_a big_c big_d big_e small_a shift, and go to state 4 big_a go to state 5

State 2

1 big_ssmall_a big_a big_b small_a 3 big_a small_a big_c big_d big_e small_a shift, and go to state 19 big_a go to state 6

State 3

0 $acceptbig_s $end $end shift, and go to state 7

State 4

3 big_asmall_a big_c big_d big_e 6 big_c big_d 7 big_d small_a small_a shift, and go to state 8 big_c go to state 9 big_d go to state 10

State 5

2 big_ssmall_b big_a big_b small_b 4 big_b small_c 5 | %empty [small_b] small_c shift, and go to state 11 small_b reduce using rule 5 (big_b) big_b go to state 12

State 6

1 big_ssmall_a big_a big_b small_a 4 big_b small_c 5 | %empty [small_a] small_c shift, and go to state 11 small_a reduce using rule 5 (big_b) big_b go to state 13

State 7

0 $acceptbig_s $end $default accept

State 8

7 big_dsmall_a [small_c, small_b, small_a] small_c reduce using rule 7 (big_d) small_b reduce using rule 7 (big_d) small_a reduce using rule 7 (big_d)

State 9

3 big_asmall_a big_c big_d big_e 7 big_d small_a small_a shift, and go to state 8 big_d go to state 14

State 10

6 big_cbig_d [small_a] small_a reduce using rule 6 (big_c)

State 11

4 big_bsmall_c [small_b, small_a] small_b reduce using rule 4 (big_b) small_a reduce using rule 4 (big_b)

State 12

2 big_ssmall_b big_a big_b small_b small_b shift, and go to state 15

State 13

1 big_ssmall_a big_a big_b small_a small_a shift, and go to state 16

State 14

3 big_asmall_a big_c big_d big_e 8 big_e small_a 9 | %empty [small_c, small_b] small_a shift, and go to state 17 small_c reduce using rule 9 (big_e) small_b reduce using rule 9 (big_e) big_e go to state 18

State 15

2 big_ssmall_b big_a big_b small_b [$end] $end reduce using rule 2 (big_s)

State 16

1 big_ssmall_a big_a big_b small_a [$end] $end reduce using rule 1 (big_s)

State 17

8 big_esmall_a [small_c, small_b, small_a] small_c reduce using rule 8 (big_e) small_b reduce using rule 8 (big_e) small_a reduce using rule 8 (big_e)

State 18

3 big_asmall_a big_c big_d big_e [small_c, small_b, small_a] small_c reduce using rule 3 (big_a) small_b reduce using rule 3 (big_a) small_a reduce using rule 3 (big_a)

State 19

3 big_asmall_a big_c big_d big_e 6 big_c big_d 7 big_d small_a small_a shift, and go to state 8 big_c go to state 20 big_d go to state 10

State 20

3 big_asmall_a big_c big_d big_e 7 big_d small_a small_a shift, and go to state 8 big_d go to state 21

State 21

3 big_asmall_a big_c big_d big_e 8 big_e small_a 9 | %empty [small_c, small_a] small_c reduce using rule 9 (big_e) small_a reduce using rule 9 (big_e) big_e go to state 18 Conflict between rule 9 and token small_a resolved as reduce (small_a < BAKA).