@designliquido/delegua-node 0.22.7 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +1 -1
  2. package/bin/package.json +2 -2
  3. package/execucao.js +8 -8
  4. package/execucao.js.map +1 -1
  5. package/fontes/delegua.d.ts +11 -92
  6. package/fontes/delegua.js +24 -433
  7. package/fontes/delegua.js.map +1 -1
  8. package/fontes/depuracao/servidor-depuracao.d.ts +3 -3
  9. package/fontes/depuracao/servidor-depuracao.js +10 -10
  10. package/fontes/depuracao/servidor-depuracao.js.map +1 -1
  11. package/fontes/importador/importador-javascript.d.ts +14 -0
  12. package/fontes/importador/importador-javascript.js +60 -0
  13. package/fontes/importador/importador-javascript.js.map +1 -0
  14. package/fontes/importador/importador.d.ts +7 -6
  15. package/fontes/importador/importador.js +1 -8
  16. package/fontes/importador/importador.js.map +1 -1
  17. package/fontes/importador/retorno-importador.d.ts +3 -3
  18. package/fontes/interfaces/delegua-interface.d.ts +4 -22
  19. package/fontes/interfaces/importador-interface.d.ts +2 -2
  20. package/fontes/interfaces/nucleo-execucao-interface.d.ts +12 -0
  21. package/fontes/interfaces/nucleo-execucao-interface.js +3 -0
  22. package/fontes/interfaces/nucleo-execucao-interface.js.map +1 -0
  23. package/fontes/interpretador/dialetos/interpretador-birl-com-depuracao-importacao.d.ts +4 -3
  24. package/fontes/interpretador/dialetos/interpretador-birl-com-depuracao-importacao.js +1 -1
  25. package/fontes/interpretador/dialetos/interpretador-birl-com-depuracao-importacao.js.map +1 -1
  26. package/fontes/interpretador/dialetos/interpretador-mapler-com-depuracao-importacao.d.ts +4 -3
  27. package/fontes/interpretador/dialetos/interpretador-mapler-com-depuracao-importacao.js +1 -1
  28. package/fontes/interpretador/dialetos/interpretador-mapler-com-depuracao-importacao.js.map +1 -1
  29. package/fontes/interpretador/dialetos/interpretador-visualg-com-depuracao-importacao.d.ts +4 -3
  30. package/fontes/interpretador/dialetos/interpretador-visualg-com-depuracao-importacao.js +1 -1
  31. package/fontes/interpretador/dialetos/interpretador-visualg-com-depuracao-importacao.js.map +1 -1
  32. package/fontes/interpretador/interpretador-com-depuracao-importacao.d.ts +4 -3
  33. package/fontes/interpretador/interpretador-com-depuracao-importacao.js +1 -1
  34. package/fontes/interpretador/interpretador-com-depuracao-importacao.js.map +1 -1
  35. package/fontes/interpretador/interpretador.d.ts +4 -3
  36. package/fontes/interpretador/interpretador.js +1 -1
  37. package/fontes/interpretador/interpretador.js.map +1 -1
  38. package/fontes/nucleo-comum.d.ts +12 -0
  39. package/fontes/nucleo-comum.js +49 -0
  40. package/fontes/nucleo-comum.js.map +1 -0
  41. package/fontes/nucleo-execucao.d.ts +66 -0
  42. package/fontes/nucleo-execucao.js +309 -0
  43. package/fontes/nucleo-execucao.js.map +1 -0
  44. package/fontes/nucleo-traducao.d.ts +29 -0
  45. package/fontes/nucleo-traducao.js +108 -0
  46. package/fontes/nucleo-traducao.js.map +1 -0
  47. package/package.json +2 -2
package/README.md CHANGED
@@ -64,7 +64,7 @@ Para finalizar a execução do interpretador LAIR Delégua, use o atalho <key>Ct
64
64
 
65
65
  - Delégua
66
66
  - Égua Clássico
67
- - EguaP
67
+ - Pituguês
68
68
 
69
69
  ### Executando arquivos
70
70
 
package/bin/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@designliquido/delegua-node",
3
- "version": "0.22.6",
3
+ "version": "0.23.0",
4
4
  "description": "Linguagem Delégua com capacidades para ecossistema Node.js.",
5
5
  "scripts": {
6
6
  "empacotar": "rimraf ./dist && tsc && copyfiles -V ./bin/delegua ./bin/delegua.cmd ./dist && copyfiles -V ./package.json ./dist/bin && copyfiles -V ./README.md ./dist",
@@ -12,7 +12,7 @@
12
12
  "testes:servidor-depuracao": "ts-node ./fontes/depuracao/servidor-depuracao.ts"
13
13
  },
