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 $$3 :
12 locnamelist : $$3 $$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 . (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)
$$3 : . (11)
. reduce 11
locnamelist goto 9
$$3 goto 10
state 8
declaration : class type . $$1 $$2 namelist (3)
$$1 : . (1)
. reduce 1
$$1 goto 11
state 9
declaration : type locnamelist . (4)
. reduce 4
state 10
locnamelist : $$3 . $$2 namelist (12)
$$2 : . (2)
. reduce 2
$$2 goto 12
state 11
declaration : class type $$1 . $$2 namelist (3)
$$2 : . (2)
. reduce 2
$$2 goto 13
state 12
locnamelist : $$3 $$2 . namelist (12)
NAME shift 14
. error
namelist goto 15
state 13
declaration : class type $$1 $$2 . namelist (3)
NAME shift 14
. error
namelist goto 16
state 14
namelist : NAME . (10)
. reduce 10
state 15
namelist : namelist . NAME (9)
locnamelist : $$3 $$2 namelist . (12)
NAME shift 17
$end reduce 12
state 16
declaration : class type $$1 $$2 namelist . (3)
namelist : namelist . NAME (9)
NAME shift 17
$end reduce 3
state 17
namelist : namelist NAME . (9)
. reduce 9
7 terminals, 9 nonterminals
13 grammar rules, 18 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
15 270 $$3