#include #include #include "analex.h" double num; static void Erro(char *errmsg) { fprintf(stderr, "Erro lexico: %s\n",errmsg); } TOKEN analex() { int c; TOKEN t; while (isspace(c=getchar())); if ((c == EOF) || (c == 'f')) return FIM; if ((c == '.') || isdigit(c)) { ungetc(c, stdin); scanf("%lf", &num); return NUMERO; } switch (c) { case '+' : t=SOMA; break; case '-' : t=SUB; break; case '*' : t=MUL; break; case '/' : t=DIV; break; case 'c' : t=LIMPA; break; case '=' : t=IMPRIMA; break; case 'l' : t=LISTA; break; default : Erro ("Simbolo desconhecido"); t = INV; break; } return t; }