]> andersk Git - splint.git/blobdiff - src/llgrammar.c.der
Committing after merging Evan's changes.
[splint.git] / src / llgrammar.c.der
index 25459ccdfe94ab1492894ae12333a1fa83ffe231..2ce2282ab40f46e7d22b9725f63dbb0275bd819a 100644 (file)
 
 /*drl added 11/27/2001*/
 /*@-bounds@*/
-/* < end of bison.head > */
 
+/*drl added 12/11/2002*/
+/*@-type@*/
+
+/* < end of bison.head > */
 
 /* A Bison parser, made from llgrammar.y
-   by GNU bison 1.30.  */
+   by GNU bison 1.35.  */
 
 #define YYBISON 1  /* Identify Bison output.  */
 
@@ -213,7 +216,7 @@ static /*@unused@*/ void yyprint ();
 /*@=noparams@*/
 
 /*@-redecl@*/
-void ylerror (char *) /*@modifies *g_msgstream@*/ ;
+void ylerror (char *) /*@modifies *g_warningstream@*/ ;
 /*@=redecl@*/
 
 bool g_inTypeDef = FALSE;
@@ -239,6 +242,7 @@ bool g_inTypeDef = FALSE;
 # endif
 
 
+#ifndef YYSTYPE
 typedef union 
 {
   ltoken ltok;  /* a leaf is also an ltoken */
@@ -276,6 +280,7 @@ typedef union
   /*@only@*/ abstBodyNode abstbody;
   /*@only@*/ abstractNode abstract;
   /*@only@*/ exposedNode exposed;
+  /*@only@*/ pointers pointers;
   /*    taggedUnionNode taggedunion; */
   /*@only@*/ globalList globals;
   /*@only@*/ constDeclarationNode constdeclaration;
@@ -304,13 +309,14 @@ typedef union
   /*@only@*/ interfaceNodeList interfacelist; 
   /*@only@*/ CTypesNode ctypes;
   /*@-redef@*/
-} YYSTYPE;
+} yystype;
+# define YYSTYPE yystype
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
 #ifndef YYDEBUG
 # define YYDEBUG 1
 #endif
 
-#include <stdio.h>
-
 
 
 #define        YYFINAL         684
@@ -365,7 +371,7 @@ static const short yytranslate[] =
      136
 };
 
-#if YYDEBUG != 0
+#if YYDEBUG
 static const short yyprhs[] =
 {
        0,     0,     1,     5,     6,     9,    11,    13,    14,    17,
@@ -541,57 +547,57 @@ static const short yyrhs[] =
 
 #endif
 
-#if YYDEBUG != 0
+#if YYDEBUG
 /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
 static const short yyrline[] =
 {
-       0,   380,   381,   384,   385,   388,   389,   392,   393,   394,
-     397,   398,   401,   402,   403,   406,   412,   416,   418,   420,
-     422,   424,   426,   430,   434,   435,   438,   440,   444,   445,
-     448,   449,   452,   454,   456,   458,   462,   466,   468,   470,
-     474,   475,   478,   479,   480,   483,   484,   491,   493,   504,
-     506,   509,   513,   513,   514,   515,   515,   517,   518,   519,
-     520,   521,   521,   522,   525,   526,   527,   528,   530,   546,
-     548,   552,   553,   555,   558,   559,   562,   566,   568,   572,
-     574,   576,   578,   582,   583,   586,   588,   590,   593,   595,
-     598,   600,   603,   604,   605,   609,   610,   612,   614,   617,
-     619,   623,   624,   627,   629,   633,   634,   635,   638,   639,
-     642,   646,   647,   650,   651,   654,   655,   657,   660,   661,
-     664,   665,   668,   669,   670,   671,   674,   675,   678,   679,
-     680,   681,   682,   685,   686,   689,   690,   693,   694,   697,
-     698,   699,   702,   703,   706,   707,   708,   711,   712,   715,
-     720,   726,   734,   736,   738,   740,   744,   745,   748,   749,
-     750,   751,   752,   753,   754,   756,   760,   761,   762,   763,
-     766,   767,   770,   771,   774,   774,   783,   784,   788,   789,
-     792,   793,   796,   797,   798,   799,   800,   801,   802,   803,
-     804,   805,   813,   814,   819,   821,   827,   828,   829,   830,
-     831,   832,   833,   834,   835,   836,   837,   838,   839,   840,
-     841,   842,   843,   844,   845,   846,   847,   848,   849,   850,
-     851,   852,   853,   854,   855,   856,   857,   858,   859,   860,
-     861,   862,   865,   867,   869,   871,   873,   882,   883,   888,
-     889,   892,   894,   896,   898,   900,   902,   906,   907,   910,
-     911,   916,   919,   921,   925,   926,   929,   931,   935,   936,
-     946,   947,   950,   951,   952,   953,   954,   955,   958,   959,
-     960,   961,   962,   963,   972,   973,   974,   975,   976,   982,
-     983,   984,   994,   995,   996,  1001,  1002,  1005,  1006,  1007,
-    1008,  1009,  1010,  1011,  1012,  1015,  1016,  1019,  1021,  1023,
-    1025,  1027,  1030,  1032,  1034,  1036,  1038,  1040,  1048,  1050,
-    1052,  1055,  1058,  1061,  1066,  1067,  1070,  1071,  1074,  1075,
-    1076,  1079,  1080,  1083,  1084,  1087,  1088,  1091,  1094,  1095,
-    1098,  1099,  1102,  1105,  1111,  1113,  1114,  1117,  1118,  1123,
-    1125,  1129,  1130,  1131,  1134,  1135,  1138,  1139,  1142,  1143,
-    1146,  1147,  1150,  1151,  1152,  1153,  1154,  1155,  1156,  1159,
-    1160,  1163,  1166,  1168,  1172,  1176,  1177,  1180,  1181,  1184,
-    1186,  1188,  1190,  1191,  1193,  1195,  1197,  1200,  1202,  1206,
-    1207,  1210,  1211,  1212,  1213,  1216,  1217,  1218,  1219,  1220,
-    1221,  1226,  1232,  1242,  1243,  1244,  1245,  1248,  1250,  1254,
-    1258,  1261,  1262,  1265,  1266,  1269,  1270,  1273,  1274,  1275,
-    1276,  1277,  1278,  1279
+       0,   382,   382,   387,   388,   392,   393,   397,   398,   399,
+     403,   404,   408,   409,   410,   414,   421,   426,   428,   430,
+     432,   434,   436,   441,   446,   447,   451,   453,   458,   459,
+     463,   463,   468,   470,   472,   474,   479,   484,   486,   488,
+     493,   494,   498,   499,   500,   504,   504,   512,   512,   525,
+     525,   530,   535,   535,   535,   537,   537,   537,   540,   540,
+     540,   543,   543,   543,   548,   548,   548,   551,   553,   570,
+     572,   577,   578,   580,   584,   585,   589,   594,   596,   601,
+     603,   605,   607,   612,   613,   617,   619,   621,   625,   627,
+     631,   633,   637,   638,   639,   644,   645,   648,   651,   655,
+     657,   662,   663,   667,   669,   674,   675,   676,   680,   681,
+     685,   690,   691,   695,   696,   700,   701,   704,   708,   709,
+     713,   714,   718,   719,   720,   721,   725,   726,   730,   731,
+     732,   733,   734,   738,   739,   743,   744,   748,   749,   753,
+     754,   755,   759,   760,   764,   765,   766,   770,   771,   774,
+     779,   785,   794,   796,   798,   800,   805,   806,   810,   811,
+     812,   813,   814,   815,   816,   818,   823,   824,   825,   826,
+     830,   831,   835,   836,   840,   840,   850,   851,   856,   856,
+     861,   862,   866,   867,   868,   869,   870,   871,   872,   873,
+     874,   875,   884,   885,   891,   893,   900,   901,   902,   903,
+     904,   905,   906,   907,   908,   909,   910,   911,   912,   913,
+     914,   915,   916,   917,   918,   919,   920,   921,   922,   923,
+     924,   925,   926,   927,   928,   929,   930,   931,   932,   933,
+     934,   935,   939,   941,   943,   945,   947,   957,   958,   964,
+     965,   969,   969,   973,   973,   977,   979,   984,   985,   989,
+     990,   996,  1000,  1002,  1007,  1008,  1012,  1014,  1019,  1020,
+    1031,  1032,  1036,  1037,  1038,  1039,  1040,  1041,  1045,  1046,
+    1047,  1048,  1049,  1050,  1060,  1061,  1062,  1063,  1064,  1071,
+    1072,  1073,  1084,  1085,  1086,  1092,  1093,  1097,  1098,  1099,
+    1100,  1101,  1102,  1103,  1104,  1108,  1109,  1113,  1115,  1117,
+    1119,  1121,  1124,  1126,  1128,  1130,  1132,  1134,  1142,  1144,
+    1146,  1149,  1152,  1155,  1161,  1162,  1166,  1167,  1171,  1172,
+    1173,  1177,  1178,  1182,  1183,  1187,  1188,  1192,  1196,  1197,
+    1201,  1202,  1206,  1210,  1217,  1219,  1220,  1224,  1225,  1230,
+    1232,  1237,  1238,  1239,  1243,  1244,  1248,  1249,  1253,  1254,
+    1258,  1259,  1263,  1264,  1265,  1266,  1267,  1268,  1269,  1273,
+    1274,  1278,  1281,  1283,  1287,  1292,  1293,  1297,  1298,  1302,
+    1304,  1306,  1308,  1309,  1311,  1313,  1315,  1318,  1320,  1325,
+    1326,  1330,  1331,  1332,  1333,  1337,  1338,  1339,  1340,  1341,
+    1342,  1347,  1353,  1364,  1365,  1366,  1367,  1371,  1373,  1378,
+    1378,  1386,  1387,  1391,  1392,  1396,  1397,  1401,  1402,  1403,
+    1404,  1405,  1406,  1407
 };
 #endif
 
 
-#if YYDEBUG != 0 || defined YYERROR_VERBOSE
+#if (YYDEBUG) || defined YYERROR_VERBOSE
 
 /* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */
 static const char *const yytname[] =
@@ -653,7 +659,7 @@ static const char *const yytname[] =
   "bracketed", "sqBracketed", "matched", "args", "primary", "termList", 
   "stateFcn", "lclPrimary", "cLiteral", "quantifiers", "quantifier", 
   "@20", "quantifiedList", "quantified", "simpleIdOrTypedefName", "fcnId", 
-  "varId", "tagId", "claimId", "sortId", "traitId", "opId", NULL
+  "varId", "tagId", "claimId", "sortId", "traitId", "opId", 0
 };
 #endif
 
