summaryrefslogtreecommitdiffstats
path: root/freebsd/lib/libc/net/nsparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/lib/libc/net/nsparser.c')
-rw-r--r--freebsd/lib/libc/net/nsparser.c97
1 files changed, 46 insertions, 51 deletions
diff --git a/freebsd/lib/libc/net/nsparser.c b/freebsd/lib/libc/net/nsparser.c
index 74ed8f00..aefcde20 100644
--- a/freebsd/lib/libc/net/nsparser.c
+++ b/freebsd/lib/libc/net/nsparser.c
@@ -5,7 +5,7 @@
#define YYBYACC 1
#define YYMAJOR 1
#define YYMINOR 9
-#define YYPATCH 20160324
+#define YYPATCH 20170201
#define YYEMPTY (-1)
#define yyclearin (yychar = YYEMPTY)
@@ -97,7 +97,7 @@
#define YYPURE 0
-#line 2 "../../freebsd/lib/libc/net/nsparser.y"
+#line 2 "nsparser.y"
/* $NetBSD: nsparser.y,v 1.3 1999/01/25 00:16:18 lukem Exp $ */
/*-
@@ -145,19 +145,19 @@ static void _nsaddsrctomap(const char *);
static ns_dbt curdbt;
static ns_src cursrc;
-#line 51 "../../freebsd/lib/libc/net/nsparser.y"
#ifdef YYSTYPE
#undef YYSTYPE_IS_DECLARED
#define YYSTYPE_IS_DECLARED 1
#endif
#ifndef YYSTYPE_IS_DECLARED
#define YYSTYPE_IS_DECLARED 1
+#line 51 "nsparser.y"
typedef union {
char *str;
int mapval;
} YYSTYPE;
#endif /* !YYSTYPE_IS_DECLARED */
-#line 161 "_nsyy.tab.c"
+#line 161 "nsparser.c"
/* compatibility with bison */
#ifdef YYPARSE_PARAM
@@ -356,7 +356,7 @@ typedef struct {
} YYSTACKDATA;
/* variables for the parser stack */
static YYSTACKDATA yystack;
-#line 146 "../../freebsd/lib/libc/net/nsparser.y"
+#line 146 "nsparser.y"
static void
_nsaddsrctomap(const char *elem)
@@ -389,10 +389,10 @@ _nsaddsrctomap(const char *elem)
cursrc.name = elem;
_nsdbtaddsrc(&curdbt, &cursrc);
}
-#line 393 "_nsyy.tab.c"
+#line 393 "nsparser.c"
#if YYDEBUG
-#include <stdio.h> /* needed for printf */
+#include <stdio.h> /* needed for printf */
#endif
#include <stdlib.h> /* needed for malloc, etc */
@@ -464,6 +464,8 @@ YYPARSE_DECL()
}
#endif
+ yym = 0;
+ yyn = 0;
yynerrs = 0;
yyerrflag = 0;
yychar = YYEMPTY;
@@ -483,28 +485,26 @@ yyloop:
if ((yyn = yydefred[yystate]) != 0) goto yyreduce;
if (yychar < 0)
{
- if ((yychar = YYLEX) < 0) yychar = YYEOF;
+ yychar = YYLEX;
+ if (yychar < 0) yychar = YYEOF;
#if YYDEBUG
if (yydebug)
{
- yys = yyname[YYTRANSLATE(yychar)];
+ if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
#endif
}
- if ((yyn = yysindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ if (((yyn = yysindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, shifting to state %d\n",
YYPREFIX, yystate, yytable[yyn]);
#endif
- if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
- {
- goto yyoverflow;
- }
+ if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
yystate = yytable[yyn];
*++yystack.s_mark = yytable[yyn];
*++yystack.l_mark = yylval;
@@ -512,18 +512,17 @@ yyloop:
if (yyerrflag > 0) --yyerrflag;
goto yyloop;
}
- if ((yyn = yyrindex[yystate]) && (yyn += yychar) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yychar)
+ if (((yyn = yyrindex[yystate]) != 0) && (yyn += yychar) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yychar)
{
yyn = yytable[yyn];
goto yyreduce;
}
- if (yyerrflag) goto yyinrecovery;
+ if (yyerrflag != 0) goto yyinrecovery;
YYERROR_CALL("syntax error");
- goto yyerrlab;
-
+ goto yyerrlab; /* redundant goto avoids 'unused label' warning */
yyerrlab:
++yynerrs;
@@ -533,18 +532,15 @@ yyinrecovery:
yyerrflag = 3;
for (;;)
{
- if ((yyn = yysindex[*yystack.s_mark]) && (yyn += YYERRCODE) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)
+ if (((yyn = yysindex[*yystack.s_mark]) != 0) && (yyn += YYERRCODE) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) YYERRCODE)
{
#if YYDEBUG
if (yydebug)
printf("%sdebug: state %d, error recovery shifting\
to state %d\n", YYPREFIX, *yystack.s_mark, yytable[yyn]);
#endif
- if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
- {
- goto yyoverflow;
- }
+ if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
yystate = yytable[yyn];
*++yystack.s_mark = yytable[yyn];
*++yystack.l_mark = yylval;
@@ -569,7 +565,7 @@ yyinrecovery:
#if YYDEBUG
if (yydebug)
{
- yys = yyname[YYTRANSLATE(yychar)];
+ if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
printf("%sdebug: state %d, error recovery discards token %d (%s)\n",
YYPREFIX, yystate, yychar, yys);
}
@@ -585,32 +581,33 @@ yyreduce:
YYPREFIX, yystate, yyn, yyrule[yyn]);
#endif
yym = yylen[yyn];
- if (yym)
+ if (yym > 0)
yyval = yystack.l_mark[1-yym];
else
memset(&yyval, 0, sizeof yyval);
+
switch (yyn)
{
case 6:
-#line 79 "../../freebsd/lib/libc/net/nsparser.y"
+#line 79 "nsparser.y"
{
free((char*)curdbt.name);
}
break;
case 7:
-#line 83 "../../freebsd/lib/libc/net/nsparser.y"
+#line 83 "nsparser.y"
{
_nsdbtput(&curdbt);
}
break;
case 8:
-#line 87 "../../freebsd/lib/libc/net/nsparser.y"
+#line 87 "nsparser.y"
{
yyerrok;
}
break;
case 9:
-#line 94 "../../freebsd/lib/libc/net/nsparser.y"
+#line 94 "nsparser.y"
{
curdbt.name = yylval.str;
curdbt.srclist = NULL;
@@ -618,24 +615,24 @@ case 9:
}
break;
case 12:
-#line 108 "../../freebsd/lib/libc/net/nsparser.y"
+#line 108 "nsparser.y"
{
cursrc.flags = NS_TERMINATE;
_nsaddsrctomap(yystack.l_mark[0].str);
}
break;
case 13:
-#line 112 "../../freebsd/lib/libc/net/nsparser.y"
+#line 112 "nsparser.y"
{ cursrc.flags = NS_SUCCESS; }
break;
case 14:
-#line 113 "../../freebsd/lib/libc/net/nsparser.y"
+#line 113 "nsparser.y"
{
_nsaddsrctomap(yystack.l_mark[-4].str);
}
break;
case 17:
-#line 125 "../../freebsd/lib/libc/net/nsparser.y"
+#line 125 "nsparser.y"
{
if (yystack.l_mark[0].mapval) /* if action == RETURN set RETURN bit */
cursrc.flags |= yystack.l_mark[-2].mapval;
@@ -644,30 +641,30 @@ case 17:
}
break;
case 18:
-#line 134 "../../freebsd/lib/libc/net/nsparser.y"
+#line 134 "nsparser.y"
{ yyval.mapval = NS_SUCCESS; }
break;
case 19:
-#line 135 "../../freebsd/lib/libc/net/nsparser.y"
+#line 135 "nsparser.y"
{ yyval.mapval = NS_UNAVAIL; }
break;
case 20:
-#line 136 "../../freebsd/lib/libc/net/nsparser.y"
+#line 136 "nsparser.y"
{ yyval.mapval = NS_NOTFOUND; }
break;
case 21:
-#line 137 "../../freebsd/lib/libc/net/nsparser.y"
+#line 137 "nsparser.y"
{ yyval.mapval = NS_TRYAGAIN; }
break;
case 22:
-#line 141 "../../freebsd/lib/libc/net/nsparser.y"
+#line 141 "nsparser.y"
{ yyval.mapval = NS_ACTION_RETURN; }
break;
case 23:
-#line 142 "../../freebsd/lib/libc/net/nsparser.y"
+#line 142 "nsparser.y"
{ yyval.mapval = NS_ACTION_CONTINUE; }
break;
-#line 671 "_nsyy.tab.c"
+#line 668 "nsparser.c"
}
yystack.s_mark -= yym;
yystate = *yystack.s_mark;
@@ -685,11 +682,12 @@ break;
*++yystack.l_mark = yyval;
if (yychar < 0)
{
- if ((yychar = YYLEX) < 0) yychar = YYEOF;
+ yychar = YYLEX;
+ if (yychar < 0) yychar = YYEOF;
#if YYDEBUG
if (yydebug)
{
- yys = yyname[YYTRANSLATE(yychar)];
+ if ((yys = yyname[YYTRANSLATE(yychar)]) == NULL) yys = yyname[YYUNDFTOKEN];
printf("%sdebug: state %d, reading %d (%s)\n",
YYPREFIX, YYFINAL, yychar, yys);
}
@@ -698,8 +696,8 @@ break;
if (yychar == YYEOF) goto yyaccept;
goto yyloop;
}
- if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&
- yyn <= YYTABLESIZE && yycheck[yyn] == yystate)
+ if (((yyn = yygindex[yym]) != 0) && (yyn += yystate) >= 0 &&
+ yyn <= YYTABLESIZE && yycheck[yyn] == (YYINT) yystate)
yystate = yytable[yyn];
else
yystate = yydgoto[yym];
@@ -708,10 +706,7 @@ break;
printf("%sdebug: after reduction, shifting from state %d \
to state %d\n", YYPREFIX, *yystack.s_mark, yystate);
#endif
- if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM)
- {
- goto yyoverflow;
- }
+ if (yystack.s_mark >= yystack.s_last && yygrowstack(&yystack) == YYENOMEM) goto yyoverflow;
*++yystack.s_mark = (YYINT) yystate;
*++yystack.l_mark = yyval;
goto yyloop;