xref: /csrg-svn/old/htable/scan.l (revision 48346)
18735Ssam %{
2*48346Sbostic /*-
3*48346Sbostic  * Copyright (c) 1983 The Regents of the University of California.
433538Sbostic  * All rights reserved.
533538Sbostic  *
6*48346Sbostic  * %sccs.include.redist.c%
721132Sdist  */
821132Sdist 
98735Ssam #ifndef lint
10*48346Sbostic static char sccsid[] = "@(#)scan.l	5.8 (Berkeley) 04/19/91";
1133538Sbostic #endif /* not lint */
128735Ssam 
1343883Sbostic extern int yylineno;
1443883Sbostic int yylineno = 1;
1543883Sbostic 
168735Ssam #include "y.tab.h"
178735Ssam #include "htable.h"
188735Ssam %}
198735Ssam 
208735Ssam BLANK	[ \t]
218735Ssam DIGIT	[0-9]
2227090Skarels ALPHA	[A-Za-z]
2327090Skarels ANUM	[0-9A-Za-z]
2427090Skarels NAMECHR	[0-9A-Za-z./-]
258735Ssam 
268735Ssam %%
278735Ssam "NET"		{
288735Ssam 			yylval.number = KW_NET;
298735Ssam 			return (KEYWORD);
308735Ssam 		}
318735Ssam 
328735Ssam "GATEWAY"	{
338735Ssam 			yylval.number = KW_GATEWAY;
348735Ssam 			return (KEYWORD);
358735Ssam 		}
368735Ssam 
378735Ssam "HOST"		{
388735Ssam 			yylval.number = KW_HOST;
398735Ssam 			return (KEYWORD);
408735Ssam 		}
418735Ssam 
428735Ssam {ALPHA}{NAMECHR}*{ANUM}	{
438735Ssam 			yylval.namelist = newname(yytext);
448735Ssam 			return (NAME);
458735Ssam 		}
468735Ssam 
4718111Sralph {ALPHA}		{
4818111Sralph 			yylval.namelist = newname(yytext);
4918111Sralph 			return (NAME);
5018111Sralph 		}
518735Ssam 
5227189Skarels {DIGIT}+{ALPHA}{NAMECHR}* {
5327189Skarels 			fprintf(stderr, "Warning: nonstandard name \"%s\"\n",
5427189Skarels 				yytext);
5527189Skarels 			yylval.namelist = newname(yytext);
5627189Skarels 			return (NAME);
5727189Skarels 		}
5827189Skarels 
598735Ssam {DIGIT}+	{
608735Ssam 			yylval.number = atoi(yytext);
618735Ssam 			return (NUMBER);
628735Ssam 		}
638735Ssam 
648735Ssam "."		return ('.');
658735Ssam ":"		return (':');
668735Ssam ","		return (',');
678735Ssam "/"		return ('/');
688735Ssam ";".*		;
6943883Sbostic "\n"{BLANK}+	++yylineno;
708735Ssam {BLANK}+	;
7143883Sbostic "\n"		++yylineno; return (END);
728735Ssam .		fprintf(stderr, "Illegal char: '%s'\n", yytext);
738735Ssam 
748735Ssam %%
75