|
|
1.1 root 1: %{
2:
3: /*
4: * Copyright (c) 1983 Regents of the University of California.
5: * All rights reserved.
6: *
7: * Redistribution and use in source and binary forms are permitted
8: * provided that the above copyright notice and this paragraph are
9: * duplicated in all such forms and that any documentation,
10: * advertising materials, and other materials related to such
11: * distribution and use acknowledge that the software was developed
12: * by the University of California, Berkeley. The name of the
13: * University may not be used to endorse or promote products derived
14: * from this software without specific prior written permission.
15: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
16: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
17: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18: */
19:
20: #ifndef lint
21: static char sccsid[] = "@(#)scan.l 5.6 (Berkeley) 6/18/88";
22: #endif /* not lint */
23:
24: #include "y.tab.h"
25: #include "htable.h"
26: %}
27:
28: BLANK [ \t]
29: DIGIT [0-9]
30: ALPHA [A-Za-z]
31: ANUM [0-9A-Za-z]
32: NAMECHR [0-9A-Za-z./-]
33:
34: %%
35: "NET" {
36: yylval.number = KW_NET;
37: return (KEYWORD);
38: }
39:
40: "GATEWAY" {
41: yylval.number = KW_GATEWAY;
42: return (KEYWORD);
43: }
44:
45: "HOST" {
46: yylval.number = KW_HOST;
47: return (KEYWORD);
48: }
49:
50: {ALPHA}{NAMECHR}*{ANUM} {
51: yylval.namelist = newname(yytext);
52: return (NAME);
53: }
54:
55: {ALPHA} {
56: yylval.namelist = newname(yytext);
57: return (NAME);
58: }
59:
60: {DIGIT}+{ALPHA}{NAMECHR}* {
61: fprintf(stderr, "Warning: nonstandard name \"%s\"\n",
62: yytext);
63: yylval.namelist = newname(yytext);
64: return (NAME);
65: }
66:
67: {DIGIT}+ {
68: yylval.number = atoi(yytext);
69: return (NUMBER);
70: }
71:
72: "." return ('.');
73: ":" return (':');
74: "," return (',');
75: "/" return ('/');
76: ";".* ;
77: "\n"{BLANK}+ ;
78: {BLANK}+ ;
79: "\n" return (END);
80: . fprintf(stderr, "Illegal char: '%s'\n", yytext);
81:
82: %%
83:
84: yywrap()
85: {
86: return (1);
87: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.