@@ -1624,7 +1630,9 @@ static const short yycheck[] =
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 
 /* Skeleton output parser for bison,
-   Copyright 1984, 1989, 1990, 2000, 2001 Free Software Foundation, Inc.
+
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software
+   Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -1651,58 +1659,125 @@ static const short yycheck[] =
    It was written by Richard Stallman by simplifying the hairy parser
    used when %semantic_parser is specified.  */
 
-#ifndef YYSTACK_USE_ALLOCA
-# ifdef alloca
-#  define YYSTACK_USE_ALLOCA 1
-# else /* alloca not defined */
-#  ifdef __GNUC__
-#   define YYSTACK_USE_ALLOCA 1
-#   define alloca __builtin_alloca
-#  else /* not GNU C.  */
-#   if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
-#    define YYSTACK_USE_ALLOCA 1
-#    include <alloca.h>
-#   else /* not sparc */
-     /* We think this test detects Watcom and Microsoft C.  */
-     /* This used to test MSDOS, but that is a bad idea since that
-       symbol is in the user namespace.  */
-#    if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
-#     if 0
-       /* No need for malloc.h, which pollutes the namespace; instead,
-         just don't use alloca.  */
-#      include <malloc.h>
-#     endif
-#    else /* not MSDOS, or __TURBOC__ */
-#     if defined(_AIX)
-       /* I don't know what this was needed for, but it pollutes the
-         namespace.  So I turned it off.  rms, 2 May 1997.  */
-       /* #include <malloc.h>  */
- #pragma alloca
-#      define YYSTACK_USE_ALLOCA 1
-#     else /* not MSDOS, or __TURBOC__, or _AIX */
-#      if 0
-       /* haible@ilog.fr says this works for HPUX 9.05 and up, and on
-          HPUX 10.  Eventually we can turn this on.  */
-#       ifdef __hpux
-#        define YYSTACK_USE_ALLOCA 1
-#        define alloca __builtin_alloca
-#      endif /* __hpux */
-#      endif
-#     endif /* not _AIX */
-#    endif /* not MSDOS, or __TURBOC__ */
-#   endif /* not sparc */
-#  endif /* not GNU C */
-# endif /* alloca not defined */
-#endif /* YYSTACK_USE_ALLOCA not defined */
-
-#ifndef YYSTACK_USE_ALLOCA
-# define YYSTACK_USE_ALLOCA 0
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# if YYSTACK_USE_ALLOCA
+#  define YYSTACK_ALLOC alloca
+# else
+#  ifndef YYSTACK_USE_ALLOCA
+#   if defined (alloca) || defined (_ALLOCA_H)
+#    define YYSTACK_ALLOC alloca
+#   else
+#    ifdef __GNUC__
+#     define YYSTACK_ALLOC __builtin_alloca
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+# else
+#  if defined (__STDC__) || defined (__cplusplus)
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#   define YYSIZE_T size_t
+#  endif
+#  define YYSTACK_ALLOC malloc
+#  define YYSTACK_FREE free
+# endif
+#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */
+
+
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
+
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short yyss;
+  YYSTYPE yyvs;
+# if YYLSP_NEEDED
+  YYLTYPE yyls;
+# endif
+};
+
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)
+
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# if YYLSP_NEEDED
+#  define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \
+      + 2 * YYSTACK_GAP_MAX)
+# else
+#  define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \
+      + YYSTACK_GAP_MAX)
+# endif
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)             \
+      do                                       \
+       {                                       \
+         register YYSIZE_T yyi;                \
+         for (yyi = 0; yyi < (Count); yyi++)   \
+           (To)[yyi] = (From)[yyi];            \
+       }                                       \
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)                                       \
+    do                                                                 \
+      {                                                                        \
+       YYSIZE_T yynewbytes;                                            \
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
+       Stack = &yyptr->Stack;                                          \
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \
+       yyptr += yynewbytes / sizeof (*yyptr);                          \
+      }                                                                        \
+    while (0)
+
 #endif
 
