0 $accept : declaration $end
1 declaration : class type namelist
2 | type locnamelist
3 class : GLOBAL
4 | LOCAL
5 type : REAL
6 | INTEGER
7 namelist : namelist NAME
8 | NAME
9 $$1 :
10 $$2 :
11 locnamelist : $$1 $$2 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 . (3)
. reduce 3
state 2
class : LOCAL . (4)
. reduce 4
state 3
type : REAL . (5)
. reduce 5
state 4
type : INTEGER . (6)
. reduce 6
state 5
$accept : declaration . $end (0)
$end accept
state 6
declaration : class . type namelist (1)
REAL shift 3
INTEGER shift 4
. error
type goto 8
state 7
declaration : type . locnamelist (2)
$$1 : . (9)
. reduce 9
locnamelist goto 9
$$1 goto 10
state 8
declaration : class type . namelist (1)
NAME shift 11
. error
namelist goto 12
state 9
declaration : type locnamelist . (2)
. reduce 2
state 10
locnamelist : $$1 . $$2 namelist (11)
$$2 : . (10)
. reduce 10
$$2 goto 13
state 11
namelist : NAME . (8)
. reduce 8
state 12
declaration : class type namelist . (1)
namelist : namelist . NAME (7)
NAME shift 14
$end reduce 1
state 13
locnamelist : $$1 $$2 . namelist (11)
NAME shift 11
. error
namelist goto 15
state 14
namelist : namelist NAME . (7)
. reduce 7
state 15
namelist : namelist . NAME (7)
locnamelist : $$1 $$2 namelist . (11)
NAME shift 14
$end reduce 11
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