/*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. */
/*@=noparams@*/
/*@-redecl@*/
-void ylerror (char *) /*@modifies *g_msgstream@*/ ;
+void ylerror (char *) /*@modifies *g_warningstream@*/ ;
/*@=redecl@*/
bool g_inTypeDef = FALSE;
# endif
+#ifndef YYSTYPE
typedef union
{
ltoken ltok; /* a leaf is also an ltoken */
/*@only@*/ abstBodyNode abstbody;
/*@only@*/ abstractNode abstract;
/*@only@*/ exposedNode exposed;
+ /*@only@*/ pointers pointers;
/* taggedUnionNode taggedunion; */
/*@only@*/ globalList globals;
/*@only@*/ constDeclarationNode constdeclaration;
/*@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
136
};
-#if YYDEBUG != 0
+#if YYDEBUG
static const short yyprhs[] =
{
0, 0, 1, 5, 6, 9, 11, 13, 14, 17,
#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[] =
"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
/* -*-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
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)
/* 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)
#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
# 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
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
/* 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; \
\
#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
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. */
/* 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
# 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. */
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;
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
}
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)
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
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)); ;
{ 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); ;
#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
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;
#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
| 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;
}
/*drl added 11/27/2001*/
/*@=bounds@*/
+
+/*drl added 12/11/2002*/
+/*@=type@*/