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