xref: /csrg-svn/old/htable/scan.l (revision 8735)
1*8735Ssam %{
2*8735Ssam #ifndef lint
3*8735Ssam static char sccsid[] = "@(#)scan.l	4.1 (Berkeley) 10/20/82";
4*8735Ssam #endif
5*8735Ssam 
6*8735Ssam #include "y.tab.h"
7*8735Ssam #include "htable.h"
8*8735Ssam %}
9*8735Ssam 
10*8735Ssam BLANK	[ \t]
11*8735Ssam DIGIT	[0-9]
12*8735Ssam ALPHA	[A-Z]
13*8735Ssam ANUM	[0-9A-Z]
14*8735Ssam NAMECHR	[0-9A-Z./-]
15*8735Ssam 
16*8735Ssam %%
17*8735Ssam "NET"		{
18*8735Ssam 			yylval.number = KW_NET;
19*8735Ssam 			return (KEYWORD);
20*8735Ssam 		}
21*8735Ssam 
22*8735Ssam "GATEWAY"	{
23*8735Ssam 			yylval.number = KW_GATEWAY;
24*8735Ssam 			return (KEYWORD);
25*8735Ssam 		}
26*8735Ssam 
27*8735Ssam "HOST"		{
28*8735Ssam 			yylval.number = KW_HOST;
29*8735Ssam 			return (KEYWORD);
30*8735Ssam 		}
31*8735Ssam 
32*8735Ssam {ALPHA}{NAMECHR}*{ANUM}	{
33*8735Ssam 			yylval.namelist = newname(yytext);
34*8735Ssam 			return (NAME);
35*8735Ssam 		}
36*8735Ssam 
37*8735Ssam {ALPHA}		return (NAME);
38*8735Ssam 
39*8735Ssam {DIGIT}+	{
40*8735Ssam 			yylval.number = atoi(yytext);
41*8735Ssam 			return (NUMBER);
42*8735Ssam 		}
43*8735Ssam 
44*8735Ssam "."		return ('.');
45*8735Ssam ":"		return (':');
46*8735Ssam ","		return (',');
47*8735Ssam "/"		return ('/');
48*8735Ssam ";".*		;
49*8735Ssam "\n"{BLANK}+	;
50*8735Ssam {BLANK}+	;
51*8735Ssam "\n"		return (END);
52*8735Ssam .		fprintf(stderr, "Illegal char: '%s'\n", yytext);
53*8735Ssam 
54*8735Ssam %%
55*8735Ssam 
56*8735Ssam yywrap()
57*8735Ssam {
58*8735Ssam 	return (1);
59*8735Ssam }
60