]> andersk Git - splint.git/blobdiff - src/signature.c.der
Fixed state clauses. Added obvious loop exec checking.
[splint.git] / src / signature.c.der
index 630b5ebeac84391ee178bce1b1c1740bc1933ce5..3b64fe85cdd31bba2726a9b7f43b84bba46f05fa 100644 (file)
 /*@-dependenttrans@*/
 /*@-unqualifiedtrans@*/
 /*@-nullassign@*/
+/*@-declundef@*/
 
+/*drl added 11/27/2001*/
+/*@-arraybounds@*/
+/*@-arrayboundsread@*/
 /* < end of bison.head > */
 
 
 /*  A Bison parser, made from signature.y
- by  GNU Bison version 1.25
-  */
+    by GNU Bison version 1.28  */
 
 #define YYBISON 1  /* Identify Bison output.  */
 
 #define yychar lslchar
 #define yydebug lsldebug
 #define yynerrs lslnerrs
-#define        LST_SIMPLEID    258
-#define        LST_LOGICALOP   259
-#define        LST_EQOP        260
-#define        LST_SIMPLEOP    261
-#define        LST_MAPSYM      262
-#define        LST_FIELDMAPSYM 263
-#define        LST_MARKERSYM   264
-#define        LST_ifTOKEN     265
-#define        LST_thenTOKEN   266
-#define        LST_elseTOKEN   267
-#define        LST_LBRACKET    268
-#define        LST_RBRACKET    269
-#define        LST_SELECTSYM   270
-#define        LST_SEPSYM      271
-#define        LST_OPENSYM     272
-#define        LST_CLOSESYM    273
-#define        LST_COLON       274
-#define        LST_COMMA       275
-#define        LST_EOL 276
-#define        LST_COMMENTSYM  277
-#define        LST_WHITESPACE  278
-#define        LST_QUANTIFIERSYM       279
-#define        LST_EQUATIONSYM 280
-#define        LST_EQSEPSYM    281
-#define        LST_COMPOSESYM  282
-#define        LST_LPAR        283
-#define        LST_RPAR        284
-#define        LST_assertsTOKEN        285
-#define        LST_assumesTOKEN        286
-#define        LST_byTOKEN     287
-#define        LST_convertsTOKEN       288
-#define        LST_enumerationTOKEN    289
-#define        LST_equationsTOKEN      290
-#define        LST_exemptingTOKEN      291
-#define        LST_forTOKEN    292
-#define        LST_generatedTOKEN      293
-#define        LST_impliesTOKEN        294
-#define        LST_includesTOKEN       295
-#define        LST_introducesTOKEN     296
-#define        LST_ofTOKEN     297
-#define        LST_partitionedTOKEN    298
-#define        LST_traitTOKEN  299
-#define        LST_tupleTOKEN  300
-#define        LST_unionTOKEN  301
-#define        LST_BADTOKEN    302
-
-#line 36 "signature.y"
+#define        LST_SIMPLEID    257
+#define        LST_LOGICALOP   258
+#define        LST_EQOP        259
+#define        LST_SIMPLEOP    260
+#define        LST_MAPSYM      261
+#define        LST_FIELDMAPSYM 262
+#define        LST_MARKERSYM   263
+#define        LST_ifTOKEN     264
+#define        LST_thenTOKEN   265
+#define        LST_elseTOKEN   266
+#define        LST_LBRACKET    267
+#define        LST_RBRACKET    268
+#define        LST_SELECTSYM   269
+#define        LST_SEPSYM      270
+#define        LST_OPENSYM     271
+#define        LST_CLOSESYM    272
+#define        LST_COLON       273
+#define        LST_COMMA       274
+#define        LST_EOL 275
+#define        LST_COMMENTSYM  276
+#define        LST_WHITESPACE  277
+#define        LST_QUANTIFIERSYM       278
+#define        LST_EQUATIONSYM 279
+#define        LST_EQSEPSYM    280
+#define        LST_COMPOSESYM  281
+#define        LST_LPAR        282
+#define        LST_RPAR        283
+#define        LST_assertsTOKEN        284
+#define        LST_assumesTOKEN        285
+#define        LST_byTOKEN     286
+#define        LST_convertsTOKEN       287
+#define        LST_enumerationTOKEN    288
+#define        LST_equationsTOKEN      289
+#define        LST_exemptingTOKEN      290
+#define        LST_forTOKEN    291
+#define        LST_generatedTOKEN      292
+#define        LST_impliesTOKEN        293
+#define        LST_includesTOKEN       294
+#define        LST_introducesTOKEN     295
+#define        LST_ofTOKEN     296
+#define        LST_partitionedTOKEN    297
+#define        LST_traitTOKEN  298
+#define        LST_tupleTOKEN  299
+#define        LST_unionTOKEN  300
+#define        LST_BADTOKEN    301
 
 
-# include "bison.reset"
 
 # include <stdio.h>
 # include "lclintMacros.nf"
