From e3f5e1b4415350bf4db689f92d2f07e143d49896 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Douglas=20Gad=C3=AAlha?= Date: Sun, 18 Feb 2024 13:37:44 -0300 Subject: [PATCH] Avisar sobre o Portugol no formato Algol --- packages/runner/src/PortugolExecutor.ts | 27 +++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/packages/runner/src/PortugolExecutor.ts b/packages/runner/src/PortugolExecutor.ts index a7ca9323..0d849af3 100644 --- a/packages/runner/src/PortugolExecutor.ts +++ b/packages/runner/src/PortugolExecutor.ts @@ -66,6 +66,26 @@ export class PortugolExecutor { const errors = PortugolErrorChecker.checkTree(tree); if (errors.length > 0) { + const argueAboutAlgolIfNeeded = () => { + if ( + ["fimalgoritmo", "fimenquanto", "fimpara", "fimse", "fimfuncao"].some(keyword => code.includes(keyword)) + ) { + this.stdOut += `\n`; + this.stdOut += `╔═════════════════════════════════════╗\n`; + this.stdOut += `║ ATENÇÃO ║\n`; + this.stdOut += `║ ║\n`; + this.stdOut += `║ Foi detectado que o seu código está ║\n`; + this.stdOut += `║ usando o Portugol no formato Algol. ║\n`; + this.stdOut += `║ O Portugol Webstudio dá suporte ao ║\n`; + this.stdOut += `║ Portugol no formato definido pela ║\n`; + this.stdOut += `║ UNIVALI. Por favor, leia mais sobre ║\n`; + this.stdOut += `║ na seção Ajuda. ║\n`; + this.stdOut += `╚═════════════════════════════════════╝\n\n`; + } + }; + + argueAboutAlgolIfNeeded(); + this.stdOut += `⛔ O seu código possui ${errors.length} erro${errors.length > 1 ? "s" : ""} de compilação:\n`; this.stdOut += errors .map(error => ` - ${error.message} (linha ${error.startLine}, posição ${error.startCol})\n`) @@ -73,8 +93,11 @@ export class PortugolExecutor { this.stdOut += "\n⚠️ Durante essa fase experimental, o código ainda será executado mesmo com erros, porém se não corrigi-los, a execução abaixo pode exibir mensagens de erro em inglês ou sem explicação.\n"; - this.stdOut += ` Caso acredite que o erro não faça sentido, por favor, abra uma issue em https://github.com/dgadelha/Portugol-Webstudio/issues/new e anexe o código que você está tentando executar.\n`; - this.stdOut += "\n- O seu programa irá iniciar abaixo -\n"; + this.stdOut += ` Caso acredite que o erro não faça sentido, por favor, abra uma issue em https://github.com/dgadelha/Portugol-Webstudio/issues/new e anexe o código que você está tentando executar.\n\n`; + + argueAboutAlgolIfNeeded(); + + this.stdOut += "- O seu programa irá iniciar abaixo -\n"; this.stdOut$.next(this.stdOut); }