From b518960a67da02525d9725d960884c83c44714b2 Mon Sep 17 00:00:00 2001 From: hm19 <hm19@inf.ufpr.br> Date: Tue, 3 Dec 2024 16:10:20 -0300 Subject: [PATCH] retorno funcao certo --- MEPA | 3 ++- compilador | Bin 54640 -> 54640 bytes compilador.tab.c | 32 ++++++++++++++++---------------- compilador.y | 16 ++++++++-------- 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/MEPA b/MEPA index 474ac52..a4b0bcc 100644 --- a/MEPA +++ b/MEPA @@ -41,11 +41,12 @@ R04: NADA CRVI 1,-4 IMPR DMEM 2 + RTPR 1,2 R00: NADA AMEM 1 CRCT 3 CREN 0,0 - CHPR R01,-1 + CHPR R01,0 IMPR CRVL 0,0 IMPR diff --git a/compilador b/compilador index 9ab823f80184abcdeaecd79c98b052f8d40dbdf9..f090175ca12229a9f2b1f8142bdc6ba62b819eb7 100755 GIT binary patch delta 7961 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 LN08qyr7;5lz}%nv delta 7840 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 diff --git a/compilador.tab.c b/compilador.tab.c index 8072349..69108ff 100644 --- a/compilador.tab.c +++ b/compilador.tab.c @@ -563,8 +563,8 @@ static const yytype_int16 yyrline[] = { 0, 47, 47, 47, 63, 74, 60, 93, 94, 97, 101, 101, 102, 105, 106, 110, 113, 110, 121, 134, - 143, 154, 155, 159, 161, 162, 167, 191, 167, 210, - 234, 238, 210, 246, 247, 245, 255, 258, 259, 263, + 143, 154, 155, 159, 161, 162, 167, 191, 167, 205, + 229, 233, 205, 246, 247, 245, 255, 258, 259, 263, 262, 272, 272, 280, 281, 284, 294, 297, 298, 299, 302, 303, 306, 307, 308, 309, 310, 311, 314, 314, 318, 319, 322, 322, 353, 353, 395, 398, 402, 401, @@ -1639,21 +1639,16 @@ yyreduce: char buffer[50]; desempilha(buffer,proc); l_elem = busca(buffer,ts); - int n; - if(l_elem->categ == PR) - n = l_elem->info.pr.quant; - else if (l_elem->categ == FUN) - n = l_elem->info.pr.quant; - sprintf(buffer,"RTPR %d,%d",l_elem->nivel,n); + sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.pr.quant); geraCodigo(NULL,buffer); desloc = retira_vs_pf(ts); mostra_ts(ts); } -#line 1653 "compilador.tab.c" +#line 1648 "compilador.tab.c" break; case 29: -#line 210 "compilador.y" +#line 205 "compilador.y" { // Insere o funcao na tabela de símbolos info_t info; @@ -1677,22 +1672,27 @@ yyreduce: geraCodigo(r_func,buffer); mostra_ts(ts); } -#line 1681 "compilador.tab.c" +#line 1676 "compilador.tab.c" break; case 30: -#line 234 "compilador.y" +#line 229 "compilador.y" { num_vars = 1; } -#line 1689 "compilador.tab.c" +#line 1684 "compilador.tab.c" break; case 31: -#line 238 "compilador.y" +#line 233 "compilador.y" { - // Retorna ao nível léxico anterior e mantém o deslocamento atualizado - nivel_lexico -= 1; + char buffer[50]; + desempilha(buffer,proc); + l_elem = busca(buffer,ts); + sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.fun.quant); + geraCodigo(NULL,buffer); + desloc = retira_vs_pf(ts); + mostra_ts(ts); } #line 1698 "compilador.tab.c" break; diff --git a/compilador.y b/compilador.y index 805631e..644d004 100644 --- a/compilador.y +++ b/compilador.y @@ -192,12 +192,7 @@ declaracao_procedimento: PROCEDURE IDENT { char buffer[50]; desempilha(buffer,proc); l_elem = busca(buffer,ts); - int n; - if(l_elem->categ == PR) - n = l_elem->info.pr.quant; - else if (l_elem->categ == FUN) - n = l_elem->info.pr.quant; - sprintf(buffer,"RTPR %d,%d",l_elem->nivel,n); + sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.pr.quant); geraCodigo(NULL,buffer); desloc = retira_vs_pf(ts); mostra_ts(ts); @@ -236,8 +231,13 @@ declaracao_funcao: FUNCTION IDENT { } tipo PONTO_E_VIRGULA bloco { - // Retorna ao nível léxico anterior e mantém o deslocamento atualizado - nivel_lexico -= 1; + char buffer[50]; + desempilha(buffer,proc); + l_elem = busca(buffer,ts); + sprintf(buffer,"RTPR %d,%d",l_elem->nivel,l_elem->info.fun.quant); + geraCodigo(NULL,buffer); + desloc = retira_vs_pf(ts); + mostra_ts(ts); } PONTO_E_VIRGULA ; -- GitLab