0 $accept : declaration $end 1 $$1 : 2 $$2 : 3 declaration : class type $$1 $$2 namelist 4 | type locnamelist 5 class : GLOBAL 6 | LOCAL 7 type : REAL 8 | INTEGER 9 namelist : namelist NAME 10 | NAME 11 locnamelist : namelist state 0 $accept : . declaration $end (0) GLOBAL shift 1 LOCAL shift 2 REAL shift 3 INTEGER shift 4 . error declaration goto 5 class goto 6 type goto 7 state 1 class : GLOBAL . (5) . reduce 5 state 2 class : LOCAL . (6) . reduce 6 state 3 type : REAL . (7) . reduce 7 state 4 type : INTEGER . (8) . reduce 8 state 5 $accept : declaration . $end (0) $end accept state 6 declaration : class . type $$1 $$2 namelist (3) REAL shift 3 INTEGER shift 4 . error type goto 8 state 7 declaration : type . locnamelist (4) NAME shift 9 . error namelist goto 10 locnamelist goto 11 state 8 declaration : class type . $$1 $$2 namelist (3) $$1 : . (1) . reduce 1 $$1 goto 12 state 9 namelist : NAME . (10) . reduce 10 state 10 namelist : namelist . NAME (9) locnamelist : namelist . (11) NAME shift 13 $end reduce 11 state 11 declaration : type locnamelist . (4) . reduce 4 state 12 declaration : class type $$1 . $$2 namelist (3) $$2 : . (2) . reduce 2 $$2 goto 14 state 13 namelist : namelist NAME . (9) . reduce 9 state 14 declaration : class type $$1 $$2 . namelist (3) NAME shift 9 . error namelist goto 15 state 15 declaration : class type $$1 $$2 namelist . (3) namelist : namelist . NAME (9) NAME shift 13 $end reduce 3 7 terminals, 8 nonterminals 12 grammar rules, 16 states grammar parser grammar symbol# value# symbol 0 0 $end 1 256 error 2 257 GLOBAL 3 258 LOCAL 4 259 REAL 5 260 INTEGER 6 261 NAME 7 262 $accept 8 263 declaration 9 264 namelist 10 265 locnamelist 11 266 class 12 267 type 13 268 $$1 14 269 $$2