-#if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-#else
-# define YYSTACK_ALLOC malloc
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# if defined (__STDC__) || defined (__cplusplus)
+#  include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYSIZE_T size_t
+# endif
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
 #endif
 
 #define yyerrok                (yyerrstatus = 0)
@@ -1775,15 +1850,19 @@ while (0)
 
 /* Enable debugging if requested.  */
 #if YYDEBUG
+
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
 # define YYDPRINTF(Args)                       \
 do {                                           \
   if (yydebug)                                 \
-    fprintf Args;                              \
+    YYFPRINTF Args;                            \
 } while (0)
-/* Nonzero means print parse trace. [The following comment makes no
-   sense to me.  Could someone clarify it?  --akim] Since this is
-   uninitialized, it does not stop multiple parsers from coexisting.
-   */
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
 int yydebug;
 #else /* !YYDEBUG */
 # define YYDPRINTF(Args)
@@ -1795,7 +1874,12 @@ int yydebug;
 #endif
 
 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
-   if the built-in stack extension method is used).  */
+   if the built-in stack extension method is used).
+
+   Do not make this value too large; the results are undefined if
+   SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
+
 #if YYMAXDEPTH == 0
 # undef YYMAXDEPTH
 #endif
@@ -1804,35 +1888,56 @@ int yydebug;
 # define YYMAXDEPTH 10000
 #endif
 \f
