@designliquido/delegua 0.13.1 → 0.14.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 +3 -54
- package/bin/package.json +2 -13
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts +20 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +150 -0
- package/fontes/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -0
- package/fontes/depuracao/index.d.ts +0 -1
- package/fontes/depuracao/index.js +0 -1
- package/fontes/depuracao/index.js.map +1 -1
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +2 -4
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +34 -43
- package/fontes/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg.d.ts +2 -2
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js +1 -1
- package/fontes/interpretador/dialetos/visualg/interpretador-visualg.js.map +1 -1
- package/fontes/interpretador/index.d.ts +1 -1
- package/fontes/interpretador/index.js +1 -1
- package/fontes/interpretador/index.js.map +1 -1
- package/fontes/interpretador/{interpretador.d.ts → interpretador-base.d.ts} +4 -6
- package/fontes/interpretador/{interpretador.js → interpretador-base.js} +8 -63
- package/fontes/interpretador/interpretador-base.js.map +1 -0
- package/fontes/interpretador/interpretador-com-depuracao.d.ts +2 -2
- package/fontes/interpretador/interpretador-com-depuracao.js +2 -2
- package/fontes/interpretador/interpretador-com-depuracao.js.map +1 -1
- package/fontes/lexador/dialetos/index.d.ts +1 -0
- package/fontes/lexador/dialetos/index.js +1 -0
- package/fontes/lexador/dialetos/index.js.map +1 -1
- package/fontes/lexador/dialetos/lexador-guarani.d.ts +9 -0
- package/fontes/lexador/dialetos/lexador-guarani.js +114 -0
- package/fontes/lexador/dialetos/lexador-guarani.js.map +1 -0
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.d.ts +4 -0
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.js +10 -0
- package/fontes/lexador/dialetos/palavras-reservadas/guarani.js.map +1 -0
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.d.ts +2 -0
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js +4 -0
- package/fontes/lexador/dialetos/palavras-reservadas/rantiaquin.js.map +1 -0
- package/fontes/tipos-de-simbolos/guarani.d.ts +14 -0
- package/fontes/tipos-de-simbolos/guarani.js +16 -0
- package/fontes/tipos-de-simbolos/guarani.js.map +1 -0
- package/fontes/tipos-de-simbolos/rantiaquin.d.ts +2 -0
- package/fontes/tipos-de-simbolos/rantiaquin.js +4 -0
- package/fontes/tipos-de-simbolos/rantiaquin.js.map +1 -0
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/package.json +2 -13
- package/execucao.d.ts +0 -1
- package/execucao.js +0 -43
- package/execucao.js.map +0 -1
- package/fontes/bibliotecas/importar-biblioteca.d.ts +0 -2
- package/fontes/bibliotecas/importar-biblioteca.js +0 -132
- package/fontes/bibliotecas/importar-biblioteca.js.map +0 -1
- package/fontes/delegua.d.ts +0 -86
- package/fontes/delegua.js +0 -372
- package/fontes/delegua.js.map +0 -1
- package/fontes/depuracao/remota/servidor-depuracao.d.ts +0 -41
- package/fontes/depuracao/remota/servidor-depuracao.js +0 -301
- package/fontes/depuracao/remota/servidor-depuracao.js.map +0 -1
- package/fontes/interpretador/interpretador.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@designliquido/delegua",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Linguagem de programação simples e moderna usando português estruturado, com suporte a múltiplos dialetos",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -9,11 +9,6 @@
|
|
|
9
9
|
"lair": "ts-node execucao.ts",
|
|
10
10
|
"publicar-docs": "yarn gerar-documentacao-tecnica && copyfiles -V ./recursos/**/* ./docs && gh-pages -d docs",
|
|
11
11
|
"publicar-npm": "npm publish ./dist --access public",
|
|
12
|
-
"testes:egua": "./bin/delegua-ts exemplos/dialetos/egua-classico/testes.egua",
|
|
13
|
-
"testes:delegua:bhaskara": "./bin/delegua-ts exemplos/dialetos/egua-classico/bhaskara.egua",
|
|
14
|
-
"testes:delegua:fibonacci": "./bin/delegua-ts exemplos/dialetos/egua-classico/fibonacci.egua",
|
|
15
|
-
"testes:egua-classico": "./bin/delegua-ts --dialeto egua exemplos/dialetos/egua-classico/testes.egua",
|
|
16
|
-
"testes:servidor-depuracao": "ts-node ./fontes/depuracao/servidor-depuracao.ts",
|
|
17
12
|
"testes-unitarios": "jest --coverage",
|
|
18
13
|
"testes-unitarios:insignias": "jest-coverage-badges --output './recursos/imagens'",
|
|
19
14
|
"observar-testes-unitarios": "jest --watchAll",
|
|
@@ -25,9 +20,6 @@
|
|
|
25
20
|
"type": "git",
|
|
26
21
|
"url": "git+https://github.com/DesignLiquido/delegua.git"
|
|
27
22
|
},
|
|
28
|
-
"bin": {
|
|
29
|
-
"delegua": "./bin/delegua"
|
|
30
|
-
},
|
|
31
23
|
"keywords": [
|
|
32
24
|
"egua",
|
|
33
25
|
"eguap",
|
|
@@ -67,8 +59,8 @@
|
|
|
67
59
|
"@designliquido/delegua-matematica": "^0.2.0",
|
|
68
60
|
"@designliquido/delegua-tempo": "^0.0.1",
|
|
69
61
|
"@types/esprima": "^4.0.3",
|
|
62
|
+
"@types/estree": "^1.0.0",
|
|
70
63
|
"@types/jest": "^29.4.0",
|
|
71
|
-
"@types/node": "^18.11.13",
|
|
72
64
|
"@typescript-eslint/eslint-plugin": "^5.46.1",
|
|
73
65
|
"@typescript-eslint/parser": "^5.46.1",
|
|
74
66
|
"copyfiles": "^2.4.1",
|
|
@@ -82,14 +74,11 @@
|
|
|
82
74
|
"release-it": "^15.5.1",
|
|
83
75
|
"rimraf": "^3.0.2",
|
|
84
76
|
"ts-jest": "^29.0.5",
|
|
85
|
-
"ts-node": "^10.9.1",
|
|
86
77
|
"typedoc": "^0.23.22",
|
|
87
78
|
"typescript": "^4.9.4"
|
|
88
79
|
},
|
|
89
80
|
"dependencies": {
|
|
90
81
|
"browser-process-hrtime": "^1.0.0",
|
|
91
|
-
"chalk": "4.1.2",
|
|
92
|
-
"commander": "^9.4.1",
|
|
93
82
|
"esprima": "^4.0.1"
|
|
94
83
|
}
|
|
95
84
|
}
|
package/execucao.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/execucao.js
DELETED
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const delegua_1 = require("./fontes/delegua");
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const principal = () => {
|
|
6
|
-
const analisadorArgumentos = new commander_1.Command();
|
|
7
|
-
let codigoOuNomeArquivo;
|
|
8
|
-
analisadorArgumentos
|
|
9
|
-
.option('-c, --codigo <codigo>', 'Código a ser avaliado.', '')
|
|
10
|
-
.option('-d, --dialeto <dialeto>', 'Dialeto a ser usado. Padrão: delegua.', 'delegua')
|
|
11
|
-
.option('-D, --depurador', 'Habilita o depurador, permitindo depuração em um ambiente como o VSCode. Sempre desabilitada em modo LAIR.', false)
|
|
12
|
-
.option('-p, --performance', 'Visualizar indicadores de performance. Desabilitado por padrão.', false)
|
|
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.')
|
|
15
|
-
.argument('[arquivos...]', 'Nomes dos arquivos (opcional)')
|
|
16
|
-
.action((argumentos) => {
|
|
17
|
-
if (argumentos.length > 0) {
|
|
18
|
-
codigoOuNomeArquivo = argumentos[0];
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
analisadorArgumentos.parse();
|
|
22
|
-
const opcoes = analisadorArgumentos.opts();
|
|
23
|
-
const delegua = new delegua_1.Delegua(opcoes.dialeto, opcoes.performance, codigoOuNomeArquivo ? opcoes.depurador : false, opcoes.traduzir);
|
|
24
|
-
if (opcoes.codigo) {
|
|
25
|
-
delegua.executarCodigoComoArgumento(opcoes.codigo || codigoOuNomeArquivo);
|
|
26
|
-
}
|
|
27
|
-
else {
|
|
28
|
-
if (codigoOuNomeArquivo) {
|
|
29
|
-
if (opcoes.traduzir) {
|
|
30
|
-
const extensaoSaida = opcoes.traduzir;
|
|
31
|
-
delegua.traduzirArquivo(codigoOuNomeArquivo, opcoes.saida, extensaoSaida);
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
delegua.carregarArquivo(codigoOuNomeArquivo);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else {
|
|
38
|
-
delegua.iniciarLairDelegua();
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
principal();
|
|
43
|
-
//# sourceMappingURL=execucao.js.map
|
package/execucao.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtC,OAAO,CAAC,eAAe,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;aAC7E;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,132 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const processoFilho = __importStar(require("child_process"));
|
|
27
|
-
const caminho = __importStar(require("path"));
|
|
28
|
-
const sistemaArquivos = __importStar(require("fs"));
|
|
29
|
-
const excecoes_1 = require("../excecoes");
|
|
30
|
-
const funcao_padrao_1 = require("../estruturas/funcao-padrao");
|
|
31
|
-
const modulo_1 = require("../estruturas/modulo");
|
|
32
|
-
const classe_padrao_1 = require("../estruturas/classe-padrao");
|
|
33
|
-
const carregarBibliotecaDelegua = (nome) => {
|
|
34
|
-
let dadosDoModulo;
|
|
35
|
-
try {
|
|
36
|
-
dadosDoModulo = require(nome);
|
|
37
|
-
}
|
|
38
|
-
catch (erro) {
|
|
39
|
-
// Biblioteca não existe localmente. Tentar importação global
|
|
40
|
-
try {
|
|
41
|
-
dadosDoModulo = importarPacoteDeleguaCompleto(nome);
|
|
42
|
-
}
|
|
43
|
-
catch (erro2) {
|
|
44
|
-
throw new excecoes_1.ErroEmTempoDeExecucao(null, `Biblioteca ${nome} não encontrada para importação.`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return modularizarBiblioteca(dadosDoModulo, nome);
|
|
48
|
-
};
|
|
49
|
-
const carregarBiblioteca = async (nomeDaBiblioteca, caminhoDaBiblioteca) => {
|
|
50
|
-
let dadosDoModulo;
|
|
51
|
-
try {
|
|
52
|
-
dadosDoModulo = require(caminhoDaBiblioteca);
|
|
53
|
-
}
|
|
54
|
-
catch (erro) {
|
|
55
|
-
try {
|
|
56
|
-
dadosDoModulo = await importarPacoteExternoCompleto(nomeDaBiblioteca);
|
|
57
|
-
}
|
|
58
|
-
catch (erro2) {
|
|
59
|
-
throw new excecoes_1.ErroEmTempoDeExecucao(null, `Biblioteca ${nomeDaBiblioteca} não encontrada para importação. Informações adicionais: ${(erro2 === null || erro2 === void 0 ? void 0 : erro2.message) || '(nenhuma)'}`);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return modularizarBiblioteca(dadosDoModulo, nomeDaBiblioteca);
|
|
63
|
-
};
|
|
64
|
-
const modularizarBiblioteca = (dadosDoModulo, nome) => {
|
|
65
|
-
const novoModulo = new modulo_1.DeleguaModulo(nome);
|
|
66
|
-
const chaves = Object.keys(dadosDoModulo);
|
|
67
|
-
for (let i = 0; i < chaves.length; i++) {
|
|
68
|
-
const moduloAtual = dadosDoModulo[chaves[i]];
|
|
69
|
-
if (typeof moduloAtual === 'function') {
|
|
70
|
-
// Por definição, funções tradicionais e classes são identificadas em JavaScript como "functions".
|
|
71
|
-
// A primeira heurística era verificando a propriedade `prototype`, mas isso não funciona bem
|
|
72
|
-
// porque classes e funções avulsas todas possuem prototype.
|
|
73
|
-
// Uma heurística nova é converter `moduloAtual` para `string` e verificar se a declaração começa com `class`.
|
|
74
|
-
// Se sim, podemos dizer que a "function" é uma classe padrão.
|
|
75
|
-
// Caso contrário, é uma função (`FuncaoPadrao`).
|
|
76
|
-
if (String(moduloAtual).startsWith('class')) {
|
|
77
|
-
const classePadrao = new classe_padrao_1.ClassePadrao(chaves[i], moduloAtual);
|
|
78
|
-
novoModulo.componentes[chaves[i]] = classePadrao;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
novoModulo.componentes[chaves[i]] = new funcao_padrao_1.FuncaoPadrao(moduloAtual.length, moduloAtual);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
novoModulo.componentes[chaves[i]] = moduloAtual;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return novoModulo;
|
|
89
|
-
};
|
|
90
|
-
const importarPacoteCaminhoBase = async (caminhoRelativo) => {
|
|
91
|
-
var _a;
|
|
92
|
-
let resultado = null;
|
|
93
|
-
const npm = process.platform === 'win32' ? 'npm.cmd' : 'npm';
|
|
94
|
-
const global = processoFilho.spawnSync(npm, ['root', '--location=global']);
|
|
95
|
-
const caminhoAbsoluto = caminho.join(global.output[1].toString().trim()) + `\\${caminhoRelativo}\\package.json`;
|
|
96
|
-
let arquivoInicio = JSON.parse(sistemaArquivos.readFileSync(caminhoAbsoluto, 'utf-8')).main || 'index.js';
|
|
97
|
-
await (_a = caminho.join('file:///' + global.output[1].toString().trim()) +
|
|
98
|
-
`\\${caminhoRelativo}\\${arquivoInicio.replace('./', '')}`, Promise.resolve().then(() => __importStar(require(_a)))).then((resposta) => {
|
|
99
|
-
resultado = resposta;
|
|
100
|
-
});
|
|
101
|
-
return resultado;
|
|
102
|
-
};
|
|
103
|
-
const importarPacoteDeleguaCompleto = async (nome) => {
|
|
104
|
-
return await importarPacoteCaminhoBase(`delegua\\node_modules\\${nome}`);
|
|
105
|
-
};
|
|
106
|
-
const importarPacoteExternoCompleto = async (nome) => {
|
|
107
|
-
return await importarPacoteCaminhoBase(nome);
|
|
108
|
-
};
|
|
109
|
-
const verificarModulosDelegua = (nome) => {
|
|
110
|
-
const modulos = {
|
|
111
|
-
estatistica: '@designliquido/delegua-estatistica',
|
|
112
|
-
estatística: '@designliquido/delegua-estatistica',
|
|
113
|
-
fisica: '@designliquido/delegua-fisica',
|
|
114
|
-
física: '@designliquido/delegua-fisica',
|
|
115
|
-
json: '@designliquido/delegua-json',
|
|
116
|
-
matematica: '@designliquido/delegua-matematica',
|
|
117
|
-
matemática: '@designliquido/delegua-matematica',
|
|
118
|
-
tempo: '@designliquido/delegua-tempo',
|
|
119
|
-
};
|
|
120
|
-
if (Object.keys(modulos).includes(nome)) {
|
|
121
|
-
return modulos[nome].toString();
|
|
122
|
-
}
|
|
123
|
-
return false;
|
|
124
|
-
};
|
|
125
|
-
async function default_1(nome) {
|
|
126
|
-
const nomeBibliotecaResolvido = verificarModulosDelegua(nome);
|
|
127
|
-
return nomeBibliotecaResolvido
|
|
128
|
-
? carregarBibliotecaDelegua(String(nomeBibliotecaResolvido))
|
|
129
|
-
: await carregarBiblioteca(nome, nome);
|
|
130
|
-
}
|
|
131
|
-
exports.default = default_1;
|
|
132
|
-
//# sourceMappingURL=importar-biblioteca.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"importar-biblioteca.js","sourceRoot":"","sources":["../../../fontes/bibliotecas/importar-biblioteca.ts"],"names":[],"mappings":"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"}
|
package/fontes/delegua.d.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
import { AvaliadorSintaticoInterface, DeleguaInterface, InterpretadorInterface, LexadorInterface, RetornoExecucaoInterface, SimboloInterface } from './interfaces';
|
|
2
|
-
import { ServidorDepuracao } from './depuracao';
|
|
3
|
-
import { ImportadorInterface } from './interfaces/importador-interface';
|
|
4
|
-
import { RetornoImportador } from './importador';
|
|
5
|
-
import { TradutorJavaScript, TradutorReversoJavaScript } from './tradutores';
|
|
6
|
-
/**
|
|
7
|
-
* O núcleo da linguagem.
|
|
8
|
-
*
|
|
9
|
-
* Responsável por avaliar a entrada fornecida, entender o código e executá-lo.
|
|
10
|
-
*/
|
|
11
|
-
export declare class Delegua implements DeleguaInterface {
|
|
12
|
-
dialeto: string;
|
|
13
|
-
dialetos: {
|
|
14
|
-
[identificador: string]: string;
|
|
15
|
-
};
|
|
16
|
-
arquivosAbertos: {
|
|
17
|
-
[identificador: string]: string;
|
|
18
|
-
};
|
|
19
|
-
conteudoArquivosAbertos: {
|
|
20
|
-
[identificador: string]: string[];
|
|
21
|
-
};
|
|
22
|
-
interpretador: InterpretadorInterface;
|
|
23
|
-
lexador: LexadorInterface;
|
|
24
|
-
avaliadorSintatico: AvaliadorSintaticoInterface;
|
|
25
|
-
importador: ImportadorInterface;
|
|
26
|
-
tradutorJavaScript: TradutorJavaScript;
|
|
27
|
-
tradutorReversoJavascript: TradutorReversoJavaScript;
|
|
28
|
-
funcaoDeRetorno: Function;
|
|
29
|
-
modoDepuracao: boolean;
|
|
30
|
-
servidorDepuracao: ServidorDepuracao;
|
|
31
|
-
constructor(dialeto?: string, performance?: boolean, depurador?: boolean, traduzir?: any, funcaoDeRetorno?: Function);
|
|
32
|
-
versao(): string;
|
|
33
|
-
/**
|
|
34
|
-
* LAIR (Leia-Avalie-Imprima-Repita) é o modo em que Delégua executa em modo console,
|
|
35
|
-
* ou seja, esperando como entrada linhas de código fornecidas pelo usuário.
|
|
36
|
-
*/
|
|
37
|
-
iniciarLairDelegua(): void;
|
|
38
|
-
/**
|
|
39
|
-
* Executa uma linha. Usado pelo modo LAIR e pelo servidor de depuração, quando recebe um comando 'avaliar'.
|
|
40
|
-
* @param linha A linha a ser avaliada.
|
|
41
|
-
* @returns O resultado da execução, com os retornos e respectivos erros, se houverem.
|
|
42
|
-
*/
|
|
43
|
-
executarUmaLinha(linha: string): Promise<RetornoExecucaoInterface>;
|
|
44
|
-
/**
|
|
45
|
-
* Instancia um servidor de depuração, normalmente recebendo requisições na porta 7777.
|
|
46
|
-
*/
|
|
47
|
-
iniciarDepuracao(): void;
|
|
48
|
-
/**
|
|
49
|
-
* Pede ao servidor de depuração que finalize a execução.
|
|
50
|
-
* Se não for feito, o servidor de depuração mantém um _stream_ aberto e nunca finaliza.
|
|
51
|
-
* Mais informações: https://stackoverflow.com/a/47456805/1314276
|
|
52
|
-
*/
|
|
53
|
-
finalizarDepuracao(): void;
|
|
54
|
-
/**
|
|
55
|
-
* Verifica erros nas etapas de lexação e avaliação sintática.
|
|
56
|
-
* @param retornoImportador Um objeto que implementa a interface RetornoImportador.
|
|
57
|
-
* @returns Verdadeiro se há erros. Falso caso contrário.
|
|
58
|
-
*/
|
|
59
|
-
afericaoErros(retornoImportador: RetornoImportador): boolean;
|
|
60
|
-
/**
|
|
61
|
-
* Realiza a tradução do arquivo passado como parâmetro no comando de execução.
|
|
62
|
-
* @param caminhoRelativoArquivo O caminho do arquivo.
|
|
63
|
-
* @param gerarArquivoSaida Se o resultado da tradução deve ser escrito em arquivo.
|
|
64
|
-
* Se verdadeiro, os arquivos de saída são escritos no mesmo diretório
|
|
65
|
-
* do arquivo passado no primeiro parâmetro.
|
|
66
|
-
*/
|
|
67
|
-
traduzirArquivo(caminhoRelativoArquivo: string, gerarArquivoSaida: boolean, extensaoArquivoSaida: string): any;
|
|
68
|
-
executarCodigoComoArgumento(codigo: string): Promise<void>;
|
|
69
|
-
/**
|
|
70
|
-
* Execução por arquivo.
|
|
71
|
-
* @param caminhoRelativoArquivo O caminho no sistema operacional do arquivo a ser aberto.
|
|
72
|
-
*/
|
|
73
|
-
carregarArquivo(caminhoRelativoArquivo: string): Promise<any>;
|
|
74
|
-
/**
|
|
75
|
-
* A execução do código de fato.
|
|
76
|
-
* @param retornoImportador Dados retornados do Importador, como o retorno do Lexador, do Avaliador
|
|
77
|
-
* Sintático e respectivos erros.
|
|
78
|
-
* @param manterAmbiente Indicação se ambiente deve ser mantido ou não. Normalmente verdadeiro
|
|
79
|
-
* para LAIR, falso para execução por arquivo.
|
|
80
|
-
* @returns Um objeto com o resultado da execução.
|
|
81
|
-
*/
|
|
82
|
-
executar(retornoImportador: RetornoImportador, manterAmbiente?: boolean): Promise<RetornoExecucaoInterface>;
|
|
83
|
-
reportar(linha: number, onde: any, mensagem: string): void;
|
|
84
|
-
erro(simbolo: SimboloInterface, mensagemDeErro: string): void;
|
|
85
|
-
erroEmTempoDeExecucao(erro: any): void;
|
|
86
|
-
}
|