digit [0-9] intnumber [+-]?{digit}+ floatnum [+-]?{digit}+\.{digit}*|[+-]?{digit}*\.{digit}+ letter [a-zA-Z] identifier ({letter}|_)({digit}|{letter}|_)* blank [\t\x0B\f\r\x20]+ notes (/\*)([.|\n])*(\*/) error1 {digit}+_({letter}|{digit}|_)* %% "notes" { printf(" "); } \n { printf("\n"); } {error1} { printf("e_r_r_o_r"); } "int" { printf("INT"); } "long" { printf("LONG_INT"); } "float" { printf("FLOAT"); } "double" { printf("DOUBLE"); } "char" { printf("CHAR"); } "if" { printf("IF"); } "else" { printf("ELSE"); } "do" { printf("DO"); } "while" { printf("WHILE"); } "for" { printf("FOR"); } "switch" { printf("SWITCH"); } "case" { printf("CASE"); } "break" { printf("BREAK"); } "void" { printf("VOID"); } "auto" { printf("AUTO"); } "const" { printf("CONST"); } "continue" { printf("CONTINUE"); } "default" { printf("DEFAULT"); } "enum" { printf("ENUM"); } "extern" { printf("EXTERN"); } "goto" { printf("GOTO"); } "register" { printf("REGISTER"); } "#include" { printf("#include"); } "(" { printf("LB "); } ")" { printf("RB "); } "[" { printf("LF "); } "]" { printf("RF "); } "{" { printf("LD"); } "}" { printf("RD"); } ";" { printf("FH"); } "." { printf("PIT "); } "-" { printf("SU "); } "!" { printf("NT "); } "*" { printf("MU "); } "/" { printf("DI "); } "+" { printf("AD "); } "<" { printf("SM"); } ">" { printf("LA "); } "<=" { printf("SE "); } ">=" { printf("LE "); } "==" { printf("EQ "); } "!=" { printf("NE "); } "&&" { printf("AND "); } "||" { printf("OR "); } "=" { printf("AS "); } "++" { printf("IN "); } "--" { printf("DE "); } {blank} { printf(" "); } {identifier} { printf("identifier"); } {floatnum} { printf("floatnum"); } {intnumber} { printf("intnumber"); } . { printf("e_r_r_o_r"); } %% int main(int argc,char** argv) { if(argc>1) { if(!(yyin=fopen(argv[1],"r"))) { perror(argv[1]); return 1; } } while(yylex()!=0); return 0; }