@@ -126,10 +126,11 @@ static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */);
 
 # define YYDEBUG 1
 
-# include "bison.head"
+/*@-redef@*/
+/*@-readonlytrans@*/
+/*@-nullassign@*/
 
 
-#line 73 "signature.y"
 typedef union {
   ltoken ltok;  /* a leaf is also an ltoken */
   unsigned int count;
@@ -139,6 +140,7 @@ typedef union {
   /*@only@*/  nameNode name;
   /*@owned@*/ lslOp operator;
   /*@only@*/  lslOpList operators;
+  /*@-redef@*/ /*@-matchfields@*/ 
 } YYSTYPE;
 #ifndef YYDEBUG
 #define YYDEBUG 1
@@ -158,7 +160,7 @@ typedef union {
 #define        YYFLAG          -32768
 #define        YYNTBASE        48
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 302 ? yytranslate[x] : 62)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 301 ? yytranslate[x] : 62)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -186,12 +188,12 @@ static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     1,     2,     3,     4,     5,
-     6,     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,
-    46,    47
+     2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
+     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,    46,
+    47
 };
 
 #if YYDEBUG != 0
@@ -221,10 +223,10 @@ static const short yyrhs[] = {    49,
 
 #if YYDEBUG != 0
 static const short yyrline[] = { 0,
-   139,   141,   146,   150,   156,   158,   162,   164,   166,   168,
-   170,   172,   174,   176,   178,   181,   184,   187,   190,   193,
-   196,   201,   206,   208,   210,   213,   215,   218,   220,   223,
-   225,   228,   231,   233,   236,   238,   241,   247
+   137,   139,   144,   148,   154,   156,   160,   162,   164,   166,
+   168,   170,   172,   174,   176,   179,   182,   185,   188,   191,
+   194,   199,   204,   206,   208,   211,   213,   216,   218,   221,
+   223,   226,   229,   231,   234,   236,   239,   245
 };
 #endif
 
@@ -312,7 +314,8 @@ static const short yycheck[] = {     3,
 #define YYPURE 1
 
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/bison.simple"
+
+/* This file comes from bison-1.28.  */
 
 /* Skeleton output parser for bison,
    Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
@@ -329,46 +332,66 @@ static const short yycheck[] = {     3,
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330,
+   Boston, MA 02111-1307, USA.  */
 
 /* As a special exception, when this file is copied by Bison into a
    Bison output file, you may use that output file without restriction.
    This special exception was added by the Free Software Foundation
    in version 1.24 of Bison.  */
 
-#ifndef alloca
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  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
+#else /* alloca not defined */
 #ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
 #define alloca __builtin_alloca
 #else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi)
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
 #include <alloca.h>
 #else /* not sparc */
-#if defined (MSDOS) && !defined (__TURBOC__)
+/* 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)
-#include <malloc.h>
+/* 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
-#else /* not MSDOS, __TURBOC__, or _AIX */
-#ifdef __hpux
-#ifdef __cplusplus
-extern "C" {
-void *alloca (unsigned int);
-};
-#else /* not __cplusplus */
-void *alloca ();
-#endif /* not __cplusplus */
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+                and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#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 /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
 
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
 
 /* Note: there must be only one dollar sign in this file.
    It is replaced by the list of actions, each action
@@ -378,8 +401,8 @@ void *alloca ();
 #define yyclearin      (yychar = YYEMPTY)
 #define YYEMPTY                -2
 #define YYEOF          0
-#define YYACCEPT       return(0)
-#define YYABORT        return(1)
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT        goto yyabortlab
 #define YYERROR                goto yyerrlab1
 /* Like YYERROR except do call yyerror.
    This remains here temporarily to ease the
@@ -460,12 +483,12 @@ int yydebug;                      /*  nonzero means print parse trace     */
 #ifndef YYMAXDEPTH
 #define YYMAXDEPTH 10000
 #endif
-
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
-int yyparse (void);
-#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++ */
@@ -477,7 +500,7 @@ static void
 __yy_memcpy (to, from, count)
      char *to;
      char *from;
-     int count;
+     unsigned int count;
 {
   register char *f = from;
   register char *t = to;
@@ -492,10 +515,10 @@ __yy_memcpy (to, from, count)
 /* This is the most reliable way to avoid incompatibilities
    in available built-in functions on various systems.  */
 static void
-__yy_memcpy (char *to, char *from, int count)
+__yy_memcpy (char *to, char *from, unsigned int count)
 {
-  register char *f = from;
   register char *t = to;
+  register char *f = from;
   register int i = count;
 
   while (i-- > 0)
@@ -505,7 +528,7 @@ __yy_memcpy (char *to, char *from, int count)
 #endif
 #endif
 \f
-#line 196 "/usr/share/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 *.
@@ -526,6 +549,15 @@ __yy_memcpy (char *to, char *from, int count)
 #define YYPARSE_PARAM_DECL
 #endif /* not YYPARSE_PARAM */
 
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
 int
 yyparse(YYPARSE_PARAM_ARG)
      YYPARSE_PARAM_DECL
@@ -554,6 +586,7 @@ yyparse(YYPARSE_PARAM_ARG)
 #endif
 
   int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
 
 #ifdef YYPURE
   int yychar;
@@ -638,18 +671,32 @@ yynewstate:
       if (yystacksize >= YYMAXDEPTH)
        {
          yyerror("parser stack overflow");
+         if (yyfree_stacks)
+           {
+             free (yyss);
+             free (yyvs);
+#ifdef YYLSP_NEEDED
+             free (yyls);
+#endif
+           }
          return 2;
        }
       yystacksize *= 2;
       if (yystacksize > YYMAXDEPTH)
        yystacksize = YYMAXDEPTH;
-      yyss = (short *) alloca (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1, size * sizeof (*yyssp));
-      yyvs = (YYSTYPE *) alloca (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1, size * sizeof (*yyvsp));
+#ifndef 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));
 #ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) alloca (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1, size * sizeof (*yylsp));
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+                  size * (unsigned int) sizeof (*yylsp));
 #endif
 #endif /* no yyoverflow */
 
@@ -810,175 +857,137 @@ yyreduce:
   switch (yyn) {
 
 case 1:
-#line 139 "signature.y"
 { lslOpList_free (yyvsp[0].operators); ;
     break;}
 case 2:
-#line 142 "signature.y"
 { lslOpList x = lslOpList_new ();
                g_importedlslOp = yyvsp[0].operator;
                lslOpList_add (x, yyvsp[0].operator);
                yyval.operators = x; ;
     break;}
 case 3:
-#line 147 "signature.y"
 { lslOpList_add (yyvsp[-1].operators, yyvsp[0].operator);
                yyval.operators = yyvsp[-1].operators; ;
     break;}
 case 4:
-#line 151 "signature.y"
 { yyval.operator = makelslOpNode (yyvsp[-2].name, yyvsp[0].signature); ;
     break;}
 case 5:
-#line 157 "signature.y"
 { yyval.name = makeNameNodeId (yyvsp[0].ltok); ;
     break;}
 case 6:
-#line 159 "signature.y"
 { yyval.name = makeNameNodeForm (yyvsp[0].opform); ;
     break;}
 case 7:
-#line 163 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-5].ltok, OPF_IF, opFormUnion_createMiddle (0), ltoken_undefined); ;
     break;}
 case 8:
-#line 165 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[0].ltok, OPF_ANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
     break;}
 case 9:
-#line 167 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_MANYOP, opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
     break;}
 case 10:
-#line 169 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_ANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
     break;}
 case 11:
