state 14 contains 1 shift/reduce conflicts
state 28 contains 1 shift/reduce conflicts
-------- Grammar --------
rule 1 expr: pair
rule 2 expr: atom
rule 3 pair: "(" list ")"
rule 4 pair: quote
rule 5 pair: function
rule 6 pair: assign
rule 7 list: expr
rule 8 list: expr "." expr
rule 9 list: expr list
rule 10 quote: "'" expr
rule 11 function: "{" "|" params "|" expr "}"
rule 12 assign: expr "=" expr ";" expr
rule 13 params: list
rule 14 params: "." expr
------- Symbols -------
**Nonterminals, with rules where they appear
$start (12)
on right:
on left :
expr (13)
on right: 7 8 9 10 11 12 14
on left : 1 2
pair (14)
on right: 1
on left : 3 4 5 6
list (15)
on right: 3 9 13
on left : 7 8 9
quote (16)
on right: 4
on left : 10
function (17)
on right: 5
on left : 11
assign (18)
on right: 6
on left : 12
params (19)
on right: 11
on left : 13 14
**Terminals, with rules where they appear
$end (0)
error (1)
atom (2) 2
"(" (3) 3
")" (4) 3
"." (5) 8 14
"'" (6) 10
"{" (7) 11
"|" (8) 11
"}" (9) 11
"=" (10) 12
";" (11) 12
--------- State ---------
state 0
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 2
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 1
2) expr : atom _
$default reduce using rule 2 (expr)
state 2
12) assign : expr _ "=" expr ";" expr
$end shift, and go to state 10
"=" shift, and go to state 11
state 3
3) pair : "(" _ list ")"
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 12
pair go to state 4
list go to state 13
quote go to state 5
function go to state 7
assign go to state 9
state 4
1) expr : pair _
$default reduce using rule 1 (expr)
state 5
4) pair : quote _
$default reduce using rule 4 (pair)
state 6
10) quote : "'" _ expr
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 14
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 7
5) pair : function _
$default reduce using rule 5 (pair)
state 8
11) function : "{" _ "|" params "|" expr "}"
"|" shift, and go to state 15
state 9
6) pair : assign _
$default reduce using rule 6 (pair)
state 10
$end shift, and go to state 16
state 11
12) assign : expr "=" _ expr ";" expr
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 17
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 12
7) list : expr _
8) list : expr _ "." expr
9) list : expr _ list
12) assign : expr _ "=" expr ";" expr
atom shift, and go to state 1
"(" shift, and go to state 3
"." shift, and go to state 19
"'" shift, and go to state 6
"{" shift, and go to state 8
"=" shift, and go to state 11
$default reduce using rule 7 (list)
expr go to state 12
pair go to state 4
list go to state 18
quote go to state 5
function go to state 7
assign go to state 9
state 13
3) pair : "(" list _ ")"
")" shift, and go to state 20
state 14
10) quote : "'" expr _
12) assign : expr _ "=" expr ";" expr
"=" shift, and go to state 11
"=" [reduce using rule 10 (quote)]
$default reduce using rule 10 (quote)
state 15
11) function : "{" "|" _ params "|" expr "}"
atom shift, and go to state 1
"(" shift, and go to state 3
"." shift, and go to state 22
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 12
pair go to state 4
list go to state 21
quote go to state 5
function go to state 7
assign go to state 9
params go to state 23
state 16
$default accept
state 17
12) assign : expr _ "=" expr ";" expr
12) assign : expr "=" expr _ ";" expr
"=" shift, and go to state 11
";" shift, and go to state 24
state 18
9) list : expr list _
$default reduce using rule 9 (list)
state 19
8) list : expr "." _ expr
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 25
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 20
3) pair : "(" list ")" _
$default reduce using rule 3 (pair)
state 21
13) params : list _
$default reduce using rule 13 (params)
state 22
14) params : "." _ expr
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 26
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 23
11) function : "{" "|" params _ "|" expr "}"
"|" shift, and go to state 27
state 24
12) assign : expr "=" expr ";" _ expr
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 28
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 25
8) list : expr "." expr _
12) assign : expr _ "=" expr ";" expr
"=" shift, and go to state 11
$default reduce using rule 8 (list)
state 26
12) assign : expr _ "=" expr ";" expr
14) params : "." expr _
"=" shift, and go to state 11
$default reduce using rule 14 (params)
state 27
11) function : "{" "|" params "|" _ expr "}"
atom shift, and go to state 1
"(" shift, and go to state 3
"'" shift, and go to state 6
"{" shift, and go to state 8
expr go to state 29
pair go to state 4
quote go to state 5
function go to state 7
assign go to state 9
state 28
12) assign : expr _ "=" expr ";" expr
12) assign : expr "=" expr ";" expr _
"=" shift, and go to state 11
"=" [reduce using rule 12 (assign)]
$default reduce using rule 12 (assign)
state 29
11) function : "{" "|" params "|" expr _ "}"
12) assign : expr _ "=" expr ";" expr
"}" shift, and go to state 30
"=" shift, and go to state 11
state 30
11) function : "{" "|" params "|" expr "}" _
$default reduce using rule 11 (function)