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