📄 nsparser.c
字号:
#ifndef lintstatic char yysccsid[] = "@(#)yaccpar 1.9 (Berkeley) 02/21/93";#endif#define YYBYACC 1#define YYMAJOR 1#define YYMINOR 9#define yyclearin (yychar=(-1))#define yyerrok (yyerrflag=0)#define YYRECOVERING (yyerrflag!=0)#define yyparse _nsyyparse#define yylex _nsyylex#define yyerror _nsyyerror#define yychar _nsyychar#define yyval _nsyyval#define yylval _nsyylval#define yydebug _nsyydebug#define yynerrs _nsyynerrs#define yyerrflag _nsyyerrflag#define yyss _nsyyss#define yyssp _nsyyssp#define yyvs _nsyyvs#define yyvsp _nsyyvsp#define yylhs _nsyylhs#define yylen _nsyylen#define yydefred _nsyydefred#define yydgoto _nsyydgoto#define yysindex _nsyysindex#define yyrindex _nsyyrindex#define yygindex _nsyygindex#define yytable _nsyytable#define yycheck _nsyycheck#define yyname _nsyyname#define yyrule _nsyyrule#define YYPREFIX "_nsyy"#line 2 "nsparser.y"/* $NetBSD: nsparser.y,v 1.3 1999/01/25 00:16:18 lukem Exp $ *//*- * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. * All rights reserved. * * This code is derived from software contributed to The NetBSD Foundation * by Luke Mewburn. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the NetBSD * Foundation, Inc. and its contributors. * 4. Neither the name of The NetBSD Foundation nor the names of its * contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */#include <sys/cdefs.h>#if defined(LIBC_SCCS) && !defined(lint)static char *rcsid = "$FreeBSD: src/lib/libc/net/nsparser.y,v 1.3 2002/03/21 22:47:17 obrien Exp $";#endif /* LIBC_SCCS and not lint */#define _NS_PRIVATE#include <nsswitch.h>#include <stdio.h>#include <string.h>static void _nsaddsrctomap(const char *);static ns_dbt curdbt;static ns_src cursrc;#line 59 "nsparser.y"typedef union { char *str; int mapval;} YYSTYPE;#line 97 "y.tab.c"#define NL 257#define SUCCESS 258#define UNAVAIL 259#define NOTFOUND 260#define TRYAGAIN 261#define RETURN 262#define CONTINUE 263#define STRING 264#define YYERRCODE 256short _nsyylhs[] = { -1, 0, 0, 3, 3, 4, 4, 4, 4, 5, 6, 6, 7, 9, 7, 8, 8, 10, 1, 1, 1, 1, 2, 2,};short _nsyylen[] = { 2, 0, 1, 1, 2, 1, 3, 4, 2, 1, 1, 2, 1, 0, 5, 1, 2, 3, 1, 1, 1, 1, 1, 1,};short _nsyydefred[] = { 0, 0, 5, 9, 0, 0, 3, 0, 8, 4, 0, 6, 0, 0, 10, 13, 7, 11, 0, 18, 19, 20, 21, 0, 0, 15, 0, 14, 16, 22, 23, 17,};short _nsyydgoto[] = { 4, 23, 31, 5, 6, 7, 13, 14, 24, 18, 25,};short _nsyysindex[] = { -255, -249, 0, 0, 0, -255, 0, -41, 0, 0, -254, 0, -73, -253, 0, 0, 0, 0, -245, 0, 0, 0, 0, -42, -93, 0, -256, 0, 0, 0, 0, 0,};short _nsyyrindex[] = { 20, 0, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, -252, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,};short _nsyygindex[] = { 0, 0, 0, 0, 17, 0, 0, 10, 0, 0, 1,};#define YYTABLESIZE 168short _nsyytable[] = { 27, 1, 2, 11, 16, 12, 29, 30, 8, 3, 12, 12, 12, 19, 20, 21, 22, 10, 15, 26, 1, 2, 9, 17, 0, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 20, 21, 22,};short _nsyycheck[] = { 93, 256, 257, 257, 257, 257, 262, 263, 257, 264, 264, 264, 264, 258, 259, 260, 261, 58, 91, 61, 0, 0, 5, 13, -1, 24, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261,};#define YYFINAL 4#ifndef YYDEBUG#define YYDEBUG 0#endif#define YYMAXTOKEN 264#if YYDEBUGchar *_nsyyname[] = {"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"':'",0,0,"'='",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"'['",0,"']'",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"NL","SUCCESS","UNAVAIL","NOTFOUND","TRYAGAIN","RETURN","CONTINUE","STRING",};char *_nsyyrule[] = {"$accept : File","File :","File : Lines","Lines : Entry","Lines : Lines Entry","Entry : NL","Entry : Database ':' NL","Entry : Database ':' Srclist NL","Entry : error NL","Database : STRING","Srclist : Item","Srclist : Srclist Item","Item : STRING","$$1 :","Item : STRING '[' $$1 Criteria ']'","Criteria : Criterion","Criteria : Criteria Criterion","Criterion : Status '=' Action","Status : SUCCESS","Status : UNAVAIL","Status : NOTFOUND","Status : TRYAGAIN","Action : RETURN","Action : CONTINUE",};#endif#ifdef YYSTACKSIZE#undef YYMAXDEPTH#define YYMAXDEPTH YYSTACKSIZE#else#ifdef YYMAXDEPTH#define YYSTACKSIZE YYMAXDEPTH#else#define YYSTACKSIZE 500#define YYMAXDEPTH 500#endif#endifint yydebug;int yynerrs;int yyerrflag;int yychar;short *yyssp;YYSTYPE *yyvsp;YYSTYPE yyval;YYSTYPE yylval;short yyss[YYSTACKSIZE];YYSTYPE yyvs[YYSTACKSIZE];#define yystacksize YYSTACKSIZE#line 150 "nsparser.y"static void_nsaddsrctomap(elem) const char *elem;{ int i, lineno; extern int _nsyylineno; extern char * _nsyytext; lineno = _nsyylineno - (*_nsyytext == '\n' ? 1 : 0); if (curdbt.srclistsize > 0) { if ((strcasecmp(elem, NSSRC_COMPAT) == 0) || (strcasecmp(curdbt.srclist[0].name, NSSRC_COMPAT) == 0)) { /* XXX: syslog the following */ printf("line %d 'compat' used with other sources", lineno); return; } } for (i = 0; i < curdbt.srclistsize; i++) { if (strcasecmp(curdbt.srclist[i].name, elem) == 0) { /* XXX: syslog the following */ printf("%s line %d: duplicate source '%s'", lineno, elem); return; } } cursrc.name = elem;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -