xref: /csrg-svn/old/htable/scan.l (revision 27189)
1 %{
2 /*
3  * Copyright (c) 1983 Regents of the University of California.
4  * All rights reserved.  The Berkeley software License Agreement
5  * specifies the terms and conditions for redistribution.
6  */
7 
8 #ifndef lint
9 static char sccsid[] = "@(#)scan.l	5.4 (Berkeley) 04/19/86";
10 #endif not lint
11 
12 #include "y.tab.h"
13 #include "htable.h"
14 %}
15 
16 BLANK	[ \t]
17 DIGIT	[0-9]
18 ALPHA	[A-Za-z]
19 ANUM	[0-9A-Za-z]
20 NAMECHR	[0-9A-Za-z./-]
21 
22 %%
23 "NET"		{
24 			yylval.number = KW_NET;
25 			return (KEYWORD);
26 		}
27 
28 "GATEWAY"	{
29 			yylval.number = KW_GATEWAY;
30 			return (KEYWORD);
31 		}
32 
33 "HOST"		{
34 			yylval.number = KW_HOST;
35 			return (KEYWORD);
36 		}
37 
38 {ALPHA}{NAMECHR}*{ANUM}	{
39 			yylval.namelist = newname(yytext);
40 			return (NAME);
41 		}
42 
43 {ALPHA}		{
44 			yylval.namelist = newname(yytext);
45 			return (NAME);
46 		}
47 
48 {DIGIT}+{ALPHA}{NAMECHR}* {
49 			fprintf(stderr, "Warning: nonstandard name \"%s\"\n",
50 				yytext);
51 			yylval.namelist = newname(yytext);
52 			return (NAME);
53 		}
54 
55 {DIGIT}+	{
56 			yylval.number = atoi(yytext);
57 			return (NUMBER);
58 		}
59 
60 "."		return ('.');
61 ":"		return (':');
62 ","		return (',');
63 "/"		return ('/');
64 ";".*		;
65 "\n"{BLANK}+	;
66 {BLANK}+	;
67 "\n"		return (END);
68 .		fprintf(stderr, "Illegal char: '%s'\n", yytext);
69 
70 %%
71 
72 yywrap()
73 {
74 	return (1);
75 }
76