#define MT_SIGNEDINTEGRALTYPE 298
#define MT_CONST 299
#define MT_VOLATILE 300
-#define MT_STRINGLIT 301
-#define MT_IDENT 302
+#define MT_RESTRICT 301
+#define MT_STRINGLIT 302
+#define MT_IDENT 303
# include "bison.reset"
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
# include "llbasic.h"
# ifndef S_SPLINT_S
# include "mtscanner.h"
*/
-static /*@exits@*/ void mterror (char *);
+static /*@noreturn@*/ void mterror (char *);
/*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */
+extern int mtlex () ;
static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
/*@=noparams@*/
mtTransferAction mttransferaction;
mtLoseReferenceList mtlosereferencelist;
mtLoseReference mtlosereference;
-
+ pointers pointers;
/*@only@*/ cstringList cstringlist;
ctype ctyp;
/*@only@*/ qtype qtyp;
- int count;
+ qual qual;
+ qualList quals;
} YYSTYPE;
#ifndef YYDEBUG
#define YYDEBUG 1
-#define YYFINAL 135
+#define YYFINAL 136
#define YYFLAG -32768
-#define YYNTBASE 49
+#define YYNTBASE 50
-#define YYTRANSLATE(x) ((unsigned)(x) <= 302 ? yytranslate[x] : 92)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 303 ? yytranslate[x] : 93)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 47, 48
+ 47, 48, 49
};
#if YYDEBUG != 0
25, 27, 29, 31, 33, 35, 37, 39, 42, 43,
45, 48, 51, 54, 57, 60, 63, 64, 66, 68,
71, 73, 77, 80, 81, 83, 85, 87, 90, 92,
- 95, 98, 102, 104, 106, 108, 111, 115, 118, 122,
+ 95, 98, 102, 104, 106, 108, 110, 113, 117, 120,
124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
- 144, 147, 149, 153, 156, 159, 163, 168, 171, 173,
- 176, 181, 184, 186, 189, 195, 197, 199, 202, 205,
- 208, 211, 213, 216, 220, 222, 225, 231, 233, 235,
- 237, 240
+ 144, 146, 149, 151, 155, 158, 161, 165, 170, 173,
+ 175, 178, 183, 186, 188, 191, 197, 199, 201, 204,
+ 207, 210, 213, 215, 218, 222, 224, 227, 233, 235,
+ 237, 239, 242
};
static const short yyrhs[] = { -1,
- 50, 0, 5, 51, 4, 0, 6, 5, 51, 4,
- 0, 48, 52, 0, 0, 53, 52, 0, 54, 0,
- 69, 0, 72, 0, 71, 0, 74, 0, 77, 0,
- 83, 0, 81, 0, 82, 0, 84, 0, 7, 56,
- 0, 0, 56, 0, 12, 57, 0, 11, 57, 0,
- 13, 57, 0, 14, 57, 0, 15, 57, 0, 16,
- 57, 0, 0, 58, 0, 59, 0, 59, 62, 0,
- 60, 0, 59, 28, 58, 0, 67, 61, 0, 0,
- 59, 0, 63, 0, 66, 0, 63, 66, 0, 27,
- 0, 27, 65, 0, 27, 63, 0, 27, 65, 63,
- 0, 45, 0, 46, 0, 64, 0, 65, 64, 0,
- 29, 62, 30, 0, 31, 32, 0, 66, 31, 32,
- 0, 36, 0, 37, 0, 38, 0, 39, 0, 40,
- 0, 41, 0, 42, 0, 43, 0, 44, 0, 68,
- 0, 48, 0, 8, 70, 0, 48, 0, 48, 35,
- 70, 0, 10, 91, 0, 9, 73, 0, 56, 18,
- 91, 0, 56, 18, 91, 73, 0, 17, 75, 0,
- 76, 0, 76, 75, 0, 48, 55, 18, 91, 0,
- 19, 78, 0, 79, 0, 79, 78, 0, 80, 26,
- 80, 18, 89, 0, 91, 0, 27, 0, 21, 87,
- 0, 22, 87, 0, 20, 87, 0, 23, 85, 0,
- 86, 0, 86, 85, 0, 91, 18, 90, 0, 88,
- 0, 88, 87, 0, 91, 24, 91, 18, 89, 0,
- 91, 0, 90, 0, 25, 0, 25, 47, 0, 48,
- 0
+ 51, 0, 5, 52, 4, 0, 6, 5, 52, 4,
+ 0, 49, 53, 0, 0, 54, 53, 0, 55, 0,
+ 70, 0, 73, 0, 72, 0, 75, 0, 78, 0,
+ 84, 0, 82, 0, 83, 0, 85, 0, 7, 57,
+ 0, 0, 57, 0, 12, 58, 0, 11, 58, 0,
+ 13, 58, 0, 14, 58, 0, 15, 58, 0, 16,
+ 58, 0, 0, 59, 0, 60, 0, 60, 63, 0,
+ 61, 0, 60, 28, 59, 0, 68, 62, 0, 0,
+ 60, 0, 64, 0, 67, 0, 64, 67, 0, 27,
+ 0, 27, 66, 0, 27, 64, 0, 27, 66, 64,
+ 0, 45, 0, 46, 0, 47, 0, 65, 0, 66,
+ 65, 0, 29, 63, 30, 0, 31, 32, 0, 67,
+ 31, 32, 0, 36, 0, 37, 0, 38, 0, 39,
+ 0, 40, 0, 41, 0, 42, 0, 43, 0, 44,
+ 0, 69, 0, 49, 0, 8, 71, 0, 49, 0,
+ 49, 35, 71, 0, 10, 92, 0, 9, 74, 0,
+ 57, 18, 92, 0, 57, 18, 92, 74, 0, 17,
+ 76, 0, 77, 0, 77, 76, 0, 49, 56, 18,
+ 92, 0, 19, 79, 0, 80, 0, 80, 79, 0,
+ 81, 26, 81, 18, 90, 0, 92, 0, 27, 0,
+ 21, 88, 0, 22, 88, 0, 20, 88, 0, 23,
+ 86, 0, 87, 0, 87, 86, 0, 92, 18, 91,
+ 0, 89, 0, 89, 88, 0, 92, 24, 92, 18,
+ 90, 0, 92, 0, 91, 0, 25, 0, 25, 48,
+ 0, 49, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 152, 153, 156, 158, 162, 166, 167, 171, 172, 173,
- 174, 175, 176, 177, 178, 179, 180, 183, 187, 188,
- 191, 192, 193, 194, 195, 196, 203, 204, 207, 208,
- 211, 212, 216, 219, 220, 224, 225, 226, 229, 230,
- 231, 232, 235, 236, 239, 240, 243, 244, 245, 252,
- 253, 254, 255, 256, 257, 258, 259, 260, 261, 267,
- 270, 273, 274, 278, 281, 284, 286, 290, 293, 294,
- 298, 302, 305, 306, 309, 313, 314, 317, 320, 323,
- 326, 329, 330, 333, 336, 337, 340, 344, 345, 348,
- 349, 352
+ 160, 161, 164, 166, 170, 174, 175, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 191, 195, 196,
+ 199, 200, 201, 202, 203, 204, 211, 212, 215, 216,
+ 219, 220, 224, 227, 228, 232, 233, 234, 237, 238,
+ 239, 240, 243, 244, 245, 248, 249, 252, 253, 254,
+ 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 276, 279, 282, 283, 287, 290, 293, 295, 299, 302,
+ 303, 307, 311, 314, 315, 318, 322, 323, 326, 329,
+ 332, 335, 338, 339, 342, 345, 346, 349, 353, 354,
+ 357, 358, 361
};
#endif
"MT_LOSEREFERENCE","MT_AS","MT_ERROR","MT_PLUS","MT_STAR","MT_BAR","MT_LPAREN",
"MT_RPAREN","MT_LBRACKET","MT_RBRACKET","MT_LBRACE","MT_RBRACE","MT_COMMA","MT_CHAR",
"MT_INT","MT_FLOAT","MT_DOUBLE","MT_VOID","MT_ANYTYPE","MT_INTEGRALTYPE","MT_UNSIGNEDINTEGRALTYPE",
-"MT_SIGNEDINTEGRALTYPE","MT_CONST","MT_VOLATILE","MT_STRINGLIT","MT_IDENT","file",
-"mtsDeclaration","declarationNode","declarationPieces","declarationPiece","contextDeclaration",
-"optContextSelection","contextSelection","optType","typeExpression","completeType",
-"completeTypeAux","optCompleteType","abstractDecl","pointers","innerMods","innerModsList",
-"abstractDeclBase","typeSpecifier","typeName","valuesDeclaration","valuesList",
-"defaultNode","defaultsDeclaration","defaultDeclarationList","annotationsDeclaration",
+"MT_SIGNEDINTEGRALTYPE","MT_CONST","MT_VOLATILE","MT_RESTRICT","MT_STRINGLIT",
+"MT_IDENT","file","mtsDeclaration","declarationNode","declarationPieces","declarationPiece",
+"contextDeclaration","optContextSelection","contextSelection","optType","typeExpression",
+"completeType","completeTypeAux","optCompleteType","abstractDecl","pointers",
+"innerMods","innerModsList","abstractDeclBase","typeSpecifier","typeName","valuesDeclaration",
+"valuesList","defaultNode","defaultsDeclaration","defaultDeclarationList","annotationsDeclaration",
"annotationsDeclarationList","annotationDeclaration","mergeDeclaration","mergeClauses",
"mergeClause","mergeItem","preconditionsDeclaration","postconditionsDeclaration",
"transfersDeclaration","loseReferenceDeclaration","lostClauses","lostClause",
#endif
static const short yyr1[] = { 0,
- 49, 49, 50, 50, 51, 52, 52, 53, 53, 53,
- 53, 53, 53, 53, 53, 53, 53, 54, 55, 55,
- 56, 56, 56, 56, 56, 56, 57, 57, 58, 58,
- 59, 59, 60, 61, 61, 62, 62, 62, 63, 63,
- 63, 63, 64, 64, 65, 65, 66, 66, 66, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 68,
- 69, 70, 70, 71, 72, 73, 73, 74, 75, 75,
- 76, 77, 78, 78, 79, 80, 80, 81, 82, 83,
- 84, 85, 85, 86, 87, 87, 88, 89, 89, 90,
- 90, 91
+ 50, 50, 51, 51, 52, 53, 53, 54, 54, 54,
+ 54, 54, 54, 54, 54, 54, 54, 55, 56, 56,
+ 57, 57, 57, 57, 57, 57, 58, 58, 59, 59,
+ 60, 60, 61, 62, 62, 63, 63, 63, 64, 64,
+ 64, 64, 65, 65, 65, 66, 66, 67, 67, 67,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 69, 70, 71, 71, 72, 73, 74, 74, 75, 76,
+ 76, 77, 78, 79, 79, 80, 81, 81, 82, 83,
+ 84, 85, 86, 86, 87, 88, 88, 89, 90, 90,
+ 91, 91, 92
};
static const short yyr2[] = { 0,
1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
2, 2, 2, 2, 2, 2, 0, 1, 1, 2,
1, 3, 2, 0, 1, 1, 1, 2, 1, 2,
- 2, 3, 1, 1, 1, 2, 3, 2, 3, 1,
+ 2, 3, 1, 1, 1, 1, 2, 3, 2, 3,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 2, 1, 3, 2, 2, 3, 4, 2, 1, 2,
- 4, 2, 1, 2, 5, 1, 1, 2, 2, 2,
- 2, 1, 2, 3, 1, 2, 5, 1, 1, 1,
- 2, 1
+ 1, 2, 1, 3, 2, 2, 3, 4, 2, 1,
+ 2, 4, 2, 1, 2, 5, 1, 1, 2, 2,
+ 2, 2, 1, 2, 3, 1, 2, 5, 1, 1,
+ 1, 2, 1
};
static const short yydefact[] = { 1,
0, 0, 2, 6, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 5, 6, 8, 9,
11, 10, 12, 13, 15, 16, 14, 17, 3, 0,
- 27, 27, 27, 27, 27, 27, 18, 62, 61, 0,
- 65, 92, 64, 19, 68, 69, 77, 72, 73, 0,
- 76, 80, 85, 0, 78, 79, 81, 82, 0, 7,
- 4, 50, 51, 52, 53, 54, 55, 56, 57, 58,
- 60, 22, 28, 29, 31, 34, 59, 21, 23, 24,
- 25, 26, 0, 0, 0, 20, 70, 74, 0, 86,
- 0, 83, 0, 39, 0, 0, 0, 30, 36, 37,
- 35, 33, 63, 66, 0, 0, 0, 90, 84, 43,
- 44, 41, 45, 40, 32, 0, 48, 38, 0, 67,
- 71, 0, 0, 91, 42, 46, 47, 49, 75, 89,
- 88, 87, 0, 0, 0
+ 27, 27, 27, 27, 27, 27, 18, 63, 62, 0,
+ 66, 93, 65, 19, 69, 70, 78, 73, 74, 0,
+ 77, 81, 86, 0, 79, 80, 82, 83, 0, 7,
+ 4, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 61, 22, 28, 29, 31, 34, 60, 21, 23, 24,
+ 25, 26, 0, 0, 0, 20, 71, 75, 0, 87,
+ 0, 84, 0, 39, 0, 0, 0, 30, 36, 37,
+ 35, 33, 64, 67, 0, 0, 0, 91, 85, 43,
+ 44, 45, 41, 46, 40, 32, 0, 49, 38, 0,
+ 68, 72, 0, 0, 92, 42, 47, 48, 50, 76,
+ 90, 89, 88, 0, 0, 0
};
-static const short yydefgoto[] = { 133,
+static const short yydefgoto[] = { 134,
3, 5, 17, 18, 19, 85, 40, 72, 73, 74,
- 75, 102, 98, 99, 113, 114, 100, 76, 77, 20,
+ 75, 102, 98, 99, 114, 115, 100, 76, 77, 20,
39, 21, 22, 41, 23, 45, 46, 24, 48, 49,
- 50, 25, 26, 27, 28, 57, 58, 52, 53, 129,
- 130, 54
+ 50, 25, 26, 27, 28, 57, 58, 52, 53, 130,
+ 131, 54
};
-static const short yypact[] = { 4,
- -37, 35,-32768, 36, 37, -37, 21, 2, 21, 17,
- 18, -19, 17, 17, 17, 17,-32768, 36,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 63,
- -23, -23, -23, -23, -23, -23,-32768, 33,-32768, 51,
--32768,-32768,-32768, 21,-32768, 18,-32768,-32768, -19, 44,
--32768,-32768, 17, 47,-32768,-32768,-32768, 17, 54,-32768,
+static const short yypact[] = { 21,
+ -29, 30,-32768, 2, 33, -29, 52, -9, 52, -8,
+ -3, -19, -8, -8, -8, -8,-32768, 2,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 54,
+ 13, 13, 13, 13, 13, 13,-32768, 24,-32768, 43,
+-32768,-32768,-32768, 52,-32768, -3,-32768,-32768, -19, 34,
+-32768,-32768, -8, 46,-32768,-32768,-32768, -8, 57,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768, -5,-32768, -23,-32768,-32768,-32768,-32768,
--32768,-32768, 2, 17, 55,-32768,-32768,-32768, -19,-32768,
- 17,-32768, 50, -15, -23, 20, 45,-32768, 23, 49,
- 48,-32768,-32768, 21, 17, 60, 64, 38,-32768,-32768,
--32768,-32768,-32768, -15,-32768, 53,-32768, 49, 52,-32768,
--32768, -20, -20,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 86, 87,-32768
+-32768,-32768,-32768, 16,-32768, 13,-32768,-32768,-32768,-32768,
+-32768,-32768, -9, -8, 58,-32768,-32768,-32768, -19,-32768,
+ -8,-32768, 47, -14, 13, 42, 45,-32768, 5, 49,
+ 50,-32768,-32768, 52, -8, 64, 65, 36,-32768,-32768,
+-32768,-32768,-32768,-32768, -14,-32768, 55,-32768, 49, 56,
+-32768,-32768, -20, -20,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768, 86, 87,-32768
};
static const short yypgoto[] = {-32768,
--32768, 82, 71,-32768,-32768,-32768, -6, 28, -4, 14,
--32768,-32768, -3, -87, -22,-32768, -2,-32768,-32768,-32768,
- 11,-32768,-32768, -8,-32768, 56,-32768,-32768, 57,-32768,
- 9,-32768,-32768,-32768,-32768, 41,-32768, -11,-32768, -18,
- 7, -10
+-32768, 83, 72,-32768,-32768,-32768, -6, -18, -4, 17,
+-32768,-32768, -2, -87, -23,-32768, -1,-32768,-32768,-32768,
+ 14,-32768,-32768, -5,-32768, 59,-32768,-32768, 51,-32768,
+ 7,-32768,-32768,-32768,-32768, 44,-32768, -11,-32768, -21,
+ 8, -10
};
-#define YYLAST 113
+#define YYLAST 114
static const short yytable[] = { 43,
- 37, 51, 55, 56, 108, 59, 112, 47, 1, 2,
- 4, 94, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 94, 95, 96, 71, 97, 125, 42, 42, 110,
- 111, 31, 32, 33, 34, 35, 36, 86, 51, 6,
- 29, 90, 7, 8, 9, 10, 94, 59, 96, 38,
- 97, 96, 11, 97, 12, 13, 14, 15, 16, 78,
- 79, 80, 81, 82, 42, 44, 61, 83, 84, 89,
- 91, 93, 105, 104, 108, 95, 117, 122, 51, 119,
- 107, 123, 127, 128, 124, 134, 135, 30, 60, 101,
- 115, 126, 116, 103, 121, 120, 118, 106, 92, 109,
- 0, 87, 0, 0, 132, 88, 0, 0, 0, 0,
- 0, 131, 131
+ 37, 51, 55, 56, 108, 59, 113, 47, 7, 8,
+ 9, 10, 94, 78, 79, 80, 81, 82, 11, 4,
+ 12, 13, 14, 15, 16, 1, 2, 126, 42, 42,
+ 110, 111, 112, 96, 6, 97, 29, 86, 51, 38,
+ 42, 90, 94, 95, 96, 44, 97, 59, 62, 63,
+ 64, 65, 66, 67, 68, 69, 70, 61, 83, 89,
+ 84, 71, 31, 32, 33, 34, 35, 36, 94, 91,
+ 96, 108, 97, 104, 93, 105, 118, 95, 51, 120,
+ 107, 123, 124, 125, 128, 135, 136, 129, 30, 60,
+ 116, 127, 101, 117, 122, 106, 103, 119, 121, 88,
+ 109, 92, 133, 0, 87, 0, 0, 0, 0, 0,
+ 0, 0, 132, 132
};
static const short yycheck[] = { 10,
- 7, 12, 14, 15, 25, 16, 94, 27, 5, 6,
- 48, 27, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 27, 28, 29, 48, 31, 114, 48, 48, 45,
- 46, 11, 12, 13, 14, 15, 16, 44, 49, 5,
- 4, 53, 7, 8, 9, 10, 27, 58, 29, 48,
- 31, 29, 17, 31, 19, 20, 21, 22, 23, 32,
- 33, 34, 35, 36, 48, 48, 4, 35, 18, 26,
- 24, 18, 18, 84, 25, 28, 32, 18, 89, 31,
- 91, 18, 30, 32, 47, 0, 0, 6, 18, 76,
- 95, 114, 96, 83, 105, 104, 99, 89, 58, 93,
- -1, 46, -1, -1, 123, 49, -1, -1, -1, -1,
- -1, 122, 123
+ 7, 12, 14, 15, 25, 16, 94, 27, 7, 8,
+ 9, 10, 27, 32, 33, 34, 35, 36, 17, 49,
+ 19, 20, 21, 22, 23, 5, 6, 115, 49, 49,
+ 45, 46, 47, 29, 5, 31, 4, 44, 49, 49,
+ 49, 53, 27, 28, 29, 49, 31, 58, 36, 37,
+ 38, 39, 40, 41, 42, 43, 44, 4, 35, 26,
+ 18, 49, 11, 12, 13, 14, 15, 16, 27, 24,
+ 29, 25, 31, 84, 18, 18, 32, 28, 89, 31,
+ 91, 18, 18, 48, 30, 0, 0, 32, 6, 18,
+ 95, 115, 76, 96, 105, 89, 83, 99, 104, 49,
+ 93, 58, 124, -1, 46, -1, -1, -1, -1, -1,
+ -1, -1, 123, 124
};
#define YYPURE 1
{ yyval.qtyp = yyvsp[0].qtyp; ;
break;}
case 36:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
+{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
break;}
case 38:
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
+{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
break;}
case 39:
-{ yyval.count = 1; ;
+{ yyval.pointers = pointers_createMt (yyvsp[0].tok); ;
break;}
case 40:
-{ yyval.count = 1; ;
+{ yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;
break;}
case 41:
-{ yyval.count = 1 + yyvsp[0].count; ;
+{ yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;
break;}
case 42:
-{ yyval.count = 1 + yyvsp[0].count; ;
+{ yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;
break;}
case 43:
-{ /* ignored for now */; ;
+{ yyval.qual = qual_createConst (); ;
break;}
case 44:
-{ ; ;
+{ yyval.qual = qual_createVolatile (); ;
break;}
case 45:
-{ ; ;
+{ yyval.qual = qual_createRestrict (); ;
break;}
case 46:
-{ ; ;
+{ yyval.quals = qualList_single (yyvsp[0].qual); ;
break;}
case 47:
-{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
+{ yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;
break;}
case 48:
-{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
+{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
break;}
case 49:
-{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
+{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
break;}
case 50:
-{ yyval.ctyp = ctype_char; ;
+{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
break;}
case 51:
-{ yyval.ctyp = ctype_int; ;
+{ yyval.ctyp = ctype_char; ;
break;}
case 52:
-{ yyval.ctyp = ctype_float; ;
+{ yyval.ctyp = ctype_int; ;
break;}
case 53:
-{ yyval.ctyp = ctype_double; ;
+{ yyval.ctyp = ctype_float; ;
break;}
case 54:
-{ yyval.ctyp = ctype_void; ;
+{ yyval.ctyp = ctype_double; ;
break;}
case 55:
-{ yyval.ctyp = ctype_unknown; ;
+{ yyval.ctyp = ctype_void; ;
break;}
case 56:
-{ yyval.ctyp = ctype_anyintegral; ;
+{ yyval.ctyp = ctype_unknown; ;
break;}
case 57:
-{ yyval.ctyp = ctype_unsignedintegral; ;
+{ yyval.ctyp = ctype_anyintegral; ;
break;}
case 58:
-{ yyval.ctyp = ctype_signedintegral; ;
+{ yyval.ctyp = ctype_unsignedintegral; ;
break;}
-case 60:
-{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
+case 59:
+{ yyval.ctyp = ctype_signedintegral; ;
break;}
case 61:
-{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
+{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
break;}
case 62:
-{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
+{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
break;}
case 63:
-{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
+{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
break;}
case 64:
-{ yyval.tok = yyvsp[0].tok; ;
+{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
break;}
case 65:
-{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
+{ yyval.tok = yyvsp[0].tok; ;
break;}
case 66:
-{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
+{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
break;}
case 67:
-{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
+{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
break;}
case 68:
-{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
+{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
break;}
case 69:
-{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
+{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
break;}
case 70:
-{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
+{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
break;}
case 71:
-{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
+{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
break;}
case 72:
-{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
+{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
break;}
case 73:
-{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
+{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
break;}
case 74:
-{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
+{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
break;}
case 75:
-{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
+{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
break;}
case 76:
-{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
+{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
break;}
case 77:
-{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
+{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
break;}
case 78:
-{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
+{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
break;}
case 79:
{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
break;}
case 81:
-{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
+{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
break;}
case 82:
-{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
+{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
break;}
case 83:
-{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
+{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
break;}
case 84:
-{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
+{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
break;}
case 85:
-{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
+{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
break;}
case 86:
-{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
+{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
break;}
case 87:
-{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
+{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
break;}
case 88:
-{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
+{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
break;}
case 89:
-{ yyval.mttransferaction = yyvsp[0].mttransferaction; ;
+{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
break;}
case 90:
-{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
+{ yyval.mttransferaction = yyvsp[0].mttransferaction; ;
break;}
case 91:
+{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
+ break;}
+case 92:
{ yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;
break;}
}