Terminals which are not used:
'<='
'[]'
'...'
'at'
'attr'
'catch'
'choice'
'class'
'cond'
'declare'
'define'
'dis'
'elsecase'
'elseif'
'elseof'
'export'
'fail'
'feat'
'finally'
'from'
'functor'
'import'
'lock'
'meth'
'not'
'or'
'prop'
'prepare'
'raise'
'require'
'thread'
'try'
'<-'
'orelse'
'andthen'
'Compare'
'FdCompare'
'FdIn'
'FdMul'
'OtherMul'
','
'~'
'.'
'^'
'@'
'!!'
Conflict in state 68 between rule 73 and token '|' resolved as shift.
Conflict in state 68 between rule 73 and token 'Add' resolved as shift.
Conflict in state 69 between rule 56 and token '|' resolved as reduce.
Conflict in state 69 between rule 56 and token 'Add' resolved as reduce.
Conflict in state 123 between rule 39 and token '|' resolved as shift.
Conflict in state 140 between rule 29 and token '|' resolved as shift.
Precedence for token `'='' ignored.
Precedence for token `'<-'' ignored.
Precedence for token `'orelse'' ignored.
Precedence for token `'andthen'' ignored.
Precedence for token `'Compare'' ignored.
Precedence for token `'FdCompare'' ignored.
Precedence for token `'FdIn'' ignored.
Precedence for token `'FdMul'' ignored.
Precedence for token `'OtherMul'' ignored.
Precedence for token `','' ignored.
Precedence for token `'~'' ignored.
Precedence for token `'.'' ignored.
Precedence for token `'^'' ignored.
Precedence for token `'@'' ignored.
Precedence for token `'!!'' ignored.
State 66 contains 1 shift/reduce conflict.
State 68 contains 1 shift/reduce conflict.
State 69 contains 1 shift/reduce conflict.
State 70 contains 3 shift/reduce conflicts.
State 71 contains 1 shift/reduce conflict.
State 77 contains 1 shift/reduce conflict.
State 110 contains 19 reduce/reduce conflicts.
State 120 contains 3 shift/reduce conflicts and 4 reduce/reduce conflicts.
State 124 contains 3 shift/reduce conflicts.
State 149 contains 2 shift/reduce conflicts.
State 161 contains 1 shift/reduce conflict.
Grammar
rule 1 Syn291 -> /* empty */
rule 2 Syn290 -> /* empty */
rule 3 Syn266 -> /* empty */
rule 4 Syn266 -> Syn266 Formal
rule 5 Syn243 -> /* empty */
rule 6 Syn243 -> Syn243 Expression
rule 7 Syn213 -> /* empty */
rule 8 Syn212 -> /* empty */
rule 9 Syn211 -> /* empty */
rule 10 Syn195 -> Expression
rule 11 Syn195 -> Syn195 '#' Expression
rule 12 Syn169 -> /* empty */
rule 13 Syn169 -> Syn169 Expression
rule 14 Syn146 -> /* empty */
rule 15 Syn146 -> Syn146 Formal
rule 16 Syn122 -> Expression
rule 17 Syn122 -> Syn122 Expression
rule 18 Syn98 -> Statement
rule 19 Syn98 -> Feature ':' Statement
rule 20 Syn79 -> /* empty */
rule 21 Syn79 -> Syn79 Syn98
rule 22 Syn57 -> Expression
rule 23 Syn57 -> Syn57 '#' Expression
rule 24 Syn26 -> Formal2
rule 25 Syn26 -> Syn26 '#' Formal2
rule 26 Int -> 'INT' Coord
rule 27 Formal2 -> Atom
rule 28 Formal2 -> VariableId
rule 29 Formal -> Formal '|' Formal
rule 30 Formal -> Formal2
rule 31 Formal -> Formal2 '#' Syn26
rule 32 Coord -> /* empty */
rule 33 ThisCoord -> /* empty */
rule 34 Number -> 'INT'
rule 35 Number -> 'FLOAT'
rule 36 String -> 'STRING'
rule 37 VariableId -> 'VARIABLE'
rule 38 Atom -> 'ATOM'
rule 39 Pattern -> Pattern '|' Pattern
rule 40 Pattern -> Expression
rule 41 Pattern -> Expression '#' Syn57
rule 42 Feature -> Atom
rule 43 Feature -> VariableId
rule 44 Feature -> Int
rule 45 Feature -> 'unit'
rule 46 Feature -> 'true'
rule 47 Feature -> 'false'
rule 48 RecordArguments -> Syn79
rule 49 Label -> 'ATOM()' Coord
rule 50 Label -> 'VARIABLE()' Coord
rule 51 Label -> 'unit()'
rule 52 Label -> 'true()'
rule 53 Label -> 'false()'
rule 54 InSequence -> ThisCoord Sequence 'in' Sequence
rule 55 InSequence -> ThisCoord Sequence
rule 56 Expression -> Expression 'Add' Expression
rule 57 Expression -> '(' Expression ')'
rule 58 Expression -> VariableId
rule 59 Expression -> Atom
rule 60 Expression -> 'true'
rule 61 Expression -> 'false'
rule 62 Expression -> 'self'
rule 63 Expression -> String
rule 64 Expression -> Number
rule 65 Expression -> Label '(' RecordArguments ')'
rule 66 Syn350 -> /* empty */
rule 67 Expression -> '[' Syn122 Syn350 Syn211 ']'
rule 68 Expression -> 'case' Expression 'of' Pattern 'then' Expression 'else' Expression 'end'
rule 69 Syn353 -> /* empty */
rule 70 Expression -> 'proc' '{' '$' Syn146 Syn353 Syn212 '}' InSequence 'end'
rule 71 Syn355 -> /* empty */
rule 72 Expression -> '{' Expression Syn169 Syn355 Syn213 '}'
rule 73 Expression -> Expression '|' Expression
rule 74 Expression -> Expression '#' Syn195
rule 75 InStatement -> Pattern '=' Expression 'in' Sequence
rule 76 InStatement -> Sequence
rule 77 Statement -> 'skip'
rule 78 Statement -> 'local' VariableId 'in' InStatement 'end'
rule 79 Statement -> VariableId '=' Expression
rule 80 Statement -> 'if' Expression 'then' InStatement 'else' InStatement 'end'
rule 81 Statement -> 'case' Expression 'of' Pattern 'then' InStatement 'else' InStatement 'end'
rule 82 Syn367 -> /* empty */
rule 83 Statement -> '{' Expression Syn243 Syn367 Syn290 '}'
rule 84 Syn369 -> /* empty */
rule 85 Statement -> 'fun' '{' VariableId Syn266 Syn369 Syn291 '}' Expression 'end'
rule 86 Sequence -> Statement
rule 87 Sequence -> Statement Sequence
rule 88 file -> Sequence
rule 89 Syn298 -> startToken1 file
Terminals, with rules where they appear
'EOF'
error
'$undefined.'
'ATOM' 38
'ATOM()' 49
'FLOAT' 35
'INT' 26 34
'STRING' 36
'VARIABLE' 37
'VARIABLE()' 50
'<='
'[]'
'...'
'at'
'attr'
'case' 68 81
'catch'
'choice'
'class'
'cond'
'declare'
'define'
'dis'
'else' 68 80 81
'elsecase'
'elseif'
'elseof'
'end' 68 70 78 80 81 85
'export'
'fail'
'false' 47 61
'false()' 53
'feat'
'finally'
'from'
'fun' 85
'functor'
'if' 80
'in' 54 75 78
'import'
'local' 78
'lock'
'meth'
'not'
'of' 68 81
'or'
'proc' 70
'prop'
'prepare'
'raise'
'require'
'self' 62
'skip' 77
'then' 68 80 81
'thread'
'true' 46 60
'true()' 52
'try'
'unit' 45
'unit()' 51
'=' 75 79
'<-'
'orelse'
'andthen'
'Compare'
'FdCompare'
'FdIn'
'|' 29 39 73
'Add' 56
'FdMul'
'OtherMul'
','
'~'
'.'
'^'
'@'
'!!'
startToken1 89
'#' 11 23 25 31 41 74
':' 19
'(' 57 65
')' 57 65
'[' 67
']' 67
'{' 70 72 83 85
'$' 70
'}' 70 72 83 85
Nonterminals, with rules where they appear
Syn291 (87)
on left: 1, on right: 85
Syn290 (88)
on left: 2, on right: 83
Syn266 (89)
on left: 3 4, on right: 4 85
Formal (90)
on left: 29 30 31, on right: 4 15 29
Syn243 (91)
on left: 5 6, on right: 6 83
Expression (92)
on left: 56 57 58 59 60 61 62 63 64 65 67 68 70 72 73 74,
on right: 6 10 11 13 16 17 22 23 40 41 56 57 68 72 73 74 75 79
80 81 83 85
Syn213 (93)
on left: 7, on right: 72
Syn212 (94)
on left: 8, on right: 70
Syn211 (95)
on left: 9, on right: 67
Syn195 (96)
on left: 10 11, on right: 11 74
Syn169 (97)
on left: 12 13, on right: 13 72
Syn146 (98)
on left: 14 15, on right: 15 70
Syn122 (99)
on left: 16 17, on right: 17 67
Syn98 (100)
on left: 18 19, on right: 21
Statement (101)
on left: 77 78 79 80 81 83 85, on right: 18 19 86 87
Feature (102)
on left: 42 43 44 45 46 47, on right: 19
Syn79 (103)
on left: 20 21, on right: 21 48
Syn57 (104)
on left: 22 23, on right: 23 41
Syn26 (105)
on left: 24 25, on right: 25 31
Formal2 (106)
on left: 27 28, on right: 24 25 30 31
Int (107)
on left: 26, on right: 44
Coord (108)
on left: 32, on right: 26 49 50
Atom (109)
on left: 38, on right: 27 42 59
VariableId (110)
on left: 37, on right: 28 43 58 78 79 85
ThisCoord (111)
on left: 33, on right: 54 55
Number (112)
on left: 34 35, on right: 64
String (113)
on left: 36, on right: 63
Pattern (114)
on left: 39 40 41, on right: 39 68 75 81
RecordArguments (115)
on left: 48, on right: 65
Label (116)
on left: 49 50 51 52 53, on right: 65
InSequence (117)
on left: 54 55, on right: 70
Sequence (118)
on left: 86 87, on right: 54 55 75 76 87 88
Syn350 (119)
on left: 66, on right: 67
Syn353 (120)
on left: 69, on right: 70
Syn355 (121)
on left: 71, on right: 72
InStatement (122)
on left: 75 76, on right: 78 80 81
Syn367 (123)
on left: 82, on right: 83
Syn369 (124)
on left: 84, on right: 85
file (125)
on left: 88, on right: 89
Syn298 (126)
on left: 89
state 0
startToken1 shift, and go to state 1
Syn298 go to state 167
state 1
Syn298 -> startToken1 . file (rule 89)
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'{' shift, and go to state 8
Statement go to state 9
VariableId go to state 10
Sequence go to state 11
file go to state 12
state 2
VariableId -> 'VARIABLE' . (rule 37)
$default reduce using rule 37 (VariableId)
state 3
Statement -> 'case' . Expression 'of' Pattern 'then' InStatement 'else' InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 30
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 4
Statement -> 'fun' . '{' VariableId Syn266 Syn369 Syn291 '}' Expression 'end' (rule 85)
'{' shift, and go to state 36
state 5
Statement -> 'if' . Expression 'then' InStatement 'else' InStatement 'end' (rule 80)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 37
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 6
Statement -> 'local' . VariableId 'in' InStatement 'end' (rule 78)
'VARIABLE' shift, and go to state 2
VariableId go to state 38
state 7
Statement -> 'skip' . (rule 77)
$default reduce using rule 77 (Statement)
state 8
Statement -> '{' . Expression Syn243 Syn367 Syn290 '}' (rule 83)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 39
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 9
Sequence -> Statement . (rule 86)
Sequence -> Statement . Sequence (rule 87)
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'{' shift, and go to state 8
$default reduce using rule 86 (Sequence)
Statement go to state 9
VariableId go to state 10
Sequence go to state 40
state 10
Statement -> VariableId . '=' Expression (rule 79)
'=' shift, and go to state 41
state 11
file -> Sequence . (rule 88)
$default reduce using rule 88 (file)
state 12
Syn298 -> startToken1 file . (rule 89)
$default reduce using rule 89 (Syn298)
state 13
Atom -> 'ATOM' . (rule 38)
$default reduce using rule 38 (Atom)
state 14
Label -> 'ATOM()' . Coord (rule 49)
$default reduce using rule 32 (Coord)
Coord go to state 42
state 15
Number -> 'FLOAT' . (rule 35)
$default reduce using rule 35 (Number)
state 16
Number -> 'INT' . (rule 34)
$default reduce using rule 34 (Number)
state 17
String -> 'STRING' . (rule 36)
$default reduce using rule 36 (String)
state 18
Label -> 'VARIABLE()' . Coord (rule 50)
$default reduce using rule 32 (Coord)
Coord go to state 43
state 19
Expression -> 'case' . Expression 'of' Pattern 'then' Expression 'else' Expression 'end' (rule 68)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 44
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 20
Expression -> 'false' . (rule 61)
$default reduce using rule 61 (Expression)
state 21
Label -> 'false()' . (rule 53)
$default reduce using rule 53 (Label)
state 22
Expression -> 'proc' . '{' '$' Syn146 Syn353 Syn212 '}' InSequence 'end' (rule 70)
'{' shift, and go to state 45
state 23
Expression -> 'self' . (rule 62)
$default reduce using rule 62 (Expression)
state 24
Expression -> 'true' . (rule 60)
$default reduce using rule 60 (Expression)
state 25
Label -> 'true()' . (rule 52)
$default reduce using rule 52 (Label)
state 26
Label -> 'unit()' . (rule 51)
$default reduce using rule 51 (Label)
state 27
Expression -> '(' . Expression ')' (rule 57)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 46
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 28
Expression -> '[' . Syn122 Syn350 Syn211 ']' (rule 67)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 47
Syn122 go to state 48
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 29
Expression -> '{' . Expression Syn169 Syn355 Syn213 '}' (rule 72)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 49
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 30
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> 'case' Expression . 'of' Pattern 'then' InStatement 'else' InStatement 'end' (rule 81)
'of' shift, and go to state 50
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 31
Expression -> Atom . (rule 59)
$default reduce using rule 59 (Expression)
state 32
Expression -> VariableId . (rule 58)
$default reduce using rule 58 (Expression)
state 33
Expression -> Number . (rule 64)
$default reduce using rule 64 (Expression)
state 34
Expression -> String . (rule 63)
$default reduce using rule 63 (Expression)
state 35
Expression -> Label . '(' RecordArguments ')' (rule 65)
'(' shift, and go to state 54
state 36
Statement -> 'fun' '{' . VariableId Syn266 Syn369 Syn291 '}' Expression 'end' (rule 85)
'VARIABLE' shift, and go to state 2
VariableId go to state 55
state 37
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> 'if' Expression . 'then' InStatement 'else' InStatement 'end' (rule 80)
'then' shift, and go to state 56
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 38
Statement -> 'local' VariableId . 'in' InStatement 'end' (rule 78)
'in' shift, and go to state 57
state 39
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> '{' Expression . Syn243 Syn367 Syn290 '}' (rule 83)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 5 (Syn243)
Syn243 go to state 58
state 40
Sequence -> Statement Sequence . (rule 87)
$default reduce using rule 87 (Sequence)
state 41
Statement -> VariableId '=' . Expression (rule 79)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 59
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 42
Label -> 'ATOM()' Coord . (rule 49)
$default reduce using rule 49 (Label)
state 43
Label -> 'VARIABLE()' Coord . (rule 50)
$default reduce using rule 50 (Label)
state 44
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> 'case' Expression . 'of' Pattern 'then' Expression 'else' Expression 'end' (rule 68)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'of' shift, and go to state 60
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 45
Expression -> 'proc' '{' . '$' Syn146 Syn353 Syn212 '}' InSequence 'end' (rule 70)
'$' shift, and go to state 61
state 46
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> '(' Expression . ')' (rule 57)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
')' shift, and go to state 62
state 47
Syn122 -> Expression . (rule 16)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 16 (Syn122)
state 48
Syn122 -> Syn122 . Expression (rule 17)
Expression -> '[' Syn122 . Syn350 Syn211 ']' (rule 67)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
$default reduce using rule 66 (Syn350)
Expression go to state 63
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
Syn350 go to state 64
state 49
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> '{' Expression . Syn169 Syn355 Syn213 '}' (rule 72)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 12 (Syn169)
Syn169 go to state 65
state 50
Statement -> 'case' Expression 'of' . Pattern 'then' InStatement 'else' InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 66
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Pattern go to state 67
Label go to state 35
state 51
Expression -> Expression '|' . Expression (rule 73)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 68
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 52
Expression -> Expression 'Add' . Expression (rule 56)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 69
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 53
Expression -> Expression '#' . Syn195 (rule 74)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 70
Syn195 go to state 71
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 54
Expression -> Label '(' . RecordArguments ')' (rule 65)
$default reduce using rule 20 (Syn79)
Syn79 go to state 72
RecordArguments go to state 73
state 55
Statement -> 'fun' '{' VariableId . Syn266 Syn369 Syn291 '}' Expression 'end' (rule 85)
$default reduce using rule 3 (Syn266)
Syn266 go to state 74
state 56
Statement -> 'if' Expression 'then' . InStatement 'else' InStatement 'end' (rule 80)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 75
'false' shift, and go to state 20
'false()' shift, and go to state 21
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'proc' shift, and go to state 22
'self' shift, and go to state 23
'skip' shift, and go to state 7
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 76
Expression go to state 66
Statement go to state 9
Atom go to state 31
VariableId go to state 77
Number go to state 33
String go to state 34
Pattern go to state 78
Label go to state 35
Sequence go to state 79
InStatement go to state 80
state 57
Statement -> 'local' VariableId 'in' . InStatement 'end' (rule 78)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 75
'false' shift, and go to state 20
'false()' shift, and go to state 21
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'proc' shift, and go to state 22
'self' shift, and go to state 23
'skip' shift, and go to state 7
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 76
Expression go to state 66
Statement go to state 9
Atom go to state 31
VariableId go to state 77
Number go to state 33
String go to state 34
Pattern go to state 78
Label go to state 35
Sequence go to state 79
InStatement go to state 81
state 58
Syn243 -> Syn243 . Expression (rule 6)
Statement -> '{' Expression Syn243 . Syn367 Syn290 '}' (rule 83)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
$default reduce using rule 82 (Syn367)
Expression go to state 82
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
Syn367 go to state 83
state 59
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> VariableId '=' Expression . (rule 79)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 79 (Statement)
state 60
Expression -> 'case' Expression 'of' . Pattern 'then' Expression 'else' Expression 'end' (rule 68)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 66
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Pattern go to state 84
Label go to state 35
state 61
Expression -> 'proc' '{' '$' . Syn146 Syn353 Syn212 '}' InSequence 'end' (rule 70)
$default reduce using rule 14 (Syn146)
Syn146 go to state 85
state 62
Expression -> '(' Expression ')' . (rule 57)
$default reduce using rule 57 (Expression)
state 63
Syn122 -> Syn122 Expression . (rule 17)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 17 (Syn122)
state 64
Expression -> '[' Syn122 Syn350 . Syn211 ']' (rule 67)
$default reduce using rule 9 (Syn211)
Syn211 go to state 86
state 65
Syn169 -> Syn169 . Expression (rule 13)
Expression -> '{' Expression Syn169 . Syn355 Syn213 '}' (rule 72)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
$default reduce using rule 71 (Syn355)
Expression go to state 87
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
Syn355 go to state 88
state 66
Pattern -> Expression . (rule 40)
Pattern -> Expression . '#' Syn57 (rule 41)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 89
'|' [reduce using rule 40 (Pattern)]
$default reduce using rule 40 (Pattern)
state 67
Pattern -> Pattern . '|' Pattern (rule 39)
Statement -> 'case' Expression 'of' Pattern . 'then' InStatement 'else' InStatement 'end' (rule 81)
'then' shift, and go to state 90
'|' shift, and go to state 91
state 68
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression '|' Expression . (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
'#' [reduce using rule 73 (Expression)]
$default reduce using rule 73 (Expression)
state 69
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression 'Add' Expression . (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'#' shift, and go to state 53
'#' [reduce using rule 56 (Expression)]
$default reduce using rule 56 (Expression)
state 70
Syn195 -> Expression . (rule 10)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
'|' [reduce using rule 10 (Syn195)]
'Add' [reduce using rule 10 (Syn195)]
'#' [reduce using rule 10 (Syn195)]
$default reduce using rule 10 (Syn195)
state 71
Syn195 -> Syn195 . '#' Expression (rule 11)
Expression -> Expression '#' Syn195 . (rule 74)
'#' shift, and go to state 92
'#' [reduce using rule 74 (Expression)]
$default reduce using rule 74 (Expression)
state 72
Syn79 -> Syn79 . Syn98 (rule 21)
RecordArguments -> Syn79 . (rule 48)
'ATOM' shift, and go to state 13
'INT' shift, and go to state 93
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'false' shift, and go to state 94
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'true' shift, and go to state 95
'unit' shift, and go to state 96
'{' shift, and go to state 8
$default reduce using rule 48 (RecordArguments)
Syn98 go to state 97
Statement go to state 98
Feature go to state 99
Int go to state 100
Atom go to state 101
VariableId go to state 102
state 73
Expression -> Label '(' RecordArguments . ')' (rule 65)
')' shift, and go to state 103
state 74
Syn266 -> Syn266 . Formal (rule 4)
Statement -> 'fun' '{' VariableId Syn266 . Syn369 Syn291 '}' Expression 'end' (rule 85)
'ATOM' shift, and go to state 13
'VARIABLE' shift, and go to state 2
$default reduce using rule 84 (Syn369)
Formal go to state 104
Formal2 go to state 105
Atom go to state 106
VariableId go to state 107
Syn369 go to state 108
state 75
Expression -> 'case' . Expression 'of' Pattern 'then' Expression 'else' Expression 'end' (rule 68)
Statement -> 'case' . Expression 'of' Pattern 'then' InStatement 'else' InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 109
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 76
Expression -> '{' . Expression Syn169 Syn355 Syn213 '}' (rule 72)
Statement -> '{' . Expression Syn243 Syn367 Syn290 '}' (rule 83)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 110
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 77
Expression -> VariableId . (rule 58)
Statement -> VariableId . '=' Expression (rule 79)
'=' shift, and go to state 41
'=' [reduce using rule 58 (Expression)]
$default reduce using rule 58 (Expression)
state 78
Pattern -> Pattern . '|' Pattern (rule 39)
InStatement -> Pattern . '=' Expression 'in' Sequence (rule 75)
'=' shift, and go to state 111
'|' shift, and go to state 91
state 79
InStatement -> Sequence . (rule 76)
$default reduce using rule 76 (InStatement)
state 80
Statement -> 'if' Expression 'then' InStatement . 'else' InStatement 'end' (rule 80)
'else' shift, and go to state 112
state 81
Statement -> 'local' VariableId 'in' InStatement . 'end' (rule 78)
'end' shift, and go to state 113
state 82
Syn243 -> Syn243 Expression . (rule 6)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 6 (Syn243)
state 83
Statement -> '{' Expression Syn243 Syn367 . Syn290 '}' (rule 83)
$default reduce using rule 2 (Syn290)
Syn290 go to state 114
state 84
Pattern -> Pattern . '|' Pattern (rule 39)
Expression -> 'case' Expression 'of' Pattern . 'then' Expression 'else' Expression 'end' (rule 68)
'then' shift, and go to state 115
'|' shift, and go to state 91
state 85
Syn146 -> Syn146 . Formal (rule 15)
Expression -> 'proc' '{' '$' Syn146 . Syn353 Syn212 '}' InSequence 'end' (rule 70)
'ATOM' shift, and go to state 13
'VARIABLE' shift, and go to state 2
$default reduce using rule 69 (Syn353)
Formal go to state 116
Formal2 go to state 105
Atom go to state 106
VariableId go to state 107
Syn353 go to state 117
state 86
Expression -> '[' Syn122 Syn350 Syn211 . ']' (rule 67)
']' shift, and go to state 118
state 87
Syn169 -> Syn169 Expression . (rule 13)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
$default reduce using rule 13 (Syn169)
state 88
Expression -> '{' Expression Syn169 Syn355 . Syn213 '}' (rule 72)
$default reduce using rule 7 (Syn213)
Syn213 go to state 119
state 89
Pattern -> Expression '#' . Syn57 (rule 41)
Expression -> Expression '#' . Syn195 (rule 74)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 120
Syn195 go to state 71
Syn57 go to state 121
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 90
Statement -> 'case' Expression 'of' Pattern 'then' . InStatement 'else' InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 75
'false' shift, and go to state 20
'false()' shift, and go to state 21
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'proc' shift, and go to state 22
'self' shift, and go to state 23
'skip' shift, and go to state 7
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 76
Expression go to state 66
Statement go to state 9
Atom go to state 31
VariableId go to state 77
Number go to state 33
String go to state 34
Pattern go to state 78
Label go to state 35
Sequence go to state 79
InStatement go to state 122
state 91
Pattern -> Pattern '|' . Pattern (rule 39)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 66
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Pattern go to state 123
Label go to state 35
state 92
Syn195 -> Syn195 '#' . Expression (rule 11)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 124
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 93
Int -> 'INT' . Coord (rule 26)
$default reduce using rule 32 (Coord)
Coord go to state 125
state 94
Feature -> 'false' . (rule 47)
$default reduce using rule 47 (Feature)
state 95
Feature -> 'true' . (rule 46)
$default reduce using rule 46 (Feature)
state 96
Feature -> 'unit' . (rule 45)
$default reduce using rule 45 (Feature)
state 97
Syn79 -> Syn79 Syn98 . (rule 21)
$default reduce using rule 21 (Syn79)
state 98
Syn98 -> Statement . (rule 18)
$default reduce using rule 18 (Syn98)
state 99
Syn98 -> Feature . ':' Statement (rule 19)
':' shift, and go to state 126
state 100
Feature -> Int . (rule 44)
$default reduce using rule 44 (Feature)
state 101
Feature -> Atom . (rule 42)
$default reduce using rule 42 (Feature)
state 102
Feature -> VariableId . (rule 43)
Statement -> VariableId . '=' Expression (rule 79)
'=' shift, and go to state 41
$default reduce using rule 43 (Feature)
state 103
Expression -> Label '(' RecordArguments ')' . (rule 65)
$default reduce using rule 65 (Expression)
state 104
Syn266 -> Syn266 Formal . (rule 4)
Formal -> Formal . '|' Formal (rule 29)
'|' shift, and go to state 127
$default reduce using rule 4 (Syn266)
state 105
Formal -> Formal2 . (rule 30)
Formal -> Formal2 . '#' Syn26 (rule 31)
'#' shift, and go to state 128
$default reduce using rule 30 (Formal)
state 106
Formal2 -> Atom . (rule 27)
$default reduce using rule 27 (Formal2)
state 107
Formal2 -> VariableId . (rule 28)
$default reduce using rule 28 (Formal2)
state 108
Statement -> 'fun' '{' VariableId Syn266 Syn369 . Syn291 '}' Expression 'end' (rule 85)
$default reduce using rule 1 (Syn291)
Syn291 go to state 129
state 109
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> 'case' Expression . 'of' Pattern 'then' Expression 'else' Expression 'end' (rule 68)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> 'case' Expression . 'of' Pattern 'then' InStatement 'else' InStatement 'end' (rule 81)
'of' shift, and go to state 130
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 110
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> '{' Expression . Syn169 Syn355 Syn213 '}' (rule 72)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> '{' Expression . Syn243 Syn367 Syn290 '}' (rule 83)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
'ATOM' reduce using rule 5 (Syn243)
'ATOM' [reduce using rule 12 (Syn169)]
'ATOM()' reduce using rule 5 (Syn243)
'ATOM()' [reduce using rule 12 (Syn169)]
'FLOAT' reduce using rule 5 (Syn243)
'FLOAT' [reduce using rule 12 (Syn169)]
'INT' reduce using rule 5 (Syn243)
'INT' [reduce using rule 12 (Syn169)]
'STRING' reduce using rule 5 (Syn243)
'STRING' [reduce using rule 12 (Syn169)]
'VARIABLE' reduce using rule 5 (Syn243)
'VARIABLE' [reduce using rule 12 (Syn169)]
'VARIABLE()' reduce using rule 5 (Syn243)
'VARIABLE()' [reduce using rule 12 (Syn169)]
'case' reduce using rule 5 (Syn243)
'case' [reduce using rule 12 (Syn169)]
'false' reduce using rule 5 (Syn243)
'false' [reduce using rule 12 (Syn169)]
'false()' reduce using rule 5 (Syn243)
'false()' [reduce using rule 12 (Syn169)]
'proc' reduce using rule 5 (Syn243)
'proc' [reduce using rule 12 (Syn169)]
'self' reduce using rule 5 (Syn243)
'self' [reduce using rule 12 (Syn169)]
'true' reduce using rule 5 (Syn243)
'true' [reduce using rule 12 (Syn169)]
'true()' reduce using rule 5 (Syn243)
'true()' [reduce using rule 12 (Syn169)]
'unit()' reduce using rule 5 (Syn243)
'unit()' [reduce using rule 12 (Syn169)]
'(' reduce using rule 5 (Syn243)
'(' [reduce using rule 12 (Syn169)]
'[' reduce using rule 5 (Syn243)
'[' [reduce using rule 12 (Syn169)]
'{' reduce using rule 5 (Syn243)
'{' [reduce using rule 12 (Syn169)]
'}' reduce using rule 5 (Syn243)
'}' [reduce using rule 12 (Syn169)]
$default reduce using rule 5 (Syn243)
Syn243 go to state 58
Syn169 go to state 65
state 111
InStatement -> Pattern '=' . Expression 'in' Sequence (rule 75)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 131
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 112
Statement -> 'if' Expression 'then' InStatement 'else' . InStatement 'end' (rule 80)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 75
'false' shift, and go to state 20
'false()' shift, and go to state 21
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'proc' shift, and go to state 22
'self' shift, and go to state 23
'skip' shift, and go to state 7
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 76
Expression go to state 66
Statement go to state 9
Atom go to state 31
VariableId go to state 77
Number go to state 33
String go to state 34
Pattern go to state 78
Label go to state 35
Sequence go to state 79
InStatement go to state 132
state 113
Statement -> 'local' VariableId 'in' InStatement 'end' . (rule 78)
$default reduce using rule 78 (Statement)
state 114
Statement -> '{' Expression Syn243 Syn367 Syn290 . '}' (rule 83)
'}' shift, and go to state 133
state 115
Expression -> 'case' Expression 'of' Pattern 'then' . Expression 'else' Expression 'end' (rule 68)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 134
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 116
Syn146 -> Syn146 Formal . (rule 15)
Formal -> Formal . '|' Formal (rule 29)
'|' shift, and go to state 127
$default reduce using rule 15 (Syn146)
state 117
Expression -> 'proc' '{' '$' Syn146 Syn353 . Syn212 '}' InSequence 'end' (rule 70)
$default reduce using rule 8 (Syn212)
Syn212 go to state 135
state 118
Expression -> '[' Syn122 Syn350 Syn211 ']' . (rule 67)
$default reduce using rule 67 (Expression)
state 119
Expression -> '{' Expression Syn169 Syn355 Syn213 . '}' (rule 72)
'}' shift, and go to state 136
state 120
Syn195 -> Expression . (rule 10)
Syn57 -> Expression . (rule 22)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
'then' reduce using rule 10 (Syn195)
'then' [reduce using rule 22 (Syn57)]
'=' reduce using rule 10 (Syn195)
'=' [reduce using rule 22 (Syn57)]
'|' [reduce using rule 10 (Syn195)]
'|' [reduce using rule 22 (Syn57)]
'Add' [reduce using rule 10 (Syn195)]
'#' [reduce using rule 10 (Syn195)]
'#' [reduce using rule 22 (Syn57)]
$default reduce using rule 10 (Syn195)
state 121
Syn57 -> Syn57 . '#' Expression (rule 23)
Pattern -> Expression '#' Syn57 . (rule 41)
'#' shift, and go to state 137
$default reduce using rule 41 (Pattern)
state 122
Statement -> 'case' Expression 'of' Pattern 'then' InStatement . 'else' InStatement 'end' (rule 81)
'else' shift, and go to state 138
state 123
Pattern -> Pattern . '|' Pattern (rule 39)
Pattern -> Pattern '|' Pattern . (rule 39)
'|' shift, and go to state 91
$default reduce using rule 39 (Pattern)
state 124
Syn195 -> Syn195 '#' Expression . (rule 11)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
'|' [reduce using rule 11 (Syn195)]
'Add' [reduce using rule 11 (Syn195)]
'#' [reduce using rule 11 (Syn195)]
$default reduce using rule 11 (Syn195)
state 125
Int -> 'INT' Coord . (rule 26)
$default reduce using rule 26 (Int)
state 126
Syn98 -> Feature ':' . Statement (rule 19)
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'{' shift, and go to state 8
Statement go to state 139
VariableId go to state 10
state 127
Formal -> Formal '|' . Formal (rule 29)
'ATOM' shift, and go to state 13
'VARIABLE' shift, and go to state 2
Formal go to state 140
Formal2 go to state 105
Atom go to state 106
VariableId go to state 107
state 128
Formal -> Formal2 '#' . Syn26 (rule 31)
'ATOM' shift, and go to state 13
'VARIABLE' shift, and go to state 2
Syn26 go to state 141
Formal2 go to state 142
Atom go to state 106
VariableId go to state 107
state 129
Statement -> 'fun' '{' VariableId Syn266 Syn369 Syn291 . '}' Expression 'end' (rule 85)
'}' shift, and go to state 143
state 130
Expression -> 'case' Expression 'of' . Pattern 'then' Expression 'else' Expression 'end' (rule 68)
Statement -> 'case' Expression 'of' . Pattern 'then' InStatement 'else' InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 66
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Pattern go to state 144
Label go to state 35
state 131
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
InStatement -> Pattern '=' Expression . 'in' Sequence (rule 75)
'in' shift, and go to state 145
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 132
Statement -> 'if' Expression 'then' InStatement 'else' InStatement . 'end' (rule 80)
'end' shift, and go to state 146
state 133
Statement -> '{' Expression Syn243 Syn367 Syn290 '}' . (rule 83)
$default reduce using rule 83 (Statement)
state 134
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> 'case' Expression 'of' Pattern 'then' Expression . 'else' Expression 'end' (rule 68)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'else' shift, and go to state 147
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 135
Expression -> 'proc' '{' '$' Syn146 Syn353 Syn212 . '}' InSequence 'end' (rule 70)
'}' shift, and go to state 148
state 136
Expression -> '{' Expression Syn169 Syn355 Syn213 '}' . (rule 72)
$default reduce using rule 72 (Expression)
state 137
Syn57 -> Syn57 '#' . Expression (rule 23)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 149
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 138
Statement -> 'case' Expression 'of' Pattern 'then' InStatement 'else' . InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 75
'false' shift, and go to state 20
'false()' shift, and go to state 21
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'proc' shift, and go to state 22
'self' shift, and go to state 23
'skip' shift, and go to state 7
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 76
Expression go to state 66
Statement go to state 9
Atom go to state 31
VariableId go to state 77
Number go to state 33
String go to state 34
Pattern go to state 78
Label go to state 35
Sequence go to state 79
InStatement go to state 150
state 139
Syn98 -> Feature ':' Statement . (rule 19)
$default reduce using rule 19 (Syn98)
state 140
Formal -> Formal . '|' Formal (rule 29)
Formal -> Formal '|' Formal . (rule 29)
'|' shift, and go to state 127
$default reduce using rule 29 (Formal)
state 141
Syn26 -> Syn26 . '#' Formal2 (rule 25)
Formal -> Formal2 '#' Syn26 . (rule 31)
'#' shift, and go to state 151
$default reduce using rule 31 (Formal)
state 142
Syn26 -> Formal2 . (rule 24)
$default reduce using rule 24 (Syn26)
state 143
Statement -> 'fun' '{' VariableId Syn266 Syn369 Syn291 '}' . Expression 'end' (rule 85)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 152
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 144
Pattern -> Pattern . '|' Pattern (rule 39)
Expression -> 'case' Expression 'of' Pattern . 'then' Expression 'else' Expression 'end' (rule 68)
Statement -> 'case' Expression 'of' Pattern . 'then' InStatement 'else' InStatement 'end' (rule 81)
'then' shift, and go to state 153
'|' shift, and go to state 91
state 145
InStatement -> Pattern '=' Expression 'in' . Sequence (rule 75)
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'{' shift, and go to state 8
Statement go to state 9
VariableId go to state 10
Sequence go to state 154
state 146
Statement -> 'if' Expression 'then' InStatement 'else' InStatement 'end' . (rule 80)
$default reduce using rule 80 (Statement)
state 147
Expression -> 'case' Expression 'of' Pattern 'then' Expression 'else' . Expression 'end' (rule 68)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 19
'false' shift, and go to state 20
'false()' shift, and go to state 21
'proc' shift, and go to state 22
'self' shift, and go to state 23
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 29
Expression go to state 155
Atom go to state 31
VariableId go to state 32
Number go to state 33
String go to state 34
Label go to state 35
state 148
Expression -> 'proc' '{' '$' Syn146 Syn353 Syn212 '}' . InSequence 'end' (rule 70)
$default reduce using rule 33 (ThisCoord)
ThisCoord go to state 156
InSequence go to state 157
state 149
Syn57 -> Syn57 '#' Expression . (rule 23)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
'|' [reduce using rule 23 (Syn57)]
'#' [reduce using rule 23 (Syn57)]
$default reduce using rule 23 (Syn57)
state 150
Statement -> 'case' Expression 'of' Pattern 'then' InStatement 'else' InStatement . 'end' (rule 81)
'end' shift, and go to state 158
state 151
Syn26 -> Syn26 '#' . Formal2 (rule 25)
'ATOM' shift, and go to state 13
'VARIABLE' shift, and go to state 2
Formal2 go to state 159
Atom go to state 106
VariableId go to state 107
state 152
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
Statement -> 'fun' '{' VariableId Syn266 Syn369 Syn291 '}' Expression . 'end' (rule 85)
'end' shift, and go to state 160
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 153
Expression -> 'case' Expression 'of' Pattern 'then' . Expression 'else' Expression 'end' (rule 68)
Statement -> 'case' Expression 'of' Pattern 'then' . InStatement 'else' InStatement 'end' (rule 81)
'ATOM' shift, and go to state 13
'ATOM()' shift, and go to state 14
'FLOAT' shift, and go to state 15
'INT' shift, and go to state 16
'STRING' shift, and go to state 17
'VARIABLE' shift, and go to state 2
'VARIABLE()' shift, and go to state 18
'case' shift, and go to state 75
'false' shift, and go to state 20
'false()' shift, and go to state 21
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'proc' shift, and go to state 22
'self' shift, and go to state 23
'skip' shift, and go to state 7
'true' shift, and go to state 24
'true()' shift, and go to state 25
'unit()' shift, and go to state 26
'(' shift, and go to state 27
'[' shift, and go to state 28
'{' shift, and go to state 76
Expression go to state 161
Statement go to state 9
Atom go to state 31
VariableId go to state 77
Number go to state 33
String go to state 34
Pattern go to state 78
Label go to state 35
Sequence go to state 79
InStatement go to state 122
state 154
InStatement -> Pattern '=' Expression 'in' Sequence . (rule 75)
$default reduce using rule 75 (InStatement)
state 155
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> 'case' Expression 'of' Pattern 'then' Expression 'else' Expression . 'end' (rule 68)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'end' shift, and go to state 162
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 53
state 156
InSequence -> ThisCoord . Sequence 'in' Sequence (rule 54)
InSequence -> ThisCoord . Sequence (rule 55)
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'{' shift, and go to state 8
Statement go to state 9
VariableId go to state 10
Sequence go to state 163
state 157
Expression -> 'proc' '{' '$' Syn146 Syn353 Syn212 '}' InSequence . 'end' (rule 70)
'end' shift, and go to state 164
state 158
Statement -> 'case' Expression 'of' Pattern 'then' InStatement 'else' InStatement 'end' . (rule 81)
$default reduce using rule 81 (Statement)
state 159
Syn26 -> Syn26 '#' Formal2 . (rule 25)
$default reduce using rule 25 (Syn26)
state 160
Statement -> 'fun' '{' VariableId Syn266 Syn369 Syn291 '}' Expression 'end' . (rule 85)
$default reduce using rule 85 (Statement)
state 161
Pattern -> Expression . (rule 40)
Pattern -> Expression . '#' Syn57 (rule 41)
Expression -> Expression . 'Add' Expression (rule 56)
Expression -> 'case' Expression 'of' Pattern 'then' Expression . 'else' Expression 'end' (rule 68)
Expression -> Expression . '|' Expression (rule 73)
Expression -> Expression . '#' Syn195 (rule 74)
'else' shift, and go to state 147
'|' shift, and go to state 51
'Add' shift, and go to state 52
'#' shift, and go to state 89
'|' [reduce using rule 40 (Pattern)]
$default reduce using rule 40 (Pattern)
state 162
Expression -> 'case' Expression 'of' Pattern 'then' Expression 'else' Expression 'end' . (rule 68)
$default reduce using rule 68 (Expression)
state 163
InSequence -> ThisCoord Sequence . 'in' Sequence (rule 54)
InSequence -> ThisCoord Sequence . (rule 55)
'in' shift, and go to state 165
$default reduce using rule 55 (InSequence)
state 164
Expression -> 'proc' '{' '$' Syn146 Syn353 Syn212 '}' InSequence 'end' . (rule 70)
$default reduce using rule 70 (Expression)
state 165
InSequence -> ThisCoord Sequence 'in' . Sequence (rule 54)
'VARIABLE' shift, and go to state 2
'case' shift, and go to state 3
'fun' shift, and go to state 4
'if' shift, and go to state 5
'local' shift, and go to state 6
'skip' shift, and go to state 7
'{' shift, and go to state 8
Statement go to state 9
VariableId go to state 10
Sequence go to state 166
state 166
InSequence -> ThisCoord Sequence 'in' Sequence . (rule 54)
$default reduce using rule 54 (InSequence)
state 167
$ go to state 168
state 168
$ go to state 169
state 169
$default accept