Home | History | Annotate | Line # | Download | only in manual
      1 %{
      2 #include <stdio.h>
      3 #include <string.h>
      4 #include "y.tab.h"                 /* this comes from bison        */
      5 
      6 #define TRUE  1
      7 #define FALSE 0
      8 
      9 #define copy_and_return(token_type) { strcpy(yylval.name,yytext); \
     10                                       return(token_type); }
     11 
     12 int             yylexlinenum = 0;  /* so we can count lines        */
     13 %}
     14 
     15 %%
     16                             /* Lexical scanning rules begin from here.  */
     17 
     18 MEN|WOMEN|STOCKS|TREES      copy_and_return(NOUN)
     19 MISTAKES|GNUS|EMPLOYEES     copy_and_return(NOUN)
     20 LOSERS|USERS|CARS|WINDOWS   copy_and_return(NOUN)
     21 
     22 DATABASE|NETWORK|FSF|GNU    copy_and_return(PROPER_NOUN)
     23 COMPANY|HOUSE|OFFICE|LPF    copy_and_return(PROPER_NOUN)
     24 
     25 THE|THIS|THAT|THOSE         copy_and_return(DECLARATIVE)
     26 
     27 ALL|FIRST|LAST              copy_and_return(CONDITIONAL)
     28 
     29 FIND|SEARCH|SORT|ERASE|KILL copy_and_return(VERB)
     30 ADD|REMOVE|DELETE|PRINT     copy_and_return(VERB)
     31 
     32 QUICKLY|SLOWLY|CAREFULLY    copy_and_return(ADVERB)
     33 
     34 IN|AT|ON|AROUND|INSIDE|ON   copy_and_return(POSITIONAL)
     35 
     36 "."                         return(PERIOD);
     37 "\n"                        yylexlinenum++; return(NEWLINE);
     38 .
     39 %%
     40 
     41