/*@-dependenttrans@*/
/*@-unqualifiedtrans@*/
/*@-nullassign@*/
+/*@-nullpass@*/
+/*@-nullptrarith*/
+/*@-usereleased@*/
+/*@-declundef@*/
+/*drl added 11/27/2001*/
+/*@-bounds@*/
/* < end of bison.head > */
#define MT_DEFAULT 264
#define MT_REFERENCE 265
#define MT_PARAMETER 266
-#define MT_CLAUSE 267
-#define MT_ANNOTATIONS 268
-#define MT_ARROW 269
-#define MT_MERGE 270
-#define MT_TRANSFERS 271
-#define MT_PRECONDITIONS 272
-#define MT_POSTCONDITIONS 273
-#define MT_LOSEREFERENCE 274
-#define MT_AS 275
-#define MT_ERROR 276
-#define MT_PLUS 277
-#define MT_STAR 278
-#define MT_BAR 279
-#define MT_LPAREN 280
-#define MT_RPAREN 281
-#define MT_LBRACKET 282
-#define MT_RBRACKET 283
-#define MT_LBRACE 284
-#define MT_RBRACE 285
-#define MT_COMMA 286
-#define MT_CHAR 287
-#define MT_INT 288
-#define MT_FLOAT 289
-#define MT_DOUBLE 290
-#define MT_VOID 291
-#define MT_ANYTYPE 292
-#define MT_INTEGRALTYPE 293
-#define MT_UNSIGNEDINTEGRALTYPE 294
-#define MT_SIGNEDINTEGRALTYPE 295
-#define MT_CONST 296
-#define MT_VOLATILE 297
-#define MT_STRINGLIT 298
-#define MT_IDENT 299
-
-#line 25 "mtgrammar.y"
+#define MT_RESULT 267
+#define MT_CLAUSE 268
+#define MT_LITERAL 269
+#define MT_NULL 270
+#define MT_ANNOTATIONS 271
+#define MT_ARROW 272
+#define MT_MERGE 273
+#define MT_TRANSFERS 274
+#define MT_PRECONDITIONS 275
+#define MT_POSTCONDITIONS 276
+#define MT_LOSEREFERENCE 277
+#define MT_AS 278
+#define MT_ERROR 279
+#define MT_PLUS 280
+#define MT_STAR 281
+#define MT_BAR 282
+#define MT_LPAREN 283
+#define MT_RPAREN 284
+#define MT_LBRACKET 285
+#define MT_RBRACKET 286
+#define MT_LBRACE 287
+#define MT_RBRACE 288
+#define MT_COMMA 289
+#define MT_CHAR 290
+#define MT_INT 291
+#define MT_FLOAT 292
+#define MT_DOUBLE 293
+#define MT_VOID 294
+#define MT_ANYTYPE 295
+#define MT_INTEGRALTYPE 296
+#define MT_UNSIGNEDINTEGRALTYPE 297
+#define MT_SIGNEDINTEGRALTYPE 298
+#define MT_CONST 299
+#define MT_VOLATILE 300
+#define MT_RESTRICT 301
+#define MT_STRINGLIT 302
+#define MT_IDENT 303
+
# include "bison.reset"
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
# include "llbasic.h"
-# include "mtincludes.h"
-static /*@exits@*/ void mterror (char *);
+# ifndef S_SPLINT_S
+extern ctype mtscanner_lookupType (mttok p_tok) /*@modifies p_tok@*/ ;
+# endif
+
+ /*@i523@*/ /* can't include these here
+ # include "mtgrammar.h"
+ # include "mtscanner.h"
+ */
+
+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@*/
# include "bison.head"
-#line 48 "mtgrammar.y"
typedef union {
mttok tok;
mtDeclarationNode mtdecl;
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 129
+#define YYFINAL 136
#define YYFLAG -32768
-#define YYNTBASE 46
+#define YYNTBASE 50
-#define YYTRANSLATE(x) ((unsigned)(x) <= 299 ? yytranslate[x] : 89)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 303 ? yytranslate[x] : 93)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
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
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49
};
#if YYDEBUG != 0
static const short yyprhs[] = { 0,
0, 1, 3, 7, 12, 15, 16, 19, 21, 23,
25, 27, 29, 31, 33, 35, 37, 39, 42, 43,
- 45, 48, 51, 54, 55, 57, 59, 62, 64, 68,
- 71, 72, 74, 76, 78, 81, 83, 86, 89, 93,
- 95, 97, 99, 102, 106, 109, 113, 115, 117, 119,
- 121, 123, 125, 127, 129, 131, 133, 135, 138, 140,
- 144, 147, 150, 154, 159, 162, 164, 167, 172, 175,
- 177, 180, 186, 188, 190, 193, 196, 199, 202, 204,
- 207, 211, 213, 216, 222, 224, 226, 228, 231
+ 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, 110, 113, 117, 120,
+ 124, 126, 128, 130, 132, 134, 136, 138, 140, 142,
+ 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,
- 47, 0, 5, 48, 4, 0, 6, 5, 48, 4,
- 0, 45, 49, 0, 0, 50, 49, 0, 51, 0,
- 66, 0, 69, 0, 68, 0, 71, 0, 74, 0,
- 80, 0, 78, 0, 79, 0, 81, 0, 7, 53,
- 0, 0, 53, 0, 12, 54, 0, 11, 54, 0,
- 13, 54, 0, 0, 55, 0, 56, 0, 56, 59,
- 0, 57, 0, 56, 25, 55, 0, 64, 58, 0,
- 0, 56, 0, 60, 0, 63, 0, 60, 63, 0,
- 24, 0, 24, 62, 0, 24, 60, 0, 24, 62,
- 60, 0, 42, 0, 43, 0, 61, 0, 62, 61,
- 0, 26, 59, 27, 0, 28, 29, 0, 63, 28,
- 29, 0, 33, 0, 34, 0, 35, 0, 36, 0,
- 37, 0, 38, 0, 39, 0, 40, 0, 41, 0,
- 65, 0, 45, 0, 8, 67, 0, 45, 0, 45,
- 32, 67, 0, 10, 88, 0, 9, 70, 0, 53,
- 15, 88, 0, 53, 15, 88, 70, 0, 14, 72,
- 0, 73, 0, 73, 72, 0, 45, 52, 15, 88,
- 0, 16, 75, 0, 76, 0, 76, 75, 0, 77,
- 23, 77, 15, 86, 0, 88, 0, 24, 0, 18,
- 84, 0, 19, 84, 0, 17, 84, 0, 20, 82,
- 0, 83, 0, 83, 82, 0, 88, 15, 87, 0,
- 85, 0, 85, 84, 0, 88, 21, 88, 15, 86,
- 0, 88, 0, 87, 0, 22, 0, 22, 44, 0,
- 45, 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,
- 144, 145, 148, 150, 154, 158, 159, 163, 164, 165,
- 166, 167, 168, 169, 170, 171, 172, 175, 179, 180,
- 183, 184, 185, 192, 193, 196, 197, 200, 201, 205,
- 208, 209, 213, 214, 215, 218, 219, 220, 221, 224,
- 225, 228, 229, 232, 233, 234, 241, 242, 243, 244,
- 245, 246, 247, 248, 249, 250, 256, 259, 262, 263,
- 267, 270, 273, 275, 279, 282, 283, 287, 291, 294,
- 295, 298, 302, 303, 306, 309, 312, 315, 318, 319,
- 322, 325, 326, 329, 333, 334, 337, 338, 341
+ 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
static const char * const yytname[] = { "$","error","$undefined.","MT_BADTOK",
"MT_END","MT_STATE","MT_GLOBAL","MT_CONTEXT","MT_ONEOF","MT_DEFAULTS","MT_DEFAULT",
-"MT_REFERENCE","MT_PARAMETER","MT_CLAUSE","MT_ANNOTATIONS","MT_ARROW","MT_MERGE",
-"MT_TRANSFERS","MT_PRECONDITIONS","MT_POSTCONDITIONS","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_REFERENCE","MT_PARAMETER","MT_RESULT","MT_CLAUSE","MT_LITERAL","MT_NULL",
+"MT_ANNOTATIONS","MT_ARROW","MT_MERGE","MT_TRANSFERS","MT_PRECONDITIONS","MT_POSTCONDITIONS",
+"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_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,
- 46, 46, 47, 47, 48, 49, 49, 50, 50, 50,
- 50, 50, 50, 50, 50, 50, 50, 51, 52, 52,
- 53, 53, 53, 54, 54, 55, 55, 56, 56, 57,
- 58, 58, 59, 59, 59, 60, 60, 60, 60, 61,
- 61, 62, 62, 63, 63, 63, 64, 64, 64, 64,
- 64, 64, 64, 64, 64, 64, 65, 66, 67, 67,
- 68, 69, 70, 70, 71, 72, 72, 73, 74, 75,
- 75, 76, 77, 77, 78, 79, 80, 81, 82, 82,
- 83, 84, 84, 85, 86, 86, 87, 87, 88
+ 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,
0, 1, 3, 4, 2, 0, 2, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 0, 1,
- 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, 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
+ 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, 1, 2, 3, 2, 3,
+ 1, 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
};
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,
- 24, 24, 24, 18, 59, 58, 0, 62, 89, 61,
- 19, 65, 66, 74, 69, 70, 0, 73, 77, 82,
- 0, 75, 76, 78, 79, 0, 7, 4, 47, 48,
- 49, 50, 51, 52, 53, 54, 55, 57, 22, 25,
- 26, 28, 31, 56, 21, 23, 0, 0, 0, 20,
- 67, 71, 0, 83, 0, 80, 0, 36, 0, 0,
- 0, 27, 33, 34, 32, 30, 60, 63, 0, 0,
- 0, 87, 81, 40, 41, 38, 42, 37, 29, 0,
- 45, 35, 0, 64, 68, 0, 0, 88, 39, 43,
- 44, 46, 72, 86, 85, 84, 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[] = { 127,
- 3, 5, 17, 18, 19, 79, 37, 69, 70, 71,
- 72, 96, 92, 93, 107, 108, 94, 73, 74, 20,
- 36, 21, 22, 38, 23, 42, 43, 24, 45, 46,
- 47, 25, 26, 27, 28, 54, 55, 49, 50, 123,
- 124, 51
+static const short yydefgoto[] = { 134,
+ 3, 5, 17, 18, 19, 85, 40, 72, 73, 74,
+ 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, 130,
+ 131, 54
};
-static const short yypact[] = { 27,
- -8, 29,-32768, 6, 40, -8, -2, 12, -2, 16,
- 17, -16, 16, 16, 16, 16,-32768, 6,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 55,
- 13, 13, 13,-32768, 28,-32768, 48,-32768,-32768,-32768,
- -2,-32768, 17,-32768,-32768, -16, 41,-32768,-32768, 16,
- 44,-32768,-32768,-32768, 16, 51,-32768,-32768,-32768,-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,
- -7,-32768, 13,-32768,-32768,-32768, 12, 16, 52,-32768,
--32768,-32768, -16,-32768, 16,-32768, 47, -12, 13, 14,
- 42,-32768, 15, 46, 45,-32768,-32768, -2, 16, 57,
- 61, 33,-32768,-32768,-32768,-32768,-32768, -12,-32768, 53,
--32768, 46, 49,-32768,-32768, -17, -17,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768, 79, 81,-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, 76, 65,-32768,-32768,-32768, -6, 23, -5, 18,
--32768,-32768, -4, -81, -23,-32768, -3,-32768,-32768,-32768,
- 10,-32768,-32768, -1,-32768, 50,-32768,-32768, 54,-32768,
- 5,-32768,-32768,-32768,-32768, 37,-32768, -11,-32768, -22,
- 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 107
+#define YYLAST 114
-static const short yytable[] = { 40,
- 34, 48, 52, 53, 102, 56, 106, 44, 31, 32,
- 33, 88, 7, 8, 9, 10, 88, 89, 90, 11,
- 91, 12, 13, 14, 15, 16, 119, 39, 39, 104,
- 105, 1, 2, 6, 80, 48, 4, 88, 84, 90,
- 90, 91, 91, 29, 56, 59, 60, 61, 62, 63,
- 64, 65, 66, 67, 75, 76, 35, 68, 58, 77,
- 39, 41, 78, 83, 85, 87, 99, 98, 102, 89,
- 111, 116, 48, 113, 101, 117, 118, 122, 128, 121,
- 129, 30, 57, 109, 120, 110, 97, 100, 115, 112,
- 95, 86, 81, 103, 126, 0, 114, 0, 0, 82,
- 0, 0, 0, 0, 0, 125, 125
+static const short yytable[] = { 43,
+ 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, 22, 16, 88, 24, 11, 12,
- 13, 24, 7, 8, 9, 10, 24, 25, 26, 14,
- 28, 16, 17, 18, 19, 20, 108, 45, 45, 42,
- 43, 5, 6, 5, 41, 46, 45, 24, 50, 26,
- 26, 28, 28, 4, 55, 33, 34, 35, 36, 37,
- 38, 39, 40, 41, 32, 33, 45, 45, 4, 32,
- 45, 45, 15, 23, 21, 15, 15, 78, 22, 25,
- 29, 15, 83, 28, 85, 15, 44, 29, 0, 27,
- 0, 6, 18, 89, 108, 90, 77, 83, 99, 93,
- 73, 55, 43, 87, 117, -1, 98, -1, -1, 46,
- -1, -1, -1, -1, -1, 116, 117
+ 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
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
-#line 3 "/usr/lib/bison.simple"
+
/* This file comes from bison-1.28. */
/* Skeleton output parser for bison,
#endif
#endif
\f
-#line 217 "/usr/lib/bison.simple"
+
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
switch (yyn) {
case 1:
-#line 144 "mtgrammar.y"
{;
break;}
case 2:
-#line 145 "mtgrammar.y"
{;
break;}
case 3:
-#line 149 "mtgrammar.y"
{ mtreader_processDeclaration (yyvsp[-1].mtdecl); ;
break;}
case 4:
-#line 151 "mtgrammar.y"
{ mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ;
break;}
case 5:
-#line 155 "mtgrammar.y"
{ yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ;
break;}
case 6:
-#line 158 "mtgrammar.y"
{ yyval.mtpieces = mtDeclarationPieces_create (); ;
break;}
case 7:
-#line 160 "mtgrammar.y"
{ yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ;
break;}
case 8:
-#line 163 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ;
break;}
case 9:
-#line 164 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ;
break;}
case 10:
-#line 165 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ;
break;}
case 11:
-#line 166 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ;
break;}
case 12:
-#line 167 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ;
break;}
case 13:
-#line 168 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ;
break;}
case 14:
-#line 169 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ;
break;}
case 15:
-#line 170 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ;
break;}
case 16:
-#line 171 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ;
break;}
case 17:
-#line 172 "mtgrammar.y"
{ yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ;
break;}
case 18:
-#line 175 "mtgrammar.y"
{ yyval.mtcontext = yyvsp[0].mtcontext; ;
break;}
case 19:
-#line 179 "mtgrammar.y"
{ yyval.mtcontext = mtContextNode_createAny (); ;
break;}
case 21:
-#line 183 "mtgrammar.y"
{ yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ;
break;}
case 22:
-#line 184 "mtgrammar.y"
{ yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ;
break;}
case 23:
-#line 185 "mtgrammar.y"
-{ yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;
+{ yyval.mtcontext = mtContextNode_createResult (yyvsp[0].ctyp); ;
break;}
case 24:
-#line 192 "mtgrammar.y"
-{ yyval.ctyp = ctype_unknown; ;
+{ yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ;
break;}
case 25:
-#line 193 "mtgrammar.y"
-{ DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;
+{ yyval.mtcontext = mtContextNode_createLiteral (yyvsp[0].ctyp); ;
+ break;}
+case 26:
+{ yyval.mtcontext = mtContextNode_createNull (yyvsp[0].ctyp); ;
break;}
case 27:
-#line 197 "mtgrammar.y"
-{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
+{ yyval.ctyp = ctype_unknown; ;
break;}
case 28:
-#line 200 "mtgrammar.y"
-{ yyval.qtyp = yyvsp[0].qtyp; ;
- break;}
-case 29:
-#line 202 "mtgrammar.y"
-{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
+{ DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ;
break;}
case 30:
-#line 205 "mtgrammar.y"
-{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
+{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ;
break;}
case 31:
-#line 208 "mtgrammar.y"
-{ yyval.qtyp = qtype_unknown (); ;
+{ yyval.qtyp = yyvsp[0].qtyp; ;
break;}
case 32:
-#line 209 "mtgrammar.y"
-{ yyval.qtyp = yyvsp[0].qtyp; ;
+{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ;
break;}
case 33:
-#line 213 "mtgrammar.y"
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ;
+{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ;
+ break;}
+case 34:
+{ yyval.qtyp = qtype_unknown (); ;
break;}
case 35:
-#line 215 "mtgrammar.y"
-{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ;
+{ yyval.qtyp = yyvsp[0].qtyp; ;
break;}
case 36:
-#line 218 "mtgrammar.y"
-{ yyval.count = 1; ;
- break;}
-case 37:
-#line 219 "mtgrammar.y"
-{ yyval.count = 1; ;
+{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].pointers, ctype_unknown); ;
break;}
case 38:
-#line 220 "mtgrammar.y"
-{ yyval.count = 1 + yyvsp[0].count; ;
+{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].pointers, yyvsp[0].ctyp); ;
break;}
case 39:
-#line 221 "mtgrammar.y"
-{ yyval.count = 1 + yyvsp[0].count; ;
+{ yyval.pointers = pointers_createMt (yyvsp[0].tok); ;
break;}
case 40:
-#line 224 "mtgrammar.y"
-{ /* ignored for now */; ;
+{ yyval.pointers = pointers_createModsMt (yyvsp[-1].tok, yyvsp[0].quals); ;
break;}
case 41:
-#line 225 "mtgrammar.y"
-{ ; ;
+{ yyval.pointers = pointers_extend (pointers_createMt (yyvsp[-1].tok), yyvsp[0].pointers); ;
break;}
case 42:
-#line 228 "mtgrammar.y"
-{ ; ;
+{ yyval.pointers = pointers_extend (pointers_createModsMt (yyvsp[-2].tok, yyvsp[-1].quals), yyvsp[0].pointers); ;
break;}
case 43:
-#line 229 "mtgrammar.y"
-{ ; ;
+{ yyval.qual = qual_createConst (); ;
break;}
case 44:
-#line 232 "mtgrammar.y"
-{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
+{ yyval.qual = qual_createVolatile (); ;
break;}
case 45:
-#line 233 "mtgrammar.y"
-{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
+{ yyval.qual = qual_createRestrict (); ;
break;}
case 46:
-#line 234 "mtgrammar.y"
-{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
+{ yyval.quals = qualList_single (yyvsp[0].qual); ;
break;}
case 47:
-#line 241 "mtgrammar.y"
-{ yyval.ctyp = ctype_char; ;
+{ yyval.quals = qualList_add (yyvsp[-1].quals, yyvsp[0].qual); ;
break;}
case 48:
-#line 242 "mtgrammar.y"
-{ yyval.ctyp = ctype_int; ;
+{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ;
break;}
case 49:
-#line 243 "mtgrammar.y"
-{ yyval.ctyp = ctype_float; ;
+{ yyval.ctyp = ctype_makeArray (ctype_unknown); ;
break;}
case 50:
-#line 244 "mtgrammar.y"
-{ yyval.ctyp = ctype_double; ;
+{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ;
break;}
case 51:
-#line 245 "mtgrammar.y"
-{ yyval.ctyp = ctype_void; ;
+{ yyval.ctyp = ctype_char; ;
break;}
case 52:
-#line 246 "mtgrammar.y"
-{ yyval.ctyp = ctype_unknown; ;
+{ yyval.ctyp = ctype_int; ;
break;}
case 53:
-#line 247 "mtgrammar.y"
-{ yyval.ctyp = ctype_anyintegral; ;
+{ yyval.ctyp = ctype_float; ;
break;}
case 54:
-#line 248 "mtgrammar.y"
-{ yyval.ctyp = ctype_unsignedintegral; ;
+{ yyval.ctyp = ctype_double; ;
break;}
case 55:
-#line 249 "mtgrammar.y"
-{ yyval.ctyp = ctype_signedintegral; ;
+{ yyval.ctyp = ctype_void; ;
+ break;}
+case 56:
+{ yyval.ctyp = ctype_unknown; ;
break;}
case 57:
-#line 256 "mtgrammar.y"
-{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
+{ yyval.ctyp = ctype_anyintegral; ;
break;}
case 58:
-#line 259 "mtgrammar.y"
-{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
+{ yyval.ctyp = ctype_unsignedintegral; ;
break;}
case 59:
-#line 262 "mtgrammar.y"
+{ yyval.ctyp = ctype_signedintegral; ;
+ break;}
+case 61:
+{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ;
+ break;}
+case 62:
+{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ;
+ break;}
+case 63:
{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ;
break;}
-case 60:
-#line 264 "mtgrammar.y"
+case 64:
{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ;
break;}
-case 61:
-#line 267 "mtgrammar.y"
+case 65:
{ yyval.tok = yyvsp[0].tok; ;
break;}
-case 62:
-#line 270 "mtgrammar.y"
+case 66:
{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ;
break;}
-case 63:
-#line 274 "mtgrammar.y"
+case 67:
{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ;
break;}
-case 64:
-#line 276 "mtgrammar.y"
+case 68:
{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ;
break;}
-case 65:
-#line 279 "mtgrammar.y"
+case 69:
{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ;
break;}
-case 66:
-#line 282 "mtgrammar.y"
+case 70:
{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ;
break;}
-case 67:
-#line 284 "mtgrammar.y"
+case 71:
{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ;
break;}
-case 68:
-#line 288 "mtgrammar.y"
+case 72:
{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ;
break;}
-case 69:
-#line 291 "mtgrammar.y"
+case 73:
{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ;
break;}
-case 70:
-#line 294 "mtgrammar.y"
+case 74:
{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ;
break;}
-case 71:
-#line 295 "mtgrammar.y"
+case 75:
{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ;
break;}
-case 72:
-#line 299 "mtgrammar.y"
+case 76:
{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ;
break;}
-case 73:
-#line 302 "mtgrammar.y"
+case 77:
{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ;
break;}
-case 74:
-#line 303 "mtgrammar.y"
+case 78:
{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ;
break;}
-case 75:
-#line 306 "mtgrammar.y"
+case 79:
{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
break;}
-case 76:
-#line 309 "mtgrammar.y"
+case 80:
{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
break;}
-case 77:
-#line 312 "mtgrammar.y"
+case 81:
{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ;
break;}
-case 78:
-#line 315 "mtgrammar.y"
+case 82:
{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ;
break;}
-case 79:
-#line 318 "mtgrammar.y"
+case 83:
{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ;
break;}
-case 80:
-#line 319 "mtgrammar.y"
+case 84:
{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ;
break;}
-case 81:
-#line 322 "mtgrammar.y"
+case 85:
{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
break;}
-case 82:
-#line 325 "mtgrammar.y"
+case 86:
{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ;
break;}
-case 83:
-#line 326 "mtgrammar.y"
+case 87:
{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ;
break;}
-case 84:
-#line 330 "mtgrammar.y"
+case 88:
{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ;
break;}
-case 85:
-#line 333 "mtgrammar.y"
+case 89:
{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ;
break;}
-case 86:
-#line 334 "mtgrammar.y"
+case 90:
{ yyval.mttransferaction = yyvsp[0].mttransferaction; ;
break;}
-case 87:
-#line 337 "mtgrammar.y"
+case 91:
{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ;
break;}
-case 88:
-#line 338 "mtgrammar.y"
+case 92:
{ yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ;
break;}
-case 89:
-#line 341 "mtgrammar.y"
-{ yyval.tok = yyvsp[0].tok; ;
- break;}
}
/* the action file gets copied in in place of this dollarsign */
-#line 543 "/usr/lib/bison.simple"
+
\f
yyvsp -= yylen;
yyssp -= yylen;
}
return 1;
}
-#line 343 "mtgrammar.y"
# include "bison.reset"
static void mterror (char *s)
{
- llfatalbug
- (cstring_makeLiteral
- ("There has been a problem in the .mts parser."));
+
+ if (s != NULL)
+ {
+ llparseerror
+ (message ("Parse error in meta-state file: %s", cstring_fromChars (s)));
+ }
+ else
+ {
+ llparseerror
+ (message ("Parse error in meta-state file"));
+ }
+
}
static void yyprint (FILE *file, int type, YYSTYPE value)
/*@=systemunrecog@*/
/*@=dependenttrans@*/
/*@=unqualifiedtrans@*/
+/*@=declundef@*/
+
+
+/*drl added 11/27/2001*/
+/*@=bounds@*/