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