/*@-dependenttrans@*/
/*@-unqualifiedtrans@*/
/*@-nullassign@*/
+/*@-nullpass@*/
+/*@-nullptrarith*/
+/*@-usereleased@*/
+/*@-declundef@*/
+/*drl added 11/27/2001*/
+/*@-bounds@*/
/* < end of bison.head > */
/* A Bison parser, made from signature.y
- by GNU Bison version 1.27
- */
+ by GNU Bison version 1.28 */
#define YYBISON 1 /* Identify Bison output. */
#define LST_unionTOKEN 300
#define LST_BADTOKEN 301
-#line 36 "signature.y"
-# include "bison.reset"
-
# include <stdio.h>
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
# include "llbasic.h"
# include "lslparse.h"
# include "signature.h"
-void lslerror (char *);
+static void lslerror (char *);
+extern int lsllex ();
+
/*@dependent@*/ /*@null@*/ lslOp importedlslOp;
/*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */
# 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;
/*@only@*/ nameNode name;
/*@owned@*/ lslOp operator;
/*@only@*/ lslOpList operators;
+ /*@-redef@*/ /*@-matchfields@*/
} YYSTYPE;
#ifndef YYDEBUG
#define YYDEBUG 1
#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.27. */
+
+/* This file comes from bison-1.28. */
/* Skeleton output parser for bison,
Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
#endif
#endif
\f
-#line 216 "/usr/lib/bison.simple"
+
/* The user can define YYPARSE_PARAM as the name of an argument to be passed
into yyparse. The argument should have type void *.
switch (yyn) {
case 1:
-#line 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 542 "/usr/lib/bison.simple"
+
\f
yyvsp -= yylen;
yyssp -= yylen;
}
return 1;
}
-#line 249 "signature.y"
# include "bison.reset"
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 Splint "
+ "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)
+/*
+** 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*/
+/*@=bounds@*/