xref: /csrg-svn/old/htable/scan.l (revision 21132)
18735Ssam %{
2*21132Sdist /*
3*21132Sdist  * Copyright (c) 1983 Regents of the University of California.
4*21132Sdist  * All rights reserved.  The Berkeley software License Agreement
5*21132Sdist  * specifies the terms and conditions for redistribution.
6*21132Sdist  */
7*21132Sdist 
88735Ssam #ifndef lint
9*21132Sdist char copyright[] =
10*21132Sdist "@(#) Copyright (c) 1983 Regents of the University of California.\n\
11*21132Sdist  All rights reserved.\n";
12*21132Sdist #endif not lint
138735Ssam 
14*21132Sdist #ifndef lint
15*21132Sdist static char sccsid[] = "@(#)scan.l	5.1 (Berkeley) 05/28/85";
16*21132Sdist #endif not lint
17*21132Sdist 
188735Ssam #include "y.tab.h"
198735Ssam #include "htable.h"
208735Ssam %}
218735Ssam 
228735Ssam BLANK	[ \t]
238735Ssam DIGIT	[0-9]
248735Ssam ALPHA	[A-Z]
258735Ssam ANUM	[0-9A-Z]
268735Ssam NAMECHR	[0-9A-Z./-]
278735Ssam 
288735Ssam %%
298735Ssam "NET"		{
308735Ssam 			yylval.number = KW_NET;
318735Ssam 			return (KEYWORD);
328735Ssam 		}
338735Ssam 
348735Ssam "GATEWAY"	{
358735Ssam 			yylval.number = KW_GATEWAY;
368735Ssam 			return (KEYWORD);
378735Ssam 		}
388735Ssam 
398735Ssam "HOST"		{
408735Ssam 			yylval.number = KW_HOST;
418735Ssam 			return (KEYWORD);
428735Ssam 		}
438735Ssam 
448735Ssam {ALPHA}{NAMECHR}*{ANUM}	{
458735Ssam 			yylval.namelist = newname(yytext);
468735Ssam 			return (NAME);
478735Ssam 		}
488735Ssam 
4918111Sralph {ALPHA}		{
5018111Sralph 			yylval.namelist = newname(yytext);
5118111Sralph 			return (NAME);
5218111Sralph 		}
538735Ssam 
548735Ssam {DIGIT}+	{
558735Ssam 			yylval.number = atoi(yytext);
568735Ssam 			return (NUMBER);
578735Ssam 		}
588735Ssam 
598735Ssam "."		return ('.');
608735Ssam ":"		return (':');
618735Ssam ","		return (',');
628735Ssam "/"		return ('/');
638735Ssam ";".*		;
648735Ssam "\n"{BLANK}+	;
658735Ssam {BLANK}+	;
668735Ssam "\n"		return (END);
678735Ssam .		fprintf(stderr, "Illegal char: '%s'\n", yytext);
688735Ssam 
698735Ssam %%
708735Ssam 
718735Ssam yywrap()
728735Ssam {
738735Ssam 	return (1);
748735Ssam }
75