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