Annotation of researchv10no/cmd/ap/apkeys/plex.l, revision 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.