[MLton-commit] r4246
Matthew Fluet
MLton@mlton.org
Sat, 19 Nov 2005 12:10:39 -0800
Put lex/yacc derived files in .tgz
----------------------------------------------------------------------
U mlton/trunk/lib/ckit-lib/ckit.patch
U mlton/trunk/lib/ckit-lib/ckit.tgz
U mlton/trunk/lib/smlnj-lib/smlnj-lib.patch
U mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz
----------------------------------------------------------------------
Modified: mlton/trunk/lib/ckit-lib/ckit.patch
===================================================================
--- mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 19:46:26 UTC (rev 4245)
+++ mlton/trunk/lib/ckit-lib/ckit.patch 2005-11-19 20:10:35 UTC (rev 4246)
@@ -393,7 +393,7 @@
)
diff -Naur ckit/src/ckit-lib.mlb ckit-mlton/src/ckit-lib.mlb
--- ckit/src/ckit-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/ckit-lib.mlb 2005-11-19 13:53:37.000000000 -0500
++++ ckit-mlton/src/ckit-lib.mlb 2005-11-19 14:44:19.000000000 -0500
@@ -0,0 +1,876 @@
+
+ann
@@ -1271,15043 +1271,117 @@
+end
+
+end
-diff -Naur ckit/src/parser/grammar/c.grm.desc ckit-mlton/src/parser/grammar/c.grm.desc
---- ckit/src/parser/grammar/c.grm.desc 1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.grm.desc 2005-11-19 13:53:36.000000000 -0500
-@@ -0,0 +1,10001 @@
-+1 shift/reduce conflict
-+
-+error: state 404: shift/reduce conflict (shift ELSE, reduce by rule 18)
-+
-+state 0:
-+
-+ translationUnit : . tu
-+
-+
-+ translationUnit goto 420
-+ tu goto 1
-+
-+ . reduce by rule 1
-+
-+
-+state 1:
-+
-+ translationUnit : tu . (reduce by rule 0)
-+ tu : tu . externalDeclaration
-+
-+ SEMICOLON shift 42
-+ LPAREN shift 41
-+ TIMES shift 40
-+ ID shift 39
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ pointer goto 18
-+ notypeDeclarator goto 17
-+ notypeDirectDeclarator goto 16
-+ declarationSpecifiers goto 15
-+ declarationModifiers goto 14
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ fDefDeclaration goto 7
-+ functionDefinition goto 6
-+ declaration goto 5
-+ declaration1 goto 4
-+ externalDeclaration goto 3
-+ structOrUnion goto 2
-+
-+ . reduce by rule 0
-+
-+
-+state 2:
-+
-+ structOrUnionSpecifier : structOrUnion . LCURLY structDeclarationList RCURLY
-+ structOrUnionSpecifier : structOrUnion . ID LCURLY structDeclarationList RCURLY
-+ structOrUnionSpecifier : structOrUnion . TYPE_NAME LCURLY structDeclarationList RCURLY
-+ structOrUnionSpecifier : structOrUnion . ID
-+ structOrUnionSpecifier : structOrUnion . TYPE_NAME
-+
-+ LCURLY shift 45
-+ ID shift 44
-+ TYPE_NAME shift 43
-+
-+
-+ . error
-+
-+
-+state 3:
-+
-+ tu : tu externalDeclaration . (reduce by rule 2)
-+
-+
-+
-+ . reduce by rule 2
-+
-+
-+state 4:
-+
-+ declaration : declaration1 . SEMICOLON
-+
-+ SEMICOLON shift 46
-+
-+
-+ . error
-+
-+
-+state 5:
-+
-+ externalDeclaration : declaration . (reduce by rule 3)
-+
-+
-+
-+ . reduce by rule 3
-+
-+
-+state 6:
-+
-+ externalDeclaration : functionDefinition . (reduce by rule 5)
-+
-+
-+
-+ . reduce by rule 5
-+
-+
-+state 7:
-+
-+ functionDefinition : fDefDeclaration . compoundStatement
-+ functionDefinition : fDefDeclaration . declarationList compoundStatement
-+
-+ LCURLY shift 52
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ compoundStatement goto 51
-+ declarationSpecifiers goto 50
-+ declarationModifiers goto 49
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ declarationList goto 48
-+ declaration goto 47
-+ declaration1 goto 4
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 8:
-+
-+ typeSpecifier : structOrUnionSpecifier . (reduce by rule 119)
-+
-+
-+
-+ . reduce by rule 119
-+
-+
-+state 9:
-+
-+ typeSpecifier : enumSpecifier . (reduce by rule 120)
-+
-+
-+
-+ . reduce by rule 120
-+
-+
-+state 10:
-+
-+ declarationModifiers : typeQualifier . (reduce by rule 110)
-+
-+
-+
-+ . reduce by rule 110
-+
-+
-+state 11:
-+
-+ typeSpecifier : typeSpecifierReserved . (reduce by rule 118)
-+
-+
-+
-+ . reduce by rule 118
-+
-+
-+state 12:
-+
-+ declarationSpecifiers : typeSpecifier . reservedDeclarationSpecifier
-+
-+
-+ reservedDeclarationSpecifier goto 53
-+
-+ . reduce by rule 101
-+
-+
-+state 13:
-+
-+ declarationModifiers : storageClassSpecifier . (reduce by rule 108)
-+
-+
-+
-+ . reduce by rule 108
-+
-+
-+state 14:
-+
-+ declarationSpecifiers : declarationModifiers . typeSpecifier reservedDeclarationSpecifier
-+ declarationModifiers : declarationModifiers . storageClassSpecifier
-+ declarationModifiers : declarationModifiers . typeQualifier
-+ fDefDeclaration : declarationModifiers . notypeDeclarator
-+ declaration1 : declarationModifiers . notypeInitDeclaratorList
-+
-+ LPAREN shift 41
-+ TIMES shift 40
-+ ID shift 39
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ notypeInitDeclarator goto 59
-+ notypeInitDeclaratorList goto 58
-+ pointer goto 18
-+ notypeDeclarator goto 57
-+ notypeDirectDeclarator goto 16
-+ storageClassSpecifier goto 56
-+ typeSpecifier goto 55
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 54
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 15:
-+
-+ fDefDeclaration : declarationSpecifiers . declarator
-+ declaration1 : declarationSpecifiers . (reduce by rule 23)
-+ declaration1 : declarationSpecifiers . initDeclaratorList
-+
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ initDeclarator goto 66
-+ initDeclaratorList goto 65
-+ pointer goto 64
-+ declarator goto 63
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+
-+ . reduce by rule 23
-+
-+
-+state 16:
-+
-+ notypeDeclarator : notypeDirectDeclarator . (reduce by rule 182)
-+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE RBRACE
-+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE expr RBRACE
-+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN RPAREN
-+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN parameterTypeList RPAREN
-+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN identlist RPAREN
-+
-+ LPAREN shift 70
-+ LBRACE shift 69
-+
-+
-+ . reduce by rule 182
-+
-+
-+state 17:
-+
-+ fDefDeclaration : notypeDeclarator . (reduce by rule 218)
-+
-+
-+
-+ . reduce by rule 218
-+
-+
-+state 18:
-+
-+ notypeDeclarator : pointer . notypeDirectDeclarator
-+
-+ LPAREN shift 41
-+ ID shift 39
-+
-+ notypeDirectDeclarator goto 71
-+
-+ . error
-+
-+
-+state 19:
-+
-+ typeSpecifier : TYPE_NAME . (reduce by rule 121)
-+
-+
-+
-+ . reduce by rule 121
-+
-+
-+state 20:
-+
-+ storageClassSpecifier : TYPEDEF . (reduce by rule 167)
-+
-+
-+
-+ . reduce by rule 167
-+
-+
-+state 21:
-+
-+ typeSpecifierReserved : VOID . (reduce by rule 122)
-+
-+
-+
-+ . reduce by rule 122
-+
-+
-+state 22:
-+
-+ typeSpecifierReserved : SIGNED . (reduce by rule 129)
-+
-+
-+
-+ . reduce by rule 129
-+
-+
-+state 23:
-+
-+ typeSpecifierReserved : UNSIGNED . (reduce by rule 130)
-+
-+
-+
-+ . reduce by rule 130
-+
-+
-+state 24:
-+
-+ structOrUnion : UNION . (reduce by rule 137)
-+
-+
-+
-+ . reduce by rule 137
-+
-+
-+state 25:
-+
-+ structOrUnion : STRUCT . (reduce by rule 136)
-+
-+
-+
-+ . reduce by rule 136
-+
-+
-+state 26:
-+
-+ typeSpecifierReserved : SHORT . (reduce by rule 124)
-+
-+
-+
-+ . reduce by rule 124
-+
-+
-+state 27:
-+
-+ typeSpecifierReserved : LONG . (reduce by rule 126)
-+
-+
-+
-+ . reduce by rule 126
-+
-+
-+state 28:
-+
-+ typeSpecifierReserved : INT . (reduce by rule 125)
-+
-+
-+
-+ . reduce by rule 125
-+
-+
-+state 29:
-+
-+ typeSpecifierReserved : FLOAT . (reduce by rule 127)
-+
-+
-+
-+ . reduce by rule 127
-+
-+
-+state 30:
-+
-+ enumSpecifier : ENUM . LCURLY enumeratorList trailingComma RCURLY
-+ enumSpecifier : ENUM . ID LCURLY enumeratorList trailingComma RCURLY
-+ enumSpecifier : ENUM . TYPE_NAME LCURLY enumeratorList trailingComma RCURLY
-+ enumSpecifier : ENUM . ID
-+ enumSpecifier : ENUM . TYPE_NAME
-+
-+ LCURLY shift 74
-+ ID shift 73
-+ TYPE_NAME shift 72
-+
-+
-+ . error
-+
-+
-+state 31:
-+
-+ typeSpecifierReserved : DOUBLE . (reduce by rule 128)
-+
-+
-+
-+ . reduce by rule 128
-+
-+
-+state 32:
-+
-+ typeSpecifierReserved : CHAR . (reduce by rule 123)
-+
-+
-+
-+ . reduce by rule 123
-+
-+
-+state 33:
-+
-+ typeQualifier : VOLATILE . (reduce by rule 153)
-+
-+
-+
-+ . reduce by rule 153
-+
-+
-+state 34:
-+
-+ typeQualifier : CONST . (reduce by rule 152)
-+
-+
-+
-+ . reduce by rule 152
-+
-+
-+state 35:
-+
-+ storageClassSpecifier : REGISTER . (reduce by rule 166)
-+
-+
-+
-+ . reduce by rule 166
-+
-+
-+state 36:
-+
-+ storageClassSpecifier : STATIC . (reduce by rule 164)
-+
-+
-+
-+ . reduce by rule 164
-+
-+
-+state 37:
-+
-+ storageClassSpecifier : AUTO . (reduce by rule 165)
-+
-+
-+
-+ . reduce by rule 165
-+
-+
-+state 38:
-+
-+ storageClassSpecifier : EXTERN . (reduce by rule 163)
-+
-+
-+
-+ . reduce by rule 163
-+
-+
-+state 39:
-+
-+ notypeDirectDeclarator : ID . (reduce by rule 197)
-+
-+
-+
-+ . reduce by rule 197
-+
-+
-+state 40:
-+
-+ pointer : TIMES . (reduce by rule 186)
-+ pointer : TIMES . typeQualifierList
-+ pointer : TIMES . pointer
-+ pointer : TIMES . typeQualifierList pointer
-+
-+ TIMES shift 40
-+ CONST shift 34
-+ VOLATILE shift 33
-+
-+ pointer goto 77
-+ typeQualifier goto 76
-+ typeQualifierList goto 75
-+
-+ . reduce by rule 186
-+
-+
-+state 41:
-+
-+ notypeDirectDeclarator : LPAREN . notypeDeclarator RPAREN
-+
-+ LPAREN shift 41
-+ TIMES shift 40
-+ ID shift 39
-+
-+ pointer goto 18
-+ notypeDeclarator goto 78
-+ notypeDirectDeclarator goto 16
-+
-+ . error
-+
-+
-+state 42:
-+
-+ externalDeclaration : SEMICOLON . (reduce by rule 4)
-+
-+
-+
-+ . reduce by rule 4
-+
-+
-+state 43:
-+
-+ structOrUnionSpecifier : structOrUnion TYPE_NAME . LCURLY structDeclarationList RCURLY
-+ structOrUnionSpecifier : structOrUnion TYPE_NAME . (reduce by rule 135)
-+
-+ LCURLY shift 79
-+
-+
-+ . reduce by rule 135
-+
-+
-+state 44:
-+
-+ structOrUnionSpecifier : structOrUnion ID . LCURLY structDeclarationList RCURLY
-+ structOrUnionSpecifier : structOrUnion ID . (reduce by rule 134)
-+
-+ LCURLY shift 80
-+
-+
-+ . reduce by rule 134
-+
-+
-+state 45:
-+
-+ structOrUnionSpecifier : structOrUnion LCURLY . structDeclarationList RCURLY
-+
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 84
-+ specifierQualifierList goto 83
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ structDeclarationList goto 82
-+ structDeclaration goto 81
-+
-+ . error
-+
-+
-+state 46:
-+
-+ declaration : declaration1 SEMICOLON . (reduce by rule 22)
-+
-+
-+
-+ . reduce by rule 22
-+
-+
-+state 47:
-+
-+ declarationList : declaration . (reduce by rule 214)
-+
-+
-+
-+ . reduce by rule 214
-+
-+
-+state 48:
-+
-+ declarationList : declarationList . declaration
-+ functionDefinition : fDefDeclaration declarationList . compoundStatement
-+
-+ LCURLY shift 52
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ compoundStatement goto 87
-+ declarationSpecifiers goto 50
-+ declarationModifiers goto 49
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ declaration goto 86
-+ declaration1 goto 4
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 49:
-+
-+ declarationSpecifiers : declarationModifiers . typeSpecifier reservedDeclarationSpecifier
-+ declarationModifiers : declarationModifiers . storageClassSpecifier
-+ declarationModifiers : declarationModifiers . typeQualifier
-+ declaration1 : declarationModifiers . notypeInitDeclaratorList
-+
-+ LPAREN shift 41
-+ TIMES shift 40
-+ ID shift 39
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ notypeInitDeclarator goto 59
-+ notypeInitDeclaratorList goto 58
-+ pointer goto 18
-+ notypeDeclarator goto 88
-+ notypeDirectDeclarator goto 16
-+ storageClassSpecifier goto 56
-+ typeSpecifier goto 55
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 54
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 50:
-+
-+ declaration1 : declarationSpecifiers . (reduce by rule 23)
-+ declaration1 : declarationSpecifiers . initDeclaratorList
-+
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ initDeclarator goto 66
-+ initDeclaratorList goto 65
-+ pointer goto 64
-+ declarator goto 89
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+
-+ . reduce by rule 23
-+
-+
-+state 51:
-+
-+ functionDefinition : fDefDeclaration compoundStatement . (reduce by rule 221)
-+
-+
-+
-+ . reduce by rule 221
-+
-+
-+state 52:
-+
-+ compoundStatement : LCURLY . pushScope declarationList ostatementlist popScope RCURLY
-+ compoundStatement : LCURLY . ostatementlist RCURLY
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ RCURLY reduce by rule 27
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ EXTERN reduce by rule 245
-+ AUTO reduce by rule 245
-+ STATIC reduce by rule 245
-+ REGISTER reduce by rule 245
-+ CONST reduce by rule 245
-+ VOLATILE reduce by rule 245
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ CHAR reduce by rule 245
-+ DOUBLE reduce by rule 245
-+ ENUM reduce by rule 245
-+ FLOAT reduce by rule 245
-+ INT reduce by rule 245
-+ LONG reduce by rule 245
-+ SHORT reduce by rule 245
-+ STRUCT reduce by rule 245
-+ UNION reduce by rule 245
-+ UNSIGNED reduce by rule 245
-+ SIGNED reduce by rule 245
-+ VOID reduce by rule 245
-+ SIZEOF shift 99
-+ TYPEDEF reduce by rule 245
-+ TYPE_NAME reduce by rule 245
-+
-+ statement goto 98
-+ ostatementlist goto 97
-+ statementlist goto 96
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ pushScope goto 91
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 53:
-+
-+ declarationSpecifiers : typeSpecifier reservedDeclarationSpecifier . (reduce by rule 99)
-+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . specifierQualifierReserved
-+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . storageClassSpecifier
-+
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+
-+ specifierQualifierReserved goto 131
-+ storageClassSpecifier goto 130
-+ typeSpecifierReserved goto 129
-+ typeQualifier goto 128
-+ enumSpecifier goto 127
-+ structOrUnionSpecifier goto 126
-+ structOrUnion goto 2
-+
-+ . reduce by rule 99
-+
-+
-+state 54:
-+
-+ declarationModifiers : declarationModifiers typeQualifier . (reduce by rule 111)
-+
-+
-+
-+ . reduce by rule 111
-+
-+
-+state 55:
-+
-+ declarationSpecifiers : declarationModifiers typeSpecifier . reservedDeclarationSpecifier
-+
-+
-+ reservedDeclarationSpecifier goto 132
-+
-+ . reduce by rule 101
-+
-+
-+state 56:
-+
-+ declarationModifiers : declarationModifiers storageClassSpecifier . (reduce by rule 109)
-+
-+
-+
-+ . reduce by rule 109
-+
-+
-+state 57:
-+
-+ notypeInitDeclarator : notypeDeclarator . (reduce by rule 176)
-+ notypeInitDeclarator : notypeDeclarator . EQUALS initializer
-+ fDefDeclaration : declarationModifiers notypeDeclarator . (reduce by rule 220)
-+
-+ SEMICOLON reduce by rule 176
-+ LCURLY reduce by rule 220
-+ COMMA reduce by rule 176
-+ EQUALS shift 133
-+ EXTERN reduce by rule 220
-+ AUTO reduce by rule 220
-+ STATIC reduce by rule 220
-+ REGISTER reduce by rule 220
-+ CONST reduce by rule 220
-+ VOLATILE reduce by rule 220
-+ CHAR reduce by rule 220
-+ DOUBLE reduce by rule 220
-+ ENUM reduce by rule 220
-+ FLOAT reduce by rule 220
-+ INT reduce by rule 220
-+ LONG reduce by rule 220
-+ SHORT reduce by rule 220
-+ STRUCT reduce by rule 220
-+ UNION reduce by rule 220
-+ UNSIGNED reduce by rule 220
-+ SIGNED reduce by rule 220
-+ VOID reduce by rule 220
-+ TYPEDEF reduce by rule 220
-+ TYPE_NAME reduce by rule 220
-+
-+
-+ . error
-+
-+
-+state 58:
-+
-+ notypeInitDeclaratorList : notypeInitDeclaratorList . COMMA initDeclarator
-+ declaration1 : declarationModifiers notypeInitDeclaratorList . (reduce by rule 25)
-+
-+ COMMA shift 134
-+
-+
-+ . reduce by rule 25
-+
-+
-+state 59:
-+
-+ notypeInitDeclaratorList : notypeInitDeclarator . (reduce by rule 174)
-+
-+
-+
-+ . reduce by rule 174
-+
-+
-+state 60:
-+
-+ aftertypeDeclarator : aftertypeDirectDeclarator . (reduce by rule 180)
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE RBRACE
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE expr RBRACE
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN RPAREN
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN parameterTypeList RPAREN
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN identlist RPAREN
-+
-+ LPAREN shift 136
-+ LBRACE shift 135
-+
-+
-+ . reduce by rule 180
-+
-+
-+state 61:
-+
-+ declarator : notypeDeclarator . (reduce by rule 179)
-+
-+
-+
-+ . reduce by rule 179
-+
-+
-+state 62:
-+
-+ declarator : aftertypeDeclarator . (reduce by rule 178)
-+
-+
-+
-+ . reduce by rule 178
-+
-+
-+state 63:
-+
-+ initDeclarator : declarator . (reduce by rule 172)
-+ initDeclarator : declarator . EQUALS initializer
-+ fDefDeclaration : declarationSpecifiers declarator . (reduce by rule 219)
-+
-+ SEMICOLON reduce by rule 172
-+ LCURLY reduce by rule 219
-+ COMMA reduce by rule 172
-+ EQUALS shift 137
-+ EXTERN reduce by rule 219
-+ AUTO reduce by rule 219
-+ STATIC reduce by rule 219
-+ REGISTER reduce by rule 219
-+ CONST reduce by rule 219
-+ VOLATILE reduce by rule 219
-+ CHAR reduce by rule 219
-+ DOUBLE reduce by rule 219
-+ ENUM reduce by rule 219
-+ FLOAT reduce by rule 219
-+ INT reduce by rule 219
-+ LONG reduce by rule 219
-+ SHORT reduce by rule 219
-+ STRUCT reduce by rule 219
-+ UNION reduce by rule 219
-+ UNSIGNED reduce by rule 219
-+ SIGNED reduce by rule 219
-+ VOID reduce by rule 219
-+ TYPEDEF reduce by rule 219
-+ TYPE_NAME reduce by rule 219
-+
-+
-+ . error
-+
-+
-+state 64:
-+
-+ aftertypeDeclarator : pointer . aftertypeDirectDeclarator
-+ notypeDeclarator : pointer . notypeDirectDeclarator
-+
-+ LPAREN shift 68
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ aftertypeDirectDeclarator goto 138
-+ notypeDirectDeclarator goto 71
-+
-+ . error
-+
-+
-+state 65:
-+
-+ initDeclaratorList : initDeclaratorList . COMMA initDeclarator
-+ declaration1 : declarationSpecifiers initDeclaratorList . (reduce by rule 24)
-+
-+ COMMA shift 139
-+
-+
-+ . reduce by rule 24
-+
-+
-+state 66:
-+
-+ initDeclaratorList : initDeclarator . (reduce by rule 170)
-+
-+
-+
-+ . reduce by rule 170
-+
-+
-+state 67:
-+
-+ aftertypeDirectDeclarator : TYPE_NAME . (reduce by rule 190)
-+
-+
-+
-+ . reduce by rule 190
-+
-+
-+state 68:
-+
-+ aftertypeDirectDeclarator : LPAREN . aftertypeDeclarator RPAREN
-+ notypeDirectDeclarator : LPAREN . notypeDeclarator RPAREN
-+
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ pointer goto 64
-+ aftertypeDeclarator goto 140
-+ notypeDeclarator goto 78
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+
-+ . error
-+
-+
-+state 69:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE . RBRACE
-+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE . expr RBRACE
-+
-+ LPAREN shift 124
-+ RBRACE shift 143
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 141
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 70:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN . RPAREN
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN . parameterTypeList RPAREN
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN . identlist RPAREN
-+
-+ RPAREN shift 151
-+ ID shift 150
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ identlist goto 147
-+ parameterList goto 146
-+ parameterTypeList goto 145
-+ parameterDeclaration goto 144
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 71:
-+
-+ notypeDeclarator : pointer notypeDirectDeclarator . (reduce by rule 183)
-+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE RBRACE
-+ notypeDirectDeclarator : notypeDirectDeclarator . LBRACE expr RBRACE
-+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN RPAREN
-+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN parameterTypeList RPAREN
-+ notypeDirectDeclarator : notypeDirectDeclarator . LPAREN identlist RPAREN
-+
-+ LPAREN shift 70
-+ LBRACE shift 69
-+
-+
-+ . reduce by rule 183
-+
-+
-+state 72:
-+
-+ enumSpecifier : ENUM TYPE_NAME . LCURLY enumeratorList trailingComma RCURLY
-+ enumSpecifier : ENUM TYPE_NAME . (reduce by rule 158)
-+
-+ LCURLY shift 152
-+
-+
-+ . reduce by rule 158
-+
-+
-+state 73:
-+
-+ enumSpecifier : ENUM ID . LCURLY enumeratorList trailingComma RCURLY
-+ enumSpecifier : ENUM ID . (reduce by rule 157)
-+
-+ LCURLY shift 153
-+
-+
-+ . reduce by rule 157
-+
-+
-+state 74:
-+
-+ enumSpecifier : ENUM LCURLY . enumeratorList trailingComma RCURLY
-+
-+ ID shift 156
-+
-+ enumeratorList goto 155
-+ enumerator goto 154
-+
-+ . error
-+
-+
-+state 75:
-+
-+ pointer : TIMES typeQualifierList . (reduce by rule 187)
-+ pointer : TIMES typeQualifierList . pointer
-+
-+ TIMES shift 40
-+
-+ pointer goto 157
-+
-+ . reduce by rule 187
-+
-+
-+state 76:
-+
-+ typeQualifierList : typeQualifier . (reduce by rule 116)
-+ typeQualifierList : typeQualifier . typeQualifierList
-+
-+ CONST shift 34
-+ VOLATILE shift 33
-+
-+ typeQualifier goto 76
-+ typeQualifierList goto 158
-+
-+ . reduce by rule 116
-+
-+
-+state 77:
-+
-+ pointer : TIMES pointer . (reduce by rule 188)
-+
-+
-+
-+ . reduce by rule 188
-+
-+
-+state 78:
-+
-+ notypeDirectDeclarator : LPAREN notypeDeclarator . RPAREN
-+
-+ RPAREN shift 159
-+
-+
-+ . error
-+
-+
-+state 79:
-+
-+ structOrUnionSpecifier : structOrUnion TYPE_NAME LCURLY . structDeclarationList RCURLY
-+
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 84
-+ specifierQualifierList goto 83
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ structDeclarationList goto 160
-+ structDeclaration goto 81
-+
-+ . error
-+
-+
-+state 80:
-+
-+ structOrUnionSpecifier : structOrUnion ID LCURLY . structDeclarationList RCURLY
-+
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 84
-+ specifierQualifierList goto 83
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ structDeclarationList goto 161
-+ structDeclaration goto 81
-+
-+ . error
-+
-+
-+state 81:
-+
-+ structDeclarationList : structDeclaration . (reduce by rule 138)
-+
-+
-+
-+ . reduce by rule 138
-+
-+
-+state 82:
-+
-+ structOrUnionSpecifier : structOrUnion LCURLY structDeclarationList . RCURLY
-+ structDeclarationList : structDeclarationList . structDeclaration
-+
-+ RCURLY shift 163
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 84
-+ specifierQualifierList goto 83
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ structDeclaration goto 162
-+
-+ . error
-+
-+
-+state 83:
-+
-+ structDeclaration : specifierQualifierList . structDeclaratorList SEMICOLON
-+
-+ COLON shift 167
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ pointer goto 64
-+ declarator goto 166
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+ structDeclarator goto 165
-+ structDeclaratorList goto 164
-+
-+ . error
-+
-+
-+state 84:
-+
-+ specifierQualifierList : typeQualifierList . typeSpecifier reservedSpecifierQualifiers
-+ structDeclaration : typeQualifierList . notypeStructDeclaratorList SEMICOLON
-+
-+ COLON shift 172
-+ LPAREN shift 41
-+ TIMES shift 40
-+ ID shift 39
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ pointer goto 18
-+ notypeDeclarator goto 171
-+ notypeDirectDeclarator goto 16
-+ typeSpecifier goto 170
-+ typeSpecifierReserved goto 11
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ notypeStructDeclarator goto 169
-+ notypeStructDeclaratorList goto 168
-+
-+ . error
-+
-+
-+state 85:
-+
-+ specifierQualifierList : typeSpecifier . reservedSpecifierQualifiers
-+
-+
-+ reservedSpecifierQualifiers goto 173
-+
-+ . reduce by rule 114
-+
-+
-+state 86:
-+
-+ declarationList : declarationList declaration . (reduce by rule 215)
-+
-+
-+
-+ . reduce by rule 215
-+
-+
-+state 87:
-+
-+ functionDefinition : fDefDeclaration declarationList compoundStatement . (reduce by rule 222)
-+
-+
-+
-+ . reduce by rule 222
-+
-+
-+state 88:
-+
-+ notypeInitDeclarator : notypeDeclarator . (reduce by rule 176)
-+ notypeInitDeclarator : notypeDeclarator . EQUALS initializer
-+
-+ EQUALS shift 133
-+
-+
-+ . reduce by rule 176
-+
-+
-+state 89:
-+
-+ initDeclarator : declarator . (reduce by rule 172)
-+ initDeclarator : declarator . EQUALS initializer
-+
-+ EQUALS shift 137
-+
-+
-+ . reduce by rule 172
-+
-+
-+state 90:
-+
-+ expr : strings . (reduce by rule 88)
-+
-+
-+
-+ . reduce by rule 88
-+
-+
-+state 91:
-+
-+ compoundStatement : LCURLY pushScope . declarationList ostatementlist popScope RCURLY
-+
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ declarationSpecifiers goto 50
-+ declarationModifiers goto 49
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ declarationList goto 174
-+ declaration goto 47
-+ declaration1 goto 4
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 92:
-+
-+ expr : unaryOperator . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 175
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 93:
-+
-+ statement : exprWComma . SEMICOLON
-+ exprWComma : exprWComma . COMMA expr
-+
-+ SEMICOLON shift 177
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 94:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ exprWComma : expr . (reduce by rule 91)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 91
-+
-+
-+state 95:
-+
-+ statement : compoundStatement . (reduce by rule 14)
-+
-+
-+
-+ . reduce by rule 14
-+
-+
-+state 96:
-+
-+ ostatementlist : statementlist . (reduce by rule 26)
-+ statementlist : statementlist . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 214
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . reduce by rule 26
-+
-+
-+state 97:
-+
-+ compoundStatement : LCURLY ostatementlist . RCURLY
-+
-+ RCURLY shift 215
-+
-+
-+ . error
-+
-+
-+state 98:
-+
-+ statementlist : statement . (reduce by rule 28)
-+
-+
-+
-+ . reduce by rule 28
-+
-+
-+state 99:
-+
-+ expr : SIZEOF . expr
-+ expr : SIZEOF . LPAREN typeName RPAREN
-+
-+ LPAREN shift 217
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 216
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 100:
-+
-+ statement : GOTO . ID SEMICOLON
-+
-+ ID shift 218
-+
-+
-+ . error
-+
-+
-+state 101:
-+
-+ statement : CONTINUE . SEMICOLON
-+
-+ SEMICOLON shift 219
-+
-+
-+ . error
-+
-+
-+state 102:
-+
-+ statement : BREAK . SEMICOLON
-+
-+ SEMICOLON shift 220
-+
-+
-+ . error
-+
-+
-+state 103:
-+
-+ statement : RETURN . opExpr SEMICOLON
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ opExpr goto 222
-+ exprWComma goto 221
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . reduce by rule 93
-+
-+
-+state 104:
-+
-+ statement : WHILE . LPAREN exprWComma RPAREN statement
-+
-+ LPAREN shift 223
-+
-+
-+ . error
-+
-+
-+state 105:
-+
-+ statement : DEFAULT . COLON statement
-+
-+ COLON shift 224
-+
-+
-+ . error
-+
-+
-+state 106:
-+
-+ statement : CASE . exprWComma COLON statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 225
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 107:
-+
-+ statement : SWITCH . LPAREN exprWComma RPAREN statement
-+
-+ LPAREN shift 226
-+
-+
-+ . error
-+
-+
-+state 108:
-+
-+ statement : DO . statement WHILE LPAREN exprWComma RPAREN SEMICOLON
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 227
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 109:
-+
-+ statement : FOR . LPAREN opExpr SEMICOLON opExpr SEMICOLON opExpr RPAREN statement
-+
-+ LPAREN shift 228
-+
-+
-+ . error
-+
-+
-+state 110:
-+
-+ statement : IF . LPAREN exprWComma RPAREN statement
-+ statement : IF . LPAREN exprWComma RPAREN statement ELSE statement
-+
-+ LPAREN shift 229
-+
-+
-+ . error
-+
-+
-+state 111:
-+
-+ expr : CCONST . (reduce by rule 86)
-+
-+
-+
-+ . reduce by rule 86
-+
-+
-+state 112:
-+
-+ strings : STRING . (reduce by rule 89)
-+ strings : STRING . strings
-+
-+ STRING shift 112
-+
-+ strings goto 230
-+
-+ . reduce by rule 89
-+
-+
-+state 113:
-+
-+ expr : REALNUM . (reduce by rule 85)
-+
-+
-+
-+ . reduce by rule 85
-+
-+
-+state 114:
-+
-+ expr : DECNUM . (reduce by rule 84)
-+
-+
-+
-+ . reduce by rule 84
-+
-+
-+state 115:
-+
-+ statement : ID . COLON statement
-+ expr : ID . (reduce by rule 87)
-+
-+ COLON shift 231
-+
-+
-+ . reduce by rule 87
-+
-+
-+state 116:
-+
-+ expr : DEC . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 232
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 117:
-+
-+ expr : INC . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 233
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 118:
-+
-+ unaryOperator : TIMES . (reduce by rule 33)
-+
-+
-+
-+ . reduce by rule 33
-+
-+
-+state 119:
-+
-+ unaryOperator : BANG . (reduce by rule 37)
-+
-+
-+
-+ . reduce by rule 37
-+
-+
-+state 120:
-+
-+ unaryOperator : MINUS . (reduce by rule 35)
-+
-+
-+
-+ . reduce by rule 35
-+
-+
-+state 121:
-+
-+ unaryOperator : PLUS . (reduce by rule 34)
-+
-+
-+
-+ . reduce by rule 34
-+
-+
-+state 122:
-+
-+ unaryOperator : TILDE . (reduce by rule 36)
-+
-+
-+
-+ . reduce by rule 36
-+
-+
-+state 123:
-+
-+ unaryOperator : AMP . (reduce by rule 32)
-+
-+
-+
-+ . reduce by rule 32
-+
-+
-+state 124:
-+
-+ expr : LPAREN . typeName RPAREN expr
-+ expr : LPAREN . exprWComma RPAREN
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ SIZEOF shift 99
-+ TYPE_NAME shift 19
-+
-+ expr goto 94
-+ exprWComma goto 237
-+ unaryOperator goto 92
-+ typeName goto 236
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 235
-+ specifierQualifierList goto 234
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 125:
-+
-+ statement : SEMICOLON . (reduce by rule 21)
-+
-+
-+
-+ . reduce by rule 21
-+
-+
-+state 126:
-+
-+ specifierQualifierReserved : structOrUnionSpecifier . (reduce by rule 106)
-+
-+
-+
-+ . reduce by rule 106
-+
-+
-+state 127:
-+
-+ specifierQualifierReserved : enumSpecifier . (reduce by rule 107)
-+
-+
-+
-+ . reduce by rule 107
-+
-+
-+state 128:
-+
-+ specifierQualifierReserved : typeQualifier . (reduce by rule 105)
-+
-+
-+
-+ . reduce by rule 105
-+
-+
-+state 129:
-+
-+ specifierQualifierReserved : typeSpecifierReserved . (reduce by rule 104)
-+
-+
-+
-+ . reduce by rule 104
-+
-+
-+state 130:
-+
-+ reservedDeclarationSpecifier : reservedDeclarationSpecifier storageClassSpecifier . (reduce by rule 103)
-+
-+
-+
-+ . reduce by rule 103
-+
-+
-+state 131:
-+
-+ reservedDeclarationSpecifier : reservedDeclarationSpecifier specifierQualifierReserved . (reduce by rule 102)
-+
-+
-+
-+ . reduce by rule 102
-+
-+
-+state 132:
-+
-+ declarationSpecifiers : declarationModifiers typeSpecifier reservedDeclarationSpecifier . (reduce by rule 100)
-+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . specifierQualifierReserved
-+ reservedDeclarationSpecifier : reservedDeclarationSpecifier . storageClassSpecifier
-+
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+
-+ specifierQualifierReserved goto 131
-+ storageClassSpecifier goto 130
-+ typeSpecifierReserved goto 129
-+ typeQualifier goto 128
-+ enumSpecifier goto 127
-+ structOrUnionSpecifier goto 126
-+ structOrUnion goto 2
-+
-+ . reduce by rule 100
-+
-+
-+state 133:
-+
-+ notypeInitDeclarator : notypeDeclarator EQUALS . initializer
-+
-+ LPAREN shift 124
-+ LCURLY shift 240
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 239
-+ unaryOperator goto 92
-+ initializer goto 238
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 134:
-+
-+ notypeInitDeclaratorList : notypeInitDeclaratorList COMMA . initDeclarator
-+
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ initDeclarator goto 241
-+ pointer goto 64
-+ declarator goto 89
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+
-+ . error
-+
-+
-+state 135:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE . RBRACE
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE . expr RBRACE
-+
-+ LPAREN shift 124
-+ RBRACE shift 243
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 242
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 136:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN . RPAREN
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN . parameterTypeList RPAREN
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN . identlist RPAREN
-+
-+ RPAREN shift 246
-+ ID shift 150
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ identlist goto 245
-+ parameterList goto 146
-+ parameterTypeList goto 244
-+ parameterDeclaration goto 144
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 137:
-+
-+ initDeclarator : declarator EQUALS . initializer
-+
-+ LPAREN shift 124
-+ LCURLY shift 240
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 239
-+ unaryOperator goto 92
-+ initializer goto 247
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 138:
-+
-+ aftertypeDeclarator : pointer aftertypeDirectDeclarator . (reduce by rule 181)
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE RBRACE
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LBRACE expr RBRACE
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN RPAREN
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN parameterTypeList RPAREN
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator . LPAREN identlist RPAREN
-+
-+ LPAREN shift 136
-+ LBRACE shift 135
-+
-+
-+ . reduce by rule 181
-+
-+
-+state 139:
-+
-+ initDeclaratorList : initDeclaratorList COMMA . initDeclarator
-+
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ initDeclarator goto 248
-+ pointer goto 64
-+ declarator goto 89
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+
-+ . error
-+
-+
-+state 140:
-+
-+ aftertypeDirectDeclarator : LPAREN aftertypeDeclarator . RPAREN
-+
-+ RPAREN shift 249
-+
-+
-+ . error
-+
-+
-+state 141:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE expr . RBRACE
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ RBRACE shift 250
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . error
-+
-+
-+state 142:
-+
-+ expr : ID . (reduce by rule 87)
-+
-+
-+
-+ . reduce by rule 87
-+
-+
-+state 143:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE RBRACE . (reduce by rule 199)
-+
-+
-+
-+ . reduce by rule 199
-+
-+
-+state 144:
-+
-+ parameterList : parameterDeclaration . (reduce by rule 237)
-+
-+
-+
-+ . reduce by rule 237
-+
-+
-+state 145:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN parameterTypeList . RPAREN
-+
-+ RPAREN shift 251
-+
-+
-+ . error
-+
-+
-+state 146:
-+
-+ parameterList : parameterList . COMMA parameterDeclaration
-+ parameterTypeList : parameterList . (reduce by rule 235)
-+ parameterTypeList : parameterList . COMMA ELIPSIS
-+
-+ COMMA shift 252
-+
-+
-+ . reduce by rule 235
-+
-+
-+state 147:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN identlist . RPAREN
-+ identlist : identlist . COMMA ID
-+
-+ RPAREN shift 254
-+ COMMA shift 253
-+
-+
-+ . error
-+
-+
-+state 148:
-+
-+ declarationSpecifiers : declarationModifiers . typeSpecifier reservedDeclarationSpecifier
-+ declarationModifiers : declarationModifiers . storageClassSpecifier
-+ declarationModifiers : declarationModifiers . typeQualifier
-+ parameterDeclaration : declarationModifiers . notypeDeclarator
-+ parameterDeclaration : declarationModifiers . abstractDeclarator
-+
-+ LPAREN shift 260
-+ LBRACE shift 259
-+ TIMES shift 40
-+ ID shift 39
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ abstractDeclarator goto 258
-+ directAbstractDeclarator goto 257
-+ pointer goto 256
-+ notypeDeclarator goto 255
-+ notypeDirectDeclarator goto 16
-+ storageClassSpecifier goto 56
-+ typeSpecifier goto 55
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 54
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 149:
-+
-+ parameterDeclaration : declarationSpecifiers . notypeDeclarator
-+ parameterDeclaration : declarationSpecifiers . parmDeclarator
-+ parameterDeclaration : declarationSpecifiers . (reduce by rule 241)
-+ parameterDeclaration : declarationSpecifiers . abstractDeclarator
-+
-+ LPAREN shift 260
-+ LBRACE shift 259
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 266
-+
-+ abstractDeclarator goto 265
-+ directAbstractDeclarator goto 257
-+ pointer goto 264
-+ notypeDeclarator goto 263
-+ parmDeclarator goto 262
-+ notypeDirectDeclarator goto 16
-+ parmDirectDeclarator goto 261
-+
-+ . reduce by rule 241
-+
-+
-+state 150:
-+
-+ identlist : ID . (reduce by rule 216)
-+
-+
-+
-+ . reduce by rule 216
-+
-+
-+state 151:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN RPAREN . (reduce by rule 201)
-+
-+
-+
-+ . reduce by rule 201
-+
-+
-+state 152:
-+
-+ enumSpecifier : ENUM TYPE_NAME LCURLY . enumeratorList trailingComma RCURLY
-+
-+ ID shift 156
-+
-+ enumeratorList goto 267
-+ enumerator goto 154
-+
-+ . error
-+
-+
-+state 153:
-+
-+ enumSpecifier : ENUM ID LCURLY . enumeratorList trailingComma RCURLY
-+
-+ ID shift 156
-+
-+ enumeratorList goto 268
-+ enumerator goto 154
-+
-+ . error
-+
-+
-+state 154:
-+
-+ enumeratorList : enumerator . (reduce by rule 160)
-+
-+
-+
-+ . reduce by rule 160
-+
-+
-+state 155:
-+
-+ enumeratorList : enumeratorList . COMMA enumerator
-+ enumSpecifier : ENUM LCURLY enumeratorList . trailingComma RCURLY
-+
-+ COMMA shift 270
-+
-+ trailingComma goto 269
-+
-+ . reduce by rule 168
-+
-+
-+state 156:
-+
-+ enumerator : ID . (reduce by rule 161)
-+ enumerator : ID . EQUALS expr
-+
-+ EQUALS shift 271
-+
-+
-+ . reduce by rule 161
-+
-+
-+state 157:
-+
-+ pointer : TIMES typeQualifierList pointer . (reduce by rule 189)
-+
-+
-+
-+ . reduce by rule 189
-+
-+
-+state 158:
-+
-+ typeQualifierList : typeQualifier typeQualifierList . (reduce by rule 117)
-+
-+
-+
-+ . reduce by rule 117
-+
-+
-+state 159:
-+
-+ notypeDirectDeclarator : LPAREN notypeDeclarator RPAREN . (reduce by rule 198)
-+
-+
-+
-+ . reduce by rule 198
-+
-+
-+state 160:
-+
-+ structOrUnionSpecifier : structOrUnion TYPE_NAME LCURLY structDeclarationList . RCURLY
-+ structDeclarationList : structDeclarationList . structDeclaration
-+
-+ RCURLY shift 272
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 84
-+ specifierQualifierList goto 83
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ structDeclaration goto 162
-+
-+ . error
-+
-+
-+state 161:
-+
-+ structOrUnionSpecifier : structOrUnion ID LCURLY structDeclarationList . RCURLY
-+ structDeclarationList : structDeclarationList . structDeclaration
-+
-+ RCURLY shift 273
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 84
-+ specifierQualifierList goto 83
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ structDeclaration goto 162
-+
-+ . error
-+
-+
-+state 162:
-+
-+ structDeclarationList : structDeclarationList structDeclaration . (reduce by rule 139)
-+
-+
-+
-+ . reduce by rule 139
-+
-+
-+state 163:
-+
-+ structOrUnionSpecifier : structOrUnion LCURLY structDeclarationList RCURLY . (reduce by rule 131)
-+
-+
-+
-+ . reduce by rule 131
-+
-+
-+state 164:
-+
-+ structDeclaratorList : structDeclaratorList . COMMA structDeclarator
-+ structDeclaration : specifierQualifierList structDeclaratorList . SEMICOLON
-+
-+ SEMICOLON shift 275
-+ COMMA shift 274
-+
-+
-+ . error
-+
-+
-+state 165:
-+
-+ structDeclaratorList : structDeclarator . (reduce by rule 142)
-+
-+
-+
-+ . reduce by rule 142
-+
-+
-+state 166:
-+
-+ structDeclarator : declarator . (reduce by rule 146)
-+ structDeclarator : declarator . COLON expr
-+
-+ COLON shift 276
-+
-+
-+ . reduce by rule 146
-+
-+
-+state 167:
-+
-+ structDeclarator : COLON . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 277
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 168:
-+
-+ notypeStructDeclaratorList : notypeStructDeclaratorList . COMMA structDeclarator
-+ structDeclaration : typeQualifierList notypeStructDeclaratorList . SEMICOLON
-+
-+ SEMICOLON shift 279
-+ COMMA shift 278
-+
-+
-+ . error
-+
-+
-+state 169:
-+
-+ notypeStructDeclaratorList : notypeStructDeclarator . (reduce by rule 144)
-+
-+
-+
-+ . reduce by rule 144
-+
-+
-+state 170:
-+
-+ specifierQualifierList : typeQualifierList typeSpecifier . reservedSpecifierQualifiers
-+
-+
-+ reservedSpecifierQualifiers goto 280
-+
-+ . reduce by rule 114
-+
-+
-+state 171:
-+
-+ notypeStructDeclarator : notypeDeclarator . (reduce by rule 149)
-+ notypeStructDeclarator : notypeDeclarator . COLON expr
-+
-+ COLON shift 281
-+
-+
-+ . reduce by rule 149
-+
-+
-+state 172:
-+
-+ notypeStructDeclarator : COLON . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 282
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 173:
-+
-+ reservedSpecifierQualifiers : reservedSpecifierQualifiers . specifierQualifierReserved
-+ specifierQualifierList : typeSpecifier reservedSpecifierQualifiers . (reduce by rule 112)
-+
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+
-+ specifierQualifierReserved goto 283
-+ typeSpecifierReserved goto 129
-+ typeQualifier goto 128
-+ enumSpecifier goto 127
-+ structOrUnionSpecifier goto 126
-+ structOrUnion goto 2
-+
-+ . reduce by rule 112
-+
-+
-+state 174:
-+
-+ compoundStatement : LCURLY pushScope declarationList . ostatementlist popScope RCURLY
-+ declarationList : declarationList . declaration
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ SIZEOF shift 99
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ statement goto 98
-+ ostatementlist goto 284
-+ statementlist goto 96
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ declarationSpecifiers goto 50
-+ declarationModifiers goto 49
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ declaration goto 86
-+ declaration1 goto 4
-+ structOrUnion goto 2
-+ strings goto 90
-+
-+ . reduce by rule 27
-+
-+
-+state 175:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : unaryOperator expr . (reduce by rule 72)
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 72
-+
-+
-+state 176:
-+
-+ exprWComma : exprWComma COMMA . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 285
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 177:
-+
-+ statement : exprWComma SEMICOLON . (reduce by rule 20)
-+
-+
-+
-+ . reduce by rule 20
-+
-+
-+state 178:
-+
-+ expr : expr RSHIFT . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 286
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 179:
-+
-+ expr : expr LSHIFT . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 287
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 180:
-+
-+ expr : expr AND . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 288
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 181:
-+
-+ expr : expr OR . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 289
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 182:
-+
-+ expr : expr NEQ . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 290
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 183:
-+
-+ expr : expr EQ . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 291
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 184:
-+
-+ expr : expr GT . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 292
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 185:
-+
-+ expr : expr LT . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 293
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 186:
-+
-+ expr : expr GTE . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 294
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 187:
-+
-+ expr : expr LTE . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 295
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 188:
-+
-+ expr : expr RSHIFTEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 296
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 189:
-+
-+ expr : expr LSHIFTEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 297
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 190:
-+
-+ expr : expr ANDEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 298
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 191:
-+
-+ expr : expr OREQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 299
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 192:
-+
-+ expr : expr DIVEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 300
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 193:
-+
-+ expr : expr TIMESEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 301
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 194:
-+
-+ expr : expr MODEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 302
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 195:
-+
-+ expr : expr XOREQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 303
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 196:
-+
-+ expr : expr MINUSEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 304
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 197:
-+
-+ expr : expr PLUSEQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 305
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 198:
-+
-+ expr : expr EQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 306
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 199:
-+
-+ expr : expr ARROW . ID
-+ expr : expr ARROW . TYPE_NAME
-+
-+ ID shift 308
-+ TYPE_NAME shift 307
-+
-+
-+ . error
-+
-+
-+state 200:
-+
-+ expr : expr DEC . (reduce by rule 69)
-+
-+
-+
-+ . reduce by rule 69
-+
-+
-+state 201:
-+
-+ expr : expr INC . (reduce by rule 68)
-+
-+
-+
-+ . reduce by rule 68
-+
-+
-+state 202:
-+
-+ expr : expr TIMES . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 309
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 203:
-+
-+ expr : expr HAT . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 310
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 204:
-+
-+ expr : expr MINUS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 311
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 205:
-+
-+ expr : expr PLUS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 312
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 206:
-+
-+ expr : expr DIVIDE . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 313
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 207:
-+
-+ expr : expr BAR . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 314
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 208:
-+
-+ expr : expr AMP . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 315
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 209:
-+
-+ expr : expr PERCENT . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 316
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 210:
-+
-+ expr : expr QUESTION . exprWComma COLON expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 317
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 211:
-+
-+ expr : expr DOT . ID
-+ expr : expr DOT . TYPE_NAME
-+
-+ ID shift 319
-+ TYPE_NAME shift 318
-+
-+
-+ . error
-+
-+
-+state 212:
-+
-+ expr : expr LBRACE . exprWComma RBRACE
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 320
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 213:
-+
-+ expr : expr LPAREN . RPAREN
-+ expr : expr LPAREN . argumentExprList RPAREN
-+
-+ LPAREN shift 124
-+ RPAREN shift 323
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 322
-+ unaryOperator goto 92
-+ argumentExprList goto 321
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 214:
-+
-+ statementlist : statementlist statement . (reduce by rule 29)
-+
-+
-+
-+ . reduce by rule 29
-+
-+
-+state 215:
-+
-+ compoundStatement : LCURLY ostatementlist RCURLY . (reduce by rule 31)
-+
-+
-+
-+ . reduce by rule 31
-+
-+
-+state 216:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : SIZEOF expr . (reduce by rule 73)
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 73
-+
-+
-+state 217:
-+
-+ expr : LPAREN . typeName RPAREN expr
-+ expr : SIZEOF LPAREN . typeName RPAREN
-+ expr : LPAREN . exprWComma RPAREN
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ SIZEOF shift 99
-+ TYPE_NAME shift 19
-+
-+ expr goto 94
-+ exprWComma goto 237
-+ unaryOperator goto 92
-+ typeName goto 324
-+ typeSpecifier goto 85
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 76
-+ typeQualifierList goto 235
-+ specifierQualifierList goto 234
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 218:
-+
-+ statement : GOTO ID . SEMICOLON
-+
-+ SEMICOLON shift 325
-+
-+
-+ . error
-+
-+
-+state 219:
-+
-+ statement : CONTINUE SEMICOLON . (reduce by rule 11)
-+
-+
-+
-+ . reduce by rule 11
-+
-+
-+state 220:
-+
-+ statement : BREAK SEMICOLON . (reduce by rule 10)
-+
-+
-+
-+ . reduce by rule 10
-+
-+
-+state 221:
-+
-+ opExpr : exprWComma . (reduce by rule 94)
-+ exprWComma : exprWComma . COMMA expr
-+
-+ COMMA shift 176
-+
-+
-+ . reduce by rule 94
-+
-+
-+state 222:
-+
-+ statement : RETURN opExpr . SEMICOLON
-+
-+ SEMICOLON shift 326
-+
-+
-+ . error
-+
-+
-+state 223:
-+
-+ statement : WHILE LPAREN . exprWComma RPAREN statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 327
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 224:
-+
-+ statement : DEFAULT COLON . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 328
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 225:
-+
-+ statement : CASE exprWComma . COLON statement
-+ exprWComma : exprWComma . COMMA expr
-+
-+ COLON shift 329
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 226:
-+
-+ statement : SWITCH LPAREN . exprWComma RPAREN statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 330
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 227:
-+
-+ statement : DO statement . WHILE LPAREN exprWComma RPAREN SEMICOLON
-+
-+ WHILE shift 331
-+
-+
-+ . error
-+
-+
-+state 228:
-+
-+ statement : FOR LPAREN . opExpr SEMICOLON opExpr SEMICOLON opExpr RPAREN statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ opExpr goto 332
-+ exprWComma goto 221
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . reduce by rule 93
-+
-+
-+state 229:
-+
-+ statement : IF LPAREN . exprWComma RPAREN statement
-+ statement : IF LPAREN . exprWComma RPAREN statement ELSE statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 333
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 230:
-+
-+ strings : STRING strings . (reduce by rule 90)
-+
-+
-+
-+ . reduce by rule 90
-+
-+
-+state 231:
-+
-+ statement : ID COLON . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 334
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 232:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : DEC expr . (reduce by rule 71)
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 71
-+
-+
-+state 233:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : INC expr . (reduce by rule 70)
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 70
-+
-+
-+state 234:
-+
-+ typeName : specifierQualifierList . (reduce by rule 97)
-+ typeName : specifierQualifierList . abstractDeclarator
-+
-+ LPAREN shift 337
-+ LBRACE shift 259
-+ TIMES shift 40
-+
-+ abstractDeclarator goto 336
-+ directAbstractDeclarator goto 257
-+ pointer goto 335
-+
-+ . reduce by rule 97
-+
-+
-+state 235:
-+
-+ specifierQualifierList : typeQualifierList . typeSpecifier reservedSpecifierQualifiers
-+
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPE_NAME shift 19
-+
-+ typeSpecifier goto 170
-+ typeSpecifierReserved goto 11
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 236:
-+
-+ expr : LPAREN typeName . RPAREN expr
-+
-+ RPAREN shift 338
-+
-+
-+ . error
-+
-+
-+state 237:
-+
-+ expr : LPAREN exprWComma . RPAREN
-+ exprWComma : exprWComma . COMMA expr
-+
-+ RPAREN shift 339
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 238:
-+
-+ notypeInitDeclarator : notypeDeclarator EQUALS initializer . (reduce by rule 177)
-+
-+
-+
-+ . reduce by rule 177
-+
-+
-+state 239:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ initializer : expr . (reduce by rule 210)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 210
-+
-+
-+state 240:
-+
-+ initializer : LCURLY . initializerList trailingComma RCURLY
-+
-+ LPAREN shift 124
-+ LCURLY shift 240
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 239
-+ unaryOperator goto 92
-+ initializer goto 341
-+ initializerList goto 340
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 241:
-+
-+ notypeInitDeclaratorList : notypeInitDeclaratorList COMMA initDeclarator . (reduce by rule 175)
-+
-+
-+
-+ . reduce by rule 175
-+
-+
-+state 242:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE expr . RBRACE
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ RBRACE shift 342
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . error
-+
-+
-+state 243:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE RBRACE . (reduce by rule 192)
-+
-+
-+
-+ . reduce by rule 192
-+
-+
-+state 244:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN parameterTypeList . RPAREN
-+
-+ RPAREN shift 343
-+
-+
-+ . error
-+
-+
-+state 245:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN identlist . RPAREN
-+ identlist : identlist . COMMA ID
-+
-+ RPAREN shift 344
-+ COMMA shift 253
-+
-+
-+ . error
-+
-+
-+state 246:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN RPAREN . (reduce by rule 194)
-+
-+
-+
-+ . reduce by rule 194
-+
-+
-+state 247:
-+
-+ initDeclarator : declarator EQUALS initializer . (reduce by rule 173)
-+
-+
-+
-+ . reduce by rule 173
-+
-+
-+state 248:
-+
-+ initDeclaratorList : initDeclaratorList COMMA initDeclarator . (reduce by rule 171)
-+
-+
-+
-+ . reduce by rule 171
-+
-+
-+state 249:
-+
-+ aftertypeDirectDeclarator : LPAREN aftertypeDeclarator RPAREN . (reduce by rule 191)
-+
-+
-+
-+ . reduce by rule 191
-+
-+
-+state 250:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LBRACE expr RBRACE . (reduce by rule 200)
-+
-+
-+
-+ . reduce by rule 200
-+
-+
-+state 251:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN parameterTypeList RPAREN . (reduce by rule 202)
-+
-+
-+
-+ . reduce by rule 202
-+
-+
-+state 252:
-+
-+ parameterList : parameterList COMMA . parameterDeclaration
-+ parameterTypeList : parameterList COMMA . ELIPSIS
-+
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ ELIPSIS shift 346
-+ TYPE_NAME shift 19
-+
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ parameterDeclaration goto 345
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 253:
-+
-+ identlist : identlist COMMA . ID
-+
-+ ID shift 347
-+
-+
-+ . error
-+
-+
-+state 254:
-+
-+ notypeDirectDeclarator : notypeDirectDeclarator LPAREN identlist RPAREN . (reduce by rule 203)
-+
-+
-+
-+ . reduce by rule 203
-+
-+
-+state 255:
-+
-+ parameterDeclaration : declarationModifiers notypeDeclarator . (reduce by rule 243)
-+
-+
-+
-+ . reduce by rule 243
-+
-+
-+state 256:
-+
-+ abstractDeclarator : pointer . (reduce by rule 223)
-+ abstractDeclarator : pointer . directAbstractDeclarator
-+ notypeDeclarator : pointer . notypeDirectDeclarator
-+
-+ LPAREN shift 260
-+ LBRACE shift 259
-+ ID shift 39
-+
-+ directAbstractDeclarator goto 348
-+ notypeDirectDeclarator goto 71
-+
-+ . reduce by rule 223
-+
-+
-+state 257:
-+
-+ abstractDeclarator : directAbstractDeclarator . (reduce by rule 224)
-+ directAbstractDeclarator : directAbstractDeclarator . LBRACE RBRACE
-+ directAbstractDeclarator : directAbstractDeclarator . LBRACE expr RBRACE
-+ directAbstractDeclarator : directAbstractDeclarator . LPAREN RPAREN
-+ directAbstractDeclarator : directAbstractDeclarator . LPAREN parameterTypeList RPAREN
-+
-+ LPAREN shift 350
-+ LBRACE shift 349
-+
-+
-+ . reduce by rule 224
-+
-+
-+state 258:
-+
-+ parameterDeclaration : declarationModifiers abstractDeclarator . (reduce by rule 244)
-+
-+
-+
-+ . reduce by rule 244
-+
-+
-+state 259:
-+
-+ directAbstractDeclarator : LBRACE . RBRACE
-+ directAbstractDeclarator : LBRACE . expr RBRACE
-+
-+ LPAREN shift 124
-+ RBRACE shift 352
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 351
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 260:
-+
-+ directAbstractDeclarator : LPAREN . abstractDeclarator RPAREN
-+ directAbstractDeclarator : LPAREN . RPAREN
-+ directAbstractDeclarator : LPAREN . parameterTypeList RPAREN
-+ notypeDirectDeclarator : LPAREN . notypeDeclarator RPAREN
-+
-+ LPAREN shift 260
-+ RPAREN shift 355
-+ LBRACE shift 259
-+ TIMES shift 40
-+ ID shift 39
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ abstractDeclarator goto 354
-+ directAbstractDeclarator goto 257
-+ pointer goto 256
-+ notypeDeclarator goto 78
-+ notypeDirectDeclarator goto 16
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ parameterList goto 146
-+ parameterTypeList goto 353
-+ parameterDeclaration goto 144
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 261:
-+
-+ parmDeclarator : parmDirectDeclarator . (reduce by rule 184)
-+ parmDirectDeclarator : parmDirectDeclarator . LBRACE RBRACE
-+ parmDirectDeclarator : parmDirectDeclarator . LBRACE expr RBRACE
-+ parmDirectDeclarator : parmDirectDeclarator . LPAREN RPAREN
-+ parmDirectDeclarator : parmDirectDeclarator . LPAREN parameterTypeList RPAREN
-+ parmDirectDeclarator : parmDirectDeclarator . LPAREN identlist RPAREN
-+
-+ LPAREN shift 357
-+ LBRACE shift 356
-+
-+
-+ . reduce by rule 184
-+
-+
-+state 262:
-+
-+ parameterDeclaration : declarationSpecifiers parmDeclarator . (reduce by rule 240)
-+
-+
-+
-+ . reduce by rule 240
-+
-+
-+state 263:
-+
-+ parameterDeclaration : declarationSpecifiers notypeDeclarator . (reduce by rule 239)
-+
-+
-+
-+ . reduce by rule 239
-+
-+
-+state 264:
-+
-+ abstractDeclarator : pointer . (reduce by rule 223)
-+ abstractDeclarator : pointer . directAbstractDeclarator
-+ notypeDeclarator : pointer . notypeDirectDeclarator
-+ parmDeclarator : pointer . parmDirectDeclarator
-+
-+ LPAREN shift 260
-+ LBRACE shift 259
-+ ID shift 39
-+ TYPE_NAME shift 266
-+
-+ directAbstractDeclarator goto 348
-+ notypeDirectDeclarator goto 71
-+ parmDirectDeclarator goto 358
-+
-+ . reduce by rule 223
-+
-+
-+state 265:
-+
-+ parameterDeclaration : declarationSpecifiers abstractDeclarator . (reduce by rule 242)
-+
-+
-+
-+ . reduce by rule 242
-+
-+
-+state 266:
-+
-+ parmDirectDeclarator : TYPE_NAME . (reduce by rule 204)
-+
-+
-+
-+ . reduce by rule 204
-+
-+
-+state 267:
-+
-+ enumeratorList : enumeratorList . COMMA enumerator
-+ enumSpecifier : ENUM TYPE_NAME LCURLY enumeratorList . trailingComma RCURLY
-+
-+ COMMA shift 270
-+
-+ trailingComma goto 359
-+
-+ . reduce by rule 168
-+
-+
-+state 268:
-+
-+ enumeratorList : enumeratorList . COMMA enumerator
-+ enumSpecifier : ENUM ID LCURLY enumeratorList . trailingComma RCURLY
-+
-+ COMMA shift 270
-+
-+ trailingComma goto 360
-+
-+ . reduce by rule 168
-+
-+
-+state 269:
-+
-+ enumSpecifier : ENUM LCURLY enumeratorList trailingComma . RCURLY
-+
-+ RCURLY shift 361
-+
-+
-+ . error
-+
-+
-+state 270:
-+
-+ trailingComma : COMMA . (reduce by rule 169)
-+ enumeratorList : enumeratorList COMMA . enumerator
-+
-+ ID shift 156
-+
-+ enumerator goto 362
-+
-+ . reduce by rule 169
-+
-+
-+state 271:
-+
-+ enumerator : ID EQUALS . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 363
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 272:
-+
-+ structOrUnionSpecifier : structOrUnion TYPE_NAME LCURLY structDeclarationList RCURLY . (reduce by rule 133)
-+
-+
-+
-+ . reduce by rule 133
-+
-+
-+state 273:
-+
-+ structOrUnionSpecifier : structOrUnion ID LCURLY structDeclarationList RCURLY . (reduce by rule 132)
-+
-+
-+
-+ . reduce by rule 132
-+
-+
-+state 274:
-+
-+ structDeclaratorList : structDeclaratorList COMMA . structDeclarator
-+
-+ COLON shift 167
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ pointer goto 64
-+ declarator goto 166
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+ structDeclarator goto 364
-+
-+ . error
-+
-+
-+state 275:
-+
-+ structDeclaration : specifierQualifierList structDeclaratorList SEMICOLON . (reduce by rule 140)
-+
-+
-+
-+ . reduce by rule 140
-+
-+
-+state 276:
-+
-+ structDeclarator : declarator COLON . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 365
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 277:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ structDeclarator : COLON expr . (reduce by rule 147)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 147
-+
-+
-+state 278:
-+
-+ notypeStructDeclaratorList : notypeStructDeclaratorList COMMA . structDeclarator
-+
-+ COLON shift 167
-+ LPAREN shift 68
-+ TIMES shift 40
-+ ID shift 39
-+ TYPE_NAME shift 67
-+
-+ pointer goto 64
-+ declarator goto 166
-+ aftertypeDeclarator goto 62
-+ notypeDeclarator goto 61
-+ aftertypeDirectDeclarator goto 60
-+ notypeDirectDeclarator goto 16
-+ structDeclarator goto 366
-+
-+ . error
-+
-+
-+state 279:
-+
-+ structDeclaration : typeQualifierList notypeStructDeclaratorList SEMICOLON . (reduce by rule 141)
-+
-+
-+
-+ . reduce by rule 141
-+
-+
-+state 280:
-+
-+ reservedSpecifierQualifiers : reservedSpecifierQualifiers . specifierQualifierReserved
-+ specifierQualifierList : typeQualifierList typeSpecifier reservedSpecifierQualifiers . (reduce by rule 113)
-+
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+
-+ specifierQualifierReserved goto 283
-+ typeSpecifierReserved goto 129
-+ typeQualifier goto 128
-+ enumSpecifier goto 127
-+ structOrUnionSpecifier goto 126
-+ structOrUnion goto 2
-+
-+ . reduce by rule 113
-+
-+
-+state 281:
-+
-+ notypeStructDeclarator : notypeDeclarator COLON . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 367
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 282:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ notypeStructDeclarator : COLON expr . (reduce by rule 150)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 150
-+
-+
-+state 283:
-+
-+ reservedSpecifierQualifiers : reservedSpecifierQualifiers specifierQualifierReserved . (reduce by rule 115)
-+
-+
-+
-+ . reduce by rule 115
-+
-+
-+state 284:
-+
-+ compoundStatement : LCURLY pushScope declarationList ostatementlist . popScope RCURLY
-+
-+
-+ popScope goto 368
-+
-+ . reduce by rule 246
-+
-+
-+state 285:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ exprWComma : exprWComma COMMA expr . (reduce by rule 92)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 92
-+
-+
-+state 286:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr RSHIFT expr . (reduce by rule 62)
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 62
-+
-+
-+state 287:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr LSHIFT expr . (reduce by rule 61)
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 61
-+
-+
-+state 288:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr AND expr . (reduce by rule 51)
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 51
-+
-+
-+state 289:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr OR expr . (reduce by rule 50)
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 50
-+
-+
-+state 290:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr NEQ expr . (reduce by rule 56)
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 56
-+
-+
-+state 291:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr EQ expr . (reduce by rule 55)
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 55
-+
-+
-+state 292:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr GT expr . (reduce by rule 58)
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 58
-+
-+
-+state 293:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr LT expr . (reduce by rule 57)
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 57
-+
-+
-+state 294:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr GTE expr . (reduce by rule 60)
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 60
-+
-+
-+state 295:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr LTE expr . (reduce by rule 59)
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 59
-+
-+
-+state 296:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr RSHIFTEQUALS expr . (reduce by rule 48)
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 48
-+
-+
-+state 297:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr LSHIFTEQUALS expr . (reduce by rule 47)
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 47
-+
-+
-+state 298:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr ANDEQUALS expr . (reduce by rule 46)
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 46
-+
-+
-+state 299:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr OREQUALS expr . (reduce by rule 45)
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 45
-+
-+
-+state 300:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr DIVEQUALS expr . (reduce by rule 42)
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 42
-+
-+
-+state 301:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr TIMESEQUALS expr . (reduce by rule 41)
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 41
-+
-+
-+state 302:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr MODEQUALS expr . (reduce by rule 43)
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 43
-+
-+
-+state 303:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr XOREQUALS expr . (reduce by rule 44)
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 44
-+
-+
-+state 304:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr MINUSEQUALS expr . (reduce by rule 40)
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 40
-+
-+
-+state 305:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr PLUSEQUALS expr . (reduce by rule 39)
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 39
-+
-+
-+state 306:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr EQUALS expr . (reduce by rule 49)
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 49
-+
-+
-+state 307:
-+
-+ expr : expr ARROW TYPE_NAME . (reduce by rule 82)
-+
-+
-+
-+ . reduce by rule 82
-+
-+
-+state 308:
-+
-+ expr : expr ARROW ID . (reduce by rule 80)
-+
-+
-+
-+ . reduce by rule 80
-+
-+
-+state 309:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr TIMES expr . (reduce by rule 65)
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 65
-+
-+
-+state 310:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr HAT expr . (reduce by rule 53)
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ AMP shift 208
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 53
-+
-+
-+state 311:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr MINUS expr . (reduce by rule 64)
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 64
-+
-+
-+state 312:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr PLUS expr . (reduce by rule 63)
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 63
-+
-+
-+state 313:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr DIVIDE expr . (reduce by rule 66)
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 66
-+
-+
-+state 314:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr BAR expr . (reduce by rule 52)
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ AMP shift 208
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 52
-+
-+
-+state 315:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr AMP expr . (reduce by rule 54)
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ PERCENT shift 209
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 54
-+
-+
-+state 316:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr PERCENT expr . (reduce by rule 67)
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 67
-+
-+
-+state 317:
-+
-+ expr : expr QUESTION exprWComma . COLON expr
-+ exprWComma : exprWComma . COMMA expr
-+
-+ COLON shift 369
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 318:
-+
-+ expr : expr DOT TYPE_NAME . (reduce by rule 81)
-+
-+
-+
-+ . reduce by rule 81
-+
-+
-+state 319:
-+
-+ expr : expr DOT ID . (reduce by rule 79)
-+
-+
-+
-+ . reduce by rule 79
-+
-+
-+state 320:
-+
-+ expr : expr LBRACE exprWComma . RBRACE
-+ exprWComma : exprWComma . COMMA expr
-+
-+ RBRACE shift 370
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 321:
-+
-+ expr : expr LPAREN argumentExprList . RPAREN
-+ argumentExprList : argumentExprList . COMMA expr
-+
-+ RPAREN shift 372
-+ COMMA shift 371
-+
-+
-+ . error
-+
-+
-+state 322:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ argumentExprList : expr . (reduce by rule 95)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 95
-+
-+
-+state 323:
-+
-+ expr : expr LPAREN RPAREN . (reduce by rule 77)
-+
-+
-+
-+ . reduce by rule 77
-+
-+
-+state 324:
-+
-+ expr : LPAREN typeName . RPAREN expr
-+ expr : SIZEOF LPAREN typeName . RPAREN
-+
-+ RPAREN shift 373
-+
-+
-+ . error
-+
-+
-+state 325:
-+
-+ statement : GOTO ID SEMICOLON . (reduce by rule 13)
-+
-+
-+
-+ . reduce by rule 13
-+
-+
-+state 326:
-+
-+ statement : RETURN opExpr SEMICOLON . (reduce by rule 12)
-+
-+
-+
-+ . reduce by rule 12
-+
-+
-+state 327:
-+
-+ statement : WHILE LPAREN exprWComma . RPAREN statement
-+ exprWComma : exprWComma . COMMA expr
-+
-+ RPAREN shift 374
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 328:
-+
-+ statement : DEFAULT COLON statement . (reduce by rule 16)
-+
-+
-+
-+ . reduce by rule 16
-+
-+
-+state 329:
-+
-+ statement : CASE exprWComma COLON . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 375
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 330:
-+
-+ statement : SWITCH LPAREN exprWComma . RPAREN statement
-+ exprWComma : exprWComma . COMMA expr
-+
-+ RPAREN shift 376
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 331:
-+
-+ statement : DO statement WHILE . LPAREN exprWComma RPAREN SEMICOLON
-+
-+ LPAREN shift 377
-+
-+
-+ . error
-+
-+
-+state 332:
-+
-+ statement : FOR LPAREN opExpr . SEMICOLON opExpr SEMICOLON opExpr RPAREN statement
-+
-+ SEMICOLON shift 378
-+
-+
-+ . error
-+
-+
-+state 333:
-+
-+ statement : IF LPAREN exprWComma . RPAREN statement
-+ statement : IF LPAREN exprWComma . RPAREN statement ELSE statement
-+ exprWComma : exprWComma . COMMA expr
-+
-+ RPAREN shift 379
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 334:
-+
-+ statement : ID COLON statement . (reduce by rule 15)
-+
-+
-+
-+ . reduce by rule 15
-+
-+
-+state 335:
-+
-+ abstractDeclarator : pointer . (reduce by rule 223)
-+ abstractDeclarator : pointer . directAbstractDeclarator
-+
-+ LPAREN shift 337
-+ LBRACE shift 259
-+
-+ directAbstractDeclarator goto 348
-+
-+ . reduce by rule 223
-+
-+
-+state 336:
-+
-+ typeName : specifierQualifierList abstractDeclarator . (reduce by rule 98)
-+
-+
-+
-+ . reduce by rule 98
-+
-+
-+state 337:
-+
-+ directAbstractDeclarator : LPAREN . abstractDeclarator RPAREN
-+ directAbstractDeclarator : LPAREN . RPAREN
-+ directAbstractDeclarator : LPAREN . parameterTypeList RPAREN
-+
-+ LPAREN shift 337
-+ RPAREN shift 355
-+ LBRACE shift 259
-+ TIMES shift 40
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ abstractDeclarator goto 354
-+ directAbstractDeclarator goto 257
-+ pointer goto 335
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ parameterList goto 146
-+ parameterTypeList goto 353
-+ parameterDeclaration goto 144
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 338:
-+
-+ expr : LPAREN typeName RPAREN . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 380
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 339:
-+
-+ expr : LPAREN exprWComma RPAREN . (reduce by rule 83)
-+
-+
-+
-+ . reduce by rule 83
-+
-+
-+state 340:
-+
-+ initializer : LCURLY initializerList . trailingComma RCURLY
-+ initializerList : initializerList . COMMA initializer
-+
-+ COMMA shift 382
-+
-+ trailingComma goto 381
-+
-+ . reduce by rule 168
-+
-+
-+state 341:
-+
-+ initializerList : initializer . (reduce by rule 212)
-+
-+
-+
-+ . reduce by rule 212
-+
-+
-+state 342:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LBRACE expr RBRACE . (reduce by rule 193)
-+
-+
-+
-+ . reduce by rule 193
-+
-+
-+state 343:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN parameterTypeList RPAREN . (reduce by rule 195)
-+
-+
-+
-+ . reduce by rule 195
-+
-+
-+state 344:
-+
-+ aftertypeDirectDeclarator : aftertypeDirectDeclarator LPAREN identlist RPAREN . (reduce by rule 196)
-+
-+
-+
-+ . reduce by rule 196
-+
-+
-+state 345:
-+
-+ parameterList : parameterList COMMA parameterDeclaration . (reduce by rule 238)
-+
-+
-+
-+ . reduce by rule 238
-+
-+
-+state 346:
-+
-+ parameterTypeList : parameterList COMMA ELIPSIS . (reduce by rule 236)
-+
-+
-+
-+ . reduce by rule 236
-+
-+
-+state 347:
-+
-+ identlist : identlist COMMA ID . (reduce by rule 217)
-+
-+
-+
-+ . reduce by rule 217
-+
-+
-+state 348:
-+
-+ abstractDeclarator : pointer directAbstractDeclarator . (reduce by rule 225)
-+ directAbstractDeclarator : directAbstractDeclarator . LBRACE RBRACE
-+ directAbstractDeclarator : directAbstractDeclarator . LBRACE expr RBRACE
-+ directAbstractDeclarator : directAbstractDeclarator . LPAREN RPAREN
-+ directAbstractDeclarator : directAbstractDeclarator . LPAREN parameterTypeList RPAREN
-+
-+ LPAREN shift 350
-+ LBRACE shift 349
-+
-+
-+ . reduce by rule 225
-+
-+
-+state 349:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LBRACE . RBRACE
-+ directAbstractDeclarator : directAbstractDeclarator LBRACE . expr RBRACE
-+
-+ LPAREN shift 124
-+ RBRACE shift 384
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 383
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 350:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LPAREN . RPAREN
-+ directAbstractDeclarator : directAbstractDeclarator LPAREN . parameterTypeList RPAREN
-+
-+ RPAREN shift 386
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ parameterList goto 146
-+ parameterTypeList goto 385
-+ parameterDeclaration goto 144
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 351:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ directAbstractDeclarator : LBRACE expr . RBRACE
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ RBRACE shift 387
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . error
-+
-+
-+state 352:
-+
-+ directAbstractDeclarator : LBRACE RBRACE . (reduce by rule 227)
-+
-+
-+
-+ . reduce by rule 227
-+
-+
-+state 353:
-+
-+ directAbstractDeclarator : LPAREN parameterTypeList . RPAREN
-+
-+ RPAREN shift 388
-+
-+
-+ . error
-+
-+
-+state 354:
-+
-+ directAbstractDeclarator : LPAREN abstractDeclarator . RPAREN
-+
-+ RPAREN shift 389
-+
-+
-+ . error
-+
-+
-+state 355:
-+
-+ directAbstractDeclarator : LPAREN RPAREN . (reduce by rule 231)
-+
-+
-+
-+ . reduce by rule 231
-+
-+
-+state 356:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LBRACE . RBRACE
-+ parmDirectDeclarator : parmDirectDeclarator LBRACE . expr RBRACE
-+
-+ LPAREN shift 124
-+ RBRACE shift 391
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 390
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 357:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN . RPAREN
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN . parameterTypeList RPAREN
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN . identlist RPAREN
-+
-+ RPAREN shift 394
-+ ID shift 150
-+ EXTERN shift 38
-+ AUTO shift 37
-+ STATIC shift 36
-+ REGISTER shift 35
-+ CONST shift 34
-+ VOLATILE shift 33
-+ CHAR shift 32
-+ DOUBLE shift 31
-+ ENUM shift 30
-+ FLOAT shift 29
-+ INT shift 28
-+ LONG shift 27
-+ SHORT shift 26
-+ STRUCT shift 25
-+ UNION shift 24
-+ UNSIGNED shift 23
-+ SIGNED shift 22
-+ VOID shift 21
-+ TYPEDEF shift 20
-+ TYPE_NAME shift 19
-+
-+ declarationSpecifiers goto 149
-+ declarationModifiers goto 148
-+ storageClassSpecifier goto 13
-+ typeSpecifier goto 12
-+ typeSpecifierReserved goto 11
-+ typeQualifier goto 10
-+ enumSpecifier goto 9
-+ structOrUnionSpecifier goto 8
-+ identlist goto 393
-+ parameterList goto 146
-+ parameterTypeList goto 392
-+ parameterDeclaration goto 144
-+ structOrUnion goto 2
-+
-+ . error
-+
-+
-+state 358:
-+
-+ parmDeclarator : pointer parmDirectDeclarator . (reduce by rule 185)
-+ parmDirectDeclarator : parmDirectDeclarator . LBRACE RBRACE
-+ parmDirectDeclarator : parmDirectDeclarator . LBRACE expr RBRACE
-+ parmDirectDeclarator : parmDirectDeclarator . LPAREN RPAREN
-+ parmDirectDeclarator : parmDirectDeclarator . LPAREN parameterTypeList RPAREN
-+ parmDirectDeclarator : parmDirectDeclarator . LPAREN identlist RPAREN
-+
-+ LPAREN shift 357
-+ LBRACE shift 356
-+
-+
-+ . reduce by rule 185
-+
-+
-+state 359:
-+
-+ enumSpecifier : ENUM TYPE_NAME LCURLY enumeratorList trailingComma . RCURLY
-+
-+ RCURLY shift 395
-+
-+
-+ . error
-+
-+
-+state 360:
-+
-+ enumSpecifier : ENUM ID LCURLY enumeratorList trailingComma . RCURLY
-+
-+ RCURLY shift 396
-+
-+
-+ . error
-+
-+
-+state 361:
-+
-+ enumSpecifier : ENUM LCURLY enumeratorList trailingComma RCURLY . (reduce by rule 154)
-+
-+
-+
-+ . reduce by rule 154
-+
-+
-+state 362:
-+
-+ enumeratorList : enumeratorList COMMA enumerator . (reduce by rule 159)
-+
-+
-+
-+ . reduce by rule 159
-+
-+
-+state 363:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ enumerator : ID EQUALS expr . (reduce by rule 162)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 162
-+
-+
-+state 364:
-+
-+ structDeclaratorList : structDeclaratorList COMMA structDeclarator . (reduce by rule 143)
-+
-+
-+
-+ . reduce by rule 143
-+
-+
-+state 365:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ structDeclarator : declarator COLON expr . (reduce by rule 148)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 148
-+
-+
-+state 366:
-+
-+ notypeStructDeclaratorList : notypeStructDeclaratorList COMMA structDeclarator . (reduce by rule 145)
-+
-+
-+
-+ . reduce by rule 145
-+
-+
-+state 367:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ notypeStructDeclarator : notypeDeclarator COLON expr . (reduce by rule 151)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 151
-+
-+
-+state 368:
-+
-+ compoundStatement : LCURLY pushScope declarationList ostatementlist popScope . RCURLY
-+
-+ RCURLY shift 397
-+
-+
-+ . error
-+
-+
-+state 369:
-+
-+ expr : expr QUESTION exprWComma COLON . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 398
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 370:
-+
-+ expr : expr LBRACE exprWComma RBRACE . (reduce by rule 76)
-+
-+
-+
-+ . reduce by rule 76
-+
-+
-+state 371:
-+
-+ argumentExprList : argumentExprList COMMA . expr
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 399
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 372:
-+
-+ expr : expr LPAREN argumentExprList RPAREN . (reduce by rule 78)
-+
-+
-+
-+ . reduce by rule 78
-+
-+
-+state 373:
-+
-+ expr : LPAREN typeName RPAREN . expr
-+ expr : SIZEOF LPAREN typeName RPAREN . (reduce by rule 75)
-+
-+ LPAREN shift 124
-+ TILDE shift 122
-+ BANG shift 119
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 380
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . reduce by rule 75
-+
-+
-+state 374:
-+
-+ statement : WHILE LPAREN exprWComma RPAREN . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 400
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 375:
-+
-+ statement : CASE exprWComma COLON statement . (reduce by rule 17)
-+
-+
-+
-+ . reduce by rule 17
-+
-+
-+state 376:
-+
-+ statement : SWITCH LPAREN exprWComma RPAREN . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 401
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 377:
-+
-+ statement : DO statement WHILE LPAREN . exprWComma RPAREN SEMICOLON
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ exprWComma goto 402
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 378:
-+
-+ statement : FOR LPAREN opExpr SEMICOLON . opExpr SEMICOLON opExpr RPAREN statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ opExpr goto 403
-+ exprWComma goto 221
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . reduce by rule 93
-+
-+
-+state 379:
-+
-+ statement : IF LPAREN exprWComma RPAREN . statement
-+ statement : IF LPAREN exprWComma RPAREN . statement ELSE statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 404
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 380:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : LPAREN typeName RPAREN expr . (reduce by rule 74)
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+
-+
-+ . reduce by rule 74
-+
-+
-+state 381:
-+
-+ initializer : LCURLY initializerList trailingComma . RCURLY
-+
-+ RCURLY shift 405
-+
-+
-+ . error
-+
-+
-+state 382:
-+
-+ trailingComma : COMMA . (reduce by rule 169)
-+ initializerList : initializerList COMMA . initializer
-+
-+ LPAREN shift 124
-+ LCURLY shift 240
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 239
-+ unaryOperator goto 92
-+ initializer goto 406
-+ strings goto 90
-+
-+ . reduce by rule 169
-+
-+
-+state 383:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ directAbstractDeclarator : directAbstractDeclarator LBRACE expr . RBRACE
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ RBRACE shift 407
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . error
-+
-+
-+state 384:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LBRACE RBRACE . (reduce by rule 229)
-+
-+
-+
-+ . reduce by rule 229
-+
-+
-+state 385:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LPAREN parameterTypeList . RPAREN
-+
-+ RPAREN shift 408
-+
-+
-+ . error
-+
-+
-+state 386:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LPAREN RPAREN . (reduce by rule 233)
-+
-+
-+
-+ . reduce by rule 233
-+
-+
-+state 387:
-+
-+ directAbstractDeclarator : LBRACE expr RBRACE . (reduce by rule 228)
-+
-+
-+
-+ . reduce by rule 228
-+
-+
-+state 388:
-+
-+ directAbstractDeclarator : LPAREN parameterTypeList RPAREN . (reduce by rule 232)
-+
-+
-+
-+ . reduce by rule 232
-+
-+
-+state 389:
-+
-+ directAbstractDeclarator : LPAREN abstractDeclarator RPAREN . (reduce by rule 226)
-+
-+
-+
-+ . reduce by rule 226
-+
-+
-+state 390:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ parmDirectDeclarator : parmDirectDeclarator LBRACE expr . RBRACE
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ RBRACE shift 409
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . error
-+
-+
-+state 391:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LBRACE RBRACE . (reduce by rule 205)
-+
-+
-+
-+ . reduce by rule 205
-+
-+
-+state 392:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN parameterTypeList . RPAREN
-+
-+ RPAREN shift 410
-+
-+
-+ . error
-+
-+
-+state 393:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN identlist . RPAREN
-+ identlist : identlist . COMMA ID
-+
-+ RPAREN shift 411
-+ COMMA shift 253
-+
-+
-+ . error
-+
-+
-+state 394:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN RPAREN . (reduce by rule 207)
-+
-+
-+
-+ . reduce by rule 207
-+
-+
-+state 395:
-+
-+ enumSpecifier : ENUM TYPE_NAME LCURLY enumeratorList trailingComma RCURLY . (reduce by rule 156)
-+
-+
-+
-+ . reduce by rule 156
-+
-+
-+state 396:
-+
-+ enumSpecifier : ENUM ID LCURLY enumeratorList trailingComma RCURLY . (reduce by rule 155)
-+
-+
-+
-+ . reduce by rule 155
-+
-+
-+state 397:
-+
-+ compoundStatement : LCURLY pushScope declarationList ostatementlist popScope RCURLY . (reduce by rule 30)
-+
-+
-+
-+ . reduce by rule 30
-+
-+
-+state 398:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr QUESTION exprWComma COLON expr . (reduce by rule 38)
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 38
-+
-+
-+state 399:
-+
-+ expr : expr . QUESTION exprWComma COLON expr
-+ expr : expr . PLUSEQUALS expr
-+ expr : expr . MINUSEQUALS expr
-+ expr : expr . TIMESEQUALS expr
-+ expr : expr . DIVEQUALS expr
-+ expr : expr . MODEQUALS expr
-+ expr : expr . XOREQUALS expr
-+ expr : expr . OREQUALS expr
-+ expr : expr . ANDEQUALS expr
-+ expr : expr . LSHIFTEQUALS expr
-+ expr : expr . RSHIFTEQUALS expr
-+ expr : expr . EQUALS expr
-+ expr : expr . OR expr
-+ expr : expr . AND expr
-+ expr : expr . BAR expr
-+ expr : expr . HAT expr
-+ expr : expr . AMP expr
-+ expr : expr . EQ expr
-+ expr : expr . NEQ expr
-+ expr : expr . LT expr
-+ expr : expr . GT expr
-+ expr : expr . LTE expr
-+ expr : expr . GTE expr
-+ expr : expr . LSHIFT expr
-+ expr : expr . RSHIFT expr
-+ expr : expr . PLUS expr
-+ expr : expr . MINUS expr
-+ expr : expr . TIMES expr
-+ expr : expr . DIVIDE expr
-+ expr : expr . PERCENT expr
-+ expr : expr . INC
-+ expr : expr . DEC
-+ expr : expr . LBRACE exprWComma RBRACE
-+ expr : expr . LPAREN RPAREN
-+ expr : expr . LPAREN argumentExprList RPAREN
-+ expr : expr . DOT ID
-+ expr : expr . ARROW ID
-+ expr : expr . DOT TYPE_NAME
-+ expr : expr . ARROW TYPE_NAME
-+ argumentExprList : argumentExprList COMMA expr . (reduce by rule 96)
-+
-+ LPAREN shift 213
-+ LBRACE shift 212
-+ DOT shift 211
-+ QUESTION shift 210
-+ PERCENT shift 209
-+ AMP shift 208
-+ BAR shift 207
-+ DIVIDE shift 206
-+ PLUS shift 205
-+ MINUS shift 204
-+ HAT shift 203
-+ TIMES shift 202
-+ INC shift 201
-+ DEC shift 200
-+ ARROW shift 199
-+ EQUALS shift 198
-+ PLUSEQUALS shift 197
-+ MINUSEQUALS shift 196
-+ XOREQUALS shift 195
-+ MODEQUALS shift 194
-+ TIMESEQUALS shift 193
-+ DIVEQUALS shift 192
-+ OREQUALS shift 191
-+ ANDEQUALS shift 190
-+ LSHIFTEQUALS shift 189
-+ RSHIFTEQUALS shift 188
-+ LTE shift 187
-+ GTE shift 186
-+ LT shift 185
-+ GT shift 184
-+ EQ shift 183
-+ NEQ shift 182
-+ OR shift 181
-+ AND shift 180
-+ LSHIFT shift 179
-+ RSHIFT shift 178
-+
-+
-+ . reduce by rule 96
-+
-+
-+state 400:
-+
-+ statement : WHILE LPAREN exprWComma RPAREN statement . (reduce by rule 7)
-+
-+
-+
-+ . reduce by rule 7
-+
-+
-+state 401:
-+
-+ statement : SWITCH LPAREN exprWComma RPAREN statement . (reduce by rule 8)
-+
-+
-+
-+ . reduce by rule 8
-+
-+
-+state 402:
-+
-+ statement : DO statement WHILE LPAREN exprWComma . RPAREN SEMICOLON
-+ exprWComma : exprWComma . COMMA expr
-+
-+ RPAREN shift 412
-+ COMMA shift 176
-+
-+
-+ . error
-+
-+
-+state 403:
-+
-+ statement : FOR LPAREN opExpr SEMICOLON opExpr . SEMICOLON opExpr RPAREN statement
-+
-+ SEMICOLON shift 413
-+
-+
-+ . error
-+
-+error: state 404: shift/reduce conflict (shift ELSE, reduce by rule 18)
-+
-+state 404:
-+
-+ statement : IF LPAREN exprWComma RPAREN statement . (reduce by rule 18)
-+ statement : IF LPAREN exprWComma RPAREN statement . ELSE statement
-+
-+ ELSE shift 414
-+
-+
-+ . reduce by rule 18
-+
-+
-+state 405:
-+
-+ initializer : LCURLY initializerList trailingComma RCURLY . (reduce by rule 211)
-+
-+
-+
-+ . reduce by rule 211
-+
-+
-+state 406:
-+
-+ initializerList : initializerList COMMA initializer . (reduce by rule 213)
-+
-+
-+
-+ . reduce by rule 213
-+
-+
-+state 407:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LBRACE expr RBRACE . (reduce by rule 230)
-+
-+
-+
-+ . reduce by rule 230
-+
-+
-+state 408:
-+
-+ directAbstractDeclarator : directAbstractDeclarator LPAREN parameterTypeList RPAREN . (reduce by rule 234)
-+
-+
-+
-+ . reduce by rule 234
-+
-+
-+state 409:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LBRACE expr RBRACE . (reduce by rule 206)
-+
-+
-+
-+ . reduce by rule 206
-+
-+
-+state 410:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN parameterTypeList RPAREN . (reduce by rule 208)
-+
-+
-+
-+ . reduce by rule 208
-+
-+
-+state 411:
-+
-+ parmDirectDeclarator : parmDirectDeclarator LPAREN identlist RPAREN . (reduce by rule 209)
-+
-+
-+
-+ . reduce by rule 209
-+
-+
-+state 412:
-+
-+ statement : DO statement WHILE LPAREN exprWComma RPAREN . SEMICOLON
-+
-+ SEMICOLON shift 415
-+
-+
-+ . error
-+
-+
-+state 413:
-+
-+ statement : FOR LPAREN opExpr SEMICOLON opExpr SEMICOLON . opExpr RPAREN statement
-+
-+ LPAREN shift 124
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 142
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ SIZEOF shift 99
-+
-+ expr goto 94
-+ opExpr goto 416
-+ exprWComma goto 221
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . reduce by rule 93
-+
-+
-+state 414:
-+
-+ statement : IF LPAREN exprWComma RPAREN statement ELSE . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 417
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 415:
-+
-+ statement : DO statement WHILE LPAREN exprWComma RPAREN SEMICOLON . (reduce by rule 9)
-+
-+
-+
-+ . reduce by rule 9
-+
-+
-+state 416:
-+
-+ statement : FOR LPAREN opExpr SEMICOLON opExpr SEMICOLON opExpr . RPAREN statement
-+
-+ RPAREN shift 418
-+
-+
-+ . error
-+
-+
-+state 417:
-+
-+ statement : IF LPAREN exprWComma RPAREN statement ELSE statement . (reduce by rule 19)
-+
-+
-+
-+ . reduce by rule 19
-+
-+
-+state 418:
-+
-+ statement : FOR LPAREN opExpr SEMICOLON opExpr SEMICOLON opExpr RPAREN . statement
-+
-+ SEMICOLON shift 125
-+ LPAREN shift 124
-+ LCURLY shift 52
-+ AMP shift 123
-+ TILDE shift 122
-+ PLUS shift 121
-+ MINUS shift 120
-+ BANG shift 119
-+ TIMES shift 118
-+ INC shift 117
-+ DEC shift 116
-+ ID shift 115
-+ DECNUM shift 114
-+ REALNUM shift 113
-+ STRING shift 112
-+ CCONST shift 111
-+ IF shift 110
-+ FOR shift 109
-+ DO shift 108
-+ SWITCH shift 107
-+ CASE shift 106
-+ DEFAULT shift 105
-+ WHILE shift 104
-+ RETURN shift 103
-+ BREAK shift 102
-+ CONTINUE shift 101
-+ GOTO shift 100
-+ SIZEOF shift 99
-+
-+ statement goto 419
-+ compoundStatement goto 95
-+ expr goto 94
-+ exprWComma goto 93
-+ unaryOperator goto 92
-+ strings goto 90
-+
-+ . error
-+
-+
-+state 419:
-+
-+ statement : FOR LPAREN opExpr SEMICOLON opExpr SEMICOLON opExpr RPAREN statement . (reduce by rule 6)
-+
-+
-+
-+ . reduce by rule 6
-+
-+
-+state 420:
-+
-+
-+ EOF accept
-+
-+
-+ . error
-+
-+2243 of 3800 action table entries left after compaction
-+712 goto table entries
-diff -Naur ckit/src/parser/grammar/c.grm.sig ckit-mlton/src/parser/grammar/c.grm.sig
---- ckit/src/parser/grammar/c.grm.sig 1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.grm.sig 2005-11-19 13:53:36.000000000 -0500
-@@ -0,0 +1,101 @@
-+signature C_TOKENS =
-+sig
-+type ('a,'b) token
-+type svalue
-+val TYPE_NAME: (string) * 'a * 'a -> (svalue,'a) token
-+val ELIPSIS: 'a * 'a -> (svalue,'a) token
-+val UNARY: 'a * 'a -> (svalue,'a) token
-+val TYPEDEF: 'a * 'a -> (svalue,'a) token
-+val SIZEOF: 'a * 'a -> (svalue,'a) token
-+val VOID: 'a * 'a -> (svalue,'a) token
-+val SIGNED: 'a * 'a -> (svalue,'a) token
-+val UNSIGNED: 'a * 'a -> (svalue,'a) token
-+val UNION: 'a * 'a -> (svalue,'a) token
-+val STRUCT: 'a * 'a -> (svalue,'a) token
-+val SATURATE: 'a * 'a -> (svalue,'a) token
-+val FRACTIONAL: 'a * 'a -> (svalue,'a) token
-+val SHORT: 'a * 'a -> (svalue,'a) token
-+val LONG: 'a * 'a -> (svalue,'a) token
-+val INT: 'a * 'a -> (svalue,'a) token
-+val FLOAT: 'a * 'a -> (svalue,'a) token
-+val ENUM: 'a * 'a -> (svalue,'a) token
-+val DOUBLE: 'a * 'a -> (svalue,'a) token
-+val CHAR: 'a * 'a -> (svalue,'a) token
-+val GOTO: 'a * 'a -> (svalue,'a) token
-+val CONTINUE: 'a * 'a -> (svalue,'a) token
-+val BREAK: 'a * 'a -> (svalue,'a) token
-+val RETURN: 'a * 'a -> (svalue,'a) token
-+val WHILE: 'a * 'a -> (svalue,'a) token
-+val DEFAULT: 'a * 'a -> (svalue,'a) token
-+val CASE: 'a * 'a -> (svalue,'a) token
-+val SWITCH: 'a * 'a -> (svalue,'a) token
-+val DO: 'a * 'a -> (svalue,'a) token
-+val FOR: 'a * 'a -> (svalue,'a) token
-+val ELSE: 'a * 'a -> (svalue,'a) token
-+val THEN: 'a * 'a -> (svalue,'a) token
-+val IF: 'a * 'a -> (svalue,'a) token
-+val VOLATILE: 'a * 'a -> (svalue,'a) token
-+val CONST: 'a * 'a -> (svalue,'a) token
-+val REGISTER: 'a * 'a -> (svalue,'a) token
-+val STATIC: 'a * 'a -> (svalue,'a) token
-+val AUTO: 'a * 'a -> (svalue,'a) token
-+val EXTERN: 'a * 'a -> (svalue,'a) token
-+val CCONST: (LargeInt.int) * 'a * 'a -> (svalue,'a) token
-+val STRING: (string) * 'a * 'a -> (svalue,'a) token
-+val REALNUM: (real) * 'a * 'a -> (svalue,'a) token
-+val DECNUM: (LargeInt.int) * 'a * 'a -> (svalue,'a) token
-+val RSHIFT: 'a * 'a -> (svalue,'a) token
-+val LSHIFT: 'a * 'a -> (svalue,'a) token
-+val AND: 'a * 'a -> (svalue,'a) token
-+val OR: 'a * 'a -> (svalue,'a) token
-+val NEQ: 'a * 'a -> (svalue,'a) token
-+val EQ: 'a * 'a -> (svalue,'a) token
-+val GT: 'a * 'a -> (svalue,'a) token
-+val LT: 'a * 'a -> (svalue,'a) token
-+val GTE: 'a * 'a -> (svalue,'a) token
-+val LTE: 'a * 'a -> (svalue,'a) token
-+val RSHIFTEQUALS: 'a * 'a -> (svalue,'a) token
-+val LSHIFTEQUALS: 'a * 'a -> (svalue,'a) token
-+val ANDEQUALS: 'a * 'a -> (svalue,'a) token
-+val OREQUALS: 'a * 'a -> (svalue,'a) token
-+val DIVEQUALS: 'a * 'a -> (svalue,'a) token
-+val TIMESEQUALS: 'a * 'a -> (svalue,'a) token
-+val MODEQUALS: 'a * 'a -> (svalue,'a) token
-+val XOREQUALS: 'a * 'a -> (svalue,'a) token
-+val MINUSEQUALS: 'a * 'a -> (svalue,'a) token
-+val PLUSEQUALS: 'a * 'a -> (svalue,'a) token
-+val EQUALS: 'a * 'a -> (svalue,'a) token
-+val ID: (string) * 'a * 'a -> (svalue,'a) token
-+val ARROW: 'a * 'a -> (svalue,'a) token
-+val DEC: 'a * 'a -> (svalue,'a) token
-+val INC: 'a * 'a -> (svalue,'a) token
-+val TIMES: 'a * 'a -> (svalue,'a) token
-+val BANG: 'a * 'a -> (svalue,'a) token
-+val HAT: 'a * 'a -> (svalue,'a) token
-+val MINUS: 'a * 'a -> (svalue,'a) token
-+val PLUS: 'a * 'a -> (svalue,'a) token
-+val DIVIDE: 'a * 'a -> (svalue,'a) token
-+val TILDE: 'a * 'a -> (svalue,'a) token
-+val BAR: 'a * 'a -> (svalue,'a) token
-+val AMP: 'a * 'a -> (svalue,'a) token
-+val PERCENT: 'a * 'a -> (svalue,'a) token
-+val QUESTION: 'a * 'a -> (svalue,'a) token
-+val COMMA: 'a * 'a -> (svalue,'a) token
-+val DOT: 'a * 'a -> (svalue,'a) token
-+val RBRACE: 'a * 'a -> (svalue,'a) token
-+val LBRACE: 'a * 'a -> (svalue,'a) token
-+val RCURLY: 'a * 'a -> (svalue,'a) token
-+val LCURLY: 'a * 'a -> (svalue,'a) token
-+val RPAREN: 'a * 'a -> (svalue,'a) token
-+val LPAREN: 'a * 'a -> (svalue,'a) token
-+val SEMICOLON: 'a * 'a -> (svalue,'a) token
-+val COLON: 'a * 'a -> (svalue,'a) token
-+val EOF: 'a * 'a -> (svalue,'a) token
-+end
-+signature C_LRVALS=
-+sig
-+structure Tokens : C_TOKENS
-+structure ParserData:PARSER_DATA
-+sharing type ParserData.Token.token = Tokens.token
-+sharing type ParserData.svalue = Tokens.svalue
-+end
diff -Naur ckit/src/parser/grammar/c.grm.sml ckit-mlton/src/parser/grammar/c.grm.sml
---- ckit/src/parser/grammar/c.grm.sml 1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.grm.sml 2005-11-19 13:53:36.000000000 -0500
-@@ -0,0 +1,3866 @@
-+functor LrValsFun(structure Token : TOKEN
-+ ) =
-+struct
-+structure ParserData=
-+struct
-+structure Header =
-+struct
-+(* DO NOT CHANGE THIS FILE -- this file was generated from cd.grm *)
-+
-+(* Copyright (c) 1998 by Lucent Technologies *)
-+
-+(* new comments from Satish Chandra, 6/21/99 *)
-+(* Overriding design approach:
-+ *
-+ * Accept all legal programs, but possibly some illegal ones at this stage.
-+ * Do not attempt to make a really tight grammar. Our tools are supposed to
-+ * work on "correct" C programs (i.e. those that cc -ansi would compile without
-+ * warnings). Of course, a type checker on the parse tree can report some errors
-+ * as syntax errors.
-+ *
-+ * Note on MARK:
-+ *
-+ * externalDecl, statement, and expression are the non-terms that are marked.
-+ * Compound statements are not separately marked.
-+ * declarations eventually become either a statement or a externalDecl
-+ * if they are outside any function. They are marked accordingly.
-+ *
-+ * Note on function definitions:
-+ *
-+ * The order of the paramaters will always come from the FuncDecr.
-+ * The types of the parameter may come from the second declaration list
-+ * (in K&R style)
-+ *
-+ * Note on the structure of the grammar:
-+ *
-+ * It is difficult to write a LALR(1) grammar based on the grammar given at
-+ * the back of the K&R book. The basic difficulty is that both TYPE_NAME and
-+ * ID are tokens that are strings, but it depends on the context whether
-+ * a given string is to be treated as an ID or a TYPE_NAME.
-+ * We have borrowed the solution used in GCC's parser specification. In this
-+ * scheme, the lexer always return the token TYPE_NAME if a name has been
-+ * defined as a type name (via a typedef) in an applicable scope. The grammar
-+ * productions are heavily rearranged (from K&R's grammar) to do the right
-+ * thing. In this rearrangement, the basic idea is that a TYPE_NAME is
-+ * allowed to appear in a declaration as a plain identifier only after a type
-+ * specifier has previously appeared in the declaration. Also, a TYPE_NAME may
-+ * appear only once in a declaration as a type specifier.
-+ *)
-+
-+(* old comments below *)
-+(* Shortcomings *)
-+(* 1. No floating-point whatsoever *)
-+
-+(* Notes on MARK:
-+ * externalDecl and statement are the non-terms that are marked.
-+ * Compound statements are not separately marked.
-+ * expressions are not marked at all.
-+ * declarations eventually become either a statement or a externalDecl
-+ * if they are outside any function. they are marked accordingly.
-+ *)
-+
-+(* Overriding theme: accept all legal programs, but also some illegal ones at this
-+ * stage. Do not attempt to make a really tight grammar. Our tools are supposed to
-+ * work on "correct" C programs (i.e. those that cc -ansi would compile without
-+ * warnings). Of course, a type checker on the parse tree can report some errors
-+ * as syntax errors.
-+ *)
-+
-+(* About function definitions:
-+ * The order of the paramaters will always come from the FuncDecr thing
-+ * The types of the parameter may come from the second declaration list (in K&R style)
-+ *)
-+
-+open ParseTree (* PortingHelp *)
-+
-+fun markExternalDecl srcMap (d,left,right) =
-+ MARKexternalDecl(SourceMap.location srcMap (left,right), d)
-+
-+fun markDeclaration srcMap (d,left,right) =
-+ MARKdeclaration(SourceMap.location srcMap (left,right), d)
-+
-+fun markDeclarator srcMap (d,left,right) =
-+ MARKdeclarator(SourceMap.location srcMap (left,right), d)
-+
-+fun markStatement srcMap (s,left,right) =
-+ MARKstatement(SourceMap.location srcMap (left, right), s)
-+
-+fun markExpression srcMap (s,left,right) =
-+ MARKexpression(SourceMap.location srcMap (left, right), s)
-+
-+val unknown = {storage=[],qualifiers=[],specifiers=[]}:decltype
-+
-+(* this code duplicated in BuildAst in function processDeclarator *)
-+fun ctypeDecrToTypeName (typ as {qualifiers, specifiers},decr) =
-+ let fun mkTyp spc = {qualifiers=[], specifiers=[spc]}
-+ fun addQual q = {qualifiers=q::qualifiers, specifiers=specifiers}
-+ in case decr
-+ of VarDecr x => (typ,SOME x)
-+ | PointerDecr x =>
-+ ctypeDecrToTypeName (mkTyp (Pointer typ),x)
-+ | ArrayDecr (x,sz) =>
-+ ctypeDecrToTypeName (mkTyp (Array (sz,typ)),x)
-+ | FuncDecr (x,lst) =>
-+ ctypeDecrToTypeName (mkTyp (Function{retType=typ,params=lst}),x)
-+ | QualDecr (q,decr) =>
-+ ctypeDecrToTypeName (addQual q, decr)
-+ | EmptyDecr => (typ, NONE)
-+ | EllipsesDecr => (mkTyp Ellipses, SOME("**ellipses**"))
-+ | DecrExt _ => (typ, NONE) (* should call decr extension? *)
-+ | MARKdeclarator(loc, decr) => ctypeDecrToTypeName(typ, decr)
-+ end
-+
-+fun dclr2str dcl =
-+ (case ctypeDecrToTypeName ({qualifiers=[],specifiers=[]}, dcl)
-+ of (_,SOME s) => s
-+ | (_,NONE) => "")
-+
-+fun combineDecltypes ( {qualifiers=q1,storage=st1,specifiers=sp1}
-+ , {qualifiers=q2,storage=st2,specifiers=sp2}
-+ ) =
-+ {qualifiers=q1@q2,storage=st1@st2,specifiers=sp1@sp2} (* @ ok *)
-+
-+fun applyPointer (PointerDecr x,rest) = PointerDecr (applyPointer (x,rest))
-+ | applyPointer (QualDecr (q,x),rest) = QualDecr (q, applyPointer (x,rest))
-+ | applyPointer (EmptyDecr, rest) = rest
-+ | applyPointer (_, rest) = rest
-+ (* NCH/DBM[6/14/99]: this case can never occur *)
-+
-+fun addStorage(st, {qualifiers,storage,specifiers}) =
-+ {qualifiers=qualifiers,storage=st::storage,specifiers=specifiers}
-+
-+fun addQualifiers(qs, {qualifiers,storage,specifiers}) =
-+ {qualifiers=qs@qualifiers,storage=storage,specifiers=specifiers} (* @ ok *)
-+
-+fun addQualifier(q, {qualifiers,storage,specifiers}) =
-+ {qualifiers=q::qualifiers,storage=storage,specifiers=specifiers}
-+
-+fun addSpecifier(sp, {qualifiers,storage,specifiers}) =
-+ {qualifiers=qualifiers,storage=storage,specifiers=sp::specifiers}
-+
-+val addAll = combineDecltypes
-+
-+fun loopQd (q::rst, acc) = loopQd(rst, QualDecr(q, acc))
-+ | loopQd (nil, acc) = acc
-+
-+fun mkCtype typ = typ
-+
-+(* DBM: major kludge, using TYPEDEF as storage class *)
-+fun insertDeclNames ({storage,...}: decltype, idl) =
-+ case storage
-+ of [TYPEDEF] => List.app (fn x as (dcl,_) => TypeDefs.addTdef (dclr2str dcl)) idl
-+ | _ => List.app (fn x as (dcl,_) => TypeDefs.addNoTdef (dclr2str dcl)) idl
-+
-+fun insertFuncName dcl =
-+ let
-+ val name = dclr2str dcl
-+ in
-+ TypeDefs.addNoTdef name
-+ end
-+
-+fun insertFuncParams (FuncDecr (_,params)) : unit =
-+ let
-+ fun getName (ct, dclr) = dclr2str dclr
-+ val names = map getName params
-+ in
-+ List.app TypeDefs.addNoTdef names
-+ end
-+ | insertFuncParams (ArrayDecr(dcl,_)) = insertFuncParams dcl
-+ | insertFuncParams (PointerDecr dcl) = insertFuncParams dcl
-+ | insertFuncParams _ = () (* this is actually an error, but it will be caught in
-+ * BuildAst when processing a PT.FunctionDef *)
-+
-+abstype 'a seq = SEQ of 'a list
-+with val emptySeq = SEQ nil
-+ fun singletonSeq x = SEQ[x]
-+ fun addToSeq(x, SEQ yl) = SEQ(x :: yl) (* add to end of sequence! *)
-+ (* fun addListToEnd(xl, yl) = SEQ((List.rev xl) @ yl) *)
-+ fun addOptToEnd(NONE, yl) = yl
-+ | addOptToEnd(SOME x, SEQ yl) = SEQ(x :: yl)
-+ fun seqToList(SEQ yl) = List.rev yl
-+end
-+
-+
-+end
-+structure LrTable = Token.LrTable
-+structure Token = Token
-+local open LrTable in
-+val table=let val actionRows =
-+"\
-+\\001\000\001\000\000\000\000\000\
-+\\001\000\002\000\169\000\004\000\070\000\022\000\042\000\026\000\041\000\
-+\\089\000\069\000\000\000\
-+\\001\000\002\000\174\000\004\000\043\000\022\000\042\000\026\000\041\000\
-+\\071\000\034\000\072\000\033\000\073\000\032\000\074\000\031\000\
-+\\075\000\030\000\076\000\029\000\077\000\028\000\080\000\027\000\
-+\\081\000\026\000\082\000\025\000\083\000\024\000\084\000\023\000\
-+\\089\000\021\000\000\000\
-+\\001\000\002\000\226\000\000\000\
-+\\001\000\002\000\075\001\011\000\178\000\000\000\
-+\\001\000\002\000\115\001\011\000\178\000\000\000\
-+\\001\000\003\000\083\002\006\000\130\002\011\000\083\002\027\000\139\000\
-+\\052\000\130\002\053\000\130\002\054\000\130\002\055\000\130\002\
-+\\056\000\130\002\057\000\130\002\071\000\130\002\072\000\130\002\
-+\\073\000\130\002\074\000\130\002\075\000\130\002\076\000\130\002\
-+\\077\000\130\002\080\000\130\002\081\000\130\002\082\000\130\002\
-+\\083\000\130\002\084\000\130\002\086\000\130\002\089\000\130\002\000\000\
-+\\001\000\003\000\087\002\006\000\131\002\011\000\087\002\027\000\135\000\
-+\\052\000\131\002\053\000\131\002\054\000\131\002\055\000\131\002\
-+\\056\000\131\002\057\000\131\002\071\000\131\002\072\000\131\002\
-+\\073\000\131\002\074\000\131\002\075\000\131\002\076\000\131\002\
-+\\077\000\131\002\080\000\131\002\081\000\131\002\082\000\131\002\
-+\\083\000\131\002\084\000\131\002\086\000\131\002\089\000\131\002\000\000\
-+\\001\000\003\000\048\000\000\000\
-+\\001\000\003\000\127\000\004\000\126\000\006\000\054\000\007\000\194\001\
-+\\014\000\125\000\016\000\124\000\018\000\123\000\019\000\122\000\
-+\\021\000\121\000\022\000\120\000\023\000\119\000\024\000\118\000\
-+\\026\000\117\000\048\000\116\000\049\000\115\000\050\000\114\000\
-+\\051\000\113\000\052\000\156\002\053\000\156\002\054\000\156\002\
-+\\055\000\156\002\056\000\156\002\057\000\156\002\058\000\112\000\
-+\\061\000\111\000\062\000\110\000\063\000\109\000\064\000\108\000\
-+\\065\000\107\000\066\000\106\000\067\000\105\000\068\000\104\000\
-+\\069\000\103\000\070\000\102\000\071\000\156\002\072\000\156\002\
-+\\073\000\156\002\074\000\156\002\075\000\156\002\076\000\156\002\
-+\\077\000\156\002\080\000\156\002\081\000\156\002\082\000\156\002\
-+\\083\000\156\002\084\000\156\002\085\000\101\000\086\000\156\002\
-+\\089\000\156\002\000\000\
-+\\001\000\003\000\127\000\004\000\126\000\006\000\054\000\014\000\125\000\
-+\\016\000\124\000\018\000\123\000\019\000\122\000\021\000\121\000\
-+\\022\000\120\000\023\000\119\000\024\000\118\000\026\000\117\000\
-+\\048\000\116\000\049\000\115\000\050\000\114\000\051\000\113\000\
-+\\058\000\112\000\061\000\111\000\062\000\110\000\063\000\109\000\
-+\\064\000\108\000\065\000\107\000\066\000\106\000\067\000\105\000\
-+\\068\000\104\000\069\000\103\000\070\000\102\000\085\000\101\000\000\000\
-+\\001\000\003\000\179\000\011\000\178\000\000\000\
-+\\001\000\003\000\221\000\000\000\
-+\\001\000\003\000\222\000\000\000\
-+\\001\000\003\000\021\001\011\000\020\001\000\000\
-+\\001\000\003\000\025\001\011\000\024\001\000\000\
-+\\001\000\003\000\071\001\000\000\
-+\\001\000\003\000\072\001\000\000\
-+\\001\000\003\000\124\001\000\000\
-+\\001\000\003\000\159\001\000\000\
-+\\001\000\003\000\161\001\000\000\
-+\\001\000\004\000\043\000\022\000\042\000\026\000\041\000\000\000\
-+\\001\000\004\000\043\000\022\000\042\000\026\000\041\000\052\000\040\000\
-+\\053\000\039\000\054\000\038\000\055\000\037\000\056\000\036\000\
-+\\057\000\035\000\071\000\034\000\072\000\033\000\073\000\032\000\
-+\\074\000\031\000\075\000\030\000\076\000\029\000\077\000\028\000\
-+\\080\000\027\000\081\000\026\000\082\000\025\000\083\000\024\000\
-+\\084\000\023\000\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\004\000\043\000\026\000\041\000\000\000\
-+\\001\000\004\000\070\000\022\000\042\000\026\000\041\000\089\000\069\000\000\000\
-+\\001\000\004\000\070\000\026\000\041\000\089\000\069\000\000\000\
-+\\001\000\004\000\126\000\005\000\069\001\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\006\000\242\000\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\009\000\145\000\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\009\000\245\000\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\009\000\098\001\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\009\000\130\001\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\009\000\137\001\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\126\000\014\000\125\000\016\000\124\000\018\000\123\000\
-+\\019\000\122\000\021\000\121\000\022\000\120\000\023\000\119\000\
-+\\024\000\118\000\026\000\144\000\048\000\116\000\049\000\115\000\
-+\\050\000\114\000\051\000\113\000\056\000\036\000\057\000\035\000\
-+\\071\000\034\000\072\000\033\000\073\000\032\000\074\000\031\000\
-+\\075\000\030\000\076\000\029\000\077\000\028\000\080\000\027\000\
-+\\081\000\026\000\082\000\025\000\083\000\024\000\084\000\023\000\
-+\\085\000\101\000\089\000\021\000\000\000\
-+\\001\000\004\000\126\000\014\000\125\000\016\000\124\000\018\000\123\000\
-+\\019\000\122\000\021\000\121\000\022\000\120\000\023\000\119\000\
-+\\024\000\118\000\026\000\144\000\048\000\116\000\049\000\115\000\
-+\\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\215\000\008\000\214\000\009\000\252\000\010\000\213\000\
-+\\012\000\212\000\013\000\211\000\014\000\210\000\015\000\209\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\020\000\205\000\
-+\\022\000\204\000\023\000\203\000\024\000\202\000\025\000\201\000\
-+\\027\000\200\000\028\000\199\000\029\000\198\000\030\000\197\000\
-+\\031\000\196\000\032\000\195\000\033\000\194\000\034\000\193\000\
-+\\035\000\192\000\036\000\191\000\037\000\190\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\044\000\183\000\045\000\182\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\001\000\004\000\215\000\008\000\214\000\009\000\088\001\010\000\213\000\
-+\\012\000\212\000\013\000\211\000\014\000\210\000\015\000\209\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\020\000\205\000\
-+\\022\000\204\000\023\000\203\000\024\000\202\000\025\000\201\000\
-+\\027\000\200\000\028\000\199\000\029\000\198\000\030\000\197\000\
-+\\031\000\196\000\032\000\195\000\033\000\194\000\034\000\193\000\
-+\\035\000\192\000\036\000\191\000\037\000\190\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\044\000\183\000\045\000\182\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\001\000\004\000\215\000\008\000\214\000\009\000\133\001\010\000\213\000\
-+\\012\000\212\000\013\000\211\000\014\000\210\000\015\000\209\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\020\000\205\000\
-+\\022\000\204\000\023\000\203\000\024\000\202\000\025\000\201\000\
-+\\027\000\200\000\028\000\199\000\029\000\198\000\030\000\197\000\
-+\\031\000\196\000\032\000\195\000\033\000\194\000\034\000\193\000\
-+\\035\000\192\000\036\000\191\000\037\000\190\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\044\000\183\000\045\000\182\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\001\000\004\000\215\000\008\000\214\000\009\000\153\001\010\000\213\000\
-+\\012\000\212\000\013\000\211\000\014\000\210\000\015\000\209\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\020\000\205\000\
-+\\022\000\204\000\023\000\203\000\024\000\202\000\025\000\201\000\
-+\\027\000\200\000\028\000\199\000\029\000\198\000\030\000\197\000\
-+\\031\000\196\000\032\000\195\000\033\000\194\000\034\000\193\000\
-+\\035\000\192\000\036\000\191\000\037\000\190\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\044\000\183\000\045\000\182\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\001\000\004\000\215\000\008\000\214\000\009\000\155\001\010\000\213\000\
-+\\012\000\212\000\013\000\211\000\014\000\210\000\015\000\209\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\020\000\205\000\
-+\\022\000\204\000\023\000\203\000\024\000\202\000\025\000\201\000\
-+\\027\000\200\000\028\000\199\000\029\000\198\000\030\000\197\000\
-+\\031\000\196\000\032\000\195\000\033\000\194\000\034\000\193\000\
-+\\035\000\192\000\036\000\191\000\037\000\190\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\044\000\183\000\045\000\182\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\001\000\004\000\219\000\014\000\125\000\016\000\124\000\018\000\123\000\
-+\\019\000\122\000\021\000\121\000\022\000\120\000\023\000\119\000\
-+\\024\000\118\000\026\000\144\000\048\000\116\000\049\000\115\000\
-+\\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\001\000\004\000\225\000\000\000\
-+\\001\000\004\000\228\000\000\000\
-+\\001\000\004\000\230\000\000\000\
-+\\001\000\004\000\231\000\000\000\
-+\\001\000\004\000\006\001\005\000\101\001\008\000\005\001\022\000\042\000\
-+\\026\000\041\000\052\000\040\000\053\000\039\000\054\000\038\000\
-+\\055\000\037\000\056\000\036\000\057\000\035\000\071\000\034\000\
-+\\072\000\033\000\073\000\032\000\074\000\031\000\075\000\030\000\
-+\\076\000\029\000\077\000\028\000\080\000\027\000\081\000\026\000\
-+\\082\000\025\000\083\000\024\000\084\000\023\000\086\000\022\000\
-+\\089\000\021\000\000\000\
-+\\001\000\004\000\006\001\008\000\005\001\022\000\042\000\026\000\041\000\
-+\\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\004\000\083\001\005\000\101\001\008\000\005\001\022\000\042\000\
-+\\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\004\000\123\001\000\000\
-+\\001\000\005\000\153\000\026\000\152\000\052\000\040\000\053\000\039\000\
-+\\054\000\038\000\055\000\037\000\056\000\036\000\057\000\035\000\
-+\\071\000\034\000\072\000\033\000\073\000\032\000\074\000\031\000\
-+\\075\000\030\000\076\000\029\000\077\000\028\000\080\000\027\000\
-+\\081\000\026\000\082\000\025\000\083\000\024\000\084\000\023\000\
-+\\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\005\000\161\000\000\000\
-+\\001\000\005\000\248\000\026\000\152\000\052\000\040\000\053\000\039\000\
-+\\054\000\038\000\055\000\037\000\056\000\036\000\057\000\035\000\
-+\\071\000\034\000\072\000\033\000\073\000\032\000\074\000\031\000\
-+\\075\000\030\000\076\000\029\000\077\000\028\000\080\000\027\000\
-+\\081\000\026\000\082\000\025\000\083\000\024\000\084\000\023\000\
-+\\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\005\000\251\000\000\000\
-+\\001\000\005\000\253\000\000\000\
-+\\001\000\005\000\000\001\011\000\255\000\000\000\
-+\\001\000\005\000\084\001\000\000\
-+\\001\000\005\000\085\001\011\000\178\000\000\000\
-+\\001\000\005\000\089\001\000\000\
-+\\001\000\005\000\090\001\011\000\255\000\000\000\
-+\\001\000\005\000\118\001\011\000\117\001\000\000\
-+\\001\000\005\000\119\001\000\000\
-+\\001\000\005\000\120\001\011\000\178\000\000\000\
-+\\001\000\005\000\122\001\011\000\178\000\000\000\
-+\\001\000\005\000\125\001\011\000\178\000\000\000\
-+\\001\000\005\000\132\001\052\000\040\000\053\000\039\000\054\000\038\000\
-+\\055\000\037\000\056\000\036\000\057\000\035\000\071\000\034\000\
-+\\072\000\033\000\073\000\032\000\074\000\031\000\075\000\030\000\
-+\\076\000\029\000\077\000\028\000\080\000\027\000\081\000\026\000\
-+\\082\000\025\000\083\000\024\000\084\000\023\000\086\000\022\000\
-+\\089\000\021\000\000\000\
-+\\001\000\005\000\134\001\000\000\
-+\\001\000\005\000\135\001\000\000\
-+\\001\000\005\000\140\001\026\000\152\000\052\000\040\000\053\000\039\000\
-+\\054\000\038\000\055\000\037\000\056\000\036\000\057\000\035\000\
-+\\071\000\034\000\072\000\033\000\073\000\032\000\074\000\031\000\
-+\\075\000\030\000\076\000\029\000\077\000\028\000\080\000\027\000\
-+\\081\000\026\000\082\000\025\000\083\000\024\000\084\000\023\000\
-+\\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\005\000\154\001\000\000\
-+\\001\000\005\000\156\001\000\000\
-+\\001\000\005\000\157\001\011\000\255\000\000\000\
-+\\001\000\005\000\158\001\011\000\178\000\000\000\
-+\\001\000\005\000\164\001\000\000\
-+\\001\000\006\000\047\000\026\000\046\000\089\000\045\000\000\000\
-+\\001\000\006\000\054\000\052\000\040\000\053\000\039\000\054\000\038\000\
-+\\055\000\037\000\056\000\036\000\057\000\035\000\071\000\034\000\
-+\\072\000\033\000\073\000\032\000\074\000\031\000\075\000\030\000\
-+\\076\000\029\000\077\000\028\000\080\000\027\000\081\000\026\000\
-+\\082\000\025\000\083\000\024\000\084\000\023\000\086\000\022\000\
-+\\089\000\021\000\000\000\
-+\\001\000\006\000\076\000\026\000\075\000\089\000\074\000\000\000\
-+\\001\000\007\000\165\000\056\000\036\000\057\000\035\000\071\000\034\000\
-+\\072\000\033\000\073\000\032\000\074\000\031\000\075\000\030\000\
-+\\076\000\029\000\077\000\028\000\080\000\027\000\081\000\026\000\
-+\\082\000\025\000\083\000\024\000\084\000\023\000\089\000\021\000\000\000\
-+\\001\000\007\000\217\000\000\000\
-+\\001\000\007\000\018\001\056\000\036\000\057\000\035\000\071\000\034\000\
-+\\072\000\033\000\073\000\032\000\074\000\031\000\075\000\030\000\
-+\\076\000\029\000\077\000\028\000\080\000\027\000\081\000\026\000\
-+\\082\000\025\000\083\000\024\000\084\000\023\000\089\000\021\000\000\000\
-+\\001\000\007\000\019\001\056\000\036\000\057\000\035\000\071\000\034\000\
-+\\072\000\033\000\073\000\032\000\074\000\031\000\075\000\030\000\
-+\\076\000\029\000\077\000\028\000\080\000\027\000\081\000\026\000\
-+\\082\000\025\000\083\000\024\000\084\000\023\000\089\000\021\000\000\000\
-+\\001\000\007\000\107\001\000\000\
-+\\001\000\007\000\141\001\000\000\
-+\\001\000\007\000\142\001\000\000\
-+\\001\000\007\000\143\001\000\000\
-+\\001\000\007\000\151\001\000\000\
-+\\001\000\009\000\116\001\011\000\178\000\000\000\
-+\\001\000\026\000\158\000\000\000\
-+\\001\000\026\000\220\000\000\000\
-+\\001\000\026\000\054\001\089\000\053\001\000\000\
-+\\001\000\026\000\065\001\089\000\064\001\000\000\
-+\\001\000\026\000\093\001\000\000\
-+\\001\000\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\088\000\092\001\
-+\\089\000\021\000\000\000\
-+\\001\000\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\089\000\021\000\000\000\
-+\\001\000\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\089\000\021\000\000\000\
-+\\001\000\066\000\077\001\000\000\
-+\\001\000\071\000\034\000\072\000\033\000\073\000\032\000\074\000\031\000\
-+\\075\000\030\000\076\000\029\000\077\000\028\000\080\000\027\000\
-+\\081\000\026\000\082\000\025\000\083\000\024\000\084\000\023\000\
-+\\089\000\021\000\000\000\
-+\\167\001\003\000\044\000\004\000\043\000\022\000\042\000\026\000\041\000\
-+\\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\089\000\021\000\000\000\
-+\\168\001\000\000\
-+\\169\001\000\000\
-+\\170\001\000\000\
-+\\171\001\000\000\
-+\\172\001\000\000\
-+\\173\001\000\000\
-+\\174\001\000\000\
-+\\175\001\000\000\
-+\\176\001\000\000\
-+\\177\001\000\000\
-+\\178\001\000\000\
-+\\179\001\000\000\
-+\\180\001\000\000\
-+\\181\001\000\000\
-+\\182\001\000\000\
-+\\183\001\000\000\
-+\\184\001\000\000\
-+\\185\001\060\000\160\001\000\000\
-+\\186\001\000\000\
-+\\187\001\000\000\
-+\\188\001\000\000\
-+\\189\001\000\000\
-+\\190\001\004\000\070\000\022\000\042\000\026\000\041\000\089\000\069\000\000\000\
-+\\191\001\011\000\141\000\000\000\
-+\\192\001\011\000\136\000\000\000\
-+\\193\001\003\000\127\000\004\000\126\000\006\000\054\000\014\000\125\000\
-+\\016\000\124\000\018\000\123\000\019\000\122\000\021\000\121\000\
-+\\022\000\120\000\023\000\119\000\024\000\118\000\026\000\117\000\
-+\\048\000\116\000\049\000\115\000\050\000\114\000\051\000\113\000\
-+\\058\000\112\000\061\000\111\000\062\000\110\000\063\000\109\000\
-+\\064\000\108\000\065\000\107\000\066\000\106\000\067\000\105\000\
-+\\068\000\104\000\069\000\103\000\070\000\102\000\085\000\101\000\000\000\
-+\\194\001\003\000\127\000\004\000\126\000\006\000\054\000\014\000\125\000\
-+\\016\000\124\000\018\000\123\000\019\000\122\000\021\000\121\000\
-+\\022\000\120\000\023\000\119\000\024\000\118\000\026\000\117\000\
-+\\048\000\116\000\049\000\115\000\050\000\114\000\051\000\113\000\
-+\\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\058\000\112\000\061\000\111\000\
-+\\062\000\110\000\063\000\109\000\064\000\108\000\065\000\107\000\
-+\\066\000\106\000\067\000\105\000\068\000\104\000\069\000\103\000\
-+\\070\000\102\000\071\000\034\000\072\000\033\000\073\000\032\000\
-+\\074\000\031\000\075\000\030\000\076\000\029\000\077\000\028\000\
-+\\080\000\027\000\081\000\026\000\082\000\025\000\083\000\024\000\
-+\\084\000\023\000\085\000\101\000\086\000\022\000\089\000\021\000\000\000\
-+\\195\001\000\000\
-+\\196\001\000\000\
-+\\197\001\000\000\
-+\\198\001\000\000\
-+\\199\001\000\000\
-+\\200\001\000\000\
-+\\201\001\000\000\
-+\\202\001\000\000\
-+\\203\001\000\000\
-+\\204\001\000\000\
-+\\205\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\044\000\183\000\045\000\182\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\206\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\207\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\208\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\209\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\210\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\211\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\212\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\213\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\214\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\215\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\216\001\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\217\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\014\000\210\000\015\000\209\000\017\000\208\000\018\000\207\000\
-+\\019\000\206\000\020\000\205\000\022\000\204\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\218\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\014\000\210\000\015\000\209\000\017\000\208\000\018\000\207\000\
-+\\019\000\206\000\020\000\205\000\022\000\204\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\046\000\181\000\047\000\180\000\000\000\
-+\\219\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\014\000\210\000\017\000\208\000\018\000\207\000\019\000\206\000\
-+\\020\000\205\000\022\000\204\000\023\000\203\000\024\000\202\000\
-+\\025\000\201\000\038\000\189\000\039\000\188\000\040\000\187\000\
-+\\041\000\186\000\042\000\185\000\043\000\184\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\220\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\014\000\210\000\017\000\208\000\018\000\207\000\019\000\206\000\
-+\\022\000\204\000\023\000\203\000\024\000\202\000\025\000\201\000\
-+\\038\000\189\000\039\000\188\000\040\000\187\000\041\000\186\000\
-+\\042\000\185\000\043\000\184\000\046\000\181\000\047\000\180\000\000\000\
-+\\221\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\042\000\185\000\
-+\\043\000\184\000\046\000\181\000\047\000\180\000\000\000\
-+\\222\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\223\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\038\000\189\000\
-+\\039\000\188\000\040\000\187\000\041\000\186\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\224\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\225\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\226\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\227\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\046\000\181\000\
-+\\047\000\180\000\000\000\
-+\\228\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\000\000\
-+\\229\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\018\000\207\000\019\000\206\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\000\000\
-+\\230\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\022\000\204\000\023\000\203\000\024\000\202\000\
-+\\025\000\201\000\000\000\
-+\\231\001\004\000\215\000\008\000\214\000\010\000\213\000\013\000\211\000\
-+\\017\000\208\000\022\000\204\000\023\000\203\000\024\000\202\000\
-+\\025\000\201\000\000\000\
-+\\232\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\233\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\234\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\235\001\000\000\
-+\\236\001\000\000\
-+\\237\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\238\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\239\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\240\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\241\001\004\000\215\000\008\000\214\000\010\000\213\000\023\000\203\000\
-+\\024\000\202\000\025\000\201\000\000\000\
-+\\242\001\004\000\126\000\016\000\124\000\021\000\121\000\023\000\119\000\
-+\\024\000\118\000\026\000\144\000\048\000\116\000\049\000\115\000\
-+\\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\243\001\000\000\
-+\\244\001\000\000\
-+\\245\001\000\000\
-+\\246\001\000\000\
-+\\247\001\000\000\
-+\\248\001\000\000\
-+\\249\001\000\000\
-+\\250\001\000\000\
-+\\251\001\000\000\
-+\\252\001\000\000\
-+\\253\001\000\000\
-+\\254\001\000\000\
-+\\254\001\002\000\233\000\000\000\
-+\\255\001\000\000\
-+\\000\002\050\000\114\000\000\000\
-+\\001\002\000\000\
-+\\002\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\003\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\004\002\004\000\126\000\014\000\125\000\016\000\124\000\018\000\123\000\
-+\\019\000\122\000\021\000\121\000\022\000\120\000\023\000\119\000\
-+\\024\000\118\000\026\000\144\000\048\000\116\000\049\000\115\000\
-+\\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\005\002\011\000\178\000\000\000\
-+\\006\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\007\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\008\002\004\000\083\001\008\000\005\001\022\000\042\000\000\000\
-+\\009\002\000\000\
-+\\010\002\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\000\000\
-+\\011\002\052\000\040\000\053\000\039\000\054\000\038\000\055\000\037\000\
-+\\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\086\000\022\000\000\000\
-+\\012\002\000\000\
-+\\013\002\000\000\
-+\\014\002\000\000\
-+\\015\002\000\000\
-+\\016\002\000\000\
-+\\017\002\000\000\
-+\\018\002\000\000\
-+\\019\002\000\000\
-+\\020\002\000\000\
-+\\021\002\000\000\
-+\\022\002\000\000\
-+\\023\002\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\000\000\
-+\\024\002\056\000\036\000\057\000\035\000\071\000\034\000\072\000\033\000\
-+\\073\000\032\000\074\000\031\000\075\000\030\000\076\000\029\000\
-+\\077\000\028\000\080\000\027\000\081\000\026\000\082\000\025\000\
-+\\083\000\024\000\084\000\023\000\000\000\
-+\\025\002\000\000\
-+\\026\002\000\000\
-+\\027\002\056\000\036\000\057\000\035\000\000\000\
-+\\028\002\000\000\
-+\\029\002\000\000\
-+\\030\002\000\000\
-+\\031\002\000\000\
-+\\032\002\000\000\
-+\\033\002\000\000\
-+\\034\002\000\000\
-+\\035\002\000\000\
-+\\036\002\000\000\
-+\\037\002\000\000\
-+\\038\002\000\000\
-+\\039\002\000\000\
-+\\040\002\000\000\
-+\\041\002\000\000\
-+\\042\002\000\000\
-+\\043\002\000\000\
-+\\044\002\000\000\
-+\\045\002\006\000\082\000\000\000\
-+\\046\002\006\000\081\000\000\000\
-+\\047\002\000\000\
-+\\048\002\000\000\
-+\\049\002\000\000\
-+\\050\002\000\000\
-+\\051\002\000\000\
-+\\052\002\000\000\
-+\\053\002\000\000\
-+\\054\002\000\000\
-+\\055\002\000\000\
-+\\056\002\000\000\
-+\\057\002\002\000\022\001\000\000\
-+\\058\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\059\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\060\002\002\000\027\001\000\000\
-+\\061\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\062\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\063\002\000\000\
-+\\064\002\000\000\
-+\\065\002\000\000\
-+\\066\002\000\000\
-+\\067\002\000\000\
-+\\068\002\006\000\155\000\000\000\
-+\\069\002\006\000\154\000\000\000\
-+\\070\002\000\000\
-+\\071\002\000\000\
-+\\072\002\027\000\017\001\000\000\
-+\\073\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\074\002\000\000\
-+\\075\002\000\000\
-+\\076\002\000\000\
-+\\077\002\000\000\
-+\\078\002\000\000\
-+\\079\002\011\000\016\001\000\000\
-+\\079\002\011\000\128\001\000\000\
-+\\080\002\004\000\126\000\006\000\242\000\014\000\125\000\016\000\124\000\
-+\\018\000\123\000\019\000\122\000\021\000\121\000\022\000\120\000\
-+\\023\000\119\000\024\000\118\000\026\000\144\000\048\000\116\000\
-+\\049\000\115\000\050\000\114\000\051\000\113\000\085\000\101\000\000\000\
-+\\080\002\026\000\158\000\000\000\
-+\\081\002\000\000\
-+\\082\002\000\000\
-+\\083\002\027\000\139\000\000\000\
-+\\084\002\000\000\
-+\\085\002\000\000\
-+\\086\002\000\000\
-+\\087\002\027\000\135\000\000\000\
-+\\088\002\000\000\
-+\\089\002\000\000\
-+\\090\002\000\000\
-+\\091\002\004\000\138\000\008\000\137\000\000\000\
-+\\092\002\004\000\138\000\008\000\137\000\000\000\
-+\\093\002\004\000\072\000\008\000\071\000\000\000\
-+\\094\002\004\000\072\000\008\000\071\000\000\000\
-+\\095\002\004\000\103\001\008\000\102\001\000\000\
-+\\096\002\004\000\103\001\008\000\102\001\000\000\
-+\\097\002\022\000\042\000\056\000\036\000\057\000\035\000\000\000\
-+\\098\002\022\000\042\000\000\000\
-+\\099\002\000\000\
-+\\100\002\000\000\
-+\\101\002\000\000\
-+\\102\002\000\000\
-+\\103\002\000\000\
-+\\104\002\000\000\
-+\\105\002\000\000\
-+\\106\002\000\000\
-+\\107\002\000\000\
-+\\108\002\000\000\
-+\\109\002\000\000\
-+\\110\002\000\000\
-+\\111\002\000\000\
-+\\112\002\000\000\
-+\\113\002\000\000\
-+\\114\002\000\000\
-+\\115\002\000\000\
-+\\116\002\000\000\
-+\\117\002\000\000\
-+\\118\002\000\000\
-+\\119\002\000\000\
-+\\120\002\000\000\
-+\\121\002\004\000\215\000\008\000\214\000\010\000\213\000\012\000\212\000\
-+\\013\000\211\000\014\000\210\000\015\000\209\000\017\000\208\000\
-+\\018\000\207\000\019\000\206\000\020\000\205\000\022\000\204\000\
-+\\023\000\203\000\024\000\202\000\025\000\201\000\027\000\200\000\
-+\\028\000\199\000\029\000\198\000\030\000\197\000\031\000\196\000\
-+\\032\000\195\000\033\000\194\000\034\000\193\000\035\000\192\000\
-+\\036\000\191\000\037\000\190\000\038\000\189\000\039\000\188\000\
-+\\040\000\187\000\041\000\186\000\042\000\185\000\043\000\184\000\
-+\\044\000\183\000\045\000\182\000\046\000\181\000\047\000\180\000\000\000\
-+\\122\002\000\000\
-+\\123\002\000\000\
-+\\124\002\000\000\
-+\\125\002\000\000\
-+\\126\002\000\000\
-+\\127\002\000\000\
-+\\128\002\000\000\
-+\\129\002\000\000\
-+\\132\002\000\000\
-+\\133\002\000\000\
-+\\134\002\004\000\006\001\008\000\005\001\026\000\041\000\000\000\
-+\\134\002\004\000\006\001\008\000\005\001\026\000\041\000\089\000\012\001\000\000\
-+\\134\002\004\000\083\001\008\000\005\001\000\000\
-+\\135\002\004\000\096\001\008\000\095\001\000\000\
-+\\136\002\004\000\096\001\008\000\095\001\000\000\
-+\\137\002\000\000\
-+\\138\002\000\000\
-+\\139\002\000\000\
-+\\140\002\000\000\
-+\\141\002\000\000\
-+\\142\002\000\000\
-+\\143\002\000\000\
-+\\144\002\000\000\
-+\\145\002\000\000\
-+\\146\002\011\000\254\000\000\000\
-+\\147\002\000\000\
-+\\148\002\000\000\
-+\\149\002\000\000\
-+\\150\002\000\000\
-+\\151\002\000\000\
-+\\152\002\004\000\006\001\008\000\005\001\022\000\042\000\026\000\041\000\
-+\\089\000\012\001\000\000\
-+\\153\002\000\000\
-+\\154\002\000\000\
-+\\155\002\000\000\
-+\\157\002\000\000\
-+\"
-+val actionRowNumbers =
-+"\097\000\096\000\073\000\098\000\
-+\\008\000\099\000\101\000\074\000\
-+\\216\000\217\000\207\000\215\000\
-+\\198\000\205\000\022\000\119\000\
-+\\025\001\061\001\023\000\218\000\
-+\\008\001\219\000\226\000\227\000\
-+\\234\000\233\000\221\000\223\000\
-+\\222\000\224\000\075\000\225\000\
-+\\220\000\250\000\249\000\007\001\
-+\\005\001\006\001\004\001\040\001\
-+\\029\001\021\000\100\000\232\000\
-+\\231\000\093\000\118\000\057\001\
-+\\074\000\022\000\119\000\062\001\
-+\\009\000\196\000\208\000\198\000\
-+\\206\000\007\000\121\000\017\001\
-+\\023\001\022\001\021\001\006\000\
-+\\025\000\120\000\013\001\033\001\
-+\\024\000\028\000\049\000\026\001\
-+\\255\000\254\000\086\000\030\001\
-+\\213\000\031\001\050\000\093\000\
-+\\093\000\235\000\076\000\001\000\
-+\\002\000\211\000\058\001\063\001\
-+\\019\001\015\001\185\000\092\000\
-+\\034\000\011\000\188\000\110\000\
-+\\122\000\077\000\124\000\040\000\
-+\\087\000\012\000\013\000\190\000\
-+\\041\000\003\000\034\000\042\000\
-+\\010\000\043\000\044\000\182\000\
-+\\186\000\181\000\180\000\184\000\
-+\\034\000\034\000\129\000\133\000\
-+\\131\000\130\000\132\000\128\000\
-+\\033\000\117\000\203\000\204\000\
-+\\202\000\201\000\200\000\199\000\
-+\\197\000\027\000\024\000\029\000\
-+\\051\000\027\000\024\001\024\000\
-+\\052\000\035\000\183\000\042\001\
-+\\080\001\053\000\078\001\054\000\
-+\\046\000\084\001\059\001\044\001\
-+\\086\000\086\000\001\001\009\001\
-+\\002\001\032\001\214\000\041\001\
-+\\078\000\079\000\236\000\228\000\
-+\\014\000\239\000\243\000\034\000\
-+\\015\000\241\000\211\000\246\000\
-+\\034\000\209\000\123\000\168\000\
-+\\034\000\116\000\034\000\034\000\
-+\\034\000\034\000\034\000\034\000\
-+\\034\000\034\000\034\000\034\000\
-+\\034\000\034\000\034\000\034\000\
-+\\034\000\034\000\034\000\034\000\
-+\\034\000\034\000\034\000\088\000\
-+\\165\000\164\000\034\000\034\000\
-+\\034\000\034\000\034\000\034\000\
-+\\034\000\034\000\034\000\089\000\
-+\\034\000\026\000\125\000\127\000\
-+\\169\000\033\000\016\000\107\000\
-+\\106\000\191\000\017\000\034\000\
-+\\010\000\004\000\034\000\094\000\
-+\\190\000\034\000\187\000\010\000\
-+\\167\000\166\000\194\000\095\000\
-+\\055\000\056\000\020\001\053\001\
-+\\027\000\018\001\036\000\035\001\
-+\\057\000\058\000\037\001\016\001\
-+\\014\001\034\001\043\001\045\001\
-+\\091\000\090\000\046\001\086\001\
-+\\064\001\067\001\087\001\030\000\
-+\\045\000\027\001\083\001\082\001\
-+\\065\001\085\001\047\001\009\001\
-+\\009\001\080\000\012\001\034\000\
-+\\230\000\229\000\001\000\237\000\
-+\\034\000\244\000\001\000\238\000\
-+\\210\000\034\000\247\000\212\000\
-+\\088\001\189\000\158\000\157\000\
-+\\147\000\146\000\152\000\151\000\
-+\\154\000\153\000\156\000\155\000\
-+\\144\000\143\000\142\000\141\000\
-+\\138\000\137\000\139\000\140\000\
-+\\136\000\135\000\145\000\178\000\
-+\\176\000\161\000\149\000\160\000\
-+\\159\000\162\000\148\000\150\000\
-+\\163\000\005\000\177\000\175\000\
-+\\085\000\059\000\192\000\173\000\
-+\\060\000\109\000\108\000\061\000\
-+\\112\000\010\000\062\000\048\000\
-+\\018\000\063\000\111\000\066\001\
-+\\195\000\047\000\034\000\179\000\
-+\\010\001\055\001\036\001\038\001\
-+\\039\001\081\001\079\001\060\001\
-+\\068\001\031\000\064\000\037\000\
-+\\070\001\065\000\066\000\074\001\
-+\\032\000\067\000\028\001\081\000\
-+\\082\000\251\000\000\001\003\001\
-+\\240\000\245\000\242\000\248\000\
-+\\083\000\034\000\172\000\034\000\
-+\\174\000\171\000\010\000\113\000\
-+\\010\000\034\000\190\000\010\000\
-+\\170\000\084\000\011\001\038\000\
-+\\072\001\068\000\076\001\071\001\
-+\\075\001\069\001\039\000\048\001\
-+\\069\000\070\000\050\001\253\000\
-+\\252\000\126\000\134\000\193\000\
-+\\103\000\104\000\071\000\019\000\
-+\\114\000\054\001\056\001\073\001\
-+\\077\001\049\001\051\001\052\001\
-+\\020\000\190\000\010\000\105\000\
-+\\072\000\115\000\010\000\102\000\
-+\\000\000"
-+val gotoT =
-+"\
-+\\001\000\164\001\002\000\001\000\000\000\
-+\\021\000\018\000\024\000\017\000\027\000\016\000\029\000\015\000\
-+\\030\000\014\000\036\000\013\000\038\000\012\000\039\000\011\000\
-+\\040\000\010\000\043\000\009\000\044\000\008\000\045\000\007\000\
-+\\048\000\006\000\049\000\005\000\050\000\004\000\051\000\003\000\
-+\\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\006\000\051\000\029\000\050\000\030\000\049\000\036\000\013\000\
-+\\038\000\012\000\039\000\011\000\040\000\010\000\043\000\009\000\
-+\\044\000\008\000\046\000\048\000\049\000\047\000\050\000\004\000\
-+\\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\031\000\053\000\000\000\
-+\\000\000\
-+\\018\000\059\000\020\000\058\000\021\000\018\000\024\000\057\000\
-+\\027\000\016\000\036\000\056\000\038\000\055\000\039\000\011\000\
-+\\040\000\054\000\043\000\009\000\044\000\008\000\055\000\002\000\000\000\
-+\\017\000\066\000\019\000\065\000\021\000\064\000\022\000\063\000\
-+\\023\000\062\000\024\000\061\000\026\000\060\000\027\000\016\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\027\000\071\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\021\000\077\000\040\000\076\000\041\000\075\000\000\000\
-+\\021\000\018\000\024\000\078\000\027\000\016\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\084\000\
-+\\042\000\083\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\060\000\082\000\061\000\081\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\006\000\087\000\029\000\050\000\030\000\049\000\036\000\013\000\
-+\\038\000\012\000\039\000\011\000\040\000\010\000\043\000\009\000\
-+\\044\000\008\000\049\000\086\000\050\000\004\000\055\000\002\000\000\000\
-+\\018\000\059\000\020\000\058\000\021\000\018\000\024\000\088\000\
-+\\027\000\016\000\036\000\056\000\038\000\055\000\039\000\011\000\
-+\\040\000\054\000\043\000\009\000\044\000\008\000\055\000\002\000\000\000\
-+\\017\000\066\000\019\000\065\000\021\000\064\000\022\000\089\000\
-+\\023\000\062\000\024\000\061\000\026\000\060\000\027\000\016\000\000\000\
-+\\000\000\
-+\\003\000\098\000\004\000\097\000\005\000\096\000\006\000\095\000\
-+\\007\000\094\000\009\000\093\000\010\000\092\000\062\000\091\000\
-+\\064\000\090\000\000\000\
-+\\032\000\131\000\036\000\130\000\039\000\129\000\040\000\128\000\
-+\\043\000\127\000\044\000\126\000\055\000\002\000\000\000\
-+\\000\000\
-+\\031\000\132\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\026\000\138\000\027\000\071\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\021\000\064\000\023\000\140\000\024\000\078\000\026\000\060\000\
-+\\027\000\016\000\000\000\
-+\\007\000\141\000\010\000\092\000\064\000\090\000\000\000\
-+\\029\000\149\000\030\000\148\000\036\000\013\000\038\000\012\000\
-+\\039\000\011\000\040\000\010\000\043\000\009\000\044\000\008\000\
-+\\047\000\147\000\052\000\146\000\053\000\145\000\054\000\144\000\
-+\\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\013\000\155\000\014\000\154\000\000\000\
-+\\021\000\157\000\000\000\
-+\\040\000\076\000\041\000\158\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\084\000\
-+\\042\000\083\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\060\000\160\000\061\000\081\000\000\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\084\000\
-+\\042\000\083\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\060\000\161\000\061\000\081\000\000\000\
-+\\000\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\084\000\
-+\\042\000\083\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\061\000\162\000\000\000\
-+\\021\000\064\000\022\000\166\000\023\000\062\000\024\000\061\000\
-+\\026\000\060\000\027\000\016\000\056\000\165\000\058\000\164\000\000\000\
-+\\021\000\018\000\024\000\171\000\027\000\016\000\038\000\170\000\
-+\\039\000\011\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\057\000\169\000\059\000\168\000\000\000\
-+\\033\000\173\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\029\000\050\000\030\000\049\000\036\000\013\000\038\000\012\000\
-+\\039\000\011\000\040\000\010\000\043\000\009\000\044\000\008\000\
-+\\046\000\174\000\049\000\047\000\050\000\004\000\055\000\002\000\000\000\
-+\\007\000\175\000\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\003\000\214\000\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\216\000\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\094\000\008\000\222\000\009\000\221\000\010\000\092\000\
-+\\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\094\000\009\000\225\000\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\003\000\227\000\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\064\000\230\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\232\000\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\233\000\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\094\000\009\000\237\000\010\000\092\000\037\000\236\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\235\000\
-+\\042\000\234\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\032\000\131\000\036\000\130\000\039\000\129\000\040\000\128\000\
-+\\043\000\127\000\044\000\126\000\055\000\002\000\000\000\
-+\\007\000\239\000\010\000\092\000\034\000\238\000\064\000\090\000\000\000\
-+\\017\000\241\000\021\000\064\000\022\000\089\000\023\000\062\000\
-+\\024\000\061\000\026\000\060\000\027\000\016\000\000\000\
-+\\007\000\242\000\010\000\092\000\064\000\090\000\000\000\
-+\\029\000\149\000\030\000\148\000\036\000\013\000\038\000\012\000\
-+\\039\000\011\000\040\000\010\000\043\000\009\000\044\000\008\000\
-+\\047\000\245\000\052\000\146\000\053\000\244\000\054\000\144\000\
-+\\055\000\002\000\000\000\
-+\\007\000\239\000\010\000\092\000\034\000\247\000\064\000\090\000\000\000\
-+\\000\000\
-+\\017\000\248\000\021\000\064\000\022\000\089\000\023\000\062\000\
-+\\024\000\061\000\026\000\060\000\027\000\016\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\015\000\002\001\016\000\001\001\021\000\000\001\024\000\255\000\
-+\\027\000\016\000\036\000\056\000\038\000\055\000\039\000\011\000\
-+\\040\000\054\000\043\000\009\000\044\000\008\000\055\000\002\000\000\000\
-+\\015\000\009\001\016\000\001\001\021\000\008\001\024\000\007\001\
-+\\025\000\006\001\027\000\016\000\028\000\005\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\013\000\011\001\014\000\154\000\000\000\
-+\\013\000\012\001\014\000\154\000\000\000\
-+\\000\000\
-+\\012\000\013\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\084\000\
-+\\042\000\083\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\061\000\162\000\000\000\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\084\000\
-+\\042\000\083\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\061\000\162\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\021\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\033\000\024\001\000\000\
-+\\000\000\
-+\\007\000\026\001\010\000\092\000\064\000\090\000\000\000\
-+\\032\000\027\001\039\000\129\000\040\000\128\000\043\000\127\000\
-+\\044\000\126\000\055\000\002\000\000\000\
-+\\003\000\098\000\004\000\028\001\005\000\096\000\006\000\095\000\
-+\\007\000\094\000\009\000\093\000\010\000\092\000\029\000\050\000\
-+\\030\000\049\000\036\000\013\000\038\000\012\000\039\000\011\000\
-+\\040\000\010\000\043\000\009\000\044\000\008\000\049\000\086\000\
-+\\050\000\004\000\055\000\002\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\029\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\030\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\031\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\032\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\033\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\034\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\035\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\036\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\037\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\038\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\039\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\040\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\041\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\042\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\043\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\044\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\045\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\046\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\047\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\048\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\049\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\050\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\053\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\054\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\055\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\056\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\057\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\058\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\059\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\060\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\094\000\009\000\061\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\094\000\009\000\064\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\066\001\010\000\092\000\011\000\065\001\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\094\000\009\000\237\000\010\000\092\000\037\000\068\001\
-+\\038\000\085\000\039\000\011\000\040\000\076\000\041\000\235\000\
-+\\042\000\234\000\043\000\009\000\044\000\008\000\055\000\002\000\
-+\\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\094\000\009\000\071\001\010\000\092\000\064\000\090\000\000\000\
-+\\003\000\072\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\094\000\009\000\074\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\094\000\008\000\076\001\009\000\221\000\010\000\092\000\
-+\\064\000\090\000\000\000\
-+\\007\000\094\000\009\000\077\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\003\000\078\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\015\000\080\001\016\000\001\001\021\000\079\001\000\000\
-+\\038\000\170\000\039\000\011\000\043\000\009\000\044\000\008\000\
-+\\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\239\000\010\000\092\000\034\000\085\001\035\000\084\001\
-+\\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\029\000\149\000\030\000\148\000\036\000\013\000\038\000\012\000\
-+\\039\000\011\000\040\000\010\000\043\000\009\000\044\000\008\000\
-+\\054\000\089\001\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\016\000\092\001\027\000\071\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\095\001\010\000\092\000\064\000\090\000\000\000\
-+\\015\000\098\001\016\000\001\001\021\000\000\001\024\000\078\000\
-+\\027\000\016\000\029\000\149\000\030\000\148\000\036\000\013\000\
-+\\038\000\012\000\039\000\011\000\040\000\010\000\043\000\009\000\
-+\\044\000\008\000\052\000\146\000\053\000\097\001\054\000\144\000\
-+\\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\016\000\092\001\027\000\071\000\028\000\102\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\012\000\103\001\000\000\
-+\\012\000\104\001\000\000\
-+\\000\000\
-+\\014\000\106\001\000\000\
-+\\007\000\107\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\021\000\064\000\022\000\166\000\023\000\062\000\024\000\061\000\
-+\\026\000\060\000\027\000\016\000\056\000\108\001\000\000\
-+\\000\000\
-+\\007\000\109\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\021\000\064\000\022\000\166\000\023\000\062\000\024\000\061\000\
-+\\026\000\060\000\027\000\016\000\056\000\110\001\000\000\
-+\\000\000\
-+\\032\000\027\001\039\000\129\000\040\000\128\000\043\000\127\000\
-+\\044\000\126\000\055\000\002\000\000\000\
-+\\007\000\111\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\063\000\112\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\003\000\119\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\016\000\092\001\000\000\
-+\\000\000\
-+\\015\000\098\001\016\000\001\001\021\000\079\001\029\000\149\000\
-+\\030\000\148\000\036\000\013\000\038\000\012\000\039\000\011\000\
-+\\040\000\010\000\043\000\009\000\044\000\008\000\052\000\146\000\
-+\\053\000\097\001\054\000\144\000\055\000\002\000\000\000\
-+\\007\000\124\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\012\000\125\001\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\127\001\010\000\092\000\064\000\090\000\000\000\
-+\\029\000\149\000\030\000\148\000\036\000\013\000\038\000\012\000\
-+\\039\000\011\000\040\000\010\000\043\000\009\000\044\000\008\000\
-+\\052\000\146\000\053\000\129\001\054\000\144\000\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\134\001\010\000\092\000\064\000\090\000\000\000\
-+\\029\000\149\000\030\000\148\000\036\000\013\000\038\000\012\000\
-+\\039\000\011\000\040\000\010\000\043\000\009\000\044\000\008\000\
-+\\047\000\137\001\052\000\146\000\053\000\136\001\054\000\144\000\
-+\\055\000\002\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\142\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\143\001\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\007\000\124\001\010\000\092\000\064\000\090\000\000\000\
-+\\003\000\144\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\003\000\145\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\094\000\009\000\146\001\010\000\092\000\064\000\090\000\000\000\
-+\\007\000\094\000\008\000\147\001\009\000\221\000\010\000\092\000\
-+\\064\000\090\000\000\000\
-+\\003\000\148\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\239\000\010\000\092\000\034\000\150\001\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\007\000\094\000\008\000\160\001\009\000\221\000\010\000\092\000\
-+\\064\000\090\000\000\000\
-+\\003\000\161\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\\000\000\
-+\\003\000\163\001\006\000\095\000\007\000\094\000\009\000\093\000\
-+\\010\000\092\000\064\000\090\000\000\000\
-+\\000\000\
-+\\000\000\
-+\"
-+val numstates = 421
-+val numrules = 247
-+val s = ref "" and index = ref 0
-+val string_to_int = fn () =>
-+let val i = !index
-+in index := i+2; Char.ord(String.sub(!s,i)) + Char.ord(String.sub(!s,i+1)) * 256
-+end
-+val string_to_list = fn s' =>
-+ let val len = String.size s'
-+ fun f () =
-+ if !index < len then string_to_int() :: f()
-+ else nil
-+ in index := 0; s := s'; f ()
-+ end
-+val string_to_pairlist = fn (conv_key,conv_entry) =>
-+ let fun f () =
-+ case string_to_int()
-+ of 0 => EMPTY
-+ | n => PAIR(conv_key (n-1),conv_entry (string_to_int()),f())
-+ in f
-+ end
-+val string_to_pairlist_default = fn (conv_key,conv_entry) =>
-+ let val conv_row = string_to_pairlist(conv_key,conv_entry)
-+ in fn () =>
-+ let val default = conv_entry(string_to_int())
-+ val row = conv_row()
-+ in (row,default)
-+ end
-+ end
-+val string_to_table = fn (convert_row,s') =>
-+ let val len = String.size s'
-+ fun f ()=
-+ if !index < len then convert_row() :: f()
-+ else nil
-+ in (s := s'; index := 0; f ())
-+ end
-+local
-+ val memo = Array.array(numstates+numrules,ERROR)
-+ val _ =let fun g i=(Array.update(memo,i,REDUCE(i-numstates)); g(i+1))
-+ fun f i =
-+ if i=numstates then g i
-+ else (Array.update(memo,i,SHIFT (STATE i)); f (i+1))
-+ in f 0 handle Subscript => ()
-+ end
-+in
-+val entry_to_action = fn 0 => ACCEPT | 1 => ERROR | j => Array.sub(memo,(j-2))
-+end
-+val gotoT=Array.fromList(string_to_table(string_to_pairlist(NT,STATE),gotoT))
-+val actionRows=string_to_table(string_to_pairlist_default(T,entry_to_action),actionRows)
-+val actionRowNumbers = string_to_list actionRowNumbers
-+val actionT = let val actionRowLookUp=
-+let val a=Array.fromList(actionRows) in fn i=>Array.sub(a,i) end
-+in Array.fromList(map actionRowLookUp actionRowNumbers)
-+end
-+in LrTable.mkLrTable {actions=actionT,gotos=gotoT,numRules=numrules,
-+numStates=numstates,initialState=STATE 0}
-+end
-+end
-+local open Header in
-+type pos = int
-+type arg = SourceMap.sourcemap
-+structure MlyValue =
-+struct
-+datatype svalue = VOID' | ntVOID of unit | TYPE_NAME of (string)
-+ | CCONST of (LargeInt.int) | STRING of (string)
-+ | REALNUM of (real) | DECNUM of (LargeInt.int) | ID of (string)
-+ | strings of (string) | popScope of (unit) | pushScope of (unit)
-+ | structDeclaration of ( ( ctype * (declarator * expression) list ) )
-+ | structDeclarationList of ( ( ctype * (declarator * expression) list ) seq)
-+ | notypeStructDeclaratorList of ( ( declarator * expression ) seq)
-+ | structDeclaratorList of ( ( declarator * expression ) seq)
-+ | notypeStructDeclarator of ( ( declarator * expression ) )
-+ | structDeclarator of ( ( declarator * expression ) )
-+ | structOrUnion of (bool)
-+ | parameterDeclaration of ( ( decltype * declarator ) )
-+ | parameterTypeList of ( ( decltype * declarator ) list)
-+ | parameterList of ( ( decltype * declarator ) seq)
-+ | externalDeclaration of (externalDecl option)
-+ | declaration1 of (declaration) | declaration of (declaration)
-+ | functionDefinition of (externalDecl)
-+ | identlist of ( ( string * int * int ) seq)
-+ | declarationList of (declaration seq)
-+ | fDefDeclaration of ( ( decltype * declarator ) )
-+ | structOrUnionSpecifier of (specifier)
-+ | enumSpecifier of (specifier) | specifierQualifierList of (ctype)
-+ | typeQualifierList of (qualifier list)
-+ | typeQualifier of (qualifier)
-+ | typeSpecifierReserved of (specifier)
-+ | typeSpecifier of (specifier) | typeName of (ctype)
-+ | storageClassSpecifier of (storage)
-+ | initializerList of (expression seq) | initializer of (expression)
-+ | reservedSpecifierQualifiers of (ctype)
-+ | specifierQualifierReserved of (ctype)
-+ | reservedDeclarationSpecifier of (decltype)
-+ | declarationModifiers of (decltype)
-+ | declarationSpecifiers of (decltype)
-+ | parmDirectDeclarator of (declarator)
-+ | notypeDirectDeclarator of (declarator)
-+ | aftertypeDirectDeclarator of (declarator)
-+ | parmDeclarator of (declarator) | notypeDeclarator of (declarator)
-+ | aftertypeDeclarator of (declarator) | declarator of (declarator)
-+ | pointer of (declarator)
-+ | notypeInitDeclaratorList of ( ( declarator * expression ) seq)
-+ | initDeclaratorList of ( ( declarator * expression ) seq)
-+ | notypeInitDeclarator of ( ( declarator * expression ) )
-+ | initDeclarator of ( ( declarator * expression ) )
-+ | directAbstractDeclarator of (declarator)
-+ | abstractDeclarator of (declarator)
-+ | enumerator of ( ( string * expression ) )
-+ | enumeratorList of ( ( string * expression ) seq)
-+ | trailingComma of (bool) | argumentExprList of (expression seq)
-+ | unaryOperator of (operator) | exprWComma of (expression)
-+ | opExpr of (expression) | expr of (expression)
-+ | compoundStatement of (statement)
-+ | statementlist of (statement seq)
-+ | ostatementlist of (statement list) | statement of (statement)
-+ | tu of (externalDecl seq) | translationUnit of (externalDecl list)
-+end
-+type svalue = MlyValue.svalue
-+type result = externalDecl list
-+end
-+structure EC=
-+struct
-+open LrTable
-+infix 5 $$
-+fun x $$ y = y::x
-+val is_keyword =
-+fn (T 11) => true | (T 57) => true | (T 58) => true | (T 59) => true
-+ | (T 60) => true | (T 61) => true | (T 62) => true | (T 63) => true
-+ | (T 64) => true | (T 65) => true | (T 66) => true | (T 67) => true
-+ | (T 68) => true | (T 69) => true | _ => false
-+val preferred_change : (term list * term list) list =
-+(nil
-+ $$ (T 25),nil
-+ $$ (T 88))::
-+nil
-+val noShift =
-+fn (T 0) => true | _ => false
-+val showTerminal =
-+fn (T 0) => "EOF"
-+ | (T 1) => "COLON"
-+ | (T 2) => "SEMICOLON"
-+ | (T 3) => "LPAREN"
-+ | (T 4) => "RPAREN"
-+ | (T 5) => "LCURLY"
-+ | (T 6) => "RCURLY"
-+ | (T 7) => "LBRACE"
-+ | (T 8) => "RBRACE"
-+ | (T 9) => "DOT"
-+ | (T 10) => "COMMA"
-+ | (T 11) => "QUESTION"
-+ | (T 12) => "PERCENT"
-+ | (T 13) => "AMP"
-+ | (T 14) => "BAR"
-+ | (T 15) => "TILDE"
-+ | (T 16) => "DIVIDE"
-+ | (T 17) => "PLUS"
-+ | (T 18) => "MINUS"
-+ | (T 19) => "HAT"
-+ | (T 20) => "BANG"
-+ | (T 21) => "TIMES"
-+ | (T 22) => "INC"
-+ | (T 23) => "DEC"
-+ | (T 24) => "ARROW"
-+ | (T 25) => "ID"
-+ | (T 26) => "EQUALS"
-+ | (T 27) => "PLUSEQUALS"
-+ | (T 28) => "MINUSEQUALS"
-+ | (T 29) => "XOREQUALS"
-+ | (T 30) => "MODEQUALS"
-+ | (T 31) => "TIMESEQUALS"
-+ | (T 32) => "DIVEQUALS"
-+ | (T 33) => "OREQUALS"
-+ | (T 34) => "ANDEQUALS"
-+ | (T 35) => "LSHIFTEQUALS"
-+ | (T 36) => "RSHIFTEQUALS"
-+ | (T 37) => "LTE"
-+ | (T 38) => "GTE"
-+ | (T 39) => "LT"
-+ | (T 40) => "GT"
-+ | (T 41) => "EQ"
-+ | (T 42) => "NEQ"
-+ | (T 43) => "OR"
-+ | (T 44) => "AND"
-+ | (T 45) => "LSHIFT"
-+ | (T 46) => "RSHIFT"
-+ | (T 47) => "DECNUM"
-+ | (T 48) => "REALNUM"
-+ | (T 49) => "STRING"
-+ | (T 50) => "CCONST"
-+ | (T 51) => "EXTERN"
-+ | (T 52) => "AUTO"
-+ | (T 53) => "STATIC"
-+ | (T 54) => "REGISTER"
-+ | (T 55) => "CONST"
-+ | (T 56) => "VOLATILE"
-+ | (T 57) => "IF"
-+ | (T 58) => "THEN"
-+ | (T 59) => "ELSE"
-+ | (T 60) => "FOR"
-+ | (T 61) => "DO"
-+ | (T 62) => "SWITCH"
-+ | (T 63) => "CASE"
-+ | (T 64) => "DEFAULT"
-+ | (T 65) => "WHILE"
-+ | (T 66) => "RETURN"
-+ | (T 67) => "BREAK"
-+ | (T 68) => "CONTINUE"
-+ | (T 69) => "GOTO"
-+ | (T 70) => "CHAR"
-+ | (T 71) => "DOUBLE"
-+ | (T 72) => "ENUM"
-+ | (T 73) => "FLOAT"
-+ | (T 74) => "INT"
-+ | (T 75) => "LONG"
-+ | (T 76) => "SHORT"
-+ | (T 77) => "FRACTIONAL"
-+ | (T 78) => "SATURATE"
-+ | (T 79) => "STRUCT"
-+ | (T 80) => "UNION"
-+ | (T 81) => "UNSIGNED"
-+ | (T 82) => "SIGNED"
-+ | (T 83) => "VOID"
-+ | (T 84) => "SIZEOF"
-+ | (T 85) => "TYPEDEF"
-+ | (T 86) => "UNARY"
-+ | (T 87) => "ELIPSIS"
-+ | (T 88) => "TYPE_NAME"
-+ | _ => "bogus-term"
-+local open Header in
-+val errtermvalue=
-+fn (T 88) => MlyValue.TYPE_NAME((
-+Error.hint "Likely cause: missing typedef declaration.\n"; "bogus")) |
-+_ => MlyValue.VOID'
-+end
-+val terms : term list = nil
-+ $$ (T 87) $$ (T 86) $$ (T 85) $$ (T 84) $$ (T 83) $$ (T 82) $$ (T 81)
-+ $$ (T 80) $$ (T 79) $$ (T 78) $$ (T 77) $$ (T 76) $$ (T 75) $$ (T 74)
-+ $$ (T 73) $$ (T 72) $$ (T 71) $$ (T 70) $$ (T 69) $$ (T 68) $$ (T 67)
-+ $$ (T 66) $$ (T 65) $$ (T 64) $$ (T 63) $$ (T 62) $$ (T 61) $$ (T 60)
-+ $$ (T 59) $$ (T 58) $$ (T 57) $$ (T 56) $$ (T 55) $$ (T 54) $$ (T 53)
-+ $$ (T 52) $$ (T 51) $$ (T 46) $$ (T 45) $$ (T 44) $$ (T 43) $$ (T 42)
-+ $$ (T 41) $$ (T 40) $$ (T 39) $$ (T 38) $$ (T 37) $$ (T 36) $$ (T 35)
-+ $$ (T 34) $$ (T 33) $$ (T 32) $$ (T 31) $$ (T 30) $$ (T 29) $$ (T 28)
-+ $$ (T 27) $$ (T 26) $$ (T 24) $$ (T 23) $$ (T 22) $$ (T 21) $$ (T 20)
-+ $$ (T 19) $$ (T 18) $$ (T 17) $$ (T 16) $$ (T 15) $$ (T 14) $$ (T 13)
-+ $$ (T 12) $$ (T 11) $$ (T 10) $$ (T 9) $$ (T 8) $$ (T 7) $$ (T 6) $$
-+(T 5) $$ (T 4) $$ (T 3) $$ (T 2) $$ (T 1) $$ (T 0)end
-+structure Actions =
-+struct
+--- ckit/src/parser/grammar/c.grm.sml 2005-11-19 14:44:17.000000000 -0500
++++ ckit-mlton/src/parser/grammar/c.grm.sml 2005-11-19 14:44:17.000000000 -0500
+@@ -1866,10 +1866,11 @@
+ (T 5) $$ (T 4) $$ (T 3) $$ (T 2) $$ (T 1) $$ (T 0)end
+ structure Actions =
+ struct
+type int = Int.int
-+exception mlyAction of int
-+local open Header in
-+val actions =
+ exception mlyAction of int
+ local open Header in
+ val actions =
+-fn (i392,defaultPos,stack,
+fn (i392:int,defaultPos,stack,
-+ (srcMap):arg) =>
-+case (i392,stack)
-+of ( 0, ( ( _, ( MlyValue.tu tu, tu1left, tu1right)) :: rest671)) =>
-+ let val result = MlyValue.translationUnit (seqToList tu)
-+ in ( LrTable.NT 0, ( result, tu1left, tu1right), rest671)
-+end
-+| ( 1, ( rest671)) => let val result = MlyValue.tu (emptySeq)
-+ in ( LrTable.NT 1, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 2, ( ( _, ( MlyValue.externalDeclaration externalDeclaration, _,
-+externalDeclaration1right)) :: ( _, ( MlyValue.tu tu, tu1left, _)) ::
-+rest671)) => let val result = MlyValue.tu (
-+addOptToEnd(externalDeclaration, tu))
-+ in ( LrTable.NT 1, ( result, tu1left, externalDeclaration1right),
-+rest671)
-+end
-+| ( 3, ( ( _, ( MlyValue.declaration declaration, (declarationleft
-+ as declaration1left), (declarationright as declaration1right))) ::
-+rest671)) => let val result = MlyValue.externalDeclaration (
-+SOME(markExternalDecl srcMap (ExternalDecl declaration,
-+ declarationleft,
-+ declarationright))
-+)
-+ in ( LrTable.NT 50, ( result, declaration1left, declaration1right),
-+rest671)
-+end
-+| ( 4, ( ( _, ( _, SEMICOLON1left, SEMICOLON1right)) :: rest671)) =>
-+ let val result = MlyValue.externalDeclaration (NONE)
-+ in ( LrTable.NT 50, ( result, SEMICOLON1left, SEMICOLON1right),
-+rest671)
-+end
-+| ( 5, ( ( _, ( MlyValue.functionDefinition functionDefinition, (
-+functionDefinitionleft as functionDefinition1left), (
-+functionDefinitionright as functionDefinition1right))) :: rest671)) =>
-+ let val result = MlyValue.externalDeclaration (
-+SOME(markExternalDecl srcMap (functionDefinition,
-+ functionDefinitionleft,
-+ functionDefinitionright))
-+)
-+ in ( LrTable.NT 50, ( result, functionDefinition1left,
-+functionDefinition1right), rest671)
-+end
-+| ( 6, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( MlyValue.opExpr opExpr3, _, _)) :: _
-+ :: ( _, ( MlyValue.opExpr opExpr2, _, _)) :: _ :: ( _, (
-+MlyValue.opExpr opExpr1, _, _)) :: _ :: ( _, ( _, (FORleft as FOR1left
-+), _)) :: rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (For(opExpr1,opExpr2,opExpr3,statement),
-+ FORleft, statementright)
-+)
-+ in ( LrTable.NT 2, ( result, FOR1left, statement1right), rest671)
-+end
-+| ( 7, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( MlyValue.exprWComma exprWComma, _, _
-+)) :: _ :: ( _, ( _, (WHILEleft as WHILE1left), _)) :: rest671)) =>
-+ let val result = MlyValue.statement (
-+markStatement srcMap (While(exprWComma,statement),
-+ WHILEleft, statementright)
-+)
-+ in ( LrTable.NT 2, ( result, WHILE1left, statement1right), rest671)
-+
-+end
-+| ( 8, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( MlyValue.exprWComma exprWComma, _, _
-+)) :: _ :: ( _, ( _, (SWITCHleft as SWITCH1left), _)) :: rest671)) =>
-+ let val result = MlyValue.statement (
-+markStatement srcMap (Switch(exprWComma,statement),
-+ SWITCHleft, statementright)
-+)
-+ in ( LrTable.NT 2, ( result, SWITCH1left, statement1right), rest671)
-+
-+end
-+| ( 9, ( ( _, ( _, _, (SEMICOLONright as SEMICOLON1right))) :: _ :: (
-+ _, ( MlyValue.exprWComma exprWComma, _, _)) :: _ :: _ :: ( _, (
-+MlyValue.statement statement, _, _)) :: ( _, ( _, (DOleft as DO1left),
-+ _)) :: rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (Do(exprWComma,statement),
-+ DOleft, SEMICOLONright)
-+)
-+ in ( LrTable.NT 2, ( result, DO1left, SEMICOLON1right), rest671)
-+end
-+| ( 10, ( ( _, ( _, _, (SEMICOLONright as SEMICOLON1right))) :: ( _,
-+( _, (BREAKleft as BREAK1left), _)) :: rest671)) => let val result =
-+MlyValue.statement (
-+markStatement srcMap (Break,
-+ BREAKleft, SEMICOLONright))
-+ in ( LrTable.NT 2, ( result, BREAK1left, SEMICOLON1right), rest671)
-+
-+end
-+| ( 11, ( ( _, ( _, _, (SEMICOLONright as SEMICOLON1right))) :: ( _,
-+( _, (CONTINUEleft as CONTINUE1left), _)) :: rest671)) => let val
-+result = MlyValue.statement (
-+markStatement srcMap (Continue,
-+ CONTINUEleft, SEMICOLONright))
-+ in ( LrTable.NT 2, ( result, CONTINUE1left, SEMICOLON1right), rest671
-+)
-+end
-+| ( 12, ( ( _, ( _, _, (SEMICOLONright as SEMICOLON1right))) :: ( _,
-+( MlyValue.opExpr opExpr, _, _)) :: ( _, ( _, (RETURNleft as
-+RETURN1left), _)) :: rest671)) => let val result = MlyValue.statement
-+ (
-+markStatement srcMap (Return(opExpr),
-+ RETURNleft, SEMICOLONright)
-+)
-+ in ( LrTable.NT 2, ( result, RETURN1left, SEMICOLON1right), rest671)
-+
-+end
-+| ( 13, ( ( _, ( _, _, (SEMICOLONright as SEMICOLON1right))) :: ( _,
-+( MlyValue.ID ID, _, _)) :: ( _, ( _, (GOTOleft as GOTO1left), _)) ::
-+rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (Goto(ID),
-+ GOTOleft, SEMICOLONright))
-+ in ( LrTable.NT 2, ( result, GOTO1left, SEMICOLON1right), rest671)
-+
-+end
-+| ( 14, ( ( _, ( MlyValue.compoundStatement compoundStatement,
-+compoundStatement1left, compoundStatement1right)) :: rest671)) => let
-+ val result = MlyValue.statement (compoundStatement)
-+ in ( LrTable.NT 2, ( result, compoundStatement1left,
-+compoundStatement1right), rest671)
-+end
-+| ( 15, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( MlyValue.ID ID, (IDleft as ID1left),
-+ _)) :: rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (Labeled(ID,statement),
-+ IDleft,statementright)
-+)
-+ in ( LrTable.NT 2, ( result, ID1left, statement1right), rest671)
-+end
-+| ( 16, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( _, (DEFAULTleft as DEFAULT1left), _)
-+) :: rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (DefaultLabel(statement),
-+ DEFAULTleft, statementright)
-+)
-+ in ( LrTable.NT 2, ( result, DEFAULT1left, statement1right), rest671)
-+
-+end
-+| ( 17, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( MlyValue.exprWComma exprWComma, _, _
-+)) :: ( _, ( _, (CASEleft as CASE1left), _)) :: rest671)) => let val
-+result = MlyValue.statement (
-+markStatement srcMap (CaseLabel(exprWComma,statement),
-+ CASEleft, statementright)
-+)
-+ in ( LrTable.NT 2, ( result, CASE1left, statement1right), rest671)
-+
-+end
-+| ( 18, ( ( _, ( MlyValue.statement statement, _, (statementright as
-+statement1right))) :: _ :: ( _, ( MlyValue.exprWComma exprWComma, _, _
-+)) :: _ :: ( _, ( _, (IFleft as IF1left), _)) :: rest671)) => let val
-+ result = MlyValue.statement (
-+markStatement srcMap (IfThen(exprWComma,statement),
-+ IFleft, statementright)
-+)
-+ in ( LrTable.NT 2, ( result, IF1left, statement1right), rest671)
-+end
-+| ( 19, ( ( _, ( MlyValue.statement statement2, _, statement2right))
-+ :: _ :: ( _, ( MlyValue.statement statement1, _, _)) :: _ :: ( _, (
-+MlyValue.exprWComma exprWComma, _, _)) :: _ :: ( _, ( _, (IFleft as
-+IF1left), _)) :: rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (IfThenElse(exprWComma,statement1,statement2),
-+ IFleft,
-+ statement2right)
-+)
-+ in ( LrTable.NT 2, ( result, IF1left, statement2right), rest671)
-+end
-+| ( 20, ( ( _, ( _, _, (SEMICOLONright as SEMICOLON1right))) :: ( _,
-+( MlyValue.exprWComma exprWComma, (exprWCommaleft as exprWComma1left),
-+ _)) :: rest671)) => let val result = MlyValue.statement (
-+markStatement srcMap (Expr(exprWComma),
-+ exprWCommaleft, SEMICOLONright)
-+)
-+ in ( LrTable.NT 2, ( result, exprWComma1left, SEMICOLON1right),
-+rest671)
-+end
-+| ( 21, ( ( _, ( _, (SEMICOLONleft as SEMICOLON1left), (
-+SEMICOLONright as SEMICOLON1right))) :: rest671)) => let val result =
-+ MlyValue.statement (
-+markStatement srcMap (Expr(EmptyExpr),
-+ SEMICOLONleft, SEMICOLONright)
-+)
-+ in ( LrTable.NT 2, ( result, SEMICOLON1left, SEMICOLON1right),
-+rest671)
-+end
-+| ( 22, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, (
-+MlyValue.declaration1 declaration1, declaration11left, _)) :: rest671)
-+) => let val result = MlyValue.declaration (declaration1)
-+ in ( LrTable.NT 48, ( result, declaration11left, SEMICOLON1right),
-+rest671)
-+end
-+| ( 23, ( ( _, ( MlyValue.declarationSpecifiers declarationSpecifiers
-+, (declarationSpecifiersleft as declarationSpecifiers1left), (
-+declarationSpecifiersright as declarationSpecifiers1right))) ::
-+rest671)) => let val result = MlyValue.declaration1 (
-+insertDeclNames (declarationSpecifiers, []);
-+ markDeclaration srcMap
-+ (Declaration(declarationSpecifiers, []),
-+ declarationSpecifiersleft, declarationSpecifiersright)
-+)
-+ in ( LrTable.NT 49, ( result, declarationSpecifiers1left,
-+declarationSpecifiers1right), rest671)
-+end
-+| ( 24, ( ( _, ( MlyValue.initDeclaratorList initDeclaratorList, _, (
-+initDeclaratorListright as initDeclaratorList1right))) :: ( _, (
-+MlyValue.declarationSpecifiers declarationSpecifiers, (
-+declarationSpecifiersleft as declarationSpecifiers1left), _)) ::
-+rest671)) => let val result = MlyValue.declaration1 (
-+let val decl = (declarationSpecifiers, seqToList initDeclaratorList)
-+ in insertDeclNames decl;
-+ markDeclaration srcMap
-+ (Declaration decl, declarationSpecifiersleft, initDeclaratorListright)
-+ end
-+)
-+ in ( LrTable.NT 49, ( result, declarationSpecifiers1left,
-+initDeclaratorList1right), rest671)
-+end
-+| ( 25, ( ( _, ( MlyValue.notypeInitDeclaratorList
-+notypeInitDeclaratorList, _, (notypeInitDeclaratorListright as
-+notypeInitDeclaratorList1right))) :: ( _, (
-+MlyValue.declarationModifiers declarationModifiers, (
-+declarationModifiersleft as declarationModifiers1left), _)) :: rest671
-+)) => let val result = MlyValue.declaration1 (
-+let val decl = (declarationModifiers, seqToList notypeInitDeclaratorList)
-+ in insertDeclNames decl;
-+ markDeclaration srcMap
-+ (Declaration decl, declarationModifiersleft, notypeInitDeclaratorListright)
-+ end
-+)
-+ in ( LrTable.NT 49, ( result, declarationModifiers1left,
-+notypeInitDeclaratorList1right), rest671)
-+end
-+| ( 26, ( ( _, ( MlyValue.statementlist statementlist,
-+statementlist1left, statementlist1right)) :: rest671)) => let val
-+result = MlyValue.ostatementlist (seqToList statementlist)
-+ in ( LrTable.NT 3, ( result, statementlist1left, statementlist1right)
-+, rest671)
-+end
-+| ( 27, ( rest671)) => let val result = MlyValue.ostatementlist ([])
-+ in ( LrTable.NT 3, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 28, ( ( _, ( MlyValue.statement statement, statement1left,
-+statement1right)) :: rest671)) => let val result =
-+MlyValue.statementlist (singletonSeq statement)
-+ in ( LrTable.NT 4, ( result, statement1left, statement1right),
-+rest671)
-+end
-+| ( 29, ( ( _, ( MlyValue.statement statement, _, statement1right))
-+ :: ( _, ( MlyValue.statementlist statementlist, statementlist1left, _
-+)) :: rest671)) => let val result = MlyValue.statementlist (
-+addToSeq(statement, statementlist))
-+ in ( LrTable.NT 4, ( result, statementlist1left, statement1right),
-+rest671)
-+end
-+| ( 30, ( ( _, ( _, _, (RCURLYright as RCURLY1right))) :: _ :: ( _, (
-+ MlyValue.ostatementlist ostatementlist, _, _)) :: ( _, (
-+MlyValue.declarationList declarationList, _, _)) :: _ :: ( _, ( _, (
-+LCURLYleft as LCURLY1left), _)) :: rest671)) => let val result =
-+MlyValue.compoundStatement (
-+markStatement srcMap (Compound ((map Decl (seqToList declarationList)) @ ostatementlist), LCURLYleft, RCURLYright)
-+)
-+ in ( LrTable.NT 5, ( result, LCURLY1left, RCURLY1right), rest671)
-+end
-+| ( 31, ( ( _, ( _, _, (RCURLYright as RCURLY1right))) :: ( _, (
-+MlyValue.ostatementlist ostatementlist, _, _)) :: ( _, ( _, (
-+LCURLYleft as LCURLY1left), _)) :: rest671)) => let val result =
-+MlyValue.compoundStatement (
-+markStatement srcMap (Compound (ostatementlist), LCURLYleft, RCURLYright)
-+)
-+ in ( LrTable.NT 5, ( result, LCURLY1left, RCURLY1right), rest671)
-+end
-+| ( 32, ( ( _, ( _, AMP1left, AMP1right)) :: rest671)) => let val
-+result = MlyValue.unaryOperator (AddrOf)
-+ in ( LrTable.NT 9, ( result, AMP1left, AMP1right), rest671)
-+end
-+| ( 33, ( ( _, ( _, TIMES1left, TIMES1right)) :: rest671)) => let
-+ val result = MlyValue.unaryOperator (Star)
-+ in ( LrTable.NT 9, ( result, TIMES1left, TIMES1right), rest671)
-+end
-+| ( 34, ( ( _, ( _, PLUS1left, PLUS1right)) :: rest671)) => let val
-+result = MlyValue.unaryOperator (Uplus)
-+ in ( LrTable.NT 9, ( result, PLUS1left, PLUS1right), rest671)
-+end
-+| ( 35, ( ( _, ( _, MINUS1left, MINUS1right)) :: rest671)) => let
-+ val result = MlyValue.unaryOperator (Negate)
-+ in ( LrTable.NT 9, ( result, MINUS1left, MINUS1right), rest671)
-+end
-+| ( 36, ( ( _, ( _, TILDE1left, TILDE1right)) :: rest671)) => let
-+ val result = MlyValue.unaryOperator (BitNot)
-+ in ( LrTable.NT 9, ( result, TILDE1left, TILDE1right), rest671)
-+end
-+| ( 37, ( ( _, ( _, BANG1left, BANG1right)) :: rest671)) => let val
-+result = MlyValue.unaryOperator (Not)
-+ in ( LrTable.NT 9, ( result, BANG1left, BANG1right), rest671)
-+end
-+| ( 38, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.exprWComma exprWComma1, _, _)) :: _ :: ( _, ( MlyValue.expr
-+expr1, expr1left, _)) :: rest671)) => let val result = MlyValue.expr
-+ (
-+markExpression srcMap (QuestionColon(expr1,exprWComma1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 39, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(PlusAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 40, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(MinusAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 41, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(TimesAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 42, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(DivAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 43, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(ModAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 44, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(XorAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 45, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(OrAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 46, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(AndAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 47, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(LshiftAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 48, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(RshiftAssign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 49, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Assign,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 50, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Or,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 51, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(And,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 52, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(BitOr,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 53, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(BitXor,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 54, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(BitAnd,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 55, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Eq,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 56, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Neq,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 57, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Lt,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 58, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Gt,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 59, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Lte,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 60, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Gte,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 61, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Lshift,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 62, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Rshift,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 63, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Plus,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 64, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Minus,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 65, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Times,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 66, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Divide,expr1,expr2),expr1left,expr2right)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 67, ( ( _, ( MlyValue.expr expr2, _, expr2right)) :: _ :: ( _, (
-+MlyValue.expr expr1, expr1left, _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Mod,expr1,expr2),expr1left,expr2right))
-+ in ( LrTable.NT 6, ( result, expr1left, expr2right), rest671)
-+end
-+| ( 68, ( ( _, ( _, _, (INCright as INC1right))) :: ( _, (
-+MlyValue.expr expr, (exprleft as expr1left), _)) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (Unop(PostInc,expr),exprleft,INCright))
-+ in ( LrTable.NT 6, ( result, expr1left, INC1right), rest671)
-+end
-+| ( 69, ( ( _, ( _, _, (DECright as DEC1right))) :: ( _, (
-+MlyValue.expr expr, (exprleft as expr1left), _)) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (Unop(PostDec,expr),exprleft,DECright))
-+ in ( LrTable.NT 6, ( result, expr1left, DEC1right), rest671)
-+end
-+| ( 70, ( ( _, ( MlyValue.expr expr, _, (exprright as expr1right)))
-+ :: ( _, ( _, (INCleft as INC1left), _)) :: rest671)) => let val
-+result = MlyValue.expr (
-+markExpression srcMap (Unop(PreInc,expr),INCleft,exprright))
-+ in ( LrTable.NT 6, ( result, INC1left, expr1right), rest671)
-+end
-+| ( 71, ( ( _, ( MlyValue.expr expr, _, (exprright as expr1right)))
-+ :: ( _, ( _, (DECleft as DEC1left), _)) :: rest671)) => let val
-+result = MlyValue.expr (
-+markExpression srcMap (Unop(PreDec,expr),DECleft,exprright))
-+ in ( LrTable.NT 6, ( result, DEC1left, expr1right), rest671)
-+end
-+| ( 72, ( ( _, ( MlyValue.expr expr, _, (exprright as expr1right)))
-+ :: ( _, ( MlyValue.unaryOperator unaryOperator, (unaryOperatorleft
-+ as unaryOperator1left), _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Unop(unaryOperator,expr),unaryOperatorleft,exprright)
-+)
-+ in ( LrTable.NT 6, ( result, unaryOperator1left, expr1right), rest671
-+)
-+end
-+| ( 73, ( ( _, ( MlyValue.expr expr, _, (exprright as expr1right)))
-+ :: ( _, ( _, (SIZEOFleft as SIZEOF1left), _)) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (Unop(Sizeof,expr),SIZEOFleft,exprright))
-+ in ( LrTable.NT 6, ( result, SIZEOF1left, expr1right), rest671)
-+end
-+| ( 74, ( ( _, ( MlyValue.expr expr, _, (exprright as expr1right)))
-+ :: _ :: ( _, ( MlyValue.typeName typeName, _, _)) :: ( _, ( _, (
-+LPARENleft as LPAREN1left), _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Cast (typeName,expr),LPARENleft,exprright))
-+ in ( LrTable.NT 6, ( result, LPAREN1left, expr1right), rest671)
-+end
-+| ( 75, ( ( _, ( _, _, (RPARENright as RPAREN1right))) :: ( _, (
-+MlyValue.typeName typeName, _, _)) :: _ :: ( _, ( _, (SIZEOFleft as
-+SIZEOF1left), _)) :: rest671)) => let val result = MlyValue.expr (
-+markExpression srcMap (Unop(SizeofType typeName,EmptyExpr),SIZEOFleft,RPARENright)
-+)
-+ in ( LrTable.NT 6, ( result, SIZEOF1left, RPAREN1right), rest671)
-+end
-+| ( 76, ( ( _, ( _, _, (RBRACEright as RBRACE1right))) :: ( _, (
-+MlyValue.exprWComma exprWComma, _, _)) :: _ :: ( _, ( MlyValue.expr
-+expr, (exprleft as expr1left), _)) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (Binop(Sub,expr,exprWComma),exprleft,RBRACEright)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, RBRACE1right), rest671)
-+end
-+| ( 77, ( ( _, ( _, _, (RPARENright as RPAREN1right))) :: _ :: ( _, (
-+ MlyValue.expr expr, (exprleft as expr1left), _)) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (Call(expr,[]),exprleft,RPARENright))
-+ in ( LrTable.NT 6, ( result, expr1left, RPAREN1right), rest671)
-+end
-+| ( 78, ( ( _, ( _, _, (RPARENright as RPAREN1right))) :: ( _, (
-+MlyValue.argumentExprList argumentExprList, _, _)) :: _ :: ( _, (
-+MlyValue.expr expr, (exprleft as expr1left), _)) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (Call(expr, seqToList argumentExprList),exprleft,RPARENright)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, RPAREN1right), rest671)
-+end
-+| ( 79, ( ( _, ( MlyValue.ID ID, _, (IDright as ID1right))) :: _ :: (
-+ _, ( MlyValue.expr expr, (exprleft as expr1left), _)) :: rest671)) =>
-+ let val result = MlyValue.expr (
-+markExpression srcMap (Binop(Dot,expr,Id(ID)),exprleft,IDright))
-+ in ( LrTable.NT 6, ( result, expr1left, ID1right), rest671)
-+end
-+| ( 80, ( ( _, ( MlyValue.ID ID, _, (IDright as ID1right))) :: _ :: (
-+ _, ( MlyValue.expr expr, (exprleft as expr1left), _)) :: rest671)) =>
-+ let val result = MlyValue.expr (
-+markExpression srcMap (Binop(Arrow,expr,Id(ID)),exprleft,IDright))
-+ in ( LrTable.NT 6, ( result, expr1left, ID1right), rest671)
-+end
-+| ( 81, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, _, (TYPE_NAMEright as
-+TYPE_NAME1right))) :: _ :: ( _, ( MlyValue.expr expr, (exprleft as
-+expr1left), _)) :: rest671)) => let val result = MlyValue.expr (
-+markExpression srcMap (Binop(Dot,expr,Id(TYPE_NAME)),exprleft,TYPE_NAMEright)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, TYPE_NAME1right), rest671)
-+
-+end
-+| ( 82, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, _, (TYPE_NAMEright as
-+TYPE_NAME1right))) :: _ :: ( _, ( MlyValue.expr expr, (exprleft as
-+expr1left), _)) :: rest671)) => let val result = MlyValue.expr (
-+markExpression srcMap (Binop(Arrow,expr,Id(TYPE_NAME)),exprleft,TYPE_NAMEright)
-+)
-+ in ( LrTable.NT 6, ( result, expr1left, TYPE_NAME1right), rest671)
-+
-+end
-+| ( 83, ( ( _, ( _, _, (RPARENright as RPAREN1right))) :: ( _, (
-+MlyValue.exprWComma exprWComma, _, _)) :: ( _, ( _, (LPARENleft as
-+LPAREN1left), _)) :: rest671)) => let val result = MlyValue.expr (
-+markExpression srcMap (exprWComma,LPARENleft,RPARENright))
-+ in ( LrTable.NT 6, ( result, LPAREN1left, RPAREN1right), rest671)
-+end
-+| ( 84, ( ( _, ( MlyValue.DECNUM DECNUM, (DECNUMleft as DECNUM1left),
-+ (DECNUMright as DECNUM1right))) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (IntConst DECNUM,DECNUMleft,DECNUMright))
-+ in ( LrTable.NT 6, ( result, DECNUM1left, DECNUM1right), rest671)
-+end
-+| ( 85, ( ( _, ( MlyValue.REALNUM REALNUM, (REALNUMleft as
-+REALNUM1left), (REALNUMright as REALNUM1right))) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (RealConst REALNUM, REALNUMleft,REALNUMright))
-+ in ( LrTable.NT 6, ( result, REALNUM1left, REALNUM1right), rest671)
-+
-+end
-+| ( 86, ( ( _, ( MlyValue.CCONST CCONST, (CCONSTleft as CCONST1left),
-+ (CCONSTright as CCONST1right))) :: rest671)) => let val result =
-+MlyValue.expr (
-+markExpression srcMap (IntConst CCONST, CCONSTleft,CCONSTright))
-+ in ( LrTable.NT 6, ( result, CCONST1left, CCONST1right), rest671)
-+end
-+| ( 87, ( ( _, ( MlyValue.ID ID, (IDleft as ID1left), (IDright as
-+ID1right))) :: rest671)) => let val result = MlyValue.expr (
-+markExpression srcMap (Id(ID), IDleft, IDright))
-+ in ( LrTable.NT 6, ( result, ID1left, ID1right), rest671)
-+end
-+| ( 88, ( ( _, ( MlyValue.strings strings, (stringsleft as
-+strings1left), (stringsright as strings1right))) :: rest671)) => let
-+ val result = MlyValue.expr (
-+markExpression srcMap (String(strings),stringsleft,stringsright))
-+ in ( LrTable.NT 6, ( result, strings1left, strings1right), rest671)
-+
-+end
-+| ( 89, ( ( _, ( MlyValue.STRING STRING, STRING1left, STRING1right))
-+ :: rest671)) => let val result = MlyValue.strings (STRING)
-+ in ( LrTable.NT 63, ( result, STRING1left, STRING1right), rest671)
-+
-+end
-+| ( 90, ( ( _, ( MlyValue.strings strings, _, strings1right)) :: ( _,
-+ ( MlyValue.STRING STRING, STRING1left, _)) :: rest671)) => let val
-+result = MlyValue.strings (STRING ^ strings)
-+ in ( LrTable.NT 63, ( result, STRING1left, strings1right), rest671)
-+
-+end
-+| ( 91, ( ( _, ( MlyValue.expr expr, expr1left, expr1right)) ::
-+rest671)) => let val result = MlyValue.exprWComma (expr)
-+ in ( LrTable.NT 8, ( result, expr1left, expr1right), rest671)
-+end
-+| ( 92, ( ( _, ( MlyValue.expr expr, _, (exprright as expr1right)))
-+ :: _ :: ( _, ( MlyValue.exprWComma exprWComma, (exprWCommaleft as
-+exprWComma1left), _)) :: rest671)) => let val result =
-+MlyValue.exprWComma (
-+markExpression srcMap (Binop(Comma,exprWComma,expr),exprWCommaleft,exprright)
-+)
-+ in ( LrTable.NT 8, ( result, exprWComma1left, expr1right), rest671)
-+
-+end
-+| ( 93, ( rest671)) => let val result = MlyValue.opExpr (EmptyExpr)
-+ in ( LrTable.NT 7, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 94, ( ( _, ( MlyValue.exprWComma exprWComma, exprWComma1left,
-+exprWComma1right)) :: rest671)) => let val result = MlyValue.opExpr (
-+exprWComma)
-+ in ( LrTable.NT 7, ( result, exprWComma1left, exprWComma1right),
-+rest671)
-+end
-+| ( 95, ( ( _, ( MlyValue.expr expr, expr1left, expr1right)) ::
-+rest671)) => let val result = MlyValue.argumentExprList (
-+singletonSeq expr)
-+ in ( LrTable.NT 10, ( result, expr1left, expr1right), rest671)
-+end
-+| ( 96, ( ( _, ( MlyValue.expr expr, _, expr1right)) :: _ :: ( _, (
-+MlyValue.argumentExprList argumentExprList, argumentExprList1left, _))
-+ :: rest671)) => let val result = MlyValue.argumentExprList (
-+addToSeq(expr, argumentExprList))
-+ in ( LrTable.NT 10, ( result, argumentExprList1left, expr1right),
-+rest671)
-+end
-+| ( 97, ( ( _, ( MlyValue.specifierQualifierList
-+specifierQualifierList, specifierQualifierList1left,
-+specifierQualifierList1right)) :: rest671)) => let val result =
-+MlyValue.typeName (specifierQualifierList)
-+ in ( LrTable.NT 36, ( result, specifierQualifierList1left,
-+specifierQualifierList1right), rest671)
-+end
-+| ( 98, ( ( _, ( MlyValue.abstractDeclarator abstractDeclarator, _,
-+abstractDeclarator1right)) :: ( _, ( MlyValue.specifierQualifierList
-+specifierQualifierList, specifierQualifierList1left, _)) :: rest671))
-+ => let val result = MlyValue.typeName (
-+#1 (ctypeDecrToTypeName (specifierQualifierList, abstractDeclarator)))
-+ in ( LrTable.NT 36, ( result, specifierQualifierList1left,
-+abstractDeclarator1right), rest671)
-+end
-+| ( 99, ( ( _, ( MlyValue.reservedDeclarationSpecifier
-+reservedDeclarationSpecifier, _, reservedDeclarationSpecifier1right))
-+ :: ( _, ( MlyValue.typeSpecifier typeSpecifier, typeSpecifier1left, _
-+)) :: rest671)) => let val result = MlyValue.declarationSpecifiers (
-+addSpecifier (typeSpecifier,
-+ reservedDeclarationSpecifier)
-+)
-+ in ( LrTable.NT 28, ( result, typeSpecifier1left,
-+reservedDeclarationSpecifier1right), rest671)
-+end
-+| ( 100, ( ( _, ( MlyValue.reservedDeclarationSpecifier
-+reservedDeclarationSpecifier, _, reservedDeclarationSpecifier1right))
-+ :: ( _, ( MlyValue.typeSpecifier typeSpecifier, _, _)) :: ( _, (
-+MlyValue.declarationModifiers declarationModifiers,
-+declarationModifiers1left, _)) :: rest671)) => let val result =
-+MlyValue.declarationSpecifiers (
-+addAll (declarationModifiers,
-+ addSpecifier (typeSpecifier,
-+ reservedDeclarationSpecifier))
-+)
-+ in ( LrTable.NT 28, ( result, declarationModifiers1left,
-+reservedDeclarationSpecifier1right), rest671)
-+end
-+| ( 101, ( rest671)) => let val result =
-+MlyValue.reservedDeclarationSpecifier (unknown)
-+ in ( LrTable.NT 30, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 102, ( ( _, ( MlyValue.specifierQualifierReserved
-+specifierQualifierReserved, _, specifierQualifierReserved1right)) :: (
-+ _, ( MlyValue.reservedDeclarationSpecifier
-+reservedDeclarationSpecifier, reservedDeclarationSpecifier1left, _))
-+ :: rest671)) => let val result =
-+MlyValue.reservedDeclarationSpecifier (
-+let val {qualifiers,specifiers} = specifierQualifierReserved
-+ val decltype = {qualifiers=qualifiers,specifiers=specifiers,storage=[]}
-+ in addAll (decltype, reservedDeclarationSpecifier) end
-+)
-+ in ( LrTable.NT 30, ( result, reservedDeclarationSpecifier1left,
-+specifierQualifierReserved1right), rest671)
-+end
-+| ( 103, ( ( _, ( MlyValue.storageClassSpecifier
-+storageClassSpecifier, _, storageClassSpecifier1right)) :: ( _, (
-+MlyValue.reservedDeclarationSpecifier reservedDeclarationSpecifier,
-+reservedDeclarationSpecifier1left, _)) :: rest671)) => let val result
-+ = MlyValue.reservedDeclarationSpecifier (
-+addStorage (storageClassSpecifier,
-+ reservedDeclarationSpecifier)
-+)
-+ in ( LrTable.NT 30, ( result, reservedDeclarationSpecifier1left,
-+storageClassSpecifier1right), rest671)
-+end
-+| ( 104, ( ( _, ( MlyValue.typeSpecifierReserved
-+typeSpecifierReserved, typeSpecifierReserved1left,
-+typeSpecifierReserved1right)) :: rest671)) => let val result =
-+MlyValue.specifierQualifierReserved (
-+{qualifiers=[],specifiers=[typeSpecifierReserved]})
-+ in ( LrTable.NT 31, ( result, typeSpecifierReserved1left,
-+typeSpecifierReserved1right), rest671)
-+end
-+| ( 105, ( ( _, ( MlyValue.typeQualifier typeQualifier,
-+typeQualifier1left, typeQualifier1right)) :: rest671)) => let val
-+result = MlyValue.specifierQualifierReserved (
-+{qualifiers=[typeQualifier],specifiers=[]})
-+ in ( LrTable.NT 31, ( result, typeQualifier1left, typeQualifier1right
-+), rest671)
-+end
-+| ( 106, ( ( _, ( MlyValue.structOrUnionSpecifier
-+structOrUnionSpecifier, structOrUnionSpecifier1left,
-+structOrUnionSpecifier1right)) :: rest671)) => let val result =
-+MlyValue.specifierQualifierReserved (
-+{qualifiers=[],specifiers=[structOrUnionSpecifier]})
-+ in ( LrTable.NT 31, ( result, structOrUnionSpecifier1left,
-+structOrUnionSpecifier1right), rest671)
-+end
-+| ( 107, ( ( _, ( MlyValue.enumSpecifier enumSpecifier,
-+enumSpecifier1left, enumSpecifier1right)) :: rest671)) => let val
-+result = MlyValue.specifierQualifierReserved (
-+{qualifiers=[],specifiers=[enumSpecifier]})
-+ in ( LrTable.NT 31, ( result, enumSpecifier1left, enumSpecifier1right
-+), rest671)
-+end
-+| ( 108, ( ( _, ( MlyValue.storageClassSpecifier
-+storageClassSpecifier, storageClassSpecifier1left,
-+storageClassSpecifier1right)) :: rest671)) => let val result =
-+MlyValue.declarationModifiers (
-+{storage = [storageClassSpecifier],
-+ qualifiers = [],
-+ specifiers = []}
-+)
-+ in ( LrTable.NT 29, ( result, storageClassSpecifier1left,
-+storageClassSpecifier1right), rest671)
-+end
-+| ( 109, ( ( _, ( MlyValue.storageClassSpecifier
-+storageClassSpecifier, _, storageClassSpecifier1right)) :: ( _, (
-+MlyValue.declarationModifiers declarationModifiers,
-+declarationModifiers1left, _)) :: rest671)) => let val result =
-+MlyValue.declarationModifiers (
-+addStorage(storageClassSpecifier,declarationModifiers))
-+ in ( LrTable.NT 29, ( result, declarationModifiers1left,
-+storageClassSpecifier1right), rest671)
-+end
-+| ( 110, ( ( _, ( MlyValue.typeQualifier typeQualifier,
-+typeQualifier1left, typeQualifier1right)) :: rest671)) => let val
-+result = MlyValue.declarationModifiers (
-+{specifiers = [],
-+ storage = [],
-+ qualifiers = [typeQualifier]}
-+)
-+ in ( LrTable.NT 29, ( result, typeQualifier1left, typeQualifier1right
-+), rest671)
-+end
-+| ( 111, ( ( _, ( MlyValue.typeQualifier typeQualifier, _,
-+typeQualifier1right)) :: ( _, ( MlyValue.declarationModifiers
-+declarationModifiers, declarationModifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.declarationModifiers (
-+addQualifier(typeQualifier, declarationModifiers))
-+ in ( LrTable.NT 29, ( result, declarationModifiers1left,
-+typeQualifier1right), rest671)
-+end
-+| ( 112, ( ( _, ( MlyValue.reservedSpecifierQualifiers
-+reservedSpecifierQualifiers, _, reservedSpecifierQualifiers1right)) ::
-+ ( _, ( MlyValue.typeSpecifier typeSpecifier, typeSpecifier1left, _))
-+ :: rest671)) => let val result = MlyValue.specifierQualifierList (
-+let val {specifiers, qualifiers} = reservedSpecifierQualifiers
-+ in {specifiers=typeSpecifier::specifiers,qualifiers=qualifiers} end
-+)
-+ in ( LrTable.NT 41, ( result, typeSpecifier1left,
-+reservedSpecifierQualifiers1right), rest671)
-+end
-+| ( 113, ( ( _, ( MlyValue.reservedSpecifierQualifiers
-+reservedSpecifierQualifiers, _, reservedSpecifierQualifiers1right)) ::
-+ ( _, ( MlyValue.typeSpecifier typeSpecifier, _, _)) :: ( _, (
-+MlyValue.typeQualifierList typeQualifierList, typeQualifierList1left,
-+ _)) :: rest671)) => let val result = MlyValue.specifierQualifierList
-+ (
-+let val {specifiers, qualifiers} = reservedSpecifierQualifiers
-+ in {specifiers=typeSpecifier::specifiers
-+ ,qualifiers=typeQualifierList@qualifiers
-+ }
-+ end
-+)
-+ in ( LrTable.NT 41, ( result, typeQualifierList1left,
-+reservedSpecifierQualifiers1right), rest671)
-+end
-+| ( 114, ( rest671)) => let val result =
-+MlyValue.reservedSpecifierQualifiers ({qualifiers=[],specifiers=[]})
-+ in ( LrTable.NT 32, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 115, ( ( _, ( MlyValue.specifierQualifierReserved
-+specifierQualifierReserved, _, specifierQualifierReserved1right)) :: (
-+ _, ( MlyValue.reservedSpecifierQualifiers reservedSpecifierQualifiers
-+, reservedSpecifierQualifiers1left, _)) :: rest671)) => let val
-+result = MlyValue.reservedSpecifierQualifiers (
-+let val {specifiers=s1, qualifiers=q1} = reservedSpecifierQualifiers
-+ val {specifiers=s2, qualifiers=q2} = specifierQualifierReserved
-+ in {specifiers=s1@s2, qualifiers=q1@q2} end
-+)
-+ in ( LrTable.NT 32, ( result, reservedSpecifierQualifiers1left,
-+specifierQualifierReserved1right), rest671)
-+end
-+| ( 116, ( ( _, ( MlyValue.typeQualifier typeQualifier,
-+typeQualifier1left, typeQualifier1right)) :: rest671)) => let val
-+result = MlyValue.typeQualifierList ([typeQualifier])
-+ in ( LrTable.NT 40, ( result, typeQualifier1left, typeQualifier1right
-+), rest671)
-+end
-+| ( 117, ( ( _, ( MlyValue.typeQualifierList typeQualifierList, _,
-+typeQualifierList1right)) :: ( _, ( MlyValue.typeQualifier
-+typeQualifier, typeQualifier1left, _)) :: rest671)) => let val result
-+ = MlyValue.typeQualifierList (typeQualifier::typeQualifierList)
-+ in ( LrTable.NT 40, ( result, typeQualifier1left,
-+typeQualifierList1right), rest671)
-+end
-+| ( 118, ( ( _, ( MlyValue.typeSpecifierReserved
-+typeSpecifierReserved, typeSpecifierReserved1left,
-+typeSpecifierReserved1right)) :: rest671)) => let val result =
-+MlyValue.typeSpecifier (typeSpecifierReserved)
-+ in ( LrTable.NT 37, ( result, typeSpecifierReserved1left,
-+typeSpecifierReserved1right), rest671)
-+end
-+| ( 119, ( ( _, ( MlyValue.structOrUnionSpecifier
-+structOrUnionSpecifier, structOrUnionSpecifier1left,
-+structOrUnionSpecifier1right)) :: rest671)) => let val result =
-+MlyValue.typeSpecifier (structOrUnionSpecifier)
-+ in ( LrTable.NT 37, ( result, structOrUnionSpecifier1left,
-+structOrUnionSpecifier1right), rest671)
-+end
-+| ( 120, ( ( _, ( MlyValue.enumSpecifier enumSpecifier,
-+enumSpecifier1left, enumSpecifier1right)) :: rest671)) => let val
-+result = MlyValue.typeSpecifier (enumSpecifier)
-+ in ( LrTable.NT 37, ( result, enumSpecifier1left, enumSpecifier1right
-+), rest671)
-+end
-+| ( 121, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, TYPE_NAME1left,
-+TYPE_NAME1right)) :: rest671)) => let val result =
-+MlyValue.typeSpecifier (TypedefName TYPE_NAME)
-+ in ( LrTable.NT 37, ( result, TYPE_NAME1left, TYPE_NAME1right),
-+rest671)
-+end
-+| ( 122, ( ( _, ( _, VOID1left, VOID1right)) :: rest671)) => let val
-+ result = MlyValue.typeSpecifierReserved (Void)
-+ in ( LrTable.NT 38, ( result, VOID1left, VOID1right), rest671)
-+end
-+| ( 123, ( ( _, ( _, CHAR1left, CHAR1right)) :: rest671)) => let val
-+ result = MlyValue.typeSpecifierReserved (Char)
-+ in ( LrTable.NT 38, ( result, CHAR1left, CHAR1right), rest671)
-+end
-+| ( 124, ( ( _, ( _, SHORT1left, SHORT1right)) :: rest671)) => let
-+ val result = MlyValue.typeSpecifierReserved (Short)
-+ in ( LrTable.NT 38, ( result, SHORT1left, SHORT1right), rest671)
-+end
-+| ( 125, ( ( _, ( _, INT1left, INT1right)) :: rest671)) => let val
-+result = MlyValue.typeSpecifierReserved (Int)
-+ in ( LrTable.NT 38, ( result, INT1left, INT1right), rest671)
-+end
-+| ( 126, ( ( _, ( _, LONG1left, LONG1right)) :: rest671)) => let val
-+ result = MlyValue.typeSpecifierReserved (Long)
-+ in ( LrTable.NT 38, ( result, LONG1left, LONG1right), rest671)
-+end
-+| ( 127, ( ( _, ( _, FLOAT1left, FLOAT1right)) :: rest671)) => let
-+ val result = MlyValue.typeSpecifierReserved (Float)
-+ in ( LrTable.NT 38, ( result, FLOAT1left, FLOAT1right), rest671)
-+end
-+| ( 128, ( ( _, ( _, DOUBLE1left, DOUBLE1right)) :: rest671)) => let
-+ val result = MlyValue.typeSpecifierReserved (Double)
-+ in ( LrTable.NT 38, ( result, DOUBLE1left, DOUBLE1right), rest671)
-+
-+end
-+| ( 129, ( ( _, ( _, SIGNED1left, SIGNED1right)) :: rest671)) => let
-+ val result = MlyValue.typeSpecifierReserved (Signed)
-+ in ( LrTable.NT 38, ( result, SIGNED1left, SIGNED1right), rest671)
-+
-+end
-+| ( 130, ( ( _, ( _, UNSIGNED1left, UNSIGNED1right)) :: rest671)) =>
-+ let val result = MlyValue.typeSpecifierReserved (Unsigned)
-+ in ( LrTable.NT 38, ( result, UNSIGNED1left, UNSIGNED1right), rest671
-+)
-+end
-+| ( 131, ( ( _, ( _, _, RCURLY1right)) :: ( _, (
-+MlyValue.structDeclarationList structDeclarationList, _, _)) :: _ :: (
-+ _, ( MlyValue.structOrUnion structOrUnion, structOrUnion1left, _)) ::
-+ rest671)) => let val result = MlyValue.structOrUnionSpecifier (
-+Struct{isStruct=structOrUnion, tagOpt=NONE, members=seqToList structDeclarationList}
-+)
-+ in ( LrTable.NT 43, ( result, structOrUnion1left, RCURLY1right),
-+rest671)
-+end
-+| ( 132, ( ( _, ( _, _, RCURLY1right)) :: ( _, (
-+MlyValue.structDeclarationList structDeclarationList, _, _)) :: _ :: (
-+ _, ( MlyValue.ID ID, _, _)) :: ( _, ( MlyValue.structOrUnion
-+structOrUnion, structOrUnion1left, _)) :: rest671)) => let val result
-+ = MlyValue.structOrUnionSpecifier (
-+Struct{isStruct=structOrUnion, tagOpt=SOME ID, members=seqToList structDeclarationList}
-+)
-+ in ( LrTable.NT 43, ( result, structOrUnion1left, RCURLY1right),
-+rest671)
-+end
-+| ( 133, ( ( _, ( _, _, RCURLY1right)) :: ( _, (
-+MlyValue.structDeclarationList structDeclarationList, _, _)) :: _ :: (
-+ _, ( MlyValue.TYPE_NAME TYPE_NAME, _, _)) :: ( _, (
-+MlyValue.structOrUnion structOrUnion, structOrUnion1left, _)) ::
-+rest671)) => let val result = MlyValue.structOrUnionSpecifier (
-+Struct{isStruct=structOrUnion, tagOpt=SOME TYPE_NAME, members=seqToList structDeclarationList}
-+)
-+ in ( LrTable.NT 43, ( result, structOrUnion1left, RCURLY1right),
-+rest671)
-+end
-+| ( 134, ( ( _, ( MlyValue.ID ID, _, ID1right)) :: ( _, (
-+MlyValue.structOrUnion structOrUnion, structOrUnion1left, _)) ::
-+rest671)) => let val result = MlyValue.structOrUnionSpecifier (
-+StructTag {isStruct=structOrUnion, name=ID})
-+ in ( LrTable.NT 43, ( result, structOrUnion1left, ID1right), rest671)
-+
-+end
-+| ( 135, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, _, TYPE_NAME1right))
-+ :: ( _, ( MlyValue.structOrUnion structOrUnion, structOrUnion1left, _
-+)) :: rest671)) => let val result = MlyValue.structOrUnionSpecifier (
-+StructTag {isStruct=structOrUnion, name=TYPE_NAME})
-+ in ( LrTable.NT 43, ( result, structOrUnion1left, TYPE_NAME1right),
-+rest671)
-+end
-+| ( 136, ( ( _, ( _, STRUCT1left, STRUCT1right)) :: rest671)) => let
-+ val result = MlyValue.structOrUnion (true)
-+ in ( LrTable.NT 54, ( result, STRUCT1left, STRUCT1right), rest671)
-+
-+end
-+| ( 137, ( ( _, ( _, UNION1left, UNION1right)) :: rest671)) => let
-+ val result = MlyValue.structOrUnion (false)
-+ in ( LrTable.NT 54, ( result, UNION1left, UNION1right), rest671)
-+end
-+| ( 138, ( ( _, ( MlyValue.structDeclaration structDeclaration,
-+structDeclaration1left, structDeclaration1right)) :: rest671)) => let
-+ val result = MlyValue.structDeclarationList (
-+singletonSeq structDeclaration)
-+ in ( LrTable.NT 59, ( result, structDeclaration1left,
-+structDeclaration1right), rest671)
-+end
-+| ( 139, ( ( _, ( MlyValue.structDeclaration structDeclaration, _,
-+structDeclaration1right)) :: ( _, ( MlyValue.structDeclarationList
-+structDeclarationList, structDeclarationList1left, _)) :: rest671)) =>
-+ let val result = MlyValue.structDeclarationList (
-+addToSeq(structDeclaration, structDeclarationList))
-+ in ( LrTable.NT 59, ( result, structDeclarationList1left,
-+structDeclaration1right), rest671)
-+end
-+| ( 140, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, (
-+MlyValue.structDeclaratorList structDeclaratorList, _, _)) :: ( _, (
-+MlyValue.specifierQualifierList specifierQualifierList,
-+specifierQualifierList1left, _)) :: rest671)) => let val result =
-+MlyValue.structDeclaration (
-+(specifierQualifierList, seqToList structDeclaratorList))
-+ in ( LrTable.NT 60, ( result, specifierQualifierList1left,
-+SEMICOLON1right), rest671)
-+end
-+| ( 141, ( ( _, ( _, _, SEMICOLON1right)) :: ( _, (
-+MlyValue.notypeStructDeclaratorList notypeStructDeclaratorList, _, _))
-+ :: ( _, ( MlyValue.typeQualifierList typeQualifierList,
-+typeQualifierList1left, _)) :: rest671)) => let val result =
-+MlyValue.structDeclaration (
-+let
-+ val ct = {qualifiers=typeQualifierList, specifiers=[]}
-+ in
-+ (ct, seqToList notypeStructDeclaratorList)
-+ end
-+)
-+ in ( LrTable.NT 60, ( result, typeQualifierList1left, SEMICOLON1right
-+), rest671)
-+end
-+| ( 142, ( ( _, ( MlyValue.structDeclarator structDeclarator,
-+structDeclarator1left, structDeclarator1right)) :: rest671)) => let
-+ val result = MlyValue.structDeclaratorList (
-+singletonSeq structDeclarator)
-+ in ( LrTable.NT 57, ( result, structDeclarator1left,
-+structDeclarator1right), rest671)
-+end
-+| ( 143, ( ( _, ( MlyValue.structDeclarator structDeclarator, _,
-+structDeclarator1right)) :: _ :: ( _, ( MlyValue.structDeclaratorList
-+structDeclaratorList, structDeclaratorList1left, _)) :: rest671)) =>
-+ let val result = MlyValue.structDeclaratorList (
-+addToSeq(structDeclarator, structDeclaratorList))
-+ in ( LrTable.NT 57, ( result, structDeclaratorList1left,
-+structDeclarator1right), rest671)
-+end
-+| ( 144, ( ( _, ( MlyValue.notypeStructDeclarator
-+notypeStructDeclarator, notypeStructDeclarator1left,
-+notypeStructDeclarator1right)) :: rest671)) => let val result =
-+MlyValue.notypeStructDeclaratorList (
-+singletonSeq notypeStructDeclarator)
-+ in ( LrTable.NT 58, ( result, notypeStructDeclarator1left,
-+notypeStructDeclarator1right), rest671)
-+end
-+| ( 145, ( ( _, ( MlyValue.structDeclarator structDeclarator, _,
-+structDeclarator1right)) :: _ :: ( _, (
-+MlyValue.notypeStructDeclaratorList notypeStructDeclaratorList,
-+notypeStructDeclaratorList1left, _)) :: rest671)) => let val result =
-+ MlyValue.notypeStructDeclaratorList (
-+addToSeq(structDeclarator, notypeStructDeclaratorList))
-+ in ( LrTable.NT 58, ( result, notypeStructDeclaratorList1left,
-+structDeclarator1right), rest671)
-+end
-+| ( 146, ( ( _, ( MlyValue.declarator declarator, declarator1left,
-+declarator1right)) :: rest671)) => let val result =
-+MlyValue.structDeclarator (declarator, EmptyExpr)
-+ in ( LrTable.NT 55, ( result, declarator1left, declarator1right),
-+rest671)
-+end
-+| ( 147, ( ( _, ( MlyValue.expr expr, _, expr1right)) :: ( _, ( _,
-+COLON1left, _)) :: rest671)) => let val result =
-+MlyValue.structDeclarator (EmptyDecr, expr)
-+ in ( LrTable.NT 55, ( result, COLON1left, expr1right), rest671)
-+end
-+| ( 148, ( ( _, ( MlyValue.expr expr, _, expr1right)) :: _ :: ( _, (
-+MlyValue.declarator declarator, declarator1left, _)) :: rest671)) =>
-+ let val result = MlyValue.structDeclarator (declarator, expr)
-+ in ( LrTable.NT 55, ( result, declarator1left, expr1right), rest671)
-+
-+end
-+| ( 149, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator,
-+notypeDeclarator1left, notypeDeclarator1right)) :: rest671)) => let
-+ val result = MlyValue.notypeStructDeclarator (
-+notypeDeclarator, EmptyExpr)
-+ in ( LrTable.NT 56, ( result, notypeDeclarator1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 150, ( ( _, ( MlyValue.expr expr, _, expr1right)) :: ( _, ( _,
-+COLON1left, _)) :: rest671)) => let val result =
-+MlyValue.notypeStructDeclarator (EmptyDecr, expr)
-+ in ( LrTable.NT 56, ( result, COLON1left, expr1right), rest671)
-+end
-+| ( 151, ( ( _, ( MlyValue.expr expr, _, expr1right)) :: _ :: ( _, (
-+MlyValue.notypeDeclarator notypeDeclarator, notypeDeclarator1left, _))
-+ :: rest671)) => let val result = MlyValue.notypeStructDeclarator (
-+notypeDeclarator, expr)
-+ in ( LrTable.NT 56, ( result, notypeDeclarator1left, expr1right),
-+rest671)
-+end
-+| ( 152, ( ( _, ( _, CONST1left, CONST1right)) :: rest671)) => let
-+ val result = MlyValue.typeQualifier (CONST)
-+ in ( LrTable.NT 39, ( result, CONST1left, CONST1right), rest671)
-+end
-+| ( 153, ( ( _, ( _, VOLATILE1left, VOLATILE1right)) :: rest671)) =>
-+ let val result = MlyValue.typeQualifier (VOLATILE)
-+ in ( LrTable.NT 39, ( result, VOLATILE1left, VOLATILE1right), rest671
-+)
-+end
-+| ( 154, ( ( _, ( _, _, RCURLY1right)) :: ( _, (
-+MlyValue.trailingComma trailingComma, _, _)) :: ( _, (
-+MlyValue.enumeratorList enumeratorList, _, _)) :: _ :: ( _, ( _,
-+ENUM1left, _)) :: rest671)) => let val result =
-+MlyValue.enumSpecifier (
-+Enum{tagOpt=NONE, enumerators=seqToList enumeratorList, trailingComma=trailingComma}
-+)
-+ in ( LrTable.NT 42, ( result, ENUM1left, RCURLY1right), rest671)
-+end
-+| ( 155, ( ( _, ( _, _, RCURLY1right)) :: ( _, (
-+MlyValue.trailingComma trailingComma, _, _)) :: ( _, (
-+MlyValue.enumeratorList enumeratorList, _, _)) :: _ :: ( _, (
-+MlyValue.ID ID, _, _)) :: ( _, ( _, ENUM1left, _)) :: rest671)) => let
-+ val result = MlyValue.enumSpecifier (
-+Enum{tagOpt=SOME(ID), enumerators=seqToList enumeratorList, trailingComma=trailingComma}
-+)
-+ in ( LrTable.NT 42, ( result, ENUM1left, RCURLY1right), rest671)
-+end
-+| ( 156, ( ( _, ( _, _, RCURLY1right)) :: ( _, (
-+MlyValue.trailingComma trailingComma, _, _)) :: ( _, (
-+MlyValue.enumeratorList enumeratorList, _, _)) :: _ :: ( _, (
-+MlyValue.TYPE_NAME TYPE_NAME, _, _)) :: ( _, ( _, ENUM1left, _)) ::
-+rest671)) => let val result = MlyValue.enumSpecifier (
-+Enum{tagOpt=SOME(TYPE_NAME), enumerators=seqToList enumeratorList, trailingComma=trailingComma}
-+)
-+ in ( LrTable.NT 42, ( result, ENUM1left, RCURLY1right), rest671)
-+end
-+| ( 157, ( ( _, ( MlyValue.ID ID, _, ID1right)) :: ( _, ( _,
-+ENUM1left, _)) :: rest671)) => let val result =
-+MlyValue.enumSpecifier (EnumTag(ID))
-+ in ( LrTable.NT 42, ( result, ENUM1left, ID1right), rest671)
-+end
-+| ( 158, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, _, TYPE_NAME1right))
-+ :: ( _, ( _, ENUM1left, _)) :: rest671)) => let val result =
-+MlyValue.enumSpecifier (EnumTag(TYPE_NAME))
-+ in ( LrTable.NT 42, ( result, ENUM1left, TYPE_NAME1right), rest671)
-+
-+end
-+| ( 159, ( ( _, ( MlyValue.enumerator enumerator, _, enumerator1right
-+)) :: _ :: ( _, ( MlyValue.enumeratorList enumeratorList,
-+enumeratorList1left, _)) :: rest671)) => let val result =
-+MlyValue.enumeratorList (addToSeq(enumerator, enumeratorList))
-+ in ( LrTable.NT 12, ( result, enumeratorList1left, enumerator1right),
-+ rest671)
-+end
-+| ( 160, ( ( _, ( MlyValue.enumerator enumerator, enumerator1left,
-+enumerator1right)) :: rest671)) => let val result =
-+MlyValue.enumeratorList (
-+(TypeDefs.addNoTdef(#1(enumerator)));
-+ singletonSeq enumerator)
-+ in ( LrTable.NT 12, ( result, enumerator1left, enumerator1right),
-+rest671)
-+end
-+| ( 161, ( ( _, ( MlyValue.ID ID, ID1left, ID1right)) :: rest671)) =>
-+ let val result = MlyValue.enumerator ((ID,ParseTree.EmptyExpr))
-+ in ( LrTable.NT 13, ( result, ID1left, ID1right), rest671)
-+end
-+| ( 162, ( ( _, ( MlyValue.expr expr, _, expr1right)) :: _ :: ( _, (
-+MlyValue.ID ID, ID1left, _)) :: rest671)) => let val result =
-+MlyValue.enumerator (ID,expr)
-+ in ( LrTable.NT 13, ( result, ID1left, expr1right), rest671)
-+end
-+| ( 163, ( ( _, ( _, EXTERN1left, EXTERN1right)) :: rest671)) => let
-+ val result = MlyValue.storageClassSpecifier (EXTERN)
-+ in ( LrTable.NT 35, ( result, EXTERN1left, EXTERN1right), rest671)
-+
-+end
-+| ( 164, ( ( _, ( _, STATIC1left, STATIC1right)) :: rest671)) => let
-+ val result = MlyValue.storageClassSpecifier (STATIC)
-+ in ( LrTable.NT 35, ( result, STATIC1left, STATIC1right), rest671)
-+
-+end
-+| ( 165, ( ( _, ( _, AUTO1left, AUTO1right)) :: rest671)) => let val
-+ result = MlyValue.storageClassSpecifier (AUTO)
-+ in ( LrTable.NT 35, ( result, AUTO1left, AUTO1right), rest671)
-+end
-+| ( 166, ( ( _, ( _, REGISTER1left, REGISTER1right)) :: rest671)) =>
-+ let val result = MlyValue.storageClassSpecifier (REGISTER)
-+ in ( LrTable.NT 35, ( result, REGISTER1left, REGISTER1right), rest671
-+)
-+end
-+| ( 167, ( ( _, ( _, TYPEDEF1left, TYPEDEF1right)) :: rest671)) =>
-+ let val result = MlyValue.storageClassSpecifier (TYPEDEF)
-+ in ( LrTable.NT 35, ( result, TYPEDEF1left, TYPEDEF1right), rest671)
-+
-+end
-+| ( 168, ( rest671)) => let val result = MlyValue.trailingComma (
-+false)
-+ in ( LrTable.NT 11, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 169, ( ( _, ( _, COMMA1left, COMMA1right)) :: rest671)) => let
-+ val result = MlyValue.trailingComma (true)
-+ in ( LrTable.NT 11, ( result, COMMA1left, COMMA1right), rest671)
-+end
-+| ( 170, ( ( _, ( MlyValue.initDeclarator initDeclarator,
-+initDeclarator1left, initDeclarator1right)) :: rest671)) => let val
-+result = MlyValue.initDeclaratorList (singletonSeq initDeclarator)
-+ in ( LrTable.NT 18, ( result, initDeclarator1left,
-+initDeclarator1right), rest671)
-+end
-+| ( 171, ( ( _, ( MlyValue.initDeclarator initDeclarator, _,
-+initDeclarator1right)) :: _ :: ( _, ( MlyValue.initDeclaratorList
-+initDeclaratorList, initDeclaratorList1left, _)) :: rest671)) => let
-+ val result = MlyValue.initDeclaratorList (
-+addToSeq(initDeclarator, initDeclaratorList))
-+ in ( LrTable.NT 18, ( result, initDeclaratorList1left,
-+initDeclarator1right), rest671)
-+end
-+| ( 172, ( ( _, ( MlyValue.declarator declarator, declarator1left,
-+declarator1right)) :: rest671)) => let val result =
-+MlyValue.initDeclarator ((declarator,EmptyExpr))
-+ in ( LrTable.NT 16, ( result, declarator1left, declarator1right),
-+rest671)
-+end
-+| ( 173, ( ( _, ( MlyValue.initializer initializer, _,
-+initializer1right)) :: _ :: ( _, ( MlyValue.declarator declarator,
-+declarator1left, _)) :: rest671)) => let val result =
-+MlyValue.initDeclarator (declarator,initializer)
-+ in ( LrTable.NT 16, ( result, declarator1left, initializer1right),
-+rest671)
-+end
-+| ( 174, ( ( _, ( MlyValue.notypeInitDeclarator notypeInitDeclarator,
-+ notypeInitDeclarator1left, notypeInitDeclarator1right)) :: rest671))
-+ => let val result = MlyValue.notypeInitDeclaratorList (
-+singletonSeq notypeInitDeclarator)
-+ in ( LrTable.NT 19, ( result, notypeInitDeclarator1left,
-+notypeInitDeclarator1right), rest671)
-+end
-+| ( 175, ( ( _, ( MlyValue.initDeclarator initDeclarator, _,
-+initDeclarator1right)) :: _ :: ( _, (
-+MlyValue.notypeInitDeclaratorList notypeInitDeclaratorList,
-+notypeInitDeclaratorList1left, _)) :: rest671)) => let val result =
-+MlyValue.notypeInitDeclaratorList (
-+addToSeq(initDeclarator, notypeInitDeclaratorList))
-+ in ( LrTable.NT 19, ( result, notypeInitDeclaratorList1left,
-+initDeclarator1right), rest671)
-+end
-+| ( 176, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator,
-+notypeDeclarator1left, notypeDeclarator1right)) :: rest671)) => let
-+ val result = MlyValue.notypeInitDeclarator (
-+(notypeDeclarator,EmptyExpr))
-+ in ( LrTable.NT 17, ( result, notypeDeclarator1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 177, ( ( _, ( MlyValue.initializer initializer, _,
-+initializer1right)) :: _ :: ( _, ( MlyValue.notypeDeclarator
-+notypeDeclarator, notypeDeclarator1left, _)) :: rest671)) => let val
-+result = MlyValue.notypeInitDeclarator (notypeDeclarator,initializer)
-+ in ( LrTable.NT 17, ( result, notypeDeclarator1left,
-+initializer1right), rest671)
-+end
-+| ( 178, ( ( _, ( MlyValue.aftertypeDeclarator aftertypeDeclarator,
-+aftertypeDeclarator1left, aftertypeDeclarator1right)) :: rest671)) =>
-+ let val result = MlyValue.declarator (aftertypeDeclarator)
-+ in ( LrTable.NT 21, ( result, aftertypeDeclarator1left,
-+aftertypeDeclarator1right), rest671)
-+end
-+| ( 179, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator,
-+notypeDeclarator1left, notypeDeclarator1right)) :: rest671)) => let
-+ val result = MlyValue.declarator (notypeDeclarator)
-+ in ( LrTable.NT 21, ( result, notypeDeclarator1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 180, ( ( _, ( MlyValue.aftertypeDirectDeclarator
-+aftertypeDirectDeclarator, aftertypeDirectDeclarator1left,
-+aftertypeDirectDeclarator1right)) :: rest671)) => let val result =
-+MlyValue.aftertypeDeclarator (aftertypeDirectDeclarator)
-+ in ( LrTable.NT 22, ( result, aftertypeDirectDeclarator1left,
-+aftertypeDirectDeclarator1right), rest671)
-+end
-+| ( 181, ( ( _, ( MlyValue.aftertypeDirectDeclarator
-+aftertypeDirectDeclarator, _, aftertypeDirectDeclarator1right)) :: ( _
-+, ( MlyValue.pointer pointer, pointer1left, _)) :: rest671)) => let
-+ val result = MlyValue.aftertypeDeclarator (
-+applyPointer(pointer,aftertypeDirectDeclarator))
-+ in ( LrTable.NT 22, ( result, pointer1left,
-+aftertypeDirectDeclarator1right), rest671)
-+end
-+| ( 182, ( ( _, ( MlyValue.notypeDirectDeclarator
-+notypeDirectDeclarator, notypeDirectDeclarator1left,
-+notypeDirectDeclarator1right)) :: rest671)) => let val result =
-+MlyValue.notypeDeclarator (notypeDirectDeclarator)
-+ in ( LrTable.NT 23, ( result, notypeDirectDeclarator1left,
-+notypeDirectDeclarator1right), rest671)
-+end
-+| ( 183, ( ( _, ( MlyValue.notypeDirectDeclarator
-+notypeDirectDeclarator, _, notypeDirectDeclarator1right)) :: ( _, (
-+MlyValue.pointer pointer, pointer1left, _)) :: rest671)) => let val
-+result = MlyValue.notypeDeclarator (
-+applyPointer(pointer, notypeDirectDeclarator))
-+ in ( LrTable.NT 23, ( result, pointer1left,
-+notypeDirectDeclarator1right), rest671)
-+end
-+| ( 184, ( ( _, ( MlyValue.parmDirectDeclarator parmDirectDeclarator,
-+ parmDirectDeclarator1left, parmDirectDeclarator1right)) :: rest671))
-+ => let val result = MlyValue.parmDeclarator (parmDirectDeclarator)
-+ in ( LrTable.NT 24, ( result, parmDirectDeclarator1left,
-+parmDirectDeclarator1right), rest671)
-+end
-+| ( 185, ( ( _, ( MlyValue.parmDirectDeclarator parmDirectDeclarator,
-+ _, parmDirectDeclarator1right)) :: ( _, ( MlyValue.pointer pointer,
-+pointer1left, _)) :: rest671)) => let val result =
-+MlyValue.parmDeclarator (applyPointer(pointer, parmDirectDeclarator))
-+ in ( LrTable.NT 24, ( result, pointer1left,
-+parmDirectDeclarator1right), rest671)
-+end
-+| ( 186, ( ( _, ( _, TIMES1left, TIMES1right)) :: rest671)) => let
-+ val result = MlyValue.pointer (PointerDecr(EmptyDecr))
-+ in ( LrTable.NT 20, ( result, TIMES1left, TIMES1right), rest671)
-+end
-+| ( 187, ( ( _, ( MlyValue.typeQualifierList typeQualifierList, _,
-+typeQualifierList1right)) :: ( _, ( _, TIMES1left, _)) :: rest671)) =>
-+ let val result = MlyValue.pointer (
-+PointerDecr(loopQd(typeQualifierList,EmptyDecr)))
-+ in ( LrTable.NT 20, ( result, TIMES1left, typeQualifierList1right),
-+rest671)
-+end
-+| ( 188, ( ( _, ( MlyValue.pointer pointer, _, pointer1right)) :: ( _
-+, ( _, TIMES1left, _)) :: rest671)) => let val result =
-+MlyValue.pointer (PointerDecr(pointer))
-+ in ( LrTable.NT 20, ( result, TIMES1left, pointer1right), rest671)
-+
-+end
-+| ( 189, ( ( _, ( MlyValue.pointer pointer, _, pointer1right)) :: ( _
-+, ( MlyValue.typeQualifierList typeQualifierList, _, _)) :: ( _, ( _,
-+TIMES1left, _)) :: rest671)) => let val result = MlyValue.pointer (
-+PointerDecr(loopQd(typeQualifierList,pointer)))
-+ in ( LrTable.NT 20, ( result, TIMES1left, pointer1right), rest671)
-+
-+end
-+| ( 190, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, (TYPE_NAMEleft as
-+TYPE_NAME1left), (TYPE_NAMEright as TYPE_NAME1right))) :: rest671)) =>
-+ let val result = MlyValue.aftertypeDirectDeclarator (
-+markDeclarator srcMap (VarDecr TYPE_NAME,TYPE_NAMEleft,TYPE_NAMEright)
-+)
-+ in ( LrTable.NT 25, ( result, TYPE_NAME1left, TYPE_NAME1right),
-+rest671)
-+end
-+| ( 191, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.aftertypeDeclarator aftertypeDeclarator, _, _)) :: ( _, ( _,
-+LPAREN1left, _)) :: rest671)) => let val result =
-+MlyValue.aftertypeDirectDeclarator (aftertypeDeclarator)
-+ in ( LrTable.NT 25, ( result, LPAREN1left, RPAREN1right), rest671)
-+
-+end
-+| ( 192, ( ( _, ( _, _, RBRACE1right)) :: _ :: ( _, (
-+MlyValue.aftertypeDirectDeclarator aftertypeDirectDeclarator,
-+aftertypeDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.aftertypeDirectDeclarator (
-+ArrayDecr (aftertypeDirectDeclarator,EmptyExpr))
-+ in ( LrTable.NT 25, ( result, aftertypeDirectDeclarator1left,
-+RBRACE1right), rest671)
-+end
-+| ( 193, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.expr expr,
-+ _, _)) :: _ :: ( _, ( MlyValue.aftertypeDirectDeclarator
-+aftertypeDirectDeclarator, aftertypeDirectDeclarator1left, _)) ::
-+rest671)) => let val result = MlyValue.aftertypeDirectDeclarator (
-+ArrayDecr (aftertypeDirectDeclarator,expr))
-+ in ( LrTable.NT 25, ( result, aftertypeDirectDeclarator1left,
-+RBRACE1right), rest671)
-+end
-+| ( 194, ( ( _, ( _, _, RPAREN1right)) :: _ :: ( _, (
-+MlyValue.aftertypeDirectDeclarator aftertypeDirectDeclarator,
-+aftertypeDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.aftertypeDirectDeclarator (
-+FuncDecr (aftertypeDirectDeclarator,nil))
-+ in ( LrTable.NT 25, ( result, aftertypeDirectDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 195, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.parameterTypeList parameterTypeList, _, _)) :: _ :: ( _, (
-+MlyValue.aftertypeDirectDeclarator aftertypeDirectDeclarator,
-+aftertypeDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.aftertypeDirectDeclarator (
-+FuncDecr (aftertypeDirectDeclarator,parameterTypeList))
-+ in ( LrTable.NT 25, ( result, aftertypeDirectDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 196, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.identlist
-+identlist, _, _)) :: _ :: ( _, ( MlyValue.aftertypeDirectDeclarator
-+aftertypeDirectDeclarator, aftertypeDirectDeclarator1left, _)) ::
-+rest671)) => let val result = MlyValue.aftertypeDirectDeclarator (
-+FuncDecr (aftertypeDirectDeclarator,
-+ map (fn (x,y,z) => (unknown,markDeclarator srcMap (VarDecr x,y,z))) (seqToList identlist))
-+)
-+ in ( LrTable.NT 25, ( result, aftertypeDirectDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 197, ( ( _, ( MlyValue.ID ID, (IDleft as ID1left), (IDright as
-+ID1right))) :: rest671)) => let val result =
-+MlyValue.notypeDirectDeclarator (
-+markDeclarator srcMap (VarDecr ID,IDleft,IDright))
-+ in ( LrTable.NT 26, ( result, ID1left, ID1right), rest671)
-+end
-+| ( 198, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.notypeDeclarator notypeDeclarator, _, _)) :: ( _, ( _,
-+LPAREN1left, _)) :: rest671)) => let val result =
-+MlyValue.notypeDirectDeclarator (notypeDeclarator)
-+ in ( LrTable.NT 26, ( result, LPAREN1left, RPAREN1right), rest671)
-+
-+end
-+| ( 199, ( ( _, ( _, _, RBRACE1right)) :: _ :: ( _, (
-+MlyValue.notypeDirectDeclarator notypeDirectDeclarator,
-+notypeDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.notypeDirectDeclarator (
-+ArrayDecr (notypeDirectDeclarator,EmptyExpr))
-+ in ( LrTable.NT 26, ( result, notypeDirectDeclarator1left,
-+RBRACE1right), rest671)
-+end
-+| ( 200, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.expr expr,
-+ _, _)) :: _ :: ( _, ( MlyValue.notypeDirectDeclarator
-+notypeDirectDeclarator, notypeDirectDeclarator1left, _)) :: rest671))
-+ => let val result = MlyValue.notypeDirectDeclarator (
-+ArrayDecr (notypeDirectDeclarator,expr))
-+ in ( LrTable.NT 26, ( result, notypeDirectDeclarator1left,
-+RBRACE1right), rest671)
-+end
-+| ( 201, ( ( _, ( _, _, RPAREN1right)) :: _ :: ( _, (
-+MlyValue.notypeDirectDeclarator notypeDirectDeclarator,
-+notypeDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.notypeDirectDeclarator (FuncDecr (notypeDirectDeclarator,nil)
-+)
-+ in ( LrTable.NT 26, ( result, notypeDirectDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 202, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.parameterTypeList parameterTypeList, _, _)) :: _ :: ( _, (
-+MlyValue.notypeDirectDeclarator notypeDirectDeclarator,
-+notypeDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.notypeDirectDeclarator (
-+FuncDecr (notypeDirectDeclarator,parameterTypeList))
-+ in ( LrTable.NT 26, ( result, notypeDirectDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 203, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.identlist
-+identlist, _, _)) :: _ :: ( _, ( MlyValue.notypeDirectDeclarator
-+notypeDirectDeclarator, notypeDirectDeclarator1left, _)) :: rest671))
-+ => let val result = MlyValue.notypeDirectDeclarator (
-+FuncDecr (notypeDirectDeclarator,
-+ map (fn (x,y,z) => (unknown,markDeclarator srcMap (VarDecr x,y,z))) (seqToList identlist))
-+)
-+ in ( LrTable.NT 26, ( result, notypeDirectDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 204, ( ( _, ( MlyValue.TYPE_NAME TYPE_NAME, (TYPE_NAMEleft as
-+TYPE_NAME1left), (TYPE_NAMEright as TYPE_NAME1right))) :: rest671)) =>
-+ let val result = MlyValue.parmDirectDeclarator (
-+markDeclarator srcMap (VarDecr TYPE_NAME,TYPE_NAMEleft,TYPE_NAMEright)
-+)
-+ in ( LrTable.NT 27, ( result, TYPE_NAME1left, TYPE_NAME1right),
-+rest671)
-+end
-+| ( 205, ( ( _, ( _, _, RBRACE1right)) :: _ :: ( _, (
-+MlyValue.parmDirectDeclarator parmDirectDeclarator,
-+parmDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.parmDirectDeclarator (
-+ArrayDecr (parmDirectDeclarator,EmptyExpr))
-+ in ( LrTable.NT 27, ( result, parmDirectDeclarator1left, RBRACE1right
-+), rest671)
-+end
-+| ( 206, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.expr expr,
-+ _, _)) :: _ :: ( _, ( MlyValue.parmDirectDeclarator
-+parmDirectDeclarator, parmDirectDeclarator1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parmDirectDeclarator (
-+ArrayDecr (parmDirectDeclarator,expr))
-+ in ( LrTable.NT 27, ( result, parmDirectDeclarator1left, RBRACE1right
-+), rest671)
-+end
-+| ( 207, ( ( _, ( _, _, RPAREN1right)) :: _ :: ( _, (
-+MlyValue.parmDirectDeclarator parmDirectDeclarator,
-+parmDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.parmDirectDeclarator (FuncDecr (parmDirectDeclarator,nil))
-+ in ( LrTable.NT 27, ( result, parmDirectDeclarator1left, RPAREN1right
-+), rest671)
-+end
-+| ( 208, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.parameterTypeList parameterTypeList, _, _)) :: _ :: ( _, (
-+MlyValue.parmDirectDeclarator parmDirectDeclarator,
-+parmDirectDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.parmDirectDeclarator (
-+FuncDecr (parmDirectDeclarator,parameterTypeList))
-+ in ( LrTable.NT 27, ( result, parmDirectDeclarator1left, RPAREN1right
-+), rest671)
-+end
-+| ( 209, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( MlyValue.identlist
-+identlist, _, _)) :: _ :: ( _, ( MlyValue.parmDirectDeclarator
-+parmDirectDeclarator, parmDirectDeclarator1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parmDirectDeclarator (
-+FuncDecr (parmDirectDeclarator,
-+ map (fn (x,y,z) => (unknown,markDeclarator srcMap (VarDecr x,y,z))) (seqToList identlist))
-+)
-+ in ( LrTable.NT 27, ( result, parmDirectDeclarator1left, RPAREN1right
-+), rest671)
-+end
-+| ( 210, ( ( _, ( MlyValue.expr expr, expr1left, expr1right)) ::
-+rest671)) => let val result = MlyValue.initializer (expr)
-+ in ( LrTable.NT 33, ( result, expr1left, expr1right), rest671)
-+end
-+| ( 211, ( ( _, ( _, _, (RCURLYright as RCURLY1right))) :: _ :: ( _,
-+( MlyValue.initializerList initializerList, _, _)) :: ( _, ( _, (
-+LCURLYleft as LCURLY1left), _)) :: rest671)) => let val result =
-+MlyValue.initializer (
-+markExpression srcMap (InitList(seqToList initializerList),LCURLYleft,RCURLYright)
-+)
-+ in ( LrTable.NT 33, ( result, LCURLY1left, RCURLY1right), rest671)
-+
-+end
-+| ( 212, ( ( _, ( MlyValue.initializer initializer, initializer1left,
-+ initializer1right)) :: rest671)) => let val result =
-+MlyValue.initializerList (singletonSeq initializer)
-+ in ( LrTable.NT 34, ( result, initializer1left, initializer1right),
-+rest671)
-+end
-+| ( 213, ( ( _, ( MlyValue.initializer initializer, _,
-+initializer1right)) :: _ :: ( _, ( MlyValue.initializerList
-+initializerList, initializerList1left, _)) :: rest671)) => let val
-+result = MlyValue.initializerList (
-+addToSeq(initializer, initializerList))
-+ in ( LrTable.NT 34, ( result, initializerList1left, initializer1right
-+), rest671)
-+end
-+| ( 214, ( ( _, ( MlyValue.declaration declaration, (declarationleft
-+ as declaration1left), (declarationright as declaration1right))) ::
-+rest671)) => let val result = MlyValue.declarationList (
-+singletonSeq(markDeclaration srcMap (declaration,
-+ declarationleft,
-+ declarationright))
-+)
-+ in ( LrTable.NT 45, ( result, declaration1left, declaration1right),
-+rest671)
-+end
-+| ( 215, ( ( _, ( MlyValue.declaration declaration, declarationleft,
-+ (declarationright as declaration1right))) :: ( _, (
-+MlyValue.declarationList declarationList, declarationList1left, _)) ::
-+ rest671)) => let val result = MlyValue.declarationList (
-+addToSeq(markDeclaration srcMap (declaration,
-+ declarationleft,
-+ declarationright),
-+ declarationList)
-+)
-+ in ( LrTable.NT 45, ( result, declarationList1left, declaration1right
-+), rest671)
-+end
-+| ( 216, ( ( _, ( MlyValue.ID ID, (IDleft as ID1left), (IDright as
-+ID1right))) :: rest671)) => let val result = MlyValue.identlist (
-+singletonSeq (ID,IDleft,IDright))
-+ in ( LrTable.NT 46, ( result, ID1left, ID1right), rest671)
-+end
-+| ( 217, ( ( _, ( MlyValue.ID ID, IDleft, (IDright as ID1right))) ::
-+ _ :: ( _, ( MlyValue.identlist identlist, identlist1left, _)) ::
-+rest671)) => let val result = MlyValue.identlist (
-+addToSeq((ID,IDleft,IDright),identlist))
-+ in ( LrTable.NT 46, ( result, identlist1left, ID1right), rest671)
-+end
-+| ( 218, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator,
-+notypeDeclarator1left, notypeDeclarator1right)) :: rest671)) => let
-+ val result = MlyValue.fDefDeclaration (
-+insertFuncName(notypeDeclarator);
-+ TypeDefs.pushScope();
-+ insertFuncParams(notypeDeclarator);
-+ (unknown, notypeDeclarator)
-+)
-+ in ( LrTable.NT 44, ( result, notypeDeclarator1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 219, ( ( _, ( MlyValue.declarator declarator, _, declarator1right
-+)) :: ( _, ( MlyValue.declarationSpecifiers declarationSpecifiers,
-+declarationSpecifiers1left, _)) :: rest671)) => let val result =
-+MlyValue.fDefDeclaration (
-+insertFuncName(declarator);
-+ TypeDefs.pushScope();
-+ insertFuncParams(declarator);
-+ (declarationSpecifiers, declarator)
-+)
-+ in ( LrTable.NT 44, ( result, declarationSpecifiers1left,
-+declarator1right), rest671)
-+end
-+| ( 220, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator, _,
-+notypeDeclarator1right)) :: ( _, ( MlyValue.declarationModifiers
-+declarationModifiers, declarationModifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.fDefDeclaration (
-+insertFuncName(notypeDeclarator);
-+ TypeDefs.pushScope();
-+ insertFuncParams(notypeDeclarator);
-+ (declarationModifiers, notypeDeclarator)
-+)
-+ in ( LrTable.NT 44, ( result, declarationModifiers1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 221, ( ( _, ( MlyValue.compoundStatement compoundStatement, _,
-+compoundStatement1right)) :: ( _, ( MlyValue.fDefDeclaration
-+fDefDeclaration, fDefDeclaration1left, _)) :: rest671)) => let val
-+result = MlyValue.functionDefinition (
-+TypeDefs.popScope();
-+ FunctionDef
-+ {retType = #1 fDefDeclaration,
-+ funDecr = #2 fDefDeclaration,
-+ krParams = [],
-+ body = compoundStatement}
-+)
-+ in ( LrTable.NT 47, ( result, fDefDeclaration1left,
-+compoundStatement1right), rest671)
-+end
-+| ( 222, ( ( _, ( MlyValue.compoundStatement compoundStatement, _,
-+compoundStatement1right)) :: ( _, ( MlyValue.declarationList
-+declarationList, _, _)) :: ( _, ( MlyValue.fDefDeclaration
-+fDefDeclaration, fDefDeclaration1left, _)) :: rest671)) => let val
-+result = MlyValue.functionDefinition (
-+TypeDefs.popScope();
-+ FunctionDef
-+ {retType = #1 fDefDeclaration,
-+ funDecr = #2 fDefDeclaration,
-+ krParams = seqToList declarationList,
-+ body = compoundStatement}
-+)
-+ in ( LrTable.NT 47, ( result, fDefDeclaration1left,
-+compoundStatement1right), rest671)
-+end
-+| ( 223, ( ( _, ( MlyValue.pointer pointer, pointer1left,
-+pointer1right)) :: rest671)) => let val result =
-+MlyValue.abstractDeclarator (applyPointer (pointer, EmptyDecr))
-+ in ( LrTable.NT 14, ( result, pointer1left, pointer1right), rest671)
-+
-+end
-+| ( 224, ( ( _, ( MlyValue.directAbstractDeclarator
-+directAbstractDeclarator, directAbstractDeclarator1left,
-+directAbstractDeclarator1right)) :: rest671)) => let val result =
-+MlyValue.abstractDeclarator (directAbstractDeclarator)
-+ in ( LrTable.NT 14, ( result, directAbstractDeclarator1left,
-+directAbstractDeclarator1right), rest671)
-+end
-+| ( 225, ( ( _, ( MlyValue.directAbstractDeclarator
-+directAbstractDeclarator, _, directAbstractDeclarator1right)) :: ( _,
-+( MlyValue.pointer pointer, pointer1left, _)) :: rest671)) => let val
-+ result = MlyValue.abstractDeclarator (
-+applyPointer(pointer, directAbstractDeclarator))
-+ in ( LrTable.NT 14, ( result, pointer1left,
-+directAbstractDeclarator1right), rest671)
-+end
-+| ( 226, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.abstractDeclarator abstractDeclarator, _, _)) :: ( _, ( _,
-+LPAREN1left, _)) :: rest671)) => let val result =
-+MlyValue.directAbstractDeclarator (abstractDeclarator)
-+ in ( LrTable.NT 15, ( result, LPAREN1left, RPAREN1right), rest671)
-+
-+end
-+| ( 227, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( _, LBRACE1left, _))
-+ :: rest671)) => let val result = MlyValue.directAbstractDeclarator (
-+ArrayDecr(EmptyDecr, EmptyExpr))
-+ in ( LrTable.NT 15, ( result, LBRACE1left, RBRACE1right), rest671)
-+
-+end
-+| ( 228, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.expr expr,
-+ _, _)) :: ( _, ( _, LBRACE1left, _)) :: rest671)) => let val result
-+ = MlyValue.directAbstractDeclarator (ArrayDecr(EmptyDecr, expr))
-+ in ( LrTable.NT 15, ( result, LBRACE1left, RBRACE1right), rest671)
-+
-+end
-+| ( 229, ( ( _, ( _, _, RBRACE1right)) :: _ :: ( _, (
-+MlyValue.directAbstractDeclarator directAbstractDeclarator,
-+directAbstractDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.directAbstractDeclarator (
-+ArrayDecr (directAbstractDeclarator,EmptyExpr))
-+ in ( LrTable.NT 15, ( result, directAbstractDeclarator1left,
-+RBRACE1right), rest671)
-+end
-+| ( 230, ( ( _, ( _, _, RBRACE1right)) :: ( _, ( MlyValue.expr expr,
-+ _, _)) :: _ :: ( _, ( MlyValue.directAbstractDeclarator
-+directAbstractDeclarator, directAbstractDeclarator1left, _)) ::
-+rest671)) => let val result = MlyValue.directAbstractDeclarator (
-+ArrayDecr (directAbstractDeclarator,expr))
-+ in ( LrTable.NT 15, ( result, directAbstractDeclarator1left,
-+RBRACE1right), rest671)
-+end
-+| ( 231, ( ( _, ( _, _, RPAREN1right)) :: ( _, ( _, LPAREN1left, _))
-+ :: rest671)) => let val result = MlyValue.directAbstractDeclarator (
-+FuncDecr (EmptyDecr ,nil))
-+ in ( LrTable.NT 15, ( result, LPAREN1left, RPAREN1right), rest671)
-+
-+end
-+| ( 232, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.parameterTypeList parameterTypeList, _, _)) :: ( _, ( _,
-+LPAREN1left, _)) :: rest671)) => let val result =
-+MlyValue.directAbstractDeclarator (
-+FuncDecr (EmptyDecr, parameterTypeList))
-+ in ( LrTable.NT 15, ( result, LPAREN1left, RPAREN1right), rest671)
-+
-+end
-+| ( 233, ( ( _, ( _, _, RPAREN1right)) :: _ :: ( _, (
-+MlyValue.directAbstractDeclarator directAbstractDeclarator,
-+directAbstractDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.directAbstractDeclarator (
-+FuncDecr (directAbstractDeclarator,nil))
-+ in ( LrTable.NT 15, ( result, directAbstractDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 234, ( ( _, ( _, _, RPAREN1right)) :: ( _, (
-+MlyValue.parameterTypeList parameterTypeList, _, _)) :: _ :: ( _, (
-+MlyValue.directAbstractDeclarator directAbstractDeclarator,
-+directAbstractDeclarator1left, _)) :: rest671)) => let val result =
-+MlyValue.directAbstractDeclarator (
-+FuncDecr (directAbstractDeclarator, parameterTypeList))
-+ in ( LrTable.NT 15, ( result, directAbstractDeclarator1left,
-+RPAREN1right), rest671)
-+end
-+| ( 235, ( ( _, ( MlyValue.parameterList parameterList,
-+parameterList1left, parameterList1right)) :: rest671)) => let val
-+result = MlyValue.parameterTypeList (seqToList parameterList)
-+ in ( LrTable.NT 52, ( result, parameterList1left, parameterList1right
-+), rest671)
-+end
-+| ( 236, ( ( _, ( _, _, ELIPSIS1right)) :: _ :: ( _, (
-+MlyValue.parameterList parameterList, parameterList1left, _)) ::
-+rest671)) => let val result = MlyValue.parameterTypeList (
-+let val decltype = {specifiers=[Ellipses],qualifiers=[],storage=[]}
-+ in (seqToList parameterList) @ [(decltype, EllipsesDecr)] end
-+)
-+ in ( LrTable.NT 52, ( result, parameterList1left, ELIPSIS1right),
-+rest671)
-+end
-+| ( 237, ( ( _, ( MlyValue.parameterDeclaration parameterDeclaration,
-+ (parameterDeclarationleft as parameterDeclaration1left), (
-+parameterDeclarationright as parameterDeclaration1right))) :: rest671)
-+) => let val result = MlyValue.parameterList (
-+singletonSeq(#1 parameterDeclaration,
-+ markDeclarator srcMap (#2 parameterDeclaration,
-+ parameterDeclarationleft,
-+ parameterDeclarationright))
-+)
-+ in ( LrTable.NT 51, ( result, parameterDeclaration1left,
-+parameterDeclaration1right), rest671)
-+end
-+| ( 238, ( ( _, ( MlyValue.parameterDeclaration parameterDeclaration,
-+ parameterDeclarationleft, (parameterDeclarationright as
-+parameterDeclaration1right))) :: _ :: ( _, ( MlyValue.parameterList
-+parameterList, parameterList1left, _)) :: rest671)) => let val result
-+ = MlyValue.parameterList (
-+addToSeq((#1 parameterDeclaration,
-+ markDeclarator
-+ srcMap
-+ (#2 parameterDeclaration,
-+ parameterDeclarationleft,
-+ parameterDeclarationright)),
-+ parameterList)
-+)
-+ in ( LrTable.NT 51, ( result, parameterList1left,
-+parameterDeclaration1right), rest671)
-+end
-+| ( 239, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator, _,
-+notypeDeclarator1right)) :: ( _, ( MlyValue.declarationSpecifiers
-+declarationSpecifiers, declarationSpecifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parameterDeclaration (
-+(declarationSpecifiers, notypeDeclarator))
-+ in ( LrTable.NT 53, ( result, declarationSpecifiers1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 240, ( ( _, ( MlyValue.parmDeclarator parmDeclarator, _,
-+parmDeclarator1right)) :: ( _, ( MlyValue.declarationSpecifiers
-+declarationSpecifiers, declarationSpecifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parameterDeclaration (
-+(declarationSpecifiers, parmDeclarator))
-+ in ( LrTable.NT 53, ( result, declarationSpecifiers1left,
-+parmDeclarator1right), rest671)
-+end
-+| ( 241, ( ( _, ( MlyValue.declarationSpecifiers
-+declarationSpecifiers, declarationSpecifiers1left,
-+declarationSpecifiers1right)) :: rest671)) => let val result =
-+MlyValue.parameterDeclaration ((declarationSpecifiers, EmptyDecr))
-+ in ( LrTable.NT 53, ( result, declarationSpecifiers1left,
-+declarationSpecifiers1right), rest671)
-+end
-+| ( 242, ( ( _, ( MlyValue.abstractDeclarator abstractDeclarator, _,
-+abstractDeclarator1right)) :: ( _, ( MlyValue.declarationSpecifiers
-+declarationSpecifiers, declarationSpecifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parameterDeclaration (
-+(declarationSpecifiers, abstractDeclarator))
-+ in ( LrTable.NT 53, ( result, declarationSpecifiers1left,
-+abstractDeclarator1right), rest671)
-+end
-+| ( 243, ( ( _, ( MlyValue.notypeDeclarator notypeDeclarator, _,
-+notypeDeclarator1right)) :: ( _, ( MlyValue.declarationModifiers
-+declarationModifiers, declarationModifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parameterDeclaration (
-+(declarationModifiers, notypeDeclarator))
-+ in ( LrTable.NT 53, ( result, declarationModifiers1left,
-+notypeDeclarator1right), rest671)
-+end
-+| ( 244, ( ( _, ( MlyValue.abstractDeclarator abstractDeclarator, _,
-+abstractDeclarator1right)) :: ( _, ( MlyValue.declarationModifiers
-+declarationModifiers, declarationModifiers1left, _)) :: rest671)) =>
-+ let val result = MlyValue.parameterDeclaration (
-+(declarationModifiers, abstractDeclarator))
-+ in ( LrTable.NT 53, ( result, declarationModifiers1left,
-+abstractDeclarator1right), rest671)
-+end
-+| ( 245, ( rest671)) => let val result = MlyValue.pushScope (
-+TypeDefs.pushScope())
-+ in ( LrTable.NT 61, ( result, defaultPos, defaultPos), rest671)
-+end
-+| ( 246, ( rest671)) => let val result = MlyValue.popScope (
-+TypeDefs.popScope())
-+ in ( LrTable.NT 62, ( result, defaultPos, defaultPos), rest671)
-+end
-+| _ => raise (mlyAction i392)
-+end
-+val void = MlyValue.VOID'
-+val extract = fn a => (fn MlyValue.translationUnit x => x
-+| _ => let exception ParseInternal
-+ in raise ParseInternal end) a
-+end
-+end
-+structure Tokens : C_TOKENS =
-+struct
-+type svalue = ParserData.svalue
-+type ('a,'b) token = ('a,'b) Token.token
-+fun EOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 0,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun COLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 1,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun SEMICOLON (p1,p2) = Token.TOKEN (ParserData.LrTable.T 2,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 3,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun RPAREN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 4,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LCURLY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 5,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun RCURLY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 6,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 7,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun RBRACE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 8,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DOT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 9,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun COMMA (p1,p2) = Token.TOKEN (ParserData.LrTable.T 10,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun QUESTION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 11,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun PERCENT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 12,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun AMP (p1,p2) = Token.TOKEN (ParserData.LrTable.T 13,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun BAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 14,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun TILDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 15,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DIVIDE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 16,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun PLUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 17,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun MINUS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 18,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun HAT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 19,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun BANG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 20,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun TIMES (p1,p2) = Token.TOKEN (ParserData.LrTable.T 21,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun INC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 22,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DEC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 23,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun ARROW (p1,p2) = Token.TOKEN (ParserData.LrTable.T 24,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun ID (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 25,(
-+ParserData.MlyValue.ID i,p1,p2))
-+fun EQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 26,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun PLUSEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 27,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun MINUSEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 28,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun XOREQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 29,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun MODEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 30,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun TIMESEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 31,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DIVEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 32,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun OREQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 33,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun ANDEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 34,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LSHIFTEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 35,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun RSHIFTEQUALS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 36,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LTE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 37,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun GTE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 38,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 39,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun GT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 40,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun EQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 41,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun NEQ (p1,p2) = Token.TOKEN (ParserData.LrTable.T 42,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun OR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 43,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun AND (p1,p2) = Token.TOKEN (ParserData.LrTable.T 44,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 45,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun RSHIFT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 46,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DECNUM (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 47,(
-+ParserData.MlyValue.DECNUM i,p1,p2))
-+fun REALNUM (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 48,(
-+ParserData.MlyValue.REALNUM i,p1,p2))
-+fun STRING (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 49,(
-+ParserData.MlyValue.STRING i,p1,p2))
-+fun CCONST (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 50,(
-+ParserData.MlyValue.CCONST i,p1,p2))
-+fun EXTERN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 51,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun AUTO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 52,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun STATIC (p1,p2) = Token.TOKEN (ParserData.LrTable.T 53,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun REGISTER (p1,p2) = Token.TOKEN (ParserData.LrTable.T 54,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun CONST (p1,p2) = Token.TOKEN (ParserData.LrTable.T 55,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun VOLATILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 56,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun IF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 57,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun THEN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 58,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun ELSE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 59,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun FOR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 60,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 61,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun SWITCH (p1,p2) = Token.TOKEN (ParserData.LrTable.T 62,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun CASE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 63,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DEFAULT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 64,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun WHILE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 65,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun RETURN (p1,p2) = Token.TOKEN (ParserData.LrTable.T 66,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun BREAK (p1,p2) = Token.TOKEN (ParserData.LrTable.T 67,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun CONTINUE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 68,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun GOTO (p1,p2) = Token.TOKEN (ParserData.LrTable.T 69,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun CHAR (p1,p2) = Token.TOKEN (ParserData.LrTable.T 70,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun DOUBLE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 71,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun ENUM (p1,p2) = Token.TOKEN (ParserData.LrTable.T 72,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun FLOAT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 73,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun INT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 74,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun LONG (p1,p2) = Token.TOKEN (ParserData.LrTable.T 75,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun SHORT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 76,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun FRACTIONAL (p1,p2) = Token.TOKEN (ParserData.LrTable.T 77,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun SATURATE (p1,p2) = Token.TOKEN (ParserData.LrTable.T 78,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun STRUCT (p1,p2) = Token.TOKEN (ParserData.LrTable.T 79,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun UNION (p1,p2) = Token.TOKEN (ParserData.LrTable.T 80,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun UNSIGNED (p1,p2) = Token.TOKEN (ParserData.LrTable.T 81,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun SIGNED (p1,p2) = Token.TOKEN (ParserData.LrTable.T 82,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun VOID (p1,p2) = Token.TOKEN (ParserData.LrTable.T 83,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun SIZEOF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 84,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun TYPEDEF (p1,p2) = Token.TOKEN (ParserData.LrTable.T 85,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun UNARY (p1,p2) = Token.TOKEN (ParserData.LrTable.T 86,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun ELIPSIS (p1,p2) = Token.TOKEN (ParserData.LrTable.T 87,(
-+ParserData.MlyValue.VOID',p1,p2))
-+fun TYPE_NAME (i,p1,p2) = Token.TOKEN (ParserData.LrTable.T 88,(
-+ParserData.MlyValue.TYPE_NAME i,p1,p2))
-+end
-+end
+ (srcMap):arg) =>
+ case (i392,stack)
+ of ( 0, ( ( _, ( MlyValue.tu tu, tu1left, tu1right)) :: rest671)) =>
diff -Naur ckit/src/parser/grammar/c.lex.sml ckit-mlton/src/parser/grammar/c.lex.sml
---- ckit/src/parser/grammar/c.lex.sml 1969-12-31 19:00:00.000000000 -0500
-+++ ckit-mlton/src/parser/grammar/c.lex.sml 2005-11-19 13:53:36.000000000 -0500
-@@ -0,0 +1,1053 @@
+--- ckit/src/parser/grammar/c.lex.sml 2005-11-19 14:44:17.000000000 -0500
++++ ckit-mlton/src/parser/grammar/c.lex.sml 2005-11-19 14:44:17.000000000 -0500
+@@ -1,3 +1,4 @@
+type int = Int.int
-+functor CLexFun(structure Tokens : C_TOKENS
-+ structure TokTable : TOKENTABLE
-+ sharing TokTable.Tokens = Tokens)=
-+ struct
-+ structure UserDeclarations =
-+ struct
-+(* Copyright (c) 1998 by Lucent Technologies *)
-+
-+(*
-+ * The following replacement for c.lex should give correct (ANSI)
-+ * In particular, we don't allow
-+ *
-+ * char *t = "abd
-+ * lkj";
-+ *
-+ * GCC accepts this, but SGI cc does not. This program is not ANSI
-+ * compliant.
-+ *)
-+
-+type svalue = Tokens.svalue
-+type pos = int
-+type lexresult = (svalue,pos) Tokens.token
-+type errWarn = {err: pos*pos*string->unit, warn: pos*pos*string->unit}
-+type lexarg = {comLevel : int ref,
-+ sourceMap : SourceMap.sourcemap,
-+ charlist : string list ref,
-+ stringstart : int ref, (* start of current string or comment*)
-+ errWarn: errWarn}
-+
-+type arg = lexarg
-+type ('a,'b) token = ('a,'b) Tokens.token
-+
-+fun ordof (s, i) = Char.ord (String.sub (s, i))
-+fun dec (iRef : int ref) = iRef := (!iRef) - 1
-+fun inc (iRef : int ref) = iRef := (!iRef) + 1
-+fun chr i = String.str(Char.chr i)
-+fun ord s = Char.ord(String.sub(s, 0))
-+fun explode s = CharVector.foldr (fn (c, l) => str c :: l) [] s
-+fun implode strList = String.concat strList
-+fun hd [] = (print "c.lex: hd of empty\n";
-+ raise Empty)
-+ | hd (h :: l) = h
-+
-+val eof = fn ({comLevel,errWarn,sourceMap,stringstart,charlist}:lexarg) =>
-+ let val pos = Int.max(!stringstart+2, SourceMap.currPos sourceMap)
-+ in if !comLevel>0 then (#err errWarn) (!stringstart,pos, "unclosed comment" )
-+ else ();
-+ Tokens.EOF(pos,pos)
-+ end
-+fun addString (charlist,s:string) = charlist := s :: (!charlist)
-+fun makeString charlist = (implode(rev(!charlist)) before charlist := nil)
-+
-+fun mkHexInt (s,a,b,errWarn:errWarn)=((case (StringCvt.scanString (LargeInt.scan StringCvt.HEX) s) of
-+ SOME i => i
-+ | _ => ((#err errWarn)(a,b,"trouble in parsing int");Int.toLarge(0)))
-+ handle OverFlow => ((#err errWarn)(a,b,"large int const");Int.toLarge(0)))
-+
-+fun mkHexChar (args as (s, a, b, errWarn:errWarn)) : int (* returns a character sized integer *) =
-+ let val i = mkHexInt args
-+ in
-+ if (i>255) then
-+ ((#warn errWarn) (a,b,"overflow in hexadecimal escape sequence");
-+ IntInf.toInt(i mod 256))
-+ else
-+ IntInf.toInt i
-+ end
-+
-+fun mkOctInt (s,a,b,errWarn:errWarn)
-+ = ((case (StringCvt.scanString (LargeInt.scan StringCvt.OCT) s) of
-+ SOME i => i
-+ | _ => ((#err errWarn)(a,b,"trouble in parsing int");Int.toLarge(0)))
-+ handle OverFlow => ((#err errWarn)(a,b,"large int const");Int.toLarge(0)))
-+
-+
-+fun mkOctChar (args as (s, a, b, errWarn:errWarn)) (* returns a character sized integer *) =
-+ let val i = mkOctInt args
-+ in
-+ if (i>255) then
-+ ((#warn errWarn) (a,b,"overflow in octal escape sequence");
-+ IntInf.toInt(i mod 256))
-+ else
-+ IntInf.toInt i
-+ end
-+
-+fun mkInt (s,a,b,errWarn:errWarn) = ((case (StringCvt.scanString (LargeInt.scan StringCvt.DEC) s) of
-+ SOME i => i
-+ | _ => ((#err errWarn)(a,b,"trouble in parsing int");Int.toLarge(0)))
-+ handle OverFlow => ((#err errWarn)(a,b,"large int const");Int.toLarge(0)))
-+
-+fun mkRealNum (s,a,b,errWarn:errWarn) = ((case (StringCvt.scanString Real.scan s) of
-+ SOME r => r
-+ | _ => ((#err errWarn)(a,b,"trouble in parsing real");0.0))
-+ handle OverFlow => ((#err errWarn)(a,b,"large real const"); 0.0))
-+
-+val backslasha = 7
-+
-+fun special_char(c,fst,last,errWarn:errWarn) =
-+ (case c of
-+ "\\a" => 7
-+ | "\\b" => 8
-+ | "\\f" => 12
-+ | "\\n" => 10
-+ | "\\r" => 13
-+ | "\\t" => 9
-+ | "\\v" => 11
-+ | _ => ordof(c,1)
-+ (* strictly speaking, should only handle
-+ \?, \\, \", \', but it is common
-+ to simply ignore slash, and just use next char *)
-+ )
-+
-+
-+(* Notes on lexer states:
-+ INITIAL -- predefined start state and the default token state
-+ S -- inside a string (entered from INTITAL with ")
-+ C -- inside a comment (entered from INITIAL with /* )
-+ *)
-+
-+
-+end (* end of user routines *)
-+exception LexError (* raised if illegal leaf action tried *)
-+structure Internal =
-+ struct
-+
-+datatype yyfinstate = N of int
-+type statedata = {fin : yyfinstate list, trans: string}
-+(* transition & final state table *)
-+val tab = let
-+val s = [
-+ (0,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (1,
-+"\007\007\007\007\007\007\007\007\007\095\097\007\095\007\007\007\
-+\\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
-+\\095\093\092\007\007\090\087\073\072\071\069\066\065\061\057\054\
-+\\044\033\033\033\033\033\033\033\033\033\032\031\027\025\021\020\
-+\\007\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\019\007\018\016\014\
-+\\007\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\013\010\009\008\007\
-+\\007"
-+),
-+ (2,
-+"\007\007\007\007\007\007\007\007\007\101\097\007\101\007\007\007\
-+\\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\007\
-+\\101\093\092\098\007\090\087\073\072\071\069\066\065\061\057\054\
-+\\044\033\033\033\033\033\033\033\033\033\032\031\027\025\021\020\
-+\\007\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\019\007\018\016\014\
-+\\007\014\014\014\014\014\014\014\014\014\014\014\014\014\014\014\
-+\\014\014\014\014\014\014\014\014\014\014\014\013\010\009\008\007\
-+\\007"
-+),
-+ (3,
-+"\103\103\103\103\103\103\103\103\103\106\097\103\106\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\106\103\103\103\103\103\103\103\103\103\104\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103"
-+),
-+ (4,
-+"\103\103\103\103\103\103\103\103\103\108\097\103\108\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\108\103\103\107\103\103\103\103\103\103\104\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\103\
-+\\103"
-+),
-+ (5,
-+"\109\109\109\109\109\109\109\109\109\109\122\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\121\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\110\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109"
-+),
-+ (10,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\011\000\000\000\
-+\\000"
-+),
-+ (14,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\015\015\015\015\015\015\015\015\015\015\000\000\000\000\000\000\
-+\\000\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
-+\\015\015\015\015\015\015\015\015\015\015\015\000\000\000\000\015\
-+\\000\015\015\015\015\015\015\015\015\015\015\015\015\015\015\015\
-+\\015\015\015\015\015\015\015\015\015\015\015\000\000\000\000\000\
-+\\000"
-+),
-+ (16,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (21,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\024\022\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (22,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\023\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (25,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\026\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (27,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\029\028\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (29,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\030\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (33,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\042\000\
-+\\041\041\041\041\041\041\041\041\041\041\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\036\000\000\000\
-+\\000\000\000\000\000\034\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\036\000\000\000\
-+\\000\000\000\000\000\034\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (34,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\035\000\000\000\
-+\\000\000\000\000\000\035\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\035\000\000\000\
-+\\000\000\000\000\000\035\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (37,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\040\000\040\000\000\
-+\\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (38,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (40,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\038\038\038\038\038\038\038\038\038\038\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (42,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\043\043\043\043\043\043\043\043\043\043\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (43,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\043\043\043\043\043\043\043\043\043\043\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (44,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\042\000\
-+\\050\050\050\050\050\050\050\050\049\049\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\036\000\000\000\
-+\\000\000\000\000\000\034\000\000\045\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\036\000\000\000\
-+\\000\000\000\000\000\034\000\000\045\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (45,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\046\046\046\046\046\046\046\046\046\046\000\000\000\000\000\000\
-+\\000\046\046\046\046\046\046\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\046\046\046\046\046\046\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (46,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\046\046\046\046\046\046\046\046\046\046\000\000\000\000\000\000\
-+\\000\046\046\046\046\046\046\000\000\000\000\000\047\000\000\000\
-+\\000\000\000\000\000\047\000\000\000\000\000\000\000\000\000\000\
-+\\000\046\046\046\046\046\046\000\000\000\000\000\047\000\000\000\
-+\\000\000\000\000\000\047\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (47,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\048\000\000\000\
-+\\000\000\000\000\000\048\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\048\000\000\000\
-+\\000\000\000\000\000\048\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (49,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\042\000\
-+\\049\049\049\049\049\049\049\049\049\049\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (50,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\042\000\
-+\\050\050\050\050\050\050\050\050\049\049\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\053\000\000\000\
-+\\000\000\000\000\000\051\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\053\000\000\000\
-+\\000\000\000\000\000\051\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (51,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\052\000\000\000\
-+\\000\000\000\000\000\052\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\052\000\000\000\
-+\\000\000\000\000\000\052\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (54,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\056\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\055\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (57,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\059\000\
-+\\058\058\058\058\058\058\058\058\058\058\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (58,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\058\058\058\058\058\058\058\058\058\058\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\037\000\000\000\000\000\000\039\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (59,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\060\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (61,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\064\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\063\062\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (66,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\068\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\067\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (69,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\070\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (73,
-+"\074\074\074\074\074\074\074\074\074\074\000\074\074\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\076\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\
-+\\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\074\
-+\\074"
-+),
-+ (74,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\075\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (76,
-+"\077\077\077\077\077\077\077\077\077\077\000\077\077\077\077\077\
-+\\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\
-+\\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\
-+\\082\082\082\082\082\082\082\082\077\077\077\077\077\077\077\077\
-+\\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\
-+\\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\
-+\\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\077\
-+\\077\077\077\077\077\077\077\077\079\077\077\077\077\077\077\077\
-+\\077"
-+),
-+ (77,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\078\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (79,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\078\000\000\000\000\000\000\000\000\
-+\\080\080\080\080\080\080\080\080\080\080\000\000\000\000\000\000\
-+\\000\080\080\080\080\080\080\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\080\080\080\080\080\080\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (80,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\081\000\000\000\000\000\000\000\000\
-+\\080\080\080\080\080\080\080\080\080\080\000\000\000\000\000\000\
-+\\000\080\080\080\080\080\080\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\080\080\080\080\080\080\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (82,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\086\000\000\000\000\000\000\000\000\
-+\\083\083\083\083\083\083\083\083\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (83,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\085\000\000\000\000\000\000\000\000\
-+\\084\084\084\084\084\084\084\084\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (84,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\085\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (87,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\089\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\088\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (90,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\091\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (93,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\094\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (95,
-+"\000\000\000\000\000\000\000\000\000\096\000\000\096\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\096\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (98,
-+"\099\099\099\099\099\099\099\099\099\099\100\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\099\
-+\\099"
-+),
-+ (101,
-+"\000\000\000\000\000\000\000\000\000\102\000\000\102\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\102\000\000\099\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (104,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\105\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (109,
-+"\109\109\109\109\109\109\109\109\109\109\000\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\000\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\000\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\109\
-+\\109"
-+),
-+ (110,
-+"\111\111\111\111\111\111\111\111\111\111\120\111\111\111\111\111\
-+\\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\
-+\\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\
-+\\119\116\116\116\116\116\116\116\111\111\111\111\111\111\111\111\
-+\\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\
-+\\111\111\111\111\111\111\111\111\111\111\111\111\111\111\114\111\
-+\\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\111\
-+\\111\111\111\111\111\111\111\111\112\111\111\111\111\111\111\111\
-+\\111"
-+),
-+ (112,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\113\113\113\113\113\113\113\113\113\113\000\000\000\000\000\000\
-+\\000\113\113\113\113\113\113\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\113\113\113\113\113\113\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (114,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\115\115\115\115\115\115\115\115\115\115\115\115\115\115\115\115\
-+\\115\115\115\115\115\115\115\115\115\115\115\115\115\115\115\115\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (116,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\117\117\117\117\117\117\117\117\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+ (117,
-+"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\118\118\118\118\118\118\118\118\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
-+\\000"
-+),
-+(0, "")]
-+fun f x = x
-+val s = map f (rev (tl (rev s)))
-+exception LexHackingError
+ functor CLexFun(structure Tokens : C_TOKENS
+ structure TokTable : TOKENTABLE
+ sharing TokTable.Tokens = Tokens)=
+@@ -758,7 +759,7 @@
+ fun f x = x
+ val s = map f (rev (tl (rev s)))
+ exception LexHackingError
+-fun look ((j,x)::r, i: int) = if i = j then x else look(r, i)
+fun look ((j,x)::r, i) = if i = j then x else look(r, i)
-+ | look ([], i) = raise LexHackingError
-+fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)}
-+in Vector.fromList(map g
-+[{fin = [], trans = 0},
-+{fin = [(N 10)], trans = 1},
-+{fin = [(N 10)], trans = 2},
-+{fin = [(N 10)], trans = 3},
-+{fin = [(N 10)], trans = 4},
-+{fin = [(N 26)], trans = 5},
-+{fin = [(N 26)], trans = 5},
-+{fin = [(N 227)], trans = 0},
-+{fin = [(N 96),(N 227)], trans = 0},
-+{fin = [(N 65),(N 227)], trans = 0},
-+{fin = [(N 100),(N 227)], trans = 10},
-+{fin = [(N 157)], trans = 0},
-+{fin = [(N 136)], trans = 0},
-+{fin = [(N 63),(N 227)], trans = 0},
-+{fin = [(N 225),(N 227)], trans = 14},
-+{fin = [(N 225)], trans = 14},
-+{fin = [(N 79),(N 227)], trans = 16},
-+{fin = [(N 124)], trans = 0},
-+{fin = [(N 61),(N 227)], trans = 0},
-+{fin = [(N 59),(N 227)], trans = 0},
-+{fin = [(N 98),(N 227)], trans = 0},
-+{fin = [(N 151),(N 227)], trans = 21},
-+{fin = [(N 166)], trans = 22},
-+{fin = [(N 147)], trans = 0},
-+{fin = [(N 110)], trans = 0},
-+{fin = [(N 115),(N 227)], trans = 25},
-+{fin = [(N 113)], trans = 0},
-+{fin = [(N 149),(N 227)], trans = 27},
-+{fin = [(N 107)], trans = 0},
-+{fin = [(N 163)], trans = 29},
-+{fin = [(N 143)], trans = 0},
-+{fin = [(N 53),(N 227)], trans = 0},
-+{fin = [(N 51),(N 227)], trans = 0},
-+{fin = [(N 185),(N 199),(N 227)], trans = 33},
-+{fin = [(N 185)], trans = 34},
-+{fin = [(N 185)], trans = 0},
-+{fin = [(N 185),(N 199)], trans = 34},
-+{fin = [], trans = 37},
-+{fin = [(N 199)], trans = 38},
-+{fin = [(N 199)], trans = 0},
-+{fin = [], trans = 40},
-+{fin = [(N 185),(N 199)], trans = 33},
-+{fin = [], trans = 42},
-+{fin = [(N 199)], trans = 43},
-+{fin = [(N 185),(N 199),(N 227)], trans = 44},
-+{fin = [], trans = 45},
-+{fin = [(N 179)], trans = 46},
-+{fin = [(N 179)], trans = 47},
-+{fin = [(N 179)], trans = 0},
-+{fin = [(N 199)], trans = 49},
-+{fin = [(N 172),(N 199)], trans = 50},
-+{fin = [(N 172)], trans = 51},
-+{fin = [(N 172)], trans = 0},
-+{fin = [(N 172),(N 199)], trans = 51},
-+{fin = [(N 94),(N 227)], trans = 54},
-+{fin = [(N 133)], trans = 0},
-+{fin = [(N 13)], trans = 0},
-+{fin = [(N 67),(N 227)], trans = 57},
-+{fin = [(N 199)], trans = 58},
-+{fin = [], trans = 59},
-+{fin = [(N 71)], trans = 0},
-+{fin = [(N 83),(N 227)], trans = 61},
-+{fin = [(N 92)], trans = 0},
-+{fin = [(N 121)], trans = 0},
-+{fin = [(N 89)], trans = 0},
-+{fin = [(N 73),(N 227)], trans = 0},
-+{fin = [(N 81),(N 227)], trans = 66},
-+{fin = [(N 118)], trans = 0},
-+{fin = [(N 86)], trans = 0},
-+{fin = [(N 75),(N 227)], trans = 69},
-+{fin = [(N 130)], trans = 0},
-+{fin = [(N 57),(N 227)], trans = 0},
-+{fin = [(N 55),(N 227)], trans = 0},
-+{fin = [(N 227)], trans = 73},
-+{fin = [], trans = 74},
-+{fin = [(N 217)], trans = 0},
-+{fin = [], trans = 76},
-+{fin = [], trans = 77},
-+{fin = [(N 222)], trans = 0},
-+{fin = [], trans = 79},
-+{fin = [], trans = 80},
-+{fin = [(N 213)], trans = 0},
-+{fin = [], trans = 82},
-+{fin = [], trans = 83},
-+{fin = [], trans = 84},
-+{fin = [(N 206)], trans = 0},
-+{fin = [(N 206),(N 222)], trans = 0},
-+{fin = [(N 102),(N 227)], trans = 87},
-+{fin = [(N 139)], trans = 0},
-+{fin = [(N 160)], trans = 0},
-+{fin = [(N 104),(N 227)], trans = 90},
-+{fin = [(N 127)], trans = 0},
-+{fin = [(N 20),(N 227)], trans = 0},
-+{fin = [(N 77),(N 227)], trans = 93},
-+{fin = [(N 154)], trans = 0},
-+{fin = [(N 10),(N 227)], trans = 95},
-+{fin = [(N 10)], trans = 95},
-+{fin = [(N 7)], trans = 0},
-+{fin = [(N 227)], trans = 98},
-+{fin = [], trans = 98},
-+{fin = [(N 5)], trans = 0},
-+{fin = [(N 10),(N 227)], trans = 101},
-+{fin = [(N 10)], trans = 101},
-+{fin = [(N 18)], trans = 0},
-+{fin = [(N 18)], trans = 104},
-+{fin = [(N 16)], trans = 0},
-+{fin = [(N 10),(N 18)], trans = 95},
-+{fin = [(N 18)], trans = 98},
-+{fin = [(N 10),(N 18)], trans = 101},
-+{fin = [(N 26)], trans = 109},
-+{fin = [], trans = 110},
-+{fin = [(N 49)], trans = 0},
-+{fin = [(N 49)], trans = 112},
-+{fin = [(N 42)], trans = 112},
-+{fin = [(N 49)], trans = 114},
-+{fin = [(N 46)], trans = 0},
-+{fin = [(N 49)], trans = 116},
-+{fin = [], trans = 117},
-+{fin = [(N 37)], trans = 0},
-+{fin = [(N 32),(N 49)], trans = 116},
-+{fin = [(N 29)], trans = 0},
-+{fin = [(N 22)], trans = 0},
-+{fin = [(N 24)], trans = 0}])
-+end
-+structure StartStates =
-+ struct
-+ datatype yystartstate = STARTSTATE of int
-+
-+(* start state definitions *)
-+
-+val C = STARTSTATE 3;
-+val INITIAL = STARTSTATE 1;
-+val S = STARTSTATE 5;
-+
-+end
-+type result = UserDeclarations.lexresult
-+ exception LexerError (* raised if illegal leaf action tried *)
-+end
-+
+ | look ([], i) = raise LexHackingError
+ fun g {fin=x, trans=i} = {fin=x, trans=look(s,i)}
+ in Vector.fromList(map g
+@@ -901,28 +902,29 @@
+ exception LexerError (* raised if illegal leaf action tried *)
+ end
+
+-fun makeLexer yyinput =
+-let val yygone0=1
+type int = Int.int
+fun makeLexer (yyinput: int -> string) =
+let val yygone0:int= ~1
-+ val yyb = ref "\n" (* buffer *)
+ val yyb = ref "\n" (* buffer *)
+- val yybl = ref 1 (*buffer length *)
+- val yybufpos = ref 1 (* location of next character to use *)
+- val yygone = ref yygone0 (* position in file of beginning of buffer *)
+ val yybl: int ref = ref 1 (*buffer length *)
+ val yybufpos: int ref = ref 1 (* location of next character to use *)
+ val yygone: int ref = ref yygone0 (* position in file of beginning of buffer *)
-+ val yydone = ref false (* eof found yet? *)
+ val yydone = ref false (* eof found yet? *)
+- val yybegin = ref 1 (*Current 'start state' for lexer *)
+ val yybegin: int ref = ref 1 (*Current 'start state' for lexer *)
-+
-+ val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
-+ yybegin := x
-+
-+fun lex (yyarg as ({comLevel,errWarn,sourceMap,charlist,stringstart})) =
-+let fun continue() : Internal.result =
+
+ val YYBEGIN = fn (Internal.StartStates.STARTSTATE x) =>
+ yybegin := x
+
+ fun lex (yyarg as ({comLevel,errWarn,sourceMap,charlist,stringstart})) =
+ let fun continue() : Internal.result =
+- let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0) =
+- let fun action (i,nil) = raise LexError
+ let fun scan (s,AcceptingLeaves : Internal.yyfinstate list list,l,i0: int) =
+ let fun action (i: int,nil) = raise LexError
-+ | action (i,nil::l) = action (i-1,l)
-+ | action (i,(node::acts)::l) =
-+ case node of
-+ Internal.N yyk =>
+ | action (i,nil::l) = action (i-1,l)
+ | action (i,(node::acts)::l) =
+ case node of
+ Internal.N yyk =>
+- (let fun yymktext() = substring(!yyb,i0,i-i0)
+- val yypos = i0+ !yygone
+ (let fun yymktext() = String.substring(!yyb,i0,i-i0)
+ val yypos: int = i0+ !yygone
-+ open UserDeclarations Internal.StartStates
-+ in (yybufpos := i; case yyk of
-+
-+ (* Application actions *)
-+
-+ 10 => (continue())
-+| 100 => (Tokens.BAR(yypos,yypos+1))
-+| 102 => (Tokens.AMP(yypos,yypos+1))
-+| 104 => (Tokens.PERCENT(yypos,yypos+1))
-+| 107 => (Tokens.LTE(yypos,yypos+2))
-+| 110 => (Tokens.GTE(yypos,yypos+2))
-+| 113 => (Tokens.EQ(yypos,yypos+2))
-+| 115 => (Tokens.EQUALS(yypos,yypos+1))
-+| 118 => (Tokens.PLUSEQUALS(yypos,yypos+2))
-+| 121 => (Tokens.MINUSEQUALS(yypos,yypos+2))
-+| 124 => (Tokens.XOREQUALS(yypos,yypos+2))
-+| 127 => (Tokens.MODEQUALS(yypos,yypos+2))
-+| 13 => (YYBEGIN C; continue())
-+| 130 => (Tokens.TIMESEQUALS(yypos,yypos+2))
-+| 133 => (Tokens.DIVEQUALS(yypos,yypos+2))
-+| 136 => (Tokens.OREQUALS(yypos,yypos+2))
-+| 139 => (Tokens.ANDEQUALS(yypos,yypos+2))
-+| 143 => (Tokens.LSHIFTEQUALS(yypos,yypos+3))
-+| 147 => (Tokens.RSHIFTEQUALS(yypos,yypos+3))
-+| 149 => (Tokens.LT(yypos,yypos+1))
-+| 151 => (Tokens.GT(yypos,yypos+1))
-+| 154 => (Tokens.NEQ(yypos,yypos+2))
-+| 157 => (Tokens.OR(yypos,yypos+2))
-+| 16 => (YYBEGIN INITIAL; continue())
-+| 160 => (Tokens.AND(yypos,yypos+2))
-+| 163 => (Tokens.LSHIFT(yypos,yypos+2))
-+| 166 => (Tokens.RSHIFT(yypos,yypos+2))
-+| 172 => let val yytext=yymktext() in Tokens.DECNUM(mkOctInt(yytext,yypos,yypos+size(yytext),errWarn),yypos, yypos+size(yytext)) end
-+| 179 => let val yytext=yymktext() in Tokens.DECNUM(mkHexInt(yytext,yypos,yypos+size(yytext),errWarn),yypos, yypos+size(yytext)) end
-+| 18 => (continue())
-+| 185 => let val yytext=yymktext() in Tokens.DECNUM(mkInt (yytext,yypos,yypos+size(yytext),errWarn), yypos,yypos+size(yytext)) end
-+| 199 => let val yytext=yymktext() in Tokens.REALNUM(mkRealNum(yytext,yypos,yypos+size(yytext),errWarn), yypos, yypos
-++ size(yytext)) end
-+| 20 => (charlist := [""]; stringstart := yypos; YYBEGIN S; continue())
-+| 206 => let val yytext=yymktext() in let val s = substring(yytext, 2, size(yytext)-3)
-+ in Tokens.CCONST(IntInf.fromInt (mkOctChar(s,yypos,yypos+size(yytext),errWarn)),
-+ yypos,
-+ yypos+size(yytext))
-+ end end
-+| 213 => let val yytext=yymktext() in let val s = substring(yytext, 3, size(yytext)-4)
-+ in Tokens.CCONST(IntInf.fromInt (mkHexChar(s,yypos,yypos+size(yytext),errWarn)),
-+ yypos,
-+ yypos+size(yytext))
-+ end end
-+| 217 => let val yytext=yymktext() in let val cval = ordof(yytext,1)
-+ in Tokens.CCONST(Int.toLarge cval,yypos,yypos+size(yytext))
-+ end end
-+| 22 => (YYBEGIN INITIAL;Tokens.STRING(makeString charlist,!stringstart,yypos+1))
-+| 222 => let val yytext=yymktext() in Tokens.CCONST(IntInf.fromInt(special_char(substring(yytext,1,size(yytext)-2),yypos,yypos+size(yytext),errWarn)), yypos, yypos+size(yytext)) end
-+| 225 => let val yytext=yymktext() in TokTable.checkToken(yytext,yypos) end
-+| 227 => (continue())
-+| 24 => ((#err errWarn) (!stringstart,yypos,"unclosed string");
-+ SourceMap.newline sourceMap yypos;
-+ YYBEGIN INITIAL; Tokens.STRING(makeString charlist,!stringstart,yypos))
-+| 26 => let val yytext=yymktext() in addString(charlist,yytext); continue() end
-+| 29 => (SourceMap.newline sourceMap yypos; continue())
-+| 32 => (addString(charlist,chr 0);continue())
-+| 37 => let val yytext=yymktext() in addString(charlist, chr(mkOctChar(substring(yytext, 1, size(yytext)-1), yypos, yypos+size(yytext), errWarn))); continue() end
-+| 42 => let val yytext=yymktext() in addString(charlist, chr(mkHexChar(substring(yytext, 2, size(yytext)-2), yypos, yypos+size(yytext), errWarn))); continue() end
-+| 46 => let val yytext=yymktext() in addString(charlist,chr(ordof(yytext,2)-ord("@"))); continue() end
-+| 49 => let val yytext=yymktext() in addString(charlist, chr(special_char(yytext, yypos, yypos+size(yytext), errWarn))); continue() end
-+| 5 => let val yytext=yymktext() in SourceMap.parseDirective sourceMap
-+ (yypos,yytext); continue() end
-+| 51 => (Tokens.COLON(yypos,yypos+1))
-+| 53 => (Tokens.SEMICOLON(yypos,yypos+1))
-+| 55 => (Tokens.LPAREN(yypos,yypos+1))
-+| 57 => (Tokens.RPAREN(yypos,yypos+1))
-+| 59 => (Tokens.LBRACE(yypos,yypos+1))
-+| 61 => (Tokens.RBRACE(yypos,yypos+1))
-+| 63 => (Tokens.LCURLY(yypos,yypos+1))
-+| 65 => (Tokens.RCURLY(yypos,yypos+1))
-+| 67 => (Tokens.DOT(yypos,yypos+1))
-+| 7 => (SourceMap.newline sourceMap yypos; continue())
-+| 71 => (Tokens.ELIPSIS(yypos,yypos+3))
-+| 73 => (Tokens.COMMA(yypos,yypos+1))
-+| 75 => (Tokens.TIMES(yypos,yypos+1))
-+| 77 => (Tokens.BANG(yypos,yypos+1))
-+| 79 => (Tokens.HAT(yypos,yypos+1))
-+| 81 => (Tokens.PLUS(yypos,yypos+1))
-+| 83 => (Tokens.MINUS(yypos,yypos+1))
-+| 86 => (Tokens.INC(yypos,yypos+2))
-+| 89 => (Tokens.DEC(yypos,yypos+2))
-+| 92 => (Tokens.ARROW(yypos,yypos+1))
-+| 94 => (Tokens.DIVIDE(yypos,yypos+1))
-+| 96 => (Tokens.TILDE(yypos,yypos+1))
-+| 98 => (Tokens.QUESTION(yypos,yypos+1))
-+| _ => raise Internal.LexerError
-+
-+ ) end )
-+
+ open UserDeclarations Internal.StartStates
+ in (yybufpos := i; case yyk of
+
+@@ -1018,30 +1020,30 @@
+
+ ) end )
+
+- val {fin,trans} = Unsafe.Vector.sub(Internal.tab, s)
+ val {fin,trans} = Vector.sub (Internal.tab, s)
-+ val NewAcceptingLeaves = fin::AcceptingLeaves
-+ in if l = !yybl then
-+ if trans = #trans(Vector.sub(Internal.tab,0))
-+ then action(l,NewAcceptingLeaves
-+) else let val newchars= if !yydone then "" else yyinput 1024
+ val NewAcceptingLeaves = fin::AcceptingLeaves
+ in if l = !yybl then
+ if trans = #trans(Vector.sub(Internal.tab,0))
+ then action(l,NewAcceptingLeaves
+ ) else let val newchars= if !yydone then "" else yyinput 1024
+- in if (size newchars)=0
+ in if (String.size newchars)=0
-+ then (yydone := true;
-+ if (l=i0) then UserDeclarations.eof yyarg
-+ else action(l,NewAcceptingLeaves))
-+ else (if i0=l then yyb := newchars
+ then (yydone := true;
+ if (l=i0) then UserDeclarations.eof yyarg
+ else action(l,NewAcceptingLeaves))
+ else (if i0=l then yyb := newchars
+- else yyb := substring(!yyb,i0,l-i0)^newchars;
+ else yyb := String.substring(!yyb,i0,l-i0)^newchars;
-+ yygone := !yygone+i0;
+ yygone := !yygone+i0;
+- yybl := size (!yyb);
+ yybl := String.size (!yyb);
-+ scan (s,AcceptingLeaves,l-i0,0))
-+ end
+ scan (s,AcceptingLeaves,l-i0,0))
+ end
+- else let val NewChar = Char.ord(Unsafe.CharVector.sub(!yyb,l))
+ else let val NewChar = Char.ord (CharVector.sub (!yyb,l))
-+ val NewChar = if NewChar<128 then NewChar else 128
+ val NewChar = if NewChar<128 then NewChar else 128
+- val NewState = Char.ord(Unsafe.CharVector.sub(trans,NewChar))
+ val NewState = Char.ord (CharVector.sub (trans,NewChar))
-+ in if NewState=0 then action(l,NewAcceptingLeaves)
-+ else scan(NewState,NewAcceptingLeaves,l+1,i0)
-+ end
-+ end
+ in if NewState=0 then action(l,NewAcceptingLeaves)
+ else scan(NewState,NewAcceptingLeaves,l+1,i0)
+ end
+ end
+- val start= if substring(!yyb,!yybufpos-1,1)="\n"
+ val start= if String.substring(!yyb,!yybufpos-1,1)="\n"
-+then !yybegin+1 else !yybegin
-+ in scan(start,nil,!yybufpos,!yybufpos)
-+ end
-+in continue end
-+ in lex
-+ end
-+end
+ then !yybegin+1 else !yybegin
+ in scan(start,nil,!yybufpos,!yybufpos)
+ end
diff -Naur ckit/src/parser/parse-tree-sig.sml ckit-mlton/src/parser/parse-tree-sig.sml
--- ckit/src/parser/parse-tree-sig.sml 2000-04-05 14:35:01.000000000 -0400
+++ ckit-mlton/src/parser/parse-tree-sig.sml 2005-08-17 19:41:36.000000000 -0400
Modified: mlton/trunk/lib/ckit-lib/ckit.tgz
===================================================================
(Binary files differ)
Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.patch
===================================================================
--- mlton/trunk/lib/smlnj-lib/smlnj-lib.patch 2005-11-19 19:46:26 UTC (rev 4245)
+++ mlton/trunk/lib/smlnj-lib/smlnj-lib.patch 2005-11-19 20:10:35 UTC (rev 4246)
@@ -1,6 +1,6 @@
diff -Naur smlnj-lib/Controls/controls-lib.mlb smlnj-lib-mlton/Controls/controls-lib.mlb
--- smlnj-lib/Controls/controls-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Controls/controls-lib.mlb 2005-11-19 13:58:31.000000000 -0500
++++ smlnj-lib-mlton/Controls/controls-lib.mlb 2005-11-19 14:44:42.000000000 -0500
@@ -0,0 +1,170 @@
+
+ann
@@ -174,7 +174,7 @@
+end
diff -Naur smlnj-lib/HashCons/hash-cons-lib.mlb smlnj-lib-mlton/HashCons/hash-cons-lib.mlb
--- smlnj-lib/HashCons/hash-cons-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb 2005-11-19 13:58:31.000000000 -0500
++++ smlnj-lib-mlton/HashCons/hash-cons-lib.mlb 2005-11-19 14:44:42.000000000 -0500
@@ -0,0 +1,144 @@
+
+ann
@@ -446,263 +446,9 @@
| isNameChar c = (Char.isAlphaNum c)
in
case SS.getc ss
-diff -Naur smlnj-lib/HTML/.#html-elements-fn.sml.1.2 smlnj-lib-mlton/HTML/.#html-elements-fn.sml.1.2
---- smlnj-lib/HTML/.#html-elements-fn.sml.1.2 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/.#html-elements-fn.sml.1.2 2005-08-17 20:13:04.000000000 -0400
-@@ -0,0 +1,250 @@
-+(* html-elements-fn.sml
-+ *
-+ * COPYRIGHT (c) 1996 AT&T REsearch.
-+ *
-+ * This module builds element tags for the lexer.
-+ *)
-+
-+functor HTMLElementsFn (
-+ structure Tokens : HTML_TOKENS
-+ structure Err : HTML_ERROR
-+ structure HTMLAttrs : HTML_ATTRS
-+ ) : sig
-+
-+ structure T : HTML_TOKENS
-+
-+ type pos = int
-+
-+ val startTag : string option
-+ -> (string * pos * pos) -> (T.svalue, pos) T.token option
-+ val endTag : string option
-+ -> (string * pos * pos) -> (T.svalue, pos) T.token option
-+
-+ end = struct
-+
-+ structure T = Tokens
-+ structure A = HTMLAttrs
-+
-+ type pos = int
-+
-+ datatype start_tag
-+ = WAttrs of ((A.attrs * pos * pos) -> (T.svalue, pos) T.token)
-+ | WOAttrs of ((pos * pos) -> (T.svalue, pos) T.token)
-+ datatype end_tag
-+ = End of ((pos * pos) -> (T.svalue, pos) T.token)
-+ | Empty
-+
-+ val tokenData = [
-+ ("A", WAttrs T.START_A, End T.END_A),
-+ ("ADDRESS", WOAttrs T.START_ADDRESS, End T.END_ADDRESS),
-+ ("APPLET", WAttrs T.START_APPLET, End T.END_APPLET),
-+ ("AREA", WAttrs T.TAG_AREA, Empty),
-+ ("B", WOAttrs T.START_B, End T.END_B),
-+ ("BASE", WAttrs T.TAG_BASE, Empty),
-+ ("BASEFONT", WAttrs T.START_BASEFONT, End T.END_BASEFONT),
-+ ("BIG", WOAttrs T.START_BIG, End T.END_BIG),
-+ ("BLOCKQUOTE", WOAttrs T.START_BLOCKQUOTE, End T.END_BLOCKQUOTE),
-+ ("BODY", WAttrs T.START_BODY, End T.END_BODY),
-+ ("BR", WAttrs T.TAG_BR, Empty),
-+ ("CAPTION", WAttrs T.START_CAPTION, End T.END_CAPTION),
-+ ("CENTER", WOAttrs T.START_CENTER, End T.END_CENTER),
-+ ("CITE", WOAttrs T.START_CITE, End T.END_CITE),
-+ ("CODE", WOAttrs T.START_CODE, End T.END_CODE),
-+ ("DD", WOAttrs T.START_DD, End T.END_DD),
-+ ("DFN", WOAttrs T.START_DFN, End T.END_DFN),
-+ ("DIR", WAttrs T.START_DIR, End T.END_DIR),
-+ ("DIV", WAttrs T.START_DIV, End T.END_DIV),
-+ ("DL", WAttrs T.START_DL, End T.END_DL),
-+ ("DT", WOAttrs T.START_DT, End T.END_DT),
-+ ("EM", WOAttrs T.START_EM, End T.END_EM),
-+ ("FONT", WAttrs T.START_FONT, End T.END_FONT),
-+ ("FORM", WAttrs T.START_FORM, End T.END_FORM),
-+ ("H1", WAttrs T.START_H1, End T.END_H1),
-+ ("H2", WAttrs T.START_H2, End T.END_H2),
-+ ("H3", WAttrs T.START_H3, End T.END_H3),
-+ ("H4", WAttrs T.START_H4, End T.END_H4),
-+ ("H5", WAttrs T.START_H5, End T.END_H5),
-+ ("H6", WAttrs T.START_H6, End T.END_H6),
-+ ("HEAD", WOAttrs T.START_HEAD, End T.END_HEAD),
-+ ("HR", WAttrs T.TAG_HR, Empty),
-+ ("HTML", WOAttrs T.START_HTML, End T.END_HTML),
-+ ("I", WOAttrs T.START_I, End T.END_I),
-+ ("IMG", WAttrs T.TAG_IMG, Empty),
-+ ("INPUT", WAttrs T.TAG_INPUT, Empty),
-+ ("ISINDEX", WAttrs T.TAG_ISINDEX, Empty),
-+ ("KBD", WOAttrs T.START_KBD, End T.END_KBD),
-+ ("LI", WAttrs T.START_LI, End T.END_LI),
-+ ("LINK", WAttrs T.TAG_LINK, Empty),
-+ ("MAP", WAttrs T.START_MAP, End T.END_MAP),
-+ ("MENU", WAttrs T.START_MENU, End T.END_MENU),
-+ ("META", WAttrs T.TAG_META, Empty),
-+ ("OL", WAttrs T.START_OL, End T.END_OL),
-+ ("OPTION", WAttrs T.START_OPTION, End T.END_OPTION),
-+ ("P", WAttrs T.START_P, End T.END_P),
-+ ("PARAM", WAttrs T.TAG_PARAM, Empty),
-+ ("PRE", WAttrs T.START_PRE, End T.END_PRE),
-+ ("SAMP", WOAttrs T.START_SAMP, End T.END_SAMP),
-+ ("SCRIPT", WOAttrs T.START_SCRIPT, End T.END_SCRIPT),
-+ ("SELECT", WAttrs T.START_SELECT, End T.END_SELECT),
-+ ("SMALL", WOAttrs T.START_SMALL, End T.END_SMALL),
-+ ("STRIKE", WOAttrs T.START_STRIKE, End T.END_STRIKE),
-+ ("STRONG", WOAttrs T.START_STRONG, End T.END_STRONG),
-+ ("STYLE", WOAttrs T.START_STYLE, End T.END_STYLE),
-+ ("SUB", WOAttrs T.START_SUB, End T.END_SUB),
-+ ("SUP", WOAttrs T.START_SUP, End T.END_SUP),
-+ ("TABLE", WAttrs T.START_TABLE, End T.END_TABLE),
-+ ("TD", WAttrs T.START_TD, End T.END_TD),
-+ ("TEXTAREA", WAttrs T.START_TEXTAREA, End T.END_TEXTAREA),
-+ ("TH", WAttrs T.START_TH, End T.END_TH),
-+ ("TITLE", WOAttrs T.START_TITLE, End T.END_TITLE),
-+ ("TR", WAttrs T.START_TR, End T.END_TR),
-+ ("TT", WOAttrs T.START_TT, End T.END_TT),
-+ ("U", WOAttrs T.START_U, End T.END_U),
-+ ("UL", WAttrs T.START_UL, End T.END_UL),
-+ ("VAR", WOAttrs T.START_VAR, End T.END_VAR)
-+ ]
-+
-+ structure HTbl = HashTableFn (struct
-+ type hash_key = string
-+ val hashVal = HashString.hashString
-+ val sameKey = (op = : (string * string) -> bool)
-+ end)
-+
-+ val elemTbl = let
-+ val tbl = HTbl.mkTable (length tokenData, Fail "HTMLElements")
-+ fun ins (tag, startTok, endTok) =
-+ HTbl.insert tbl (tag, {startT=startTok, endT=endTok})
-+ in
-+ List.app ins tokenData; tbl
-+ end
-+
-+ structure SS = Substring
-+
-+ fun canonName name = SS.translate (String.str o Char.toUpper) name
-+
-+ fun find name = (HTbl.find elemTbl (canonName name))
-+
-+ val skipWS = SS.dropl Char.isSpace
-+
-+ fun scanStr (ctx, quoteChar, ss) = let
-+ val (str, rest) = SS.splitl (fn c => (c <> quoteChar)) ss
-+ in
-+ if (SS.isEmpty rest)
-+ then (
-+ Err.lexError ctx "missing close quote for string";
-+ (A.STRING(SS.string str), rest))
-+ else (A.STRING(SS.string str), SS.triml 1 rest)
-+ end
-+
-+ (* scan an attribute value from a substring, returning the value, and
-+ * the rest of the substring. Attribute values have one of the following
-+ * forms:
-+ * 1) a name token (a sequence of letters, digits, periods, or hyphens).
-+ * 2) a string literal enclosed in ""
-+ * 3) a string literal enclosed in ''
-+ *)
-+ fun scanAttrVal (ctx, attrName, ss) = let
-+ fun isNameChar #"." = true
-+ | isNameChar #"-" = true
-+ | isNameChar c = (Char.isAlphaNum c)
-+ in
-+ case SS.getc ss
-+ of NONE => (A.IMPLICIT, ss)
-+ | (SOME(#"\"", rest)) => scanStr (ctx, #"\"", rest)
-+ | (SOME(#"'", rest)) => scanStr (ctx, #"'", rest)
-+ | (SOME(c, _)) => let
-+ (**
-+ * Unquoted attributes should be Names, but this is often not
-+ * the case, so we terminate them on whitespace or ">".
-+ *)
-+ val notNameChar = ref false
-+ fun isAttrChar c =
-+ if ((Char.isSpace c) orelse (c = #">"))
-+ then false
-+ else (
-+ if isNameChar c then () else notNameChar := true;
-+ true)
-+ val (value, rest) = SS.splitl isAttrChar ss
-+ in
-+ if (SS.isEmpty value)
-+ then (
-+ Err.badAttrVal ctx (SS.string attrName, "");
-+ (A.IMPLICIT, ss))
-+ else if (! notNameChar)
-+ then (
-+ Err.unquotedAttrVal ctx (SS.string attrName);
-+ (A.STRING(SS.string value), rest))
-+ else (A.NAME(SS.string value), rest)
-+ end
-+ (* end case *)
-+ end
-+
-+ fun scanStartTag (ctx, ss) = let
-+ val (name, rest) = SS.splitl (not o Char.isSpace) ss
-+ fun scanAttrs (rest, attrs) = let
-+ val rest = skipWS rest
-+ in
-+ case SS.getc rest
-+ of NONE => (name, List.rev attrs)
-+ | (SOME(#"\"", rest)) => (
-+ Err.lexError ctx "bogus text in element";
-+ scanAttrs (#2(scanStr (ctx, #"\"", rest)), attrs))
-+ | (SOME(#"'", rest)) => (
-+ Err.lexError ctx "bogus text in element";
-+ scanAttrs (#2(scanStr (ctx, #"'", rest)), attrs))
-+ | (SOME(c, rest')) =>
-+ if Char.isAlpha c
-+ then let
-+ val (aName, rest) = SS.splitl Char.isAlphaNum rest
-+ val rest = skipWS rest
-+ in
-+ case (SS.getc rest)
-+ of (SOME(#"=", rest)) => let
-+ (* get the attribute value *)
-+ val (aVal, rest) =
-+ scanAttrVal (ctx, aName, skipWS rest)
-+ in
-+ scanAttrs (rest, (canonName aName, aVal)::attrs)
-+ end
-+ | _ => scanAttrs (rest,
-+ (canonName aName, A.IMPLICIT)::attrs)
-+ (* end case *)
-+ end
-+ else (
-+ Err.lexError ctx "bogus character in element";
-+ scanAttrs (rest', attrs))
-+ (* end case *)
-+ end
-+ in
-+ scanAttrs(rest, [])
-+ end
-+
-+ fun startTag file (tag, p1, p2) = let
-+ val ctx = {file=file, line=p1}
-+ val tag' = SS.triml 1 (SS.trimr 1 (SS.all tag))
-+ val (name, attrs) = scanStartTag (ctx, tag')
-+ in
-+ case (find name, attrs)
-+ of (NONE, _) => (Err.badStartTag ctx (SS.string name); NONE)
-+ | (SOME{startT=WOAttrs _, ...}, _::_) => (
-+ List.app (Err.unknownAttr ctx o #1) attrs; NONE)
-+ | (SOME{startT=WOAttrs tag, ...}, []) =>
-+ SOME(tag (p1, p2))
-+ | (SOME{startT=WAttrs tag, ...}, attrs) =>
-+ SOME(tag (attrs, p1, p2))
-+ (* end case *)
-+ end
-+
-+ fun endTag file (tag, p1, p2) = let
-+ val ctx = {file=file, line=p1}
-+ val name = SS.triml 2 (SS.trimr 1 (SS.all tag))
-+ in
-+ case (find name)
-+ of NONE => (Err.badEndTag ctx (SS.string name); NONE)
-+ | (SOME{endT=Empty, ...}) => (Err.badEndTag ctx (SS.string name); NONE)
-+ | (SOME{endT=End endTok, ...}) => SOME(endTok (p1, p2))
-+ (* end case *)
-+ end
-+
-+ end
-+
diff -Naur smlnj-lib/HTML/html-gram.sml smlnj-lib-mlton/HTML/html-gram.sml
---- smlnj-lib/HTML/html-gram.sml 2005-11-19 12:16:57.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-gram.sml 2005-11-19 13:58:31.000000000 -0500
+--- smlnj-lib/HTML/html-gram.sml 2005-11-19 14:44:41.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-gram.sml 2005-11-19 14:44:41.000000000 -0500
@@ -1226,10 +1226,11 @@
(T 3) $$ (T 2) $$ (T 0)end
structure Actions =
@@ -717,8 +463,8 @@
case (i392,stack)
of ( 0, ( ( _, ( _, _, EndHTML1right)) :: ( _, ( MlyValue.Body Body,
diff -Naur smlnj-lib/HTML/html-lex.sml smlnj-lib-mlton/HTML/html-lex.sml
---- smlnj-lib/HTML/html-lex.sml 2005-11-19 12:16:57.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-lex.sml 2005-11-19 13:58:31.000000000 -0500
+--- smlnj-lib/HTML/html-lex.sml 2005-11-19 14:44:41.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-lex.sml 2005-11-19 14:44:41.000000000 -0500
@@ -1,3 +1,4 @@
+type int = Int.int
functor HTMLLexFn (
@@ -816,7 +562,7 @@
in scan(!yybegin (* start *),nil,!yybufpos,!yybufpos)
diff -Naur smlnj-lib/HTML/html-lib.mlb smlnj-lib-mlton/HTML/html-lib.mlb
--- smlnj-lib/HTML/html-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/HTML/html-lib.mlb 2005-11-19 13:58:32.000000000 -0500
++++ smlnj-lib-mlton/HTML/html-lib.mlb 2005-11-19 14:44:42.000000000 -0500
@@ -0,0 +1,300 @@
+
+ann
@@ -1120,7 +866,7 @@
+end
diff -Naur smlnj-lib/INet/inet-lib.mlb smlnj-lib-mlton/INet/inet-lib.mlb
--- smlnj-lib/INet/inet-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/INet/inet-lib.mlb 2005-11-19 13:58:32.000000000 -0500
++++ smlnj-lib-mlton/INet/inet-lib.mlb 2005-11-19 14:44:43.000000000 -0500
@@ -0,0 +1,144 @@
+
+ann
@@ -1268,7 +1014,7 @@
+end
diff -Naur smlnj-lib/PP/pp-lib.mlb smlnj-lib-mlton/PP/pp-lib.mlb
--- smlnj-lib/PP/pp-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/PP/pp-lib.mlb 2005-11-19 13:58:32.000000000 -0500
++++ smlnj-lib-mlton/PP/pp-lib.mlb 2005-11-19 14:44:43.000000000 -0500
@@ -0,0 +1,212 @@
+
+ann
@@ -1484,7 +1230,7 @@
+end
diff -Naur smlnj-lib/Reactive/reactive-lib.mlb smlnj-lib-mlton/Reactive/reactive-lib.mlb
--- smlnj-lib/Reactive/reactive-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Reactive/reactive-lib.mlb 2005-11-19 13:58:33.000000000 -0500
++++ smlnj-lib-mlton/Reactive/reactive-lib.mlb 2005-11-19 14:44:43.000000000 -0500
@@ -0,0 +1,70 @@
+
+ann
@@ -1577,7 +1323,7 @@
+ * {{{HTML/html-attrs-fn.sml}}} (modified): Rewrote use of ''or-patterns''.
diff -Naur smlnj-lib/RegExp/regexp-lib.mlb smlnj-lib-mlton/RegExp/regexp-lib.mlb
--- smlnj-lib/RegExp/regexp-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/RegExp/regexp-lib.mlb 2005-11-19 13:58:33.000000000 -0500
++++ smlnj-lib-mlton/RegExp/regexp-lib.mlb 2005-11-19 14:44:43.000000000 -0500
@@ -0,0 +1,214 @@
+
+ann
@@ -1812,7 +1558,7 @@
+end
diff -Naur smlnj-lib/Unix/unix-lib.mlb smlnj-lib-mlton/Unix/unix-lib.mlb
--- smlnj-lib/Unix/unix-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Unix/unix-lib.mlb 2005-11-19 13:58:33.000000000 -0500
++++ smlnj-lib-mlton/Unix/unix-lib.mlb 2005-11-19 14:44:44.000000000 -0500
@@ -0,0 +1,45 @@
+
+ann
@@ -2014,7 +1760,7 @@
structure Key = K
diff -Naur smlnj-lib/Util/smlnj-lib.mlb smlnj-lib-mlton/Util/smlnj-lib.mlb
--- smlnj-lib/Util/smlnj-lib.mlb 1969-12-31 19:00:00.000000000 -0500
-+++ smlnj-lib-mlton/Util/smlnj-lib.mlb 2005-11-19 13:58:35.000000000 -0500
++++ smlnj-lib-mlton/Util/smlnj-lib.mlb 2005-11-19 14:44:46.000000000 -0500
@@ -0,0 +1,1099 @@
+
+ann
Modified: mlton/trunk/lib/smlnj-lib/smlnj-lib.tgz
===================================================================
(Binary files differ)