xref: /csrg-svn/old/htable/scan.l (revision 33538)
18735Ssam %{
221132Sdist /*
321132Sdist  * Copyright (c) 1983 Regents of the University of California.
4*33538Sbostic  * All rights reserved.
5*33538Sbostic  *
6*33538Sbostic  * Redistribution and use in source and binary forms are permitted
7*33538Sbostic  * provided that this notice is preserved and that due credit is given
8*33538Sbostic  * to the University of California at Berkeley. The name of the University
9*33538Sbostic  * may not be used to endorse or promote products derived from this
10*33538Sbostic  * software without specific prior written permission. This software
11*33538Sbostic  * is provided ``as is'' without express or implied warranty.
1221132Sdist  */
1321132Sdist 
148735Ssam #ifndef lint
15*33538Sbostic static char sccsid[] = "@(#)scan.l	5.5 (Berkeley) 02/23/88";
16*33538Sbostic #endif /* not lint */
178735Ssam 
188735Ssam #include "y.tab.h"
198735Ssam #include "htable.h"
208735Ssam %}
218735Ssam 
228735Ssam BLANK	[ \t]
238735Ssam DIGIT	[0-9]
2427090Skarels ALPHA	[A-Za-z]
2527090Skarels ANUM	[0-9A-Za-z]
2627090Skarels NAMECHR	[0-9A-Za-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 
5427189Skarels {DIGIT}+{ALPHA}{NAMECHR}* {
5527189Skarels 			fprintf(stderr, "Warning: nonstandard name \"%s\"\n",
5627189Skarels 				yytext);
5727189Skarels 			yylval.namelist = newname(yytext);
5827189Skarels 			return (NAME);
5927189Skarels 		}
6027189Skarels 
618735Ssam {DIGIT}+	{
628735Ssam 			yylval.number = atoi(yytext);
638735Ssam 			return (NUMBER);
648735Ssam 		}
658735Ssam 
668735Ssam "."		return ('.');
678735Ssam ":"		return (':');
688735Ssam ","		return (',');
698735Ssam "/"		return ('/');
708735Ssam ";".*		;
718735Ssam "\n"{BLANK}+	;
728735Ssam {BLANK}+	;
738735Ssam "\n"		return (END);
748735Ssam .		fprintf(stderr, "Illegal char: '%s'\n", yytext);
758735Ssam 
768735Ssam %%
778735Ssam 
788735Ssam yywrap()
798735Ssam {
808735Ssam 	return (1);
818735Ssam }
82