From 9efd228ddc6f1c847d1b9893404673bc29637ddb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Douglas=20Gad=C3=AAlha?= Date: Fri, 26 Jul 2024 23:41:03 -0300 Subject: [PATCH] =?UTF-8?q?Checar=20uso=20de=20fun=C3=A7=C3=A3o=20ap=C3=B3?= =?UTF-8?q?s=20a=20declara=C3=A7=C3=A3o=20Fixes=20#253=20(a=20solu=C3=A7?= =?UTF-8?q?=C3=A3o=20n=C3=A3o=20=C3=A9=20a=20melhor,=20mas=20=C3=A9=20func?= =?UTF-8?q?ional)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/app/tab-start/tab-start.component.html | 5 ++++- .../parser/src/errors/02-vari\303\241veis.ts" | 16 +++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/packages/ide/src/app/tab-start/tab-start.component.html b/packages/ide/src/app/tab-start/tab-start.component.html index e2286cb1..57507501 100644 --- a/packages/ide/src/app/tab-start/tab-start.component.html +++ b/packages/ide/src/app/tab-start/tab-start.component.html @@ -94,7 +94,10 @@

Novidades

-

26/07/2024: Melhorias na exibição de erros de compilação

+

+ 26/07/2024: Melhorias na exibição de erros de compilação e correção de checagem de uso de função + antes da declaração +

24/07/2024: Correção nas funções maior_numero e menor_numero da biblioteca Matematica diff --git "a/packages/parser/src/errors/02-vari\303\241veis.ts" "b/packages/parser/src/errors/02-vari\303\241veis.ts" index 51cfb487..0e65a740 100644 --- "a/packages/parser/src/errors/02-vari\303\241veis.ts" +++ "b/packages/parser/src/errors/02-vari\303\241veis.ts" @@ -44,14 +44,7 @@ export function* checarUsoEscopo(arquivo: Arquivo): Generator case Função: { const func = nó as Função; - escopo.funções.set(func.nome, func.retorno); - escopo.push(); - escopo.função = func.retorno; - - yield* varrerNós(nó.children); - - escopo.pop(); break; } @@ -177,4 +170,13 @@ export function* checarUsoEscopo(arquivo: Arquivo): Generator } yield* varrerNó(arquivo); + + for (const func of arquivo.funções) { + escopo.push(); + escopo.função = func.retorno; + + yield* varrerNós(func.children); + + escopo.pop(); + } }