Annotation of researchv10dc/cmd/oworm/oscsi/lex.l, revision 1.1

1.1     ! root        1: %{
        !             2: #undef ECHO
        !             3: #include       "x.tab.h"
        !             4: #include       <string.h>
        !             5: #undef getc
        !             6: #define        getc(x)         Fgetc(0)
        !             7: #undef output
        !             8: #define        output(x)       (void)(x)
        !             9: %}
        !            10: %%
        !            11: a              return(SIDEA);
        !            12: all            return(ALL);
        !            13: b              return(SIDEB);
        !            14: capacity       return(CAPACITY);
        !            15: copy           return(COPY);
        !            16: diag           return(DIAGNOSTIC);
        !            17: diagnostic     return(DIAGNOSTIC);
        !            18: disk           return(DISK);
        !            19: echo           return(ECHO);
        !            20: eject          return(EJECT);
        !            21: err            return(ERROR);
        !            22: error          return(ERROR);
        !            23: ext            return(EXT);
        !            24: help           return(HELP);
        !            25: id             return(ID);
        !            26: inq            return(INQUIRY);
        !            27: inquiry                return(INQUIRY);
        !            28: media          return(MEDIA);
        !            29: read           return(READ);
        !            30: rel            return(RELEASE);
        !            31: release                return(RELEASE);
        !            32: reset          return(RESET);
        !            33: sense          return(SENSE);
        !            34: set            return(SET);
        !            35: sleep          return(SLEEP);
        !            36: start          return(START);
        !            37: status         return(STATUS);
        !            38: stop           return(STOP);
        !            39: worm           return(WORM);
        !            40: write          return(WRITE);
        !            41: [0123456789]+  { yylval.num = atoi(yytext); return(NUMBER); }
        !            42: \n             { yylineno++; return('\n'); }
        !            43: \"[^"]*\"      { yytext[yyleng-1] = 0; yylval.str = strdup(yytext+1); return(STRING); }
        !            44: #.*            { ; /* comment */ }
        !            45: [ \t]+         { ; /* white space */ }
        !            46: ^!.*           { system(yytext+1); print("!\n"); }
        !            47: .              { return(yytext[0]); }
        !            48: 
        !            49: %%

unix.superglobalmegacorp.com

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