Grammar rule 1 line -> label direct rule 2 line -> label instr rule 3 label -> ID rule 4 label -> /* empty */ rule 5 direct -> START addr rule 6 instr -> ADD addr rule 7 addr -> INT rule 8 addr -> ID Terminals, with rules where they appear $ (-1) error (256) ID (258) 3 8 INT (259) 7 START (260) 5 ADD (261) 6 Nonterminals, with rules where they appear line (7) on left: 1 2 label (8) on left: 3 4, on right: 1 2 direct (9) on left: 5, on right: 1 instr (10) on left: 6, on right: 2 addr (11) on left: 7 8, on right: 5 6 state 0 ID shift, and go to state 1 $default reduce using rule 4 (label) line go to state 11 label go to state 2 state 1 label -> ID . (rule 3) $default reduce using rule 3 (label) state 2 line -> label . direct (rule 1) line -> label . instr (rule 2) START shift, and go to state 3 ADD shift, and go to state 4 direct go to state 5 instr go to state 6 state 3 direct -> START . addr (rule 5) ID shift, and go to state 7 INT shift, and go to state 8 addr go to state 9 state 4 instr -> ADD . addr (rule 6) ID shift, and go to state 7 INT shift, and go to state 8 addr go to state 10 state 5 line -> label direct . (rule 1) $default reduce using rule 1 (line) state 6 line -> label instr . (rule 2) $default reduce using rule 2 (line) state 7 addr -> ID . (rule 8) $default reduce using rule 8 (addr) state 8 addr -> INT . (rule 7) $default reduce using rule 7 (addr) state 9 direct -> START addr . (rule 5) $default reduce using rule 5 (direct) state 10 instr -> ADD addr . (rule 6) $default reduce using rule 6 (instr) state 11 $ go to state 12 state 12 $ go to state 13 state 13 $default accept