Annotation of researchv10no/cmd/ap/apkeys/plex.l, revision 1.1.1.1

1.1       root        1: %{
                      2: # define WORD 1
                      3: # define DOT 2
                      4: extern char *yylval, *sufstr();
                      5: char *svc();
                      6: # include "assert.h"
                      7: # include "ctype.h"
                      8: %}
                      9: %%
                     10: [-'A-Za-z0-9#]+        {lcase(yytext); cfree(yylval);
                     11:                yylval=svc(sufstr(yytext)); return(WORD);}
                     12: "."    return(DOT);
                     13: "!"    return(DOT);
                     14: "?"    return(DOT);
                     15: .      ;
                     16: \n     ;
                     17: %%
                     18: yywrap()
                     19: {
                     20: return(1); /* always stop on eof */
                     21: }
                     22: char *
                     23: svc(s)
                     24:        char *s;
                     25: {
                     26: char *p, *calloc();
                     27: p = calloc(strlen(s)+1,1);
                     28: assert(p!=0);
                     29: strcpy(p,s);
                     30: return(p);
                     31: }
                     32: trimnl(s)
                     33:        char *s;
                     34: {
                     35: while (*s)s++;
                     36: if (*--s=='\n') *s=0;
                     37: }
                     38: lcase(s)
                     39:        register char *s;
                     40: {
                     41: register int c;
                     42: register char *p;
                     43: if (*s==0) return;
                     44: for(p=s+1; c= *p; p++)
                     45:        if (isupper(c))
                     46:                return;
                     47: if (isupper(c = *s))
                     48:        *s= tolower(c);
                     49: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.