source: rtems-libbsd/freebsd-userspace/lib/libc/net/nslexer.l @ c52d922

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since c52d922 was c52d922, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 12, 2012 at 10:09:48 PM

nsdispatch.c: New file added along with required dependencies

This file uses dynamic loading and is using some magic for
statically linked modules included in it. These modules may
or may not show up magically in an RTEMS executable. This will
eventually have to be investigated and resolved.

  • Property mode set to 100644
File size: 3.4 KB
Line 
1%{
2/*      $NetBSD: nslexer.l,v 1.3 1999/01/25 00:16:17 lukem Exp $        */
3
4/*-
5 * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to The NetBSD Foundation
9 * by Luke Mewburn.
10 *
11 * Redistribution and use in source and binary forms, with or without
12 * modification, are permitted provided that the following conditions
13 * are met:
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions and the following disclaimer.
16 * 2. Redistributions in binary form must reproduce the above copyright
17 *    notice, this list of conditions and the following disclaimer in the
18 *    documentation and/or other materials provided with the distribution.
19 * 3. All advertising materials mentioning features or use of this software
20 *    must display the following acknowledgement:
21 *        This product includes software developed by the NetBSD
22 *        Foundation, Inc. and its contributors.
23 * 4. Neither the name of The NetBSD Foundation nor the names of its
24 *    contributors may be used to endorse or promote products derived
25 *    from this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
28 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
29 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
30 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
31 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
32 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
33 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
34 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
35 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
36 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
37 * POSSIBILITY OF SUCH DAMAGE.
38 */
39
40#include <sys/cdefs.h>
41#if defined(LIBC_SCCS) && !defined(lint)
42static char *rcsid =
43  "$FreeBSD$";
44#endif /* LIBC_SCCS and not lint */
45
46#include "namespace.h"
47#include <ctype.h>
48#define _NS_PRIVATE
49#include <nsswitch.h>
50#include <string.h>
51#include <syslog.h>
52#include "un-namespace.h"
53
54#include "nsparser.h"
55
56#define YY_NO_UNPUT
57
58%}
59
60%option yylineno
61
62BLANK           [ \t]
63CR              \n
64STRING          [a-zA-Z][a-zA-Z0-9_]*
65
66%%
67
68{BLANK}+        ;                       /* skip whitespace */
69
70#.*             ;                       /* skip comments */
71
72\\{CR}          ;                       /* allow continuation */
73
74{CR}            return NL;
75
76[sS][uU][cC][cC][eE][sS][sS]            return SUCCESS;
77[uU][nN][aA][vV][aA][iI][lL]            return UNAVAIL;
78[nN][oO][tT][fF][oO][uU][nN][dD]        return NOTFOUND;
79[tT][rR][yY][aA][gG][aA][iI][nN]        return TRYAGAIN;
80
81[rR][eE][tT][uU][rR][nN]                return RETURN;
82[cC][oO][nN][tT][iI][nN][uU][eE]        return CONTINUE;
83
84{STRING}        {
85                        char *p;
86                        int i;
87
88                        if ((p = strdup(yytext)) == NULL) {
89                                syslog(LOG_ERR,
90                               "NSSWITCH(nslexer): memory allocation failure");
91                                return ERRORTOKEN;
92                        }
93                        for (i = 0; i < strlen(p); i++) {
94                                if (isupper((unsigned char)p[i]))
95                                        p[i] = tolower((unsigned char)p[i]);
96                        }
97                        _nsyylval.str = p;
98                        return STRING;
99                }
100
101.               return yytext[0];
102
103%%
104
105#undef _nsyywrap
106int
107_nsyywrap()
108{
109        return 1;
110} /* _nsyywrap */
111
112void
113_nsyyerror(msg)
114        const char *msg;
115{
116
117         syslog(LOG_ERR, "NSSWITCH(nslexer): %s line %d: %s at '%s'",
118             _PATH_NS_CONF, yylineno, msg, yytext);
119} /* _nsyyerror */
Note: See TracBrowser for help on using the repository browser.