|
|
1.1 root 1: %%
2: [-'A-Za-z0-9#]+ {lcase(yytext);yylval=svc(sufstr(yytext)); return(WORD);}
3: "!" return(NEG);
4: "," return(COMMA);
5: "." return(DOT);
6: "*H" return(HEAD);
7: "*P" return(PARA);
8: "*S" return(STORY);
9: ">".* {yylval=svc(yytext); return(WRITE);}
10: ">>".* {yylval=svc(yytext); return(APPEND);}
11: "|".* {yylval=svc(yytext); return(PIPE);}
12: \n return(NL);
13: . ;
14: %%
15: yyerror(s)
16: {
17: extern char *infile;
18: fprintf(stderr, "%s\n", s);
19: fprintf(stderr, "Bad input spec file %s line %d\n", infile, yylineno);
20: }
21: yywrap()
22: {
23: return(1); /* always stop on eof */
24: }
25: char *
26: svc(s)
27: char *s;
28: {
29: char *p, *calloc();
30: p = calloc(strlen(s)+1,1);
31: assert(p!=0);
32: strcpy(p,s);
33: return(p);
34: }
35: lcase(s)
36: register char *s;
37: {
38: register int c;
39: register char *p;
40: if (*s==0) return;
41: for(p=s+1; c= *p; p++)
42: if (isupper(c))
43: return;
44: if (isupper( c = *s))
45: *s = tolower(c);
46: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.