-/* Define __yy_memcpy.  Note that the size argument
-   should be passed with type unsigned int, because that is what the non-GCC
-   definitions require.  With GCC, __builtin_memcpy takes an arg
-   of type size_t, but it can handle unsigned int.  */
-
-#if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
-# define __yy_memcpy(To, From, Count)  __builtin_memcpy (To, From, Count)
-#else                          /* not GNU C or C++ */
-
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-# ifndef __cplusplus
-__yy_memcpy (to, from, count)
-     char *to;
-     const char *from;
-     unsigned int count;
-# else /* __cplusplus */
-__yy_memcpy (char *to, const char *from, unsigned int count)
-# endif
+#ifdef YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined (__GLIBC__) && defined (_STRING_H)
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+#   if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+#   else
+yystrlen (yystr)
+     const char *yystr;
+#   endif
 {
-  register const char *f = from;
-  register char *t = to;
-  register int i = count;
+  register const char *yys = yystr;
+
+  while (*yys++ != '\0')
+    continue;
 
-  while (i-- > 0)
-    *t++ = *f++;
+  return yys - yystr - 1;
 }
+#  endif
+# endif
+
+# ifndef yystpcpy
+#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+static char *
+#   if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+#   else
+yystpcpy (yydest, yysrc)
+     char *yydest;
+     const char *yysrc;
+#   endif
+{
+  register char *yyd = yydest;
+  register const char *yys = yysrc;
+
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
 
+  return yyd - 1;
+}
+#  endif
+# endif
 #endif
 \f
 
@@ -1844,13 +1949,13 @@ __yy_memcpy (char *to, const char *from, unsigned int count)
    to the proper pointer type.  */
 
 #ifdef YYPARSE_PARAM
-# ifdef __cplusplus
+# if defined (__STDC__) || defined (__cplusplus)
 #  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
 #  define YYPARSE_PARAM_DECL
-# else /* !__cplusplus */
+# else
 #  define YYPARSE_PARAM_ARG YYPARSE_PARAM
 #  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-# endif /* !__cplusplus */
+# endif
 #else /* !YYPARSE_PARAM */
 # define YYPARSE_PARAM_ARG
 # define YYPARSE_PARAM_DECL
@@ -1868,7 +1973,7 @@ int yyparse (void);
 /* YY_DECL_VARIABLES -- depending whether we use a pure parser,
    variables are global, or local to YYPARSE.  */
 
-#define _YY_DECL_VARIABLES                             \
+#define YY_DECL_NON_LSP_VARIABLES                      \
 /* The lookahead symbol.  */                           \
 int yychar;                                            \
                                                        \
@@ -1880,13 +1985,13 @@ int yynerrs;
 
 #if YYLSP_NEEDED
 # define YY_DECL_VARIABLES                     \
-_YY_DECL_VARIABLES                             \
+YY_DECL_NON_LSP_VARIABLES                      \
                                                \
 /* Location data for the lookahead symbol.  */ \
 YYLTYPE yylloc;
 #else
 # define YY_DECL_VARIABLES                     \
-_YY_DECL_VARIABLES
+YY_DECL_NON_LSP_VARIABLES
 #endif
 
 
@@ -1907,6 +2012,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   register int yystate;
   register int yyn;
+  int yyresult;
   /* Number of tokens to shift before error messages enabled.  */
   int yyerrstatus;
   /* Lookahead token as an internal (translated) token number.  */
@@ -1914,7 +2020,7 @@ yyparse (YYPARSE_PARAM_ARG)
 
   /* Three stacks and their tools:
      `yyss': related to states,
-     `yysv': related to semantic values,
+     `yyvs': related to semantic values,
      `yyls': related to locations.
 
      Refer to the stacks thru separate pointers, to allow yyoverflow
@@ -1943,16 +2049,15 @@ yyparse (YYPARSE_PARAM_ARG)
 # define YYPOPSTACK   (yyvsp--, yyssp--)
 #endif
 
-  int yystacksize = YYINITDEPTH;
-  int yyfree_stacks = 0;
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
 
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
-# if YYLSP_NEEDED
+#if YYLSP_NEEDED
   YYLTYPE yyloc;
-# endif
+#endif
 
   /* When reducing, the number of symbols on the RHS of the reduced
      rule. */
