[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)