@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.
- package/README.md +1 -1
- package/bin/package.json +2 -2
- package/execucao.js +8 -8
- package/execucao.js.map +1 -1
- package/fontes/delegua.d.ts +11 -92
- package/fontes/delegua.js +24 -433
- package/fontes/delegua.js.map +1 -1
- package/fontes/depuracao/servidor-depuracao.d.ts +3 -3
- package/fontes/depuracao/servidor-depuracao.js +10 -10
- package/fontes/depuracao/servidor-depuracao.js.map +1 -1
- package/fontes/importador/importador-javascript.d.ts +14 -0
- package/fontes/importador/importador-javascript.js +60 -0
- package/fontes/importador/importador-javascript.js.map +1 -0
- package/fontes/importador/importador.d.ts +7 -6
- package/fontes/importador/importador.js +1 -8
- package/fontes/importador/importador.js.map +1 -1
- package/fontes/importador/retorno-importador.d.ts +3 -3
- package/fontes/interfaces/delegua-interface.d.ts +4 -22
- package/fontes/interfaces/importador-interface.d.ts +2 -2
- package/fontes/interfaces/nucleo-execucao-interface.d.ts +12 -0
- package/fontes/interfaces/nucleo-execucao-interface.js +3 -0
- package/fontes/interfaces/nucleo-execucao-interface.js.map +1 -0
- package/fontes/interpretador/dialetos/interpretador-birl-com-depuracao-importacao.d.ts +4 -3
- package/fontes/interpretador/dialetos/interpretador-birl-com-depuracao-importacao.js +1 -1
- package/fontes/interpretador/dialetos/interpretador-birl-com-depuracao-importacao.js.map +1 -1
- package/fontes/interpretador/dialetos/interpretador-mapler-com-depuracao-importacao.d.ts +4 -3
- package/fontes/interpretador/dialetos/interpretador-mapler-com-depuracao-importacao.js +1 -1
- package/fontes/interpretador/dialetos/interpretador-mapler-com-depuracao-importacao.js.map +1 -1
- package/fontes/interpretador/dialetos/interpretador-visualg-com-depuracao-importacao.d.ts +4 -3
- package/fontes/interpretador/dialetos/interpretador-visualg-com-depuracao-importacao.js +1 -1
- package/fontes/interpretador/dialetos/interpretador-visualg-com-depuracao-importacao.js.map +1 -1
- package/fontes/interpretador/interpretador-com-depuracao-importacao.d.ts +4 -3
- package/fontes/interpretador/interpretador-com-depuracao-importacao.js +1 -1
- package/fontes/interpretador/interpretador-com-depuracao-importacao.js.map +1 -1
- package/fontes/interpretador/interpretador.d.ts +4 -3
- package/fontes/interpretador/interpretador.js +1 -1
- package/fontes/interpretador/interpretador.js.map +1 -1
- package/fontes/nucleo-comum.d.ts +12 -0
- package/fontes/nucleo-comum.js +49 -0
- package/fontes/nucleo-comum.js.map +1 -0
- package/fontes/nucleo-execucao.d.ts +66 -0
- package/fontes/nucleo-execucao.js +309 -0
- package/fontes/nucleo-execucao.js.map +1 -0
- package/fontes/nucleo-traducao.d.ts +29 -0
- package/fontes/nucleo-traducao.js +108 -0
- package/fontes/nucleo-traducao.js.map +1 -0
- package/package.json +2 -2
package/README.md
CHANGED
package/bin/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@designliquido/delegua-node",
|
|
3
|
-
"version": "0.
|
|
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.
|
|
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 <
|
|
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(
|
|
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.
|
|
33
|
+
await delegua.executarCodigoPorArquivo(codigoOuNomeArquivo);
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
else {
|
|
37
|
-
delegua.
|
|
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,
|
|
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"}
|
package/fontes/delegua.d.ts
CHANGED
|
@@ -1,101 +1,20 @@
|
|
|
1
|
-
import { AvaliadorSintaticoInterface,
|
|
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,
|
|
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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
}
|