瀏覽代碼

Update vcat lib with LanguageService export

Lucas de Souza 1 年之前
父節點
當前提交
e3f71cdfd0
共有 3 個文件被更改,包括 10 次插入7 次删除
  1. 7 5
      src/app/vcat/vcat.component.ts
  2. 2 1
      vcat/main.js
  3. 1 1
      vcat/main.js.map

+ 7 - 5
src/app/vcat/vcat.component.ts

@@ -24,7 +24,7 @@ export class VcatComponent {
 
   public run (): void {
     try {
-      console.log(vcat)
+      vcat.LanguageService.setLang("pt");
       const ast = vcat.SemanticAnalyser.analyseFromSource(this.textCode);
       const proc = new vcat.IVProgProcessor(ast);
       // Registrando um objeto que fornece o minimo necessário para o processador
@@ -32,12 +32,12 @@ export class VcatComponent {
       proc.registerOutput({
         sendOutput: console.log,
       });
-      // IVProgProcessor.interpretAST é uma função assíncrona
+      
       // Ela devolve o estado final do programa (valores finais das variáveis declaradas dentro da função "inicio" ou no escopo global)
       // A classe Store em src/processor/store/store.ts descreve o parametro mas no contexto atual ele é totalmente irrelevante
       proc.interpretAST().then((_finalProgramState: any) => {
         console.log("Programa executado com sucesso!")
-      });
+      }).catch(console.error);
     } catch (error: any) {
       // Caso haja erro de sintaxe ou semântico, antes ou durante a interpretação do código uma exceção será lançada
       // Todo objeto error derivado dos erros citados acima possuem esses campos definidos
@@ -46,10 +46,12 @@ export class VcatComponent {
       // Vê: src/ast/error/syntaxError.js, src/processor/error/runtimeError.js, src/processor/error/semanticError.js e seus respectivos factories
       // NOTA: Em alguns casos a informação de linha e coluna podem nao estar disponivel
       // id representa o identificador unico do erro, linha e coluna onde no codigo textual ocorreu o problema
-      if (error.id && error.context)
+      if (error.id && error.context) {
         console.error(error.id, error.context.line, error.context.column);
-      else
+        console.error(error);
+      } else {
         console.error(error)
+      }
       // a linha e coluna foi a estrategia pensada para poder associar o erro com o elemento visual que o gerou
       // uma vez que seria possivel associar seções do texto com o elemento que o gerou
     }

File diff suppressed because it is too large
+ 2 - 1
vcat/main.js


File diff suppressed because it is too large
+ 1 - 1
vcat/main.js.map