|
|
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.