From 2ae7062f04b4f8d4398270b306a010afa516bd6a Mon Sep 17 00:00:00 2001 From: Daniel Venturini Date: Sat, 8 Dec 2018 17:30:34 -0200 Subject: [PATCH] Fix erro de OPERADOR na esquerda --- semantic/semantico.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/semantic/semantico.c b/semantic/semantico.c index c2655cf..91f50d6 100644 --- a/semantic/semantico.c +++ b/semantic/semantico.c @@ -245,7 +245,8 @@ void operacoesTernarias(TabSimb *escopoLocal, TreeNode *st, EBNFType tipoAnterio if(tipo1 == tipo2) { // são os mesmos tipos st->tipoExpressao = tipo1; // então atribui a operação - if(st->filhos[0]->bnfval == NUMERO) // se o número estiver na esquerda, então simplesmente retorna + // se no lado esquerdo não for uma variável ou função, então simplesmente retorna + if(st->filhos[0]->bnfval == NUMERO || st->filhos[0]->bnfval == OPERADOR_SOMA || st->filhos[0]->bnfval == OPERADOR_MULTIPLICACAO) return; Identificador *id = procura(escopoLocal, st->filhos[0], tipoAnterior);