]> andersk Git - splint.git/blobdiff - src/mtgrammar.c
Changed library version constant.\a
[splint.git] / src / mtgrammar.c
index 0337574a02a6463a77ddfb3bee29af6f245b95b5..8c80b9a2c5c96dc54e523c2f537a0e525fbcfa22 100644 (file)
 /*@-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@*/
 
@@ -122,7 +140,6 @@ static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
 # include "bison.head"
 
 
-#line 48 "mtgrammar.y"
 typedef union {
   mttok tok; 
   mtDeclarationNode mtdecl;
@@ -144,11 +161,12 @@ typedef union {
   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
@@ -164,11 +182,11 @@ typedef union {
 
 
 
-#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,
@@ -200,62 +218,66 @@ static const char yytranslate[] = {     0,
      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
 
@@ -264,17 +286,17 @@ static const short yyrline[] = { 0,
 
 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",
@@ -283,112 +305,118 @@ static const char * const yytname[] = {   "$","error","$undefined.","MT_BADTOK",
 #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,
@@ -602,7 +630,7 @@ __yy_memcpy (char *to, char *from, unsigned int count)
 #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 *.
@@ -931,348 +959,272 @@ yyreduce:
   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;
@@ -1492,7 +1444,6 @@ yyerrhandle:
     }
   return 1;
 }
-#line 343 "mtgrammar.y"
 
 
 # include "bison.reset"
@@ -1501,9 +1452,18 @@ extern char *yytext;
 
 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)
@@ -1558,3 +1518,8 @@ static void yyprint (FILE *file, int type, YYSTYPE value)
 /*@=systemunrecog@*/
 /*@=dependenttrans@*/
 /*@=unqualifiedtrans@*/
+/*@=declundef@*/
+
+
+/*drl added 11/27/2001*/
+/*@=bounds@*/
This page took 0.067141 seconds and 4 git commands to generate.