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 $$3 :
10 namelist : $$3 namelist NAME
11 | NAME
12 $$4 :
13 locnamelist : $$4 $$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)
$$4 : . (12)
. reduce 12
locnamelist goto 9
$$4 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 : $$4 . $$2 namelist (13)
$$2 : . (2)
. reduce 2
$$2 goto 12
state 11
declaration : class type $$1 . $$2 namelist (3)
$$2 : . (2)
. reduce 2
$$2 goto 13
12: shift/reduce conflict (shift 14, reduce 9) on NAME
state 12
locnamelist : $$4 $$2 . namelist (13)
$$3 : . (9)
NAME shift 14
namelist goto 15
$$3 goto 16
13: shift/reduce conflict (shift 14, reduce 9) on NAME
state 13
declaration : class type $$1 $$2 . namelist (3)
$$3 : . (9)
NAME shift 14
namelist goto 17
$$3 goto 16
state 14
namelist : NAME . (11)
. reduce 11
state 15
locnamelist : $$4 $$2 namelist . (13)
. reduce 13
16: shift/reduce conflict (shift 14, reduce 9) on NAME
state 16
namelist : $$3 . namelist NAME (10)
$$3 : . (9)
NAME shift 14
namelist goto 18
$$3 goto 16
state 17
declaration : class type $$1 $$2 namelist . (3)
. reduce 3
state 18
namelist : $$3 namelist . NAME (10)
NAME shift 19
. error
state 19
namelist : $$3 namelist NAME . (10)
. reduce 10
Rules never reduced:
$$3 : (9)
State 12 contains 1 shift/reduce conflict.
State 13 contains 1 shift/reduce conflict.
State 16 contains 1 shift/reduce conflict.
7 terminals, 10 nonterminals
14 grammar rules, 20 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
16 271 $$4