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