@@ -1991,81 +2096,75 @@ yyparse (YYPARSE_PARAM_ARG)
 
   if (yyssp >= yyss + yystacksize - 1)
     {
-      /* Give user a chance to reallocate the stack. Use copies of
-        these so that the &'s don't force the real ones into memory.
-        */
-      YYSTYPE *yyvs1 = yyvs;
-      short *yyss1 = yyss;
-#if YYLSP_NEEDED
-      YYLTYPE *yyls1 = yyls;
-#endif
-
       /* Get the current used size of the three stacks, in elements.  */
-      int size = yyssp - yyss + 1;
+      YYSIZE_T yysize = yyssp - yyss + 1;
 
 #ifdef yyoverflow
-      /* Each stack pointer address is followed by the size of the
-        data in use in that stack, in bytes.  */
+      {
+       /* Give user a chance to reallocate the stack. Use copies of
+          these so that the &'s don't force the real ones into
+          memory.  */
+       YYSTYPE *yyvs1 = yyvs;
+       short *yyss1 = yyss;
+
+       /* Each stack pointer address is followed by the size of the
+          data in use in that stack, in bytes.  */
 # if YYLSP_NEEDED
-      /* This used to be a conditional around just the two extra args,
-        but that might be undefined if yyoverflow is a macro.  */
-      yyoverflow ("parser stack overflow",
-                 &yyss1, size * sizeof (*yyssp),
-                 &yyvs1, size * sizeof (*yyvsp),
-                 &yyls1, size * sizeof (*yylsp),
-                 &yystacksize);
+       YYLTYPE *yyls1 = yyls;
+       /* This used to be a conditional around just the two extra args,
+          but that might be undefined if yyoverflow is a macro.  */
+       yyoverflow ("parser stack overflow",
+                   &yyss1, yysize * sizeof (*yyssp),
+                   &yyvs1, yysize * sizeof (*yyvsp),
+                   &yyls1, yysize * sizeof (*yylsp),
+                   &yystacksize);
+       yyls = yyls1;
 # else
-      yyoverflow ("parser stack overflow",
-                 &yyss1, size * sizeof (*yyssp),
-                 &yyvs1, size * sizeof (*yyvsp),
-                 &yystacksize);
-# endif
-
-      yyss = yyss1; yyvs = yyvs1;
-# if YYLSP_NEEDED
-      yyls = yyls1;
+       yyoverflow ("parser stack overflow",
+                   &yyss1, yysize * sizeof (*yyssp),
+                   &yyvs1, yysize * sizeof (*yyvsp),
+                   &yystacksize);
 # endif
+       yyss = yyss1;
+       yyvs = yyvs1;
+      }
 #else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyoverflowlab;
+# else
       /* Extend the stack our own way.  */
       if (yystacksize >= YYMAXDEPTH)
-       {
-         yyerror ("parser stack overflow");
-         if (yyfree_stacks)
-           {
-             free (yyss);
-             free (yyvs);
-# if YYLSP_NEEDED
-             free (yyls);
-# endif
-           }
-         return 2;
-       }
+       goto yyoverflowlab;
       yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)
        yystacksize = YYMAXDEPTH;
-# if !YYSTACK_USE_ALLOCA
-      yyfree_stacks = 1;
-# endif
-      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1,
-                  size * (unsigned int) sizeof (*yyssp));
-      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
-                  size * (unsigned int) sizeof (*yyvsp));
+
+      {
+       short *yyss1 = yyss;
+       union yyalloc *yyptr =
+         (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+       if (! yyptr)
+         goto yyoverflowlab;
+       YYSTACK_RELOCATE (yyss);
+       YYSTACK_RELOCATE (yyvs);
 # if YYLSP_NEEDED
-      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1,
-                  size * (unsigned int) sizeof (*yylsp));
+       YYSTACK_RELOCATE (yyls);
+# endif
+# undef YYSTACK_RELOCATE
+       if (yyss1 != yyssa)
+         YYSTACK_FREE (yyss1);
+      }
 # endif
 #endif /* no yyoverflow */
 
-      yyssp = yyss + size - 1;
-      yyvsp = yyvs + size - 1;
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
 #if YYLSP_NEEDED
-      yylsp = yyls + size - 1;
+      yylsp = yyls + yysize - 1;
 #endif
 
-      YYDPRINTF ((stderr, "Stack size increased to %d\n", yystacksize));
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+                 (unsigned long int) yystacksize));
 
       if (yyssp >= yyss + yystacksize - 1)
        YYABORT;