-#line 171 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MANYOPM, opFormUnion_createAnyOp (yyvsp[-1].ltok), ltoken_undefined); ;
     break;}
 case 12:
-#line 173 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
     break;}
 case 13:
-#line 175 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMIDDLE, opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
     break;}
 case 14:
-#line 177 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MIDDLEM, opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
     break;}
 case 15:
-#line 179 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_MMIDDLEM, 
                              opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
     break;}
 case 16:
-#line 182 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMIDDLE, 
                              opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
     break;}
 case 17:
-#line 185 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_BMMIDDLE, 
                              opFormUnion_createMiddle (yyvsp[-1].count), yyvsp[0].ltok); ;
     break;}
 case 18:
-#line 188 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMIDDLEM, 
                            opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
     break;}
 case 19:
-#line 191 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-3].ltok, OPF_BMMIDDLEM, 
                            opFormUnion_createMiddle (yyvsp[-2].count), yyvsp[-1].ltok); ;
     break;}
 case 20:
-#line 194 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-1].ltok, OPF_SELECT, 
                            opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
     break;}
 case 21:
-#line 197 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MSELECT, 
                            opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
     break;}
 case 22:
-#line 202 "signature.y"
 { yyval.opform = makeOpFormNode (yyvsp[-2].ltok, OPF_MMAP, 
                            opFormUnion_createAnyOp (yyvsp[0].ltok), ltoken_undefined); ;
     break;}
 case 23:
-#line 207 "signature.y"
 { yyval.ltok = yyvsp[0].ltok; ;
     break;}
 case 24:
