#include "libdados.h" #define TAMEXP 200 /* Tamanho máximo de uma expressão */ /* Sugestoes de mensagens para utilizar no in2pos. Nao serao utilizadas nos testes. Sao uteis para que voce lembre de nao utilizar valores, quando puder usar uma constante para eles */ #define MSGLAB1 "Operador Invalido" #define MSGLAB2 ") precede operando" #define MSGLAB3 "Operador anterior diferente de ( e )" #define MSGLAB4 ") não precede operador" #define MSGLAB5 "Caracter inválido" #define MSGLAB6 "Pilha esvaziou antes da hora" #define MSGLAB7 "Requer anterior seja )" #define MSGLAB9 "Avaliação mal sucedida" #define MSGLABA "Operador que precede ) não é )" #define MSGLABB "), &, ou ~ precede (" /* Protótipos de funções que não são da libdados */ char *LeExpressao(); /* Lê expressao em notação entre-fixa com parênteses. */ void GravaExpressao(char *e); /* Grava expressão em notação pós-fixa. */ /* Funcoes a implementar */ bool Balanceada(char *e); /* Verifica balanceamento de parênteses em expressão com notação entre-fixa. */ char *EntreParaPosFixa(char *e); /* Converte de entre-fixa para pós-fixa. */ int AvaliaExpressao(char *e); /* Avalia expressão em notação pós-fixa. */