14
14
  "dependencies": {
15
- "@designliquido/delegua": "0.22.7",
15
+ "@designliquido/delegua": "0.24.0",
16
16
  "chalk": "4.1.2",
17
17
  "commander": "^9.4.1",
18
18
  "json-colorizer": "^2.2.2",
package/execucao.js CHANGED
@@ -2,16 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const delegua_1 = require("./fontes/delegua");
4
4
  const commander_1 = require("commander");
5
- const principal = () => {
5
+ const principal = async () => {
6
6
  const analisadorArgumentos = new commander_1.Command();
7
7
  let codigoOuNomeArquivo;
8
8
  analisadorArgumentos
9
- .option('-c, --codigo <codigo>', 'Código a ser avaliado.', '')
9
+ .option('-c, --codigo <código>', 'Código a ser avaliado.', '')
10
10
  .option('-d, --dialeto <dialeto>', 'Dialeto a ser usado. Padrão: delegua.', 'delegua')
11
11
  .option('-D, --depurador', 'Habilita o depurador, permitindo depuração em um ambiente como o VSCode. Sempre desabilitada em modo LAIR.', false)
12
12
  .option('-p, --performance', 'Visualizar indicadores de performance. Desabilitado por padrão.', false)
13
13
  .option('-s, --saida', 'Gera arquivo de saida ao traduzir arquivo.', false)
14
- .option('-t, --traduzir <linguagem>', 'Traduz o código do arquivo passado como parâmetro.')
14
+ .option('-t, --traduzir <linguagem-para-linguagem>', 'Traduz o código do arquivo passado como parâmetro de arquivo. O argumento deve ser no formato linguagem-para-linguagem, como por exemplo `delegua-para-js`.')
15
15
  .argument('[arquivos...]', 'Nomes dos arquivos (opcional)')
16
16
  .action((argumentos) => {
17
17
  if (argumentos.length > 0) {
@@ -20,21 +20,21 @@ const principal = () => {
20
20
  });
21
21
  analisadorArgumentos.parse();
22
22
  const opcoes = analisadorArgumentos.opts();
23
- const delegua = new delegua_1.Delegua(opcoes.dialeto, opcoes.performance, codigoOuNomeArquivo ? opcoes.depurador : false, opcoes.traduzir);
23
+ const delegua = new delegua_1.Delegua();
24
24
  if (opcoes.codigo) {
25
- delegua.executarCodigoComoArgumento(opcoes.codigo || codigoOuNomeArquivo);
25
+ await delegua.executarCodigoComoArgumento(opcoes.codigo || codigoOuNomeArquivo, opcoes.dialeto, Boolean(opcoes.performance));
26
26
  }
27
27
  else {
28
28
  if (codigoOuNomeArquivo) {
29
29
  if (opcoes.traduzir) {
30
- delegua.traduzirArquivo(codigoOuNomeArquivo, opcoes.saida);
30
+ delegua.traduzirArquivo(codigoOuNomeArquivo, opcoes.traduzir, opcoes.saida);
31
31
  }
32
32
  else {
33
- delegua.carregarArquivo(codigoOuNomeArquivo);
33
+ await delegua.executarCodigoPorArquivo(codigoOuNomeArquivo);
34
34
  }
35
35
  }
36
36
  else {
37
- delegua.iniciarLairDelegua();
37
+ delegua.iniciarLair();
38
38
  }
39
39
  }
40
40
  };
package/execucao.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"execucao.js","sourceRoot":"","sources":["../execucao.ts"],"names":[],"mappings":";;AAAA,8CAA2C;AAC3C,yCAAoC;AAEpC,MAAM,SAAS,GAAG,GAAG,EAAE;IACnB,MAAM,oBAAoB,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC3C,IAAI,mBAA2B,CAAC;IAEhC,oBAAoB;SACf,MAAM,CACH,uBAAuB,EACvB,wBAAwB,EACxB,EAAE,CACL;SACA,MAAM,CACH,yBAAyB,EACzB,uCAAuC,EACvC,SAAS,CACZ;SACA,MAAM,CACH,iBAAiB,EACjB,4GAA4G,EAC5G,KAAK,CACR;SACA,MAAM,CACH,mBAAmB,EACnB,iEAAiE,EACjE,KAAK,CACR;SACA,MAAM,CACH,aAAa,EACb,4CAA4C,EAC5C,KAAK,CACR;SACA,MAAM,CACH,4BAA4B,EAC5B,oDAAoD,CACvD;SACA,QAAQ,CAAC,eAAe,EAAE,+BAA+B,CAAC;SAC1D,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACnB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,mBAAmB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SACvC;IACL,CAAC,CAAC,CAAC;IAEP,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAI,iBAAO,CACvB,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,WAAW,EAClB,mBAAmB,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAC9C,MAAM,CAAC,QAAQ,CAClB,CAAC;IAEF,IAAI,MAAM,CAAC,MAAM,EAAE;QACf,OAAO,CAAC,2BAA2B,CAAC,MAAM,CAAC,MAAM,IAAI,mBAAmB,CAAC,CAAC;KAC7E;SAAM;QACH,IAAI,mBAAmB,EAAE;YACrB,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC9D;iBAAM;gBACH,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;aAChD;SACJ;aAAM;YACH,OAAO,CAAC,kBAAkB,EAAE,CAAC;SAChC;KACJ;AACL,CAAC,CAAC;AAEF,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"execucao.js","sourceRoot":"","sources":["../execucao.ts"],"names":[],"mappings":";;AAAA,8CAA2C;AAC3C,yCAAoC;AAEpC,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE;IACzB,MAAM,oBAAoB,GAAG,IAAI,mBAAO,EAAE,CAAC;IAC3C,IAAI,mBAA2B,CAAC;IAEhC,oBAAoB;SACf,MAAM,CACH,uBAAuB,EACvB,wBAAwB,EACxB,EAAE,CACL;SACA,MAAM,CACH,yBAAyB,EACzB,uCAAuC,EACvC,SAAS,CACZ;SACA,MAAM,CACH,iBAAiB,EACjB,4GAA4G,EAC5G,KAAK,CACR;SACA,MAAM,CACH,mBAAmB,EACnB,iEAAiE,EACjE,KAAK,CACR;SACA,MAAM,CACH,aAAa,EACb,4CAA4C,EAC5C,KAAK,CACR;SACA,MAAM,CACH,2CAA2C,EAC3C,6JAA6J,CAChK;SACA,QAAQ,CAAC,eAAe,EAAE,+BAA+B,CAAC;SAC1D,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE;QACnB,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,mBAAmB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;SACvC;IACL,CAAC,CAAC,CAAC;IAEP,oBAAoB,CAAC,KAAK,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;IAE9B,IAAI,MAAM,CAAC,MAAM,EAAE;QACf,MAAM,OAAO,CAAC,2BAA2B,CACrC,MAAM,CAAC,MAAM,IAAI,mBAAmB,EACpC,MAAM,CAAC,OAAO,EACd,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAC9B,CAAC;KACL;SAAM;QACH,IAAI,mBAAmB,EAAE;YACrB,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACjB,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;aAC/E;iBAAM;gBACH,MAAM,OAAO,CAAC,wBAAwB,CAAC,mBAAmB,CAAC,CAAC;aAC/D;SACJ;aAAM;YACH,OAAO,CAAC,WAAW,EAAE,CAAC;SACzB;KACJ;AACL,CAAC,CAAC;AAEF,SAAS,EAAE,CAAC"}
@@ -1,101 +1,20 @@
1
- import { AvaliadorSintaticoInterface, InterpretadorInterface, LexadorInterface, RetornoExecucaoInterface, SimboloInterface } from '@designliquido/delegua/fontes/interfaces';
2
- import { TradutorVisualg } from '@designliquido/delegua/fontes/tradutores/tradutor-visualg';
3
- import { RetornoImportador } from './importador';
4
- import { TradutorJavaScript, TradutorPython, TradutorReversoJavaScript } from '@designliquido/delegua/fontes/tradutores';
5
- import { ServidorDepuracao } from './depuracao';
1
+ import { AvaliadorSintaticoInterface, LexadorInterface } from '@designliquido/delegua/fontes/interfaces';
6
2
  import { DeleguaInterface, ImportadorInterface } from './interfaces';
7
3
  /**
8
4
  * O núcleo da linguagem.
9
5
  *
10
- * Responsável por avaliar a entrada fornecida, entender o código e executá-lo.
6
+ * Responsável por avaliar a entrada fornecida, chamar o núcleo
7
+ * correspondente à operação solicitada e observar a execução.
11
8
  */
12
9
  export declare class Delegua implements DeleguaInterface {
13
- dialeto: string;
14
- dialetos: {
15
- [identificador: string]: string;
16
- };
17
- arquivosAbertos: {
18
- [identificador: string]: string;
19
- };
20
- conteudoArquivosAbertos: {
21
- [identificador: string]: string[];
22
- };
23
- interpretador: InterpretadorInterface;
24
- lexador: LexadorInterface;
25
- avaliadorSintatico: AvaliadorSintaticoInterface;
26
- importador: ImportadorInterface;
27
- traduzir: string;
28
- tradutorJavaScript: TradutorJavaScript;
29
- tradutorReversoJavascript: TradutorReversoJavaScript;
30
- tradutorVisualg: TradutorVisualg;
31
- tradutorPython: TradutorPython;
32
- extensoes: {
33
- delegua: string;
34
- javascript: string;
35
- js: string;
36
- alg: string;
37
- visualg: string;
38
- python: string;
39
- py: string;
40
- };
10
+ lexador: LexadorInterface<any>;
11
+ avaliadorSintatico: AvaliadorSintaticoInterface<any, any>;
12
+ importador: ImportadorInterface<any, any>;
41
13
  funcaoDeRetorno: Function;
42
14
  funcaoDeRetornoMesmaLinha: Function;
43
- modoDepuracao: boolean;
44
- servidorDepuracao: ServidorDepuracao;
45
- constructor(dialeto?: string, performance?: boolean, depurador?: boolean, traduzir?: any, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
46
- iniciarTradutor(traduzir: any): void;
47
- versao(): string;
48
- /**
49
- * LAIR (Leia-Avalie-Imprima-Repita) é o modo em que Delégua executa em modo console,
50
- * ou seja, esperando como entrada linhas de código fornecidas pelo usuário.
51
- */
52
- iniciarLairDelegua(): void;
53
- /**
54
- * Executa uma linha. Usado pelo modo LAIR e pelo servidor de depuração, quando recebe um comando 'avaliar'.
55
- * @param linha A linha a ser avaliada.
56
- * @returns O resultado da execução, com os retornos e respectivos erros, se houverem.
57
- */
58
- executarUmaLinha(linha: string): Promise<RetornoExecucaoInterface>;
59
- /**
60
- * Instancia um servidor de depuração, normalmente recebendo requisições na porta 7777.
61
- */
62
- iniciarDepuracao(): void;
63
- /**
64
- * Pede ao servidor de depuração que finalize a execução.
65
- * Se não for feito, o servidor de depuração mantém um _stream_ aberto e nunca finaliza.
66
- * Mais informações: https://stackoverflow.com/a/47456805/1314276
67
- */
68
- finalizarDepuracao(): void;
69
- /**
70
- * Verifica erros nas etapas de lexação e avaliação sintática.
71
- * @param retornoImportador Um objeto que implementa a interface RetornoImportador.
72
- * @returns Verdadeiro se há erros. Falso caso contrário.
73
- */
74
- afericaoErros(retornoImportador: RetornoImportador): boolean;
75
- /**
76
- * Realiza a tradução do arquivo passado como parâmetro no comando de execução.
77
- * @param caminhoRelativoArquivo O caminho do arquivo.
78
- * @param gerarArquivoSaida Se o resultado da tradução deve ser escrito em arquivo.
79
- * Se verdadeiro, os arquivos de saída são escritos no mesmo diretório
80
- * do arquivo passado no primeiro parâmetro.
81
- */
82
- traduzirArquivo(caminhoRelativoArquivo: string, gerarArquivoSaida: boolean): any;
83
- executarCodigoComoArgumento(codigo: string): Promise<void>;
84
- /**
85
- * Execução por arquivo.
86
- * @param caminhoRelativoArquivo O caminho no sistema operacional do arquivo a ser aberto.
87
- */
88
- carregarArquivo(caminhoRelativoArquivo: string): Promise<any>;
89
- /**
90
- * A execução do código de fato.
91
- * @param retornoImportador Dados retornados do Importador, como o retorno do Lexador, do Avaliador
92
- * Sintático e respectivos erros.
93
- * @param manterAmbiente Indicação se ambiente deve ser mantido ou não. Normalmente verdadeiro
94
- * para LAIR, falso para execução por arquivo.
95
- * @returns Um objeto com o resultado da execução.
96
- */
97
- executar(retornoImportador: RetornoImportador, manterAmbiente?: boolean): Promise<RetornoExecucaoInterface>;
98
- reportar(linha: number, onde: any, mensagem: string): void;
99
- erro(simbolo: SimboloInterface, mensagemDeErro: string): void;
100
- erroEmTempoDeExecucao(erro: any): void;
15
+ constructor(funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
16
+ executarCodigoComoArgumento(codigo: string, dialeto?: string, performance?: boolean): Promise<void>;
17
+ executarCodigoPorArquivo(caminhoRelativoArquivo: string, dialeto?: string, performance?: boolean): Promise<any>;
18
+ iniciarLair(dialeto?: string): Promise<void>;
19
+ traduzirArquivo(caminhoRelativoArquivo: string, comandoTraducao: string, gerarArquivoSaida?: boolean): void;
101
20
  }