-#line 209 "signature.y"
 { yyval.ltok = yyvsp[0].ltok; ;
     break;}
 case 25:
-#line 211 "signature.y"
 { yyval.ltok = yyvsp[0].ltok; ;
     break;}
 case 26:
-#line 214 "signature.y"
 { yyval.count = 0; ;
     break;}
 case 27:
-#line 216 "signature.y"
 { yyval.count = yyvsp[0].count; ;
     break;}
 case 28:
-#line 219 "signature.y"
 { yyval.count = 1; ;
     break;}
 case 29:
-#line 221 "signature.y"
 { yyval.count = yyvsp[-2].count + 1; ;
     break;}
 case 30:
-#line 224 "signature.y"
 { yyval.ltok = yyvsp[0].ltok; ;
     break;}
 case 31:
-#line 226 "signature.y"
 { yyval.ltok = yyvsp[0].ltok; ;
     break;}
 case 32:
-#line 229 "signature.y"
 { yyval.signature = makesigNode (yyvsp[-1].ltok, yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
     break;}
 case 33:
-#line 232 "signature.y"
 { yyval.ltokenList = ltokenList_new (); ;
     break;}
 case 34:
-#line 234 "signature.y"
 { yyval.ltokenList = yyvsp[0].ltokenList; ;
     break;}
 case 35:
-#line 237 "signature.y"
 { yyval.ltokenList = ltokenList_singleton (yyvsp[0].ltok); ;
     break;}
 case 36:
-#line 239 "signature.y"
 { yyval.ltokenList = ltokenList_push (yyvsp[-2].ltokenList, yyvsp[0].ltok); ;
     break;}
 case 37:
-#line 242 "signature.y"
 { 
          yyval.ltok = yyvsp[0].ltok; 
          ltoken_setText (yyval.ltok, processTraitSortId (ltoken_getText (yyvsp[0].ltok))); 
        ;
     break;}
 case 38:
-#line 248 "signature.y"
 { yyval.ltok = yyvsp[0].ltok; ;
     break;}
 }
    /* the action file gets copied in in place of this dollarsign */
-#line 498 "/usr/share/bison.simple"
+
 \f
   yyvsp -= yylen;
   yyssp -= yylen;
@@ -1173,8 +1182,31 @@ yyerrhandle:
 
   yystate = yyn;
   goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
 }
-#line 249 "signature.y"
 
 
 # include "bison.reset"
@@ -1183,8 +1215,12 @@ extern char *yytext;
 
 void lslerror (char *s) 
 {
-  lclplainerror (message ("An error has occurred in parsing LSL signature: %s", 
-                         cstring_fromChars (s)));
+  llfatalbug 
+    (cstring_makeLiteral 
+     ("There has been a problem in the parser with LSL signatures. This is believed to result "
+      "from a problem with bison v. 1.25.  Please try rebuidling LCLint "
+      "using the pre-compiled grammar files by commenting out the "
+      "BISON= line in the top-level Makefile."));
 }
 
 static void yyprint (FILE *file, int type, YYSTYPE value)
@@ -1248,3 +1284,51 @@ extern void PrintToken (ltoken tok) {
 
 
 
+/*
+** Resets all flags in bison.head
+*/
+
+
+/*@=allmacros@*/
+/*@=boolint@*/
+/*@=charint@*/
+/*@=macroparams@*/
+/*@=macroundef@*/
+/*@=unreachable@*/
+/*@=macrospec@*/
+/*@=varuse@*/
+/*@=ignorequals@*/
+/*@=macrostmt@*/
+/*@=noeffect@*/
+/*@=shadow@*/
+/*@=exitarg@*/
+/*@=macroredef@*/
+/*@=uniondef@*/
+/*@=compdef@*/
+/*@=matchfields@*/
+/*@=exportlocal@*/
+/*@=evalorderuncon@*/
+/*@=exportheader@*/
+/*@=typeuse@*/
+/*@=redecl@*/
+/*@=redef@*/
+/*@=noparams@*/
+/*@=ansireserved@*/
+/*@=fielduse@*/
+/*@=ifblock@*/
+/*@=elseifcomplete@*/
+/*@=whileblock@*/
+/*@=forblock@*/
+/*@=branchstate@*/
+/*@=readonlytrans@*/
+/*@=namechecks@*/
+/*@=usedef@*/
+/*@=systemunrecog@*/
+/*@=dependenttrans@*/
+/*@=unqualifiedtrans@*/
+/*@=declundef@*/
+
+
+/*drl added 11/27/2001*/
+/*@=arraybounds@*/
+/*@=arrayboundsread@*/
This page took 0.059203 seconds and 4 git commands to generate.