1286 lines
36 KiB
Plaintext
1286 lines
36 KiB
Plaintext
-----------------------------------------------------------------------------
|
|
Info file generated by Happy Version 1.19.12 from Language/Lang/ParGrammer.y
|
|
-----------------------------------------------------------------------------
|
|
|
|
state 3 contains 11 reduce/reduce conflicts.
|
|
state 13 contains 1 reduce/reduce conflicts.
|
|
state 14 contains 1 reduce/reduce conflicts.
|
|
state 16 contains 1 reduce/reduce conflicts.
|
|
state 19 contains 1 shift/reduce conflicts and 3 reduce/reduce conflicts.
|
|
state 28 contains 7 reduce/reduce conflicts.
|
|
state 32 contains 7 shift/reduce conflicts.
|
|
state 39 contains 6 shift/reduce conflicts.
|
|
state 53 contains 6 shift/reduce conflicts.
|
|
state 54 contains 7 shift/reduce conflicts.
|
|
|
|
rule 25 is unused
|
|
rule 26 is unused
|
|
rule 27 is unused
|
|
rule 28 is unused
|
|
rule 29 is unused
|
|
|
|
-----------------------------------------------------------------------------
|
|
Grammar
|
|
-----------------------------------------------------------------------------
|
|
%start_pModule -> Module (0)
|
|
Name -> L_Name (1)
|
|
NumericLiteral -> L_NumericLiteral (2)
|
|
Module -> ListBinding (3)
|
|
Binding -> Declaration (4)
|
|
Binding -> Definition (5)
|
|
Binding -> '{#' Pragma '#}' (6)
|
|
Declaration -> Name ':' Type (7)
|
|
Declaration -> Type (8)
|
|
Definition -> Name '=' Expression (9)
|
|
Definition -> Expression (10)
|
|
Type -> Name (11)
|
|
Type -> Type Type (12)
|
|
Type -> Type '->' Type (13)
|
|
Type -> '{{' ListDeclaration '}}' (14)
|
|
Type -> '{' ListDeclaration '}' (15)
|
|
Type -> '[' ListDeclaration ']' (16)
|
|
Type -> '(' Type ')' (17)
|
|
Pragma -> ListName (18)
|
|
ListBinding -> (19)
|
|
ListBinding -> Binding (20)
|
|
ListBinding -> Binding ',' ListBinding (21)
|
|
ListDeclaration -> (22)
|
|
ListDeclaration -> Declaration (23)
|
|
ListDeclaration -> Declaration ',' ListDeclaration (24)
|
|
ListDefinition -> (25)
|
|
ListDefinition -> Definition (26)
|
|
ListDefinition -> Definition ',' ListDefinition (27)
|
|
ListType -> Type (28)
|
|
ListType -> Type ',' ListType (29)
|
|
ListName -> Name (30)
|
|
ListName -> Name ListName (31)
|
|
Expression -> Name (32)
|
|
Expression -> NumericLiteral (33)
|
|
Expression -> Expression Expression (34)
|
|
Expression -> Expression '->' Expression (35)
|
|
Expression -> '{{' Module '}}' (36)
|
|
Expression -> '{' Module '}' (37)
|
|
Expression -> '[' Module ']' (38)
|
|
Expression -> '(' Expression ')' (39)
|
|
|
|
-----------------------------------------------------------------------------
|
|
Terminals
|
|
-----------------------------------------------------------------------------
|
|
'#}' { PT _ (TS _ 1) }
|
|
'(' { PT _ (TS _ 2) }
|
|
')' { PT _ (TS _ 3) }
|
|
',' { PT _ (TS _ 4) }
|
|
'->' { PT _ (TS _ 5) }
|
|
':' { PT _ (TS _ 6) }
|
|
'=' { PT _ (TS _ 7) }
|
|
'[' { PT _ (TS _ 8) }
|
|
']' { PT _ (TS _ 9) }
|
|
'{' { PT _ (TS _ 10) }
|
|
'{#' { PT _ (TS _ 11) }
|
|
'{{' { PT _ (TS _ 12) }
|
|
'}' { PT _ (TS _ 13) }
|
|
'}}' { PT _ (TS _ 14) }
|
|
L_Name { PT _ (T_Name $$) }
|
|
L_NumericLiteral{ PT _ (T_NumericLiteral $$) }
|
|
|
|
-----------------------------------------------------------------------------
|
|
Non-terminals
|
|
-----------------------------------------------------------------------------
|
|
%start_pModule rule 0
|
|
Name rule 1
|
|
NumericLiteral rule 2
|
|
Module rule 3
|
|
Binding rules 4, 5, 6
|
|
Declaration rules 7, 8
|
|
Definition rules 9, 10
|
|
Type rules 11, 12, 13, 14, 15, 16, 17
|
|
Pragma rule 18
|
|
ListBinding rules 19, 20, 21
|
|
ListDeclaration rules 22, 23, 24
|
|
ListDefinition rules 25, 26, 27
|
|
ListType rules 28, 29
|
|
ListName rules 30, 31
|
|
Expression rules 32, 33, 34, 35, 36, 37, 38, 39
|
|
|
|
-----------------------------------------------------------------------------
|
|
States
|
|
-----------------------------------------------------------------------------
|
|
State 0
|
|
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
%eof reduce using rule 19
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 5
|
|
Binding goto state 6
|
|
Declaration goto state 7
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
Expression goto state 11
|
|
|
|
State 1
|
|
|
|
|
|
L_Name shift, and enter state 2
|
|
|
|
|
|
State 2
|
|
|
|
Name -> L_Name . (rule 1)
|
|
|
|
'#}' reduce using rule 1
|
|
'(' reduce using rule 1
|
|
')' reduce using rule 1
|
|
',' reduce using rule 1
|
|
'->' reduce using rule 1
|
|
':' reduce using rule 1
|
|
'=' reduce using rule 1
|
|
'[' reduce using rule 1
|
|
']' reduce using rule 1
|
|
'{' reduce using rule 1
|
|
'{{' reduce using rule 1
|
|
'}' reduce using rule 1
|
|
'}}' reduce using rule 1
|
|
L_Name reduce using rule 1
|
|
L_NumericLiteralreduce using rule 1
|
|
%eof reduce using rule 1
|
|
|
|
|
|
State 3
|
|
|
|
Declaration -> Name . ':' Type (rule 7)
|
|
Definition -> Name . '=' Expression (rule 9)
|
|
Type -> Name . (rule 11)
|
|
Expression -> Name . (rule 32)
|
|
|
|
'(' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
',' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'->' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
':' shift, and enter state 46
|
|
'=' shift, and enter state 47
|
|
'[' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
']' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'{' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'{{' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'}' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'}}' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
L_Name reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
L_NumericLiteralreduce using rule 32
|
|
%eof reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
|
|
|
|
State 4
|
|
|
|
Expression -> NumericLiteral . (rule 33)
|
|
|
|
'(' reduce using rule 33
|
|
')' reduce using rule 33
|
|
',' reduce using rule 33
|
|
'->' reduce using rule 33
|
|
'[' reduce using rule 33
|
|
']' reduce using rule 33
|
|
'{' reduce using rule 33
|
|
'{{' reduce using rule 33
|
|
'}' reduce using rule 33
|
|
'}}' reduce using rule 33
|
|
L_Name reduce using rule 33
|
|
L_NumericLiteralreduce using rule 33
|
|
%eof reduce using rule 33
|
|
|
|
|
|
State 5
|
|
|
|
%start_pModule -> Module . (rule 0)
|
|
|
|
%eof accept
|
|
|
|
|
|
State 6
|
|
|
|
ListBinding -> Binding . (rule 20)
|
|
ListBinding -> Binding . ',' ListBinding (rule 21)
|
|
|
|
',' shift, and enter state 45
|
|
']' reduce using rule 20
|
|
'}' reduce using rule 20
|
|
'}}' reduce using rule 20
|
|
%eof reduce using rule 20
|
|
|
|
|
|
State 7
|
|
|
|
Binding -> Declaration . (rule 4)
|
|
|
|
',' reduce using rule 4
|
|
']' reduce using rule 4
|
|
'}' reduce using rule 4
|
|
'}}' reduce using rule 4
|
|
%eof reduce using rule 4
|
|
|
|
|
|
State 8
|
|
|
|
Binding -> Definition . (rule 5)
|
|
|
|
',' reduce using rule 5
|
|
']' reduce using rule 5
|
|
'}' reduce using rule 5
|
|
'}}' reduce using rule 5
|
|
%eof reduce using rule 5
|
|
|
|
|
|
State 9
|
|
|
|
Declaration -> Type . (rule 8)
|
|
Type -> Type . Type (rule 12)
|
|
Type -> Type . '->' Type (rule 13)
|
|
|
|
'(' shift, and enter state 40
|
|
',' reduce using rule 8
|
|
'->' shift, and enter state 41
|
|
'[' shift, and enter state 42
|
|
']' reduce using rule 8
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
'}' reduce using rule 8
|
|
'}}' reduce using rule 8
|
|
L_Name shift, and enter state 2
|
|
%eof reduce using rule 8
|
|
|
|
Name goto state 38
|
|
Type goto state 39
|
|
|
|
State 10
|
|
|
|
Module -> ListBinding . (rule 3)
|
|
|
|
']' reduce using rule 3
|
|
'}' reduce using rule 3
|
|
'}}' reduce using rule 3
|
|
%eof reduce using rule 3
|
|
|
|
|
|
State 11
|
|
|
|
Definition -> Expression . (rule 10)
|
|
Expression -> Expression . Expression (rule 34)
|
|
Expression -> Expression . '->' Expression (rule 35)
|
|
|
|
'(' shift, and enter state 33
|
|
',' reduce using rule 10
|
|
'->' shift, and enter state 34
|
|
'[' shift, and enter state 35
|
|
']' reduce using rule 10
|
|
'{' shift, and enter state 36
|
|
'{{' shift, and enter state 37
|
|
'}' reduce using rule 10
|
|
'}}' reduce using rule 10
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
%eof reduce using rule 10
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 32
|
|
|
|
State 12
|
|
|
|
Type -> '(' . Type ')' (rule 17)
|
|
Expression -> '(' . Expression ')' (rule 39)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
'{' shift, and enter state 14
|
|
'{{' shift, and enter state 16
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 28
|
|
NumericLiteral goto state 4
|
|
Type goto state 29
|
|
Expression goto state 30
|
|
|
|
State 13
|
|
|
|
Type -> '[' . ListDeclaration ']' (rule 16)
|
|
Expression -> '[' . Module ']' (rule 38)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
']' reduce using rule 22
|
|
(reduce using rule 19)
|
|
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 26
|
|
Binding goto state 6
|
|
Declaration goto state 19
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
ListDeclarationgoto state 27
|
|
Expression goto state 11
|
|
|
|
State 14
|
|
|
|
Type -> '{' . ListDeclaration '}' (rule 15)
|
|
Expression -> '{' . Module '}' (rule 37)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
'}' reduce using rule 22
|
|
(reduce using rule 19)
|
|
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 24
|
|
Binding goto state 6
|
|
Declaration goto state 19
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
ListDeclarationgoto state 25
|
|
Expression goto state 11
|
|
|
|
State 15
|
|
|
|
Binding -> '{#' . Pragma '#}' (rule 6)
|
|
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 21
|
|
Pragma goto state 22
|
|
ListName goto state 23
|
|
|
|
State 16
|
|
|
|
Type -> '{{' . ListDeclaration '}}' (rule 14)
|
|
Expression -> '{{' . Module '}}' (rule 36)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
'}}' reduce using rule 22
|
|
(reduce using rule 19)
|
|
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 18
|
|
Binding goto state 6
|
|
Declaration goto state 19
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
ListDeclarationgoto state 20
|
|
Expression goto state 11
|
|
|
|
State 17
|
|
|
|
NumericLiteral -> L_NumericLiteral . (rule 2)
|
|
|
|
'(' reduce using rule 2
|
|
')' reduce using rule 2
|
|
',' reduce using rule 2
|
|
'->' reduce using rule 2
|
|
'[' reduce using rule 2
|
|
']' reduce using rule 2
|
|
'{' reduce using rule 2
|
|
'{{' reduce using rule 2
|
|
'}' reduce using rule 2
|
|
'}}' reduce using rule 2
|
|
L_Name reduce using rule 2
|
|
L_NumericLiteralreduce using rule 2
|
|
%eof reduce using rule 2
|
|
|
|
|
|
State 18
|
|
|
|
Expression -> '{{' Module . '}}' (rule 36)
|
|
|
|
'}}' shift, and enter state 65
|
|
|
|
|
|
State 19
|
|
|
|
Binding -> Declaration . (rule 4)
|
|
ListDeclaration -> Declaration . (rule 23)
|
|
ListDeclaration -> Declaration . ',' ListDeclaration (rule 24)
|
|
|
|
',' shift, and enter state 64
|
|
(reduce using rule 4)
|
|
|
|
']' reduce using rule 23
|
|
(reduce using rule 4)
|
|
|
|
'}' reduce using rule 23
|
|
(reduce using rule 4)
|
|
|
|
'}}' reduce using rule 23
|
|
(reduce using rule 4)
|
|
|
|
|
|
|
|
State 20
|
|
|
|
Type -> '{{' ListDeclaration . '}}' (rule 14)
|
|
|
|
'}}' shift, and enter state 63
|
|
|
|
|
|
State 21
|
|
|
|
ListName -> Name . (rule 30)
|
|
ListName -> Name . ListName (rule 31)
|
|
|
|
'#}' reduce using rule 30
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 21
|
|
ListName goto state 62
|
|
|
|
State 22
|
|
|
|
Binding -> '{#' Pragma . '#}' (rule 6)
|
|
|
|
'#}' shift, and enter state 61
|
|
|
|
|
|
State 23
|
|
|
|
Pragma -> ListName . (rule 18)
|
|
|
|
'#}' reduce using rule 18
|
|
|
|
|
|
State 24
|
|
|
|
Expression -> '{' Module . '}' (rule 37)
|
|
|
|
'}' shift, and enter state 60
|
|
|
|
|
|
State 25
|
|
|
|
Type -> '{' ListDeclaration . '}' (rule 15)
|
|
|
|
'}' shift, and enter state 59
|
|
|
|
|
|
State 26
|
|
|
|
Expression -> '[' Module . ']' (rule 38)
|
|
|
|
']' shift, and enter state 58
|
|
|
|
|
|
State 27
|
|
|
|
Type -> '[' ListDeclaration . ']' (rule 16)
|
|
|
|
']' shift, and enter state 57
|
|
|
|
|
|
State 28
|
|
|
|
Type -> Name . (rule 11)
|
|
Expression -> Name . (rule 32)
|
|
|
|
'(' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
')' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'->' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'[' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'{' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
'{{' reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
L_Name reduce using rule 32
|
|
(reduce using rule 11)
|
|
|
|
L_NumericLiteralreduce using rule 32
|
|
|
|
|
|
State 29
|
|
|
|
Type -> Type . Type (rule 12)
|
|
Type -> Type . '->' Type (rule 13)
|
|
Type -> '(' Type . ')' (rule 17)
|
|
|
|
'(' shift, and enter state 40
|
|
')' shift, and enter state 56
|
|
'->' shift, and enter state 41
|
|
'[' shift, and enter state 42
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 38
|
|
Type goto state 39
|
|
|
|
State 30
|
|
|
|
Expression -> Expression . Expression (rule 34)
|
|
Expression -> Expression . '->' Expression (rule 35)
|
|
Expression -> '(' Expression . ')' (rule 39)
|
|
|
|
'(' shift, and enter state 33
|
|
')' shift, and enter state 55
|
|
'->' shift, and enter state 34
|
|
'[' shift, and enter state 35
|
|
'{' shift, and enter state 36
|
|
'{{' shift, and enter state 37
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 32
|
|
|
|
State 31
|
|
|
|
Expression -> Name . (rule 32)
|
|
|
|
'(' reduce using rule 32
|
|
')' reduce using rule 32
|
|
',' reduce using rule 32
|
|
'->' reduce using rule 32
|
|
'[' reduce using rule 32
|
|
']' reduce using rule 32
|
|
'{' reduce using rule 32
|
|
'{{' reduce using rule 32
|
|
'}' reduce using rule 32
|
|
'}}' reduce using rule 32
|
|
L_Name reduce using rule 32
|
|
L_NumericLiteralreduce using rule 32
|
|
%eof reduce using rule 32
|
|
|
|
|
|
State 32
|
|
|
|
Expression -> Expression . Expression (rule 34)
|
|
Expression -> Expression Expression . (rule 34)
|
|
Expression -> Expression . '->' Expression (rule 35)
|
|
|
|
'(' shift, and enter state 33
|
|
(reduce using rule 34)
|
|
|
|
')' reduce using rule 34
|
|
',' reduce using rule 34
|
|
'->' shift, and enter state 34
|
|
(reduce using rule 34)
|
|
|
|
'[' shift, and enter state 35
|
|
(reduce using rule 34)
|
|
|
|
']' reduce using rule 34
|
|
'{' shift, and enter state 36
|
|
(reduce using rule 34)
|
|
|
|
'{{' shift, and enter state 37
|
|
(reduce using rule 34)
|
|
|
|
'}' reduce using rule 34
|
|
'}}' reduce using rule 34
|
|
L_Name shift, and enter state 2
|
|
(reduce using rule 34)
|
|
|
|
L_NumericLiteralshift, and enter state 17
|
|
(reduce using rule 34)
|
|
|
|
%eof reduce using rule 34
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 32
|
|
|
|
State 33
|
|
|
|
Expression -> '(' . Expression ')' (rule 39)
|
|
|
|
'(' shift, and enter state 33
|
|
'[' shift, and enter state 35
|
|
'{' shift, and enter state 36
|
|
'{{' shift, and enter state 37
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 30
|
|
|
|
State 34
|
|
|
|
Expression -> Expression '->' . Expression (rule 35)
|
|
|
|
'(' shift, and enter state 33
|
|
'[' shift, and enter state 35
|
|
'{' shift, and enter state 36
|
|
'{{' shift, and enter state 37
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 54
|
|
|
|
State 35
|
|
|
|
Expression -> '[' . Module ']' (rule 38)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
']' reduce using rule 19
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 26
|
|
Binding goto state 6
|
|
Declaration goto state 7
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
Expression goto state 11
|
|
|
|
State 36
|
|
|
|
Expression -> '{' . Module '}' (rule 37)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
'}' reduce using rule 19
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 24
|
|
Binding goto state 6
|
|
Declaration goto state 7
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
Expression goto state 11
|
|
|
|
State 37
|
|
|
|
Expression -> '{{' . Module '}}' (rule 36)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
'}}' reduce using rule 19
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Module goto state 18
|
|
Binding goto state 6
|
|
Declaration goto state 7
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 10
|
|
Expression goto state 11
|
|
|
|
State 38
|
|
|
|
Type -> Name . (rule 11)
|
|
|
|
'(' reduce using rule 11
|
|
')' reduce using rule 11
|
|
',' reduce using rule 11
|
|
'->' reduce using rule 11
|
|
'[' reduce using rule 11
|
|
']' reduce using rule 11
|
|
'{' reduce using rule 11
|
|
'{{' reduce using rule 11
|
|
'}' reduce using rule 11
|
|
'}}' reduce using rule 11
|
|
L_Name reduce using rule 11
|
|
%eof reduce using rule 11
|
|
|
|
|
|
State 39
|
|
|
|
Type -> Type . Type (rule 12)
|
|
Type -> Type Type . (rule 12)
|
|
Type -> Type . '->' Type (rule 13)
|
|
|
|
'(' shift, and enter state 40
|
|
(reduce using rule 12)
|
|
|
|
')' reduce using rule 12
|
|
',' reduce using rule 12
|
|
'->' shift, and enter state 41
|
|
(reduce using rule 12)
|
|
|
|
'[' shift, and enter state 42
|
|
(reduce using rule 12)
|
|
|
|
']' reduce using rule 12
|
|
'{' shift, and enter state 43
|
|
(reduce using rule 12)
|
|
|
|
'{{' shift, and enter state 44
|
|
(reduce using rule 12)
|
|
|
|
'}' reduce using rule 12
|
|
'}}' reduce using rule 12
|
|
L_Name shift, and enter state 2
|
|
(reduce using rule 12)
|
|
|
|
%eof reduce using rule 12
|
|
|
|
Name goto state 38
|
|
Type goto state 39
|
|
|
|
State 40
|
|
|
|
Type -> '(' . Type ')' (rule 17)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 38
|
|
Type goto state 29
|
|
|
|
State 41
|
|
|
|
Type -> Type '->' . Type (rule 13)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 38
|
|
Type goto state 53
|
|
|
|
State 42
|
|
|
|
Type -> '[' . ListDeclaration ']' (rule 16)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
']' reduce using rule 22
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 51
|
|
Declaration goto state 52
|
|
Type goto state 9
|
|
ListDeclarationgoto state 27
|
|
|
|
State 43
|
|
|
|
Type -> '{' . ListDeclaration '}' (rule 15)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
'}' reduce using rule 22
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 51
|
|
Declaration goto state 52
|
|
Type goto state 9
|
|
ListDeclarationgoto state 25
|
|
|
|
State 44
|
|
|
|
Type -> '{{' . ListDeclaration '}}' (rule 14)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
'}}' reduce using rule 22
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 51
|
|
Declaration goto state 52
|
|
Type goto state 9
|
|
ListDeclarationgoto state 20
|
|
|
|
State 45
|
|
|
|
ListBinding -> Binding ',' . ListBinding (rule 21)
|
|
|
|
'(' shift, and enter state 12
|
|
'[' shift, and enter state 13
|
|
']' reduce using rule 19
|
|
'{' shift, and enter state 14
|
|
'{#' shift, and enter state 15
|
|
'{{' shift, and enter state 16
|
|
'}' reduce using rule 19
|
|
'}}' reduce using rule 19
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
%eof reduce using rule 19
|
|
|
|
Name goto state 3
|
|
NumericLiteral goto state 4
|
|
Binding goto state 6
|
|
Declaration goto state 7
|
|
Definition goto state 8
|
|
Type goto state 9
|
|
ListBinding goto state 50
|
|
Expression goto state 11
|
|
|
|
State 46
|
|
|
|
Declaration -> Name ':' . Type (rule 7)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 38
|
|
Type goto state 49
|
|
|
|
State 47
|
|
|
|
Definition -> Name '=' . Expression (rule 9)
|
|
|
|
'(' shift, and enter state 33
|
|
'[' shift, and enter state 35
|
|
'{' shift, and enter state 36
|
|
'{{' shift, and enter state 37
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 48
|
|
|
|
State 48
|
|
|
|
Definition -> Name '=' Expression . (rule 9)
|
|
Expression -> Expression . Expression (rule 34)
|
|
Expression -> Expression . '->' Expression (rule 35)
|
|
|
|
'(' shift, and enter state 33
|
|
',' reduce using rule 9
|
|
'->' shift, and enter state 34
|
|
'[' shift, and enter state 35
|
|
']' reduce using rule 9
|
|
'{' shift, and enter state 36
|
|
'{{' shift, and enter state 37
|
|
'}' reduce using rule 9
|
|
'}}' reduce using rule 9
|
|
L_Name shift, and enter state 2
|
|
L_NumericLiteralshift, and enter state 17
|
|
%eof reduce using rule 9
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 32
|
|
|
|
State 49
|
|
|
|
Declaration -> Name ':' Type . (rule 7)
|
|
Type -> Type . Type (rule 12)
|
|
Type -> Type . '->' Type (rule 13)
|
|
|
|
'(' shift, and enter state 40
|
|
',' reduce using rule 7
|
|
'->' shift, and enter state 41
|
|
'[' shift, and enter state 42
|
|
']' reduce using rule 7
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
'}' reduce using rule 7
|
|
'}}' reduce using rule 7
|
|
L_Name shift, and enter state 2
|
|
%eof reduce using rule 7
|
|
|
|
Name goto state 38
|
|
Type goto state 39
|
|
|
|
State 50
|
|
|
|
ListBinding -> Binding ',' ListBinding . (rule 21)
|
|
|
|
']' reduce using rule 21
|
|
'}' reduce using rule 21
|
|
'}}' reduce using rule 21
|
|
%eof reduce using rule 21
|
|
|
|
|
|
State 51
|
|
|
|
Declaration -> Name . ':' Type (rule 7)
|
|
Type -> Name . (rule 11)
|
|
|
|
'(' reduce using rule 11
|
|
',' reduce using rule 11
|
|
'->' reduce using rule 11
|
|
':' shift, and enter state 46
|
|
'[' reduce using rule 11
|
|
']' reduce using rule 11
|
|
'{' reduce using rule 11
|
|
'{{' reduce using rule 11
|
|
'}' reduce using rule 11
|
|
'}}' reduce using rule 11
|
|
L_Name reduce using rule 11
|
|
|
|
|
|
State 52
|
|
|
|
ListDeclaration -> Declaration . (rule 23)
|
|
ListDeclaration -> Declaration . ',' ListDeclaration (rule 24)
|
|
|
|
',' shift, and enter state 64
|
|
']' reduce using rule 23
|
|
'}' reduce using rule 23
|
|
'}}' reduce using rule 23
|
|
|
|
|
|
State 53
|
|
|
|
Type -> Type . Type (rule 12)
|
|
Type -> Type . '->' Type (rule 13)
|
|
Type -> Type '->' Type . (rule 13)
|
|
|
|
'(' shift, and enter state 40
|
|
(reduce using rule 13)
|
|
|
|
')' reduce using rule 13
|
|
',' reduce using rule 13
|
|
'->' shift, and enter state 41
|
|
(reduce using rule 13)
|
|
|
|
'[' shift, and enter state 42
|
|
(reduce using rule 13)
|
|
|
|
']' reduce using rule 13
|
|
'{' shift, and enter state 43
|
|
(reduce using rule 13)
|
|
|
|
'{{' shift, and enter state 44
|
|
(reduce using rule 13)
|
|
|
|
'}' reduce using rule 13
|
|
'}}' reduce using rule 13
|
|
L_Name shift, and enter state 2
|
|
(reduce using rule 13)
|
|
|
|
%eof reduce using rule 13
|
|
|
|
Name goto state 38
|
|
Type goto state 39
|
|
|
|
State 54
|
|
|
|
Expression -> Expression . Expression (rule 34)
|
|
Expression -> Expression . '->' Expression (rule 35)
|
|
Expression -> Expression '->' Expression . (rule 35)
|
|
|
|
'(' shift, and enter state 33
|
|
(reduce using rule 35)
|
|
|
|
')' reduce using rule 35
|
|
',' reduce using rule 35
|
|
'->' shift, and enter state 34
|
|
(reduce using rule 35)
|
|
|
|
'[' shift, and enter state 35
|
|
(reduce using rule 35)
|
|
|
|
']' reduce using rule 35
|
|
'{' shift, and enter state 36
|
|
(reduce using rule 35)
|
|
|
|
'{{' shift, and enter state 37
|
|
(reduce using rule 35)
|
|
|
|
'}' reduce using rule 35
|
|
'}}' reduce using rule 35
|
|
L_Name shift, and enter state 2
|
|
(reduce using rule 35)
|
|
|
|
L_NumericLiteralshift, and enter state 17
|
|
(reduce using rule 35)
|
|
|
|
%eof reduce using rule 35
|
|
|
|
Name goto state 31
|
|
NumericLiteral goto state 4
|
|
Expression goto state 32
|
|
|
|
State 55
|
|
|
|
Expression -> '(' Expression ')' . (rule 39)
|
|
|
|
'(' reduce using rule 39
|
|
')' reduce using rule 39
|
|
',' reduce using rule 39
|
|
'->' reduce using rule 39
|
|
'[' reduce using rule 39
|
|
']' reduce using rule 39
|
|
'{' reduce using rule 39
|
|
'{{' reduce using rule 39
|
|
'}' reduce using rule 39
|
|
'}}' reduce using rule 39
|
|
L_Name reduce using rule 39
|
|
L_NumericLiteralreduce using rule 39
|
|
%eof reduce using rule 39
|
|
|
|
|
|
State 56
|
|
|
|
Type -> '(' Type ')' . (rule 17)
|
|
|
|
'(' reduce using rule 17
|
|
')' reduce using rule 17
|
|
',' reduce using rule 17
|
|
'->' reduce using rule 17
|
|
'[' reduce using rule 17
|
|
']' reduce using rule 17
|
|
'{' reduce using rule 17
|
|
'{{' reduce using rule 17
|
|
'}' reduce using rule 17
|
|
'}}' reduce using rule 17
|
|
L_Name reduce using rule 17
|
|
%eof reduce using rule 17
|
|
|
|
|
|
State 57
|
|
|
|
Type -> '[' ListDeclaration ']' . (rule 16)
|
|
|
|
'(' reduce using rule 16
|
|
')' reduce using rule 16
|
|
',' reduce using rule 16
|
|
'->' reduce using rule 16
|
|
'[' reduce using rule 16
|
|
']' reduce using rule 16
|
|
'{' reduce using rule 16
|
|
'{{' reduce using rule 16
|
|
'}' reduce using rule 16
|
|
'}}' reduce using rule 16
|
|
L_Name reduce using rule 16
|
|
%eof reduce using rule 16
|
|
|
|
|
|
State 58
|
|
|
|
Expression -> '[' Module ']' . (rule 38)
|
|
|
|
'(' reduce using rule 38
|
|
')' reduce using rule 38
|
|
',' reduce using rule 38
|
|
'->' reduce using rule 38
|
|
'[' reduce using rule 38
|
|
']' reduce using rule 38
|
|
'{' reduce using rule 38
|
|
'{{' reduce using rule 38
|
|
'}' reduce using rule 38
|
|
'}}' reduce using rule 38
|
|
L_Name reduce using rule 38
|
|
L_NumericLiteralreduce using rule 38
|
|
%eof reduce using rule 38
|
|
|
|
|
|
State 59
|
|
|
|
Type -> '{' ListDeclaration '}' . (rule 15)
|
|
|
|
'(' reduce using rule 15
|
|
')' reduce using rule 15
|
|
',' reduce using rule 15
|
|
'->' reduce using rule 15
|
|
'[' reduce using rule 15
|
|
']' reduce using rule 15
|
|
'{' reduce using rule 15
|
|
'{{' reduce using rule 15
|
|
'}' reduce using rule 15
|
|
'}}' reduce using rule 15
|
|
L_Name reduce using rule 15
|
|
%eof reduce using rule 15
|
|
|
|
|
|
State 60
|
|
|
|
Expression -> '{' Module '}' . (rule 37)
|
|
|
|
'(' reduce using rule 37
|
|
')' reduce using rule 37
|
|
',' reduce using rule 37
|
|
'->' reduce using rule 37
|
|
'[' reduce using rule 37
|
|
']' reduce using rule 37
|
|
'{' reduce using rule 37
|
|
'{{' reduce using rule 37
|
|
'}' reduce using rule 37
|
|
'}}' reduce using rule 37
|
|
L_Name reduce using rule 37
|
|
L_NumericLiteralreduce using rule 37
|
|
%eof reduce using rule 37
|
|
|
|
|
|
State 61
|
|
|
|
Binding -> '{#' Pragma '#}' . (rule 6)
|
|
|
|
',' reduce using rule 6
|
|
']' reduce using rule 6
|
|
'}' reduce using rule 6
|
|
'}}' reduce using rule 6
|
|
%eof reduce using rule 6
|
|
|
|
|
|
State 62
|
|
|
|
ListName -> Name ListName . (rule 31)
|
|
|
|
'#}' reduce using rule 31
|
|
|
|
|
|
State 63
|
|
|
|
Type -> '{{' ListDeclaration '}}' . (rule 14)
|
|
|
|
'(' reduce using rule 14
|
|
')' reduce using rule 14
|
|
',' reduce using rule 14
|
|
'->' reduce using rule 14
|
|
'[' reduce using rule 14
|
|
']' reduce using rule 14
|
|
'{' reduce using rule 14
|
|
'{{' reduce using rule 14
|
|
'}' reduce using rule 14
|
|
'}}' reduce using rule 14
|
|
L_Name reduce using rule 14
|
|
%eof reduce using rule 14
|
|
|
|
|
|
State 64
|
|
|
|
ListDeclaration -> Declaration ',' . ListDeclaration (rule 24)
|
|
|
|
'(' shift, and enter state 40
|
|
'[' shift, and enter state 42
|
|
']' reduce using rule 22
|
|
'{' shift, and enter state 43
|
|
'{{' shift, and enter state 44
|
|
'}' reduce using rule 22
|
|
'}}' reduce using rule 22
|
|
L_Name shift, and enter state 2
|
|
|
|
Name goto state 51
|
|
Declaration goto state 52
|
|
Type goto state 9
|
|
ListDeclarationgoto state 66
|
|
|
|
State 65
|
|
|
|
Expression -> '{{' Module '}}' . (rule 36)
|
|
|
|
'(' reduce using rule 36
|
|
')' reduce using rule 36
|
|
',' reduce using rule 36
|
|
'->' reduce using rule 36
|
|
'[' reduce using rule 36
|
|
']' reduce using rule 36
|
|
'{' reduce using rule 36
|
|
'{{' reduce using rule 36
|
|
'}' reduce using rule 36
|
|
'}}' reduce using rule 36
|
|
L_Name reduce using rule 36
|
|
L_NumericLiteralreduce using rule 36
|
|
%eof reduce using rule 36
|
|
|
|
|
|
State 66
|
|
|
|
ListDeclaration -> Declaration ',' ListDeclaration . (rule 24)
|
|
|
|
']' reduce using rule 24
|
|
'}' reduce using rule 24
|
|
'}}' reduce using rule 24
|
|
|
|
|
|
-----------------------------------------------------------------------------
|
|
Grammar Totals
|
|
-----------------------------------------------------------------------------
|
|
Number of rules: 40
|
|
Number of terminals: 16
|
|
Number of non-terminals: 15
|
|
Number of states: 67
|