%{ #include <stdio.h> %} /* Definições de padrões */ letra [a-zA-Z] dígito [0-9] número {dígito}+ identificador {letra}({letra}|{dígito})* operador (\+|\-|\*|\/|\=|\<|\>|\!\=|\=\=|\>\=|\<\=) palavra_reservada (if|else|while|for|return|int|float|void|char) pontuação [\(\)\{\}\[\]\;\,\.] comentário /\*([^*]|\*+[^*/])*\*+/ %% {número} { printf("Número: %s\n", yytext); } {identificador} { printf("Identificador: %s\n", yytext); } {operador} { printf("Operador: %s\n", yytext); } {palavra_reservada} { printf("Palavra Reservada: %s\n", yytext); } {pontuação} { printf("Pontuação: %s\n", yytext); } {comentário} { /* Ignorar comentários */ } [ \t\n]+ { /* Ignorar espaços em branco */ } . { printf("Caractere não reconhecido: %s\n", yytext); } %% int main(int argc, char **argv) { yylex(); return 0; } int yywrap() { return 1; }