@@ -2120,13 +2219,14 @@ yybackup:
        which are defined only if `YYDEBUG' is set.  */
       if (yydebug)
        {
-         fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+         YYFPRINTF (stderr, "Next token is %d (%s",
+                    yychar, yytname[yychar1]);
          /* Give the individual parser a way to print the precise
             meaning of a token, for further debugging info.  */
 # ifdef YYPRINT
          YYPRINT (stderr, yychar, yylval);
 # endif
-         fprintf (stderr, ")\n");
+         YYFPRINTF (stderr, ")\n");
        }
 #endif
     }
@@ -2158,7 +2258,8 @@ yybackup:
     YYACCEPT;
 
   /* Shift the lookahead token.  */
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]));
+  YYDPRINTF ((stderr, "Shifting token %d (%s), ",
+             yychar, yytname[yychar1]));
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
@@ -2217,15 +2318,15 @@ yyreduce:
      are defined only if `YYDEBUG' is set.  */
   if (yydebug)
     {
-      int i;
+      int yyi;
 
-      fprintf (stderr, "Reducing via rule %d (line %d), ",
-              yyn, yyrline[yyn]);
+      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",
+                yyn, yyrline[yyn]);
 
       /* Print the symbols being reduced, and their result.  */
-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
-       fprintf (stderr, "%s ", yytname[yyrhs[i]]);
-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)
+       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);
     }
 #endif
 
@@ -2935,13 +3036,13 @@ case 236:
     break;}
 case 238:
 { llassert (lclTypeSpecNode_isDefined (yyvsp[-1].lcltypespec));
-     yyvsp[-1].lcltypespec->pointers = yyvsp[0].count; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
+     yyvsp[-1].lcltypespec->pointers = yyvsp[0].pointers; yyval.lcltypespec = yyvsp[-1].lcltypespec; ;
     break;}
 case 239:
-{ yyval.count = 1; ;
+{ yyval.pointers = pointers_createLt (yyvsp[0].ltok); ;
     break;}
 case 240:
-{ yyval.count = yyvsp[-1].count + 1; ;
+{ yyval.pointers = pointers_extend (yyvsp[-1].pointers, pointers_createLt (yyvsp[0].ltok)); ;
     break;}
 case 241:
 { (void) checkAndEnterTag (TAG_FWDSTRUCT, ltoken_copy (yyvsp[0].ltok)); ;
@@ -3340,16 +3441,16 @@ case 392:
 { yyval.term = makeSizeofTermNode (yyvsp[-3].ltok, yyvsp[-1].lcltypespec); ;
     break;}
 case 393:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_int); ;
+{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortInt); ;
     break;}
 case 394:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_cstring); ;
+{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortCstring); ;
     break;}
 case 395:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_char); ;
+{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortChar); ;
     break;}
 case 396:
-{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, sort_double); ;
+{ yyval.term = makeLiteralTermNode (yyvsp[0].ltok, g_sortDouble); ;
     break;}
 case 397:
 { yyval.quantifiers = quantifierNodeList_add (quantifierNodeList_new (),  yyvsp[0].quantifier); ;
@@ -3390,11 +3491,11 @@ case 404:
 #if YYDEBUG
   if (yydebug)
     {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
+      short *yyssp1 = yyss - 1;
+      YYFPRINTF (stderr, "state stack now");
+      while (yyssp1 != yyssp)
+       YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
     }
 #endif
 
@@ -3432,46 +3533,47 @@ yyerrlab:
 
       if (yyn > YYFLAG && yyn < YYLAST)
        {
-         int size = 0;
-         char *msg;
-         int x, count;
-
-         count = 0;
-         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-         for (x = (yyn < 0 ? -yyn : 0);
-              x < (int) (sizeof (yytname) / sizeof (char *)); x++)
-           if (yycheck[x + yyn] == x)
-             size += strlen (yytname[x]) + 15, count++;
-         size += strlen ("parse error, unexpected `") + 1;
-         size += strlen (yytname[YYTRANSLATE (yychar)]);
-         msg = (char *) malloc (size);
-         if (msg != 0)
+         YYSIZE_T yysize = 0;
+         char *yymsg;
+         int yyx, yycount;
+
+         yycount = 0;
+         /* Start YYX at -YYN if negative to avoid negative indexes in
+            YYCHECK.  */
+         for (yyx = yyn < 0 ? -yyn : 0;
+              yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)
+           if (yycheck[yyx + yyn] == yyx)
+             yysize += yystrlen (yytname[yyx]) + 15, yycount++;
+         yysize += yystrlen ("parse error, unexpected ") + 1;
+         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);
+         yymsg = (char *) YYSTACK_ALLOC (yysize);
+         if (yymsg != 0)
            {
-             strcpy (msg, "parse error, unexpected `");
-             strcat (msg, yytname[YYTRANSLATE (yychar)]);
-             strcat (msg, "'");
+             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");
+             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);
 
-             if (count < 5)
+             if (yycount < 5)
                {
-                 count = 0;
-                 for (x = (yyn < 0 ? -yyn : 0);
-                      x < (int) (sizeof (yytname) / sizeof (char *)); x++)
-                   if (yycheck[x + yyn] == x)
+                 yycount = 0;
+                 for (yyx = yyn < 0 ? -yyn : 0;
+                      yyx < (int) (sizeof (yytname) / sizeof (char *));
+                      yyx++)
+                   if (yycheck[yyx + yyn] == yyx)
                      {
-                       strcat (msg, count == 0 ? ", expecting `" : " or `");
-                       strcat (msg, yytname[x]);
-                       strcat (msg, "'");
-                       count++;
+                       const char *yyq = ! yycount ? ", expecting " : " or ";
+                       yyp = yystpcpy (yyp, yyq);
+                       yyp = yystpcpy (yyp, yytname[yyx]);
+                       yycount++;
                      }
                }
-             yyerror (msg);
-             free (msg);
+             yyerror (yymsg);
+             YYSTACK_FREE (yymsg);
            }
          else
-           yyerror ("parse error; also virtual memory exceeded");
+           yyerror ("parse error; also virtual memory exhausted");
        }
       else
-#endif /* YYERROR_VERBOSE */
+#endif /* defined (YYERROR_VERBOSE) */
        yyerror ("parse error");
     }
   goto yyerrlab1;
@@ -3534,11 +3636,11 @@ yyerrpop:
 #if YYDEBUG
   if (yydebug)
     {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "Error: state stack now");
-      while (ssp1 != yyssp)
-       fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
+      short *yyssp1 = yyss - 1;
+      YYFPRINTF (stderr, "Error: state stack now");
+      while (yyssp1 != yyssp)
+       YYFPRINTF (stderr, " %d", *++yyssp1);
+      YYFPRINTF (stderr, "\n");
     }
 #endif
 
@@ -3583,30 +3685,30 @@ yyerrhandle:
 | yyacceptlab -- YYACCEPT comes here.  |
 `-------------------------------------*/
 yyacceptlab:
-  if (yyfree_stacks)
-    {
-      free (yyss);
-      free (yyvs);
-#if YYLSP_NEEDED
-      free (yyls);
-#endif
-    }
-  return 0;
-
+  yyresult = 0;
+  goto yyreturn;
 
 /*-----------------------------------.
 | yyabortlab -- YYABORT comes here.  |
 `-----------------------------------*/
 yyabortlab:
-  if (yyfree_stacks)
-    {
-      free (yyss);
-      free (yyvs);
-#if YYLSP_NEEDED
-      free (yyls);
+  yyresult = 1;
+  goto yyreturn;
+
+/*---------------------------------------------.
+| yyoverflowab -- parser overflow comes here.  |
+`---------------------------------------------*/
+yyoverflowlab:
+  yyerror ("parser stack overflow");
+  yyresult = 2;
+  /* Fall through.  */
+
+yyreturn:
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
 #endif
-    }
-  return 1;
+  return yyresult;
 }
 
 
@@ -3695,3 +3797,6 @@ static void yyprint (FILE *f, int t, YYSTYPE value)
 
 /*drl added 11/27/2001*/
 /*@=bounds@*/
+
+/*drl added 12/11/2002*/
+/*@=type@*/
This page took 0.087179 seconds and 4 git commands to generate.