/* File........ parser2.lex * Contents.... Exemple of small parser usin LEX */ /* compilation: * flex parser2.lex * gcc -o parser2.exe lexyy.c */ /* ---------------- Definitions space ----------------- */ %option noyywrap %{ #include #include #include #include int num_lines = 0; int lower_case_chars = 0; int upper_case_chars = 0; int digits = 0; int others = 0; %} /* ------------------- Rules space -------------------- */ %% \n ++num_lines; [a-z] ++lower_case_chars; [A-Z] ++upper_case_chars; [0-9] ++digits; . ++others; %% /* ----------------- User code space ------------------ */ main() { printf("Hit ^Z followed by enter to finish\n"); yylex(); printf("--- Lines : %d\n", num_lines); printf("--- Lower case chars: %d\n", lower_case_chars); printf("--- Upper case chars: %d\n", upper_case_chars); printf("--- Digits : %d\n", digits); printf("--- Others : %d\n", others); }