@designliquido/potigol 0.0.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/LICENSE +21 -0
- package/README.md +33 -0
- package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts +125 -0
- package/avaliador-sintatico/avaliador-sintatico-potigol.d.ts.map +1 -0
- package/avaliador-sintatico/avaliador-sintatico-potigol.js +709 -0
- package/avaliador-sintatico/avaliador-sintatico-potigol.js.map +1 -0
- package/avaliador-sintatico/index.d.ts +2 -0
- package/avaliador-sintatico/index.d.ts.map +1 -0
- package/avaliador-sintatico/index.js +18 -0
- package/avaliador-sintatico/index.js.map +1 -0
- package/avaliador-sintatico/micro-avaliador-sintatico-potigol.d.ts +13 -0
- package/avaliador-sintatico/micro-avaliador-sintatico-potigol.d.ts.map +1 -0
- package/avaliador-sintatico/micro-avaliador-sintatico-potigol.js +73 -0
- package/avaliador-sintatico/micro-avaliador-sintatico-potigol.js.map +1 -0
- package/bibliotecas/biblioteca-global.d.ts +4 -0
- package/bibliotecas/biblioteca-global.d.ts.map +1 -0
- package/bibliotecas/biblioteca-global.js +44 -0
- package/bibliotecas/biblioteca-global.js.map +1 -0
- package/bibliotecas/index.d.ts +5 -0
- package/bibliotecas/index.d.ts.map +1 -0
- package/bibliotecas/index.js +21 -0
- package/bibliotecas/index.js.map +1 -0
- package/bibliotecas/primitivas-numero.d.ts +13 -0
- package/bibliotecas/primitivas-numero.d.ts.map +1 -0
- package/bibliotecas/primitivas-numero.js +13 -0
- package/bibliotecas/primitivas-numero.js.map +1 -0
- package/bibliotecas/primitivas-texto.d.ts +29 -0
- package/bibliotecas/primitivas-texto.d.ts.map +1 -0
- package/bibliotecas/primitivas-texto.js +37 -0
- package/bibliotecas/primitivas-texto.js.map +1 -0
- package/bibliotecas/primitivas-vetor.d.ts +27 -0
- package/bibliotecas/primitivas-vetor.d.ts.map +1 -0
- package/bibliotecas/primitivas-vetor.js +49 -0
- package/bibliotecas/primitivas-vetor.js.map +1 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/index.js +24 -0
- package/index.js.map +1 -0
- package/interfaces/index.d.ts +2 -0
- package/interfaces/index.d.ts.map +1 -0
- package/interfaces/index.js +18 -0
- package/interfaces/index.js.map +1 -0
- package/interfaces/interpretador-interface-potigol.d.ts +6 -0
- package/interfaces/interpretador-interface-potigol.d.ts.map +1 -0
- package/interfaces/interpretador-interface-potigol.js +3 -0
- package/interfaces/interpretador-interface-potigol.js.map +1 -0
- package/interpretador/comum.d.ts +22 -0
- package/interpretador/comum.d.ts.map +1 -0
- package/interpretador/comum.js +116 -0
- package/interpretador/comum.js.map +1 -0
- package/interpretador/index.d.ts +3 -0
- package/interpretador/index.d.ts.map +1 -0
- package/interpretador/index.js +19 -0
- package/interpretador/index.js.map +1 -0
- package/interpretador/inferenciador.d.ts +2 -0
- package/interpretador/inferenciador.d.ts.map +1 -0
- package/interpretador/inferenciador.js +34 -0
- package/interpretador/inferenciador.js.map +1 -0
- package/interpretador/interpretador-potigol-com-depuracao.d.ts +9 -0
- package/interpretador/interpretador-potigol-com-depuracao.d.ts.map +1 -0
- package/interpretador/interpretador-potigol-com-depuracao.js +48 -0
- package/interpretador/interpretador-potigol-com-depuracao.js.map +1 -0
- package/interpretador/interpretador-potigol.d.ts +16 -0
- package/interpretador/interpretador-potigol.d.ts.map +1 -0
- package/interpretador/interpretador-potigol.js +104 -0
- package/interpretador/interpretador-potigol.js.map +1 -0
- package/lexador/index.d.ts +3 -0
- package/lexador/index.d.ts.map +1 -0
- package/lexador/index.js +19 -0
- package/lexador/index.js.map +1 -0
- package/lexador/lexador-potigol.d.ts +18 -0
- package/lexador/lexador-potigol.d.ts.map +1 -0
- package/lexador/lexador-potigol.js +295 -0
- package/lexador/lexador-potigol.js.map +1 -0
- package/lexador/palavras-reservadas.d.ts +45 -0
- package/lexador/palavras-reservadas.d.ts.map +1 -0
- package/lexador/palavras-reservadas.js +52 -0
- package/lexador/palavras-reservadas.js.map +1 -0
- package/package.json +40 -0
- package/tipos-de-simbolos/lexico-regular.d.ts +65 -0
- package/tipos-de-simbolos/lexico-regular.d.ts.map +1 -0
- package/tipos-de-simbolos/lexico-regular.js +66 -0
- package/tipos-de-simbolos/lexico-regular.js.map +1 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AcessoMetodoOuPropriedade } from '@designliquido/delegua/construtos';
|
|
2
|
+
import { InterpretadorBase } from '@designliquido/delegua/interpretador';
|
|
3
|
+
/**
|
|
4
|
+
* Executa um acesso a método, normalmente de um objeto de classe.
|
|
5
|
+
* @param expressao A expressão de acesso.
|
|
6
|
+
* @returns O resultado da execução.
|
|
7
|
+
*/
|
|
8
|
+
export declare function visitarExpressaoAcessoMetodo(interpretador: InterpretadorBase, expressao: AcessoMetodoOuPropriedade): Promise<any>;
|
|
9
|
+
/**
|
|
10
|
+
* Resolve todas as interpolações em um texto.
|
|
11
|
+
* @param {texto} textoOriginal O texto original com as variáveis interpoladas.
|
|
12
|
+
* @returns Uma lista de variáveis interpoladas.
|
|
13
|
+
*/
|
|
14
|
+
export declare function resolverInterpolacoes(interpretador: InterpretadorBase, textoOriginal: string, linha: number): Promise<any[]>;
|
|
15
|
+
/**
|
|
16
|
+
* Retira a interpolação de um texto.
|
|
17
|
+
* @param {texto} texto O texto
|
|
18
|
+
* @param {any[]} variaveis A lista de variaveis interpoladas
|
|
19
|
+
* @returns O texto com o valor das variaveis.
|
|
20
|
+
*/
|
|
21
|
+
export declare function retirarInterpolacao(texto: string, variaveis: any[]): string;
|
|
22
|
+
//# sourceMappingURL=comum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comum.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAI9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAOzE;;;;GAIG;AACH,wBAAsB,4BAA4B,CAC9C,aAAa,EAAE,iBAAiB,EAChC,SAAS,EAAE,yBAAyB,GACrC,OAAO,CAAC,GAAG,CAAC,CAgEd;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACvC,aAAa,EAAE,iBAAiB,EAChC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,MAAM,GACd,OAAO,CAAC,GAAG,EAAE,CAAC,CA2BhB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM,CAY3E"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.retirarInterpolacao = exports.resolverInterpolacoes = exports.visitarExpressaoAcessoMetodo = void 0;
|
|
7
|
+
const estruturas_1 = require("@designliquido/delegua/estruturas");
|
|
8
|
+
const excecoes_1 = require("@designliquido/delegua/excecoes");
|
|
9
|
+
const inferenciador_1 = require("./inferenciador");
|
|
10
|
+
const primitivas_numero_1 = __importDefault(require("../bibliotecas/primitivas-numero"));
|
|
11
|
+
const primitivas_texto_1 = __importDefault(require("../bibliotecas/primitivas-texto"));
|
|
12
|
+
const primitivas_vetor_1 = __importDefault(require("../bibliotecas/primitivas-vetor"));
|
|
13
|
+
/**
|
|
14
|
+
* Executa um acesso a método, normalmente de um objeto de classe.
|
|
15
|
+
* @param expressao A expressão de acesso.
|
|
16
|
+
* @returns O resultado da execução.
|
|
17
|
+
*/
|
|
18
|
+
async function visitarExpressaoAcessoMetodo(interpretador, expressao) {
|
|
19
|
+
const variavelObjeto = await interpretador.avaliar(expressao.objeto);
|
|
20
|
+
const objeto = variavelObjeto.hasOwnProperty('valor') ? variavelObjeto.valor : variavelObjeto;
|
|
21
|
+
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse) {
|
|
22
|
+
return objeto.obter(expressao.simbolo) || null;
|
|
23
|
+
}
|
|
24
|
+
// TODO: Possivelmente depreciar esta forma.
|
|
25
|
+
// Não parece funcionar em momento algum.
|
|
26
|
+
if (objeto.constructor === Object) {
|
|
27
|
+
return objeto[expressao.simbolo.lexema] || null;
|
|
28
|
+
}
|
|
29
|
+
// Função tradicional do JavaScript.
|
|
30
|
+
// Normalmente executa quando uma biblioteca é importada.
|
|
31
|
+
if (typeof objeto[expressao.simbolo.lexema] === 'function') {
|
|
32
|
+
return objeto[expressao.simbolo.lexema];
|
|
33
|
+
}
|
|
34
|
+
// Objeto tradicional do JavaScript.
|
|
35
|
+
// Normalmente executa quando uma biblioteca é importada.
|
|
36
|
+
if (typeof objeto[expressao.simbolo.lexema] === 'object') {
|
|
37
|
+
return objeto[expressao.simbolo.lexema];
|
|
38
|
+
}
|
|
39
|
+
if (objeto instanceof estruturas_1.DeleguaModulo) {
|
|
40
|
+
return objeto.componentes[expressao.simbolo.lexema] || null;
|
|
41
|
+
}
|
|
42
|
+
let tipoObjeto = variavelObjeto.tipo;
|
|
43
|
+
if (tipoObjeto === null || tipoObjeto === undefined) {
|
|
44
|
+
tipoObjeto = (0, inferenciador_1.inferirTipoVariavel)(variavelObjeto);
|
|
45
|
+
}
|
|
46
|
+
switch (tipoObjeto) {
|
|
47
|
+
case 'numero':
|
|
48
|
+
case 'número':
|
|
49
|
+
const metodoDePrimitivaNumero = primitivas_numero_1.default[expressao.simbolo.lexema];
|
|
50
|
+
if (metodoDePrimitivaNumero) {
|
|
51
|
+
return new estruturas_1.MetodoPrimitiva(objeto, metodoDePrimitivaNumero);
|
|
52
|
+
}
|
|
53
|
+
break;
|
|
54
|
+
case 'texto':
|
|
55
|
+
const metodoDePrimitivaTexto = primitivas_texto_1.default[expressao.simbolo.lexema];
|
|
56
|
+
if (metodoDePrimitivaTexto) {
|
|
57
|
+
return new estruturas_1.MetodoPrimitiva(objeto, metodoDePrimitivaTexto);
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
case 'vetor':
|
|
61
|
+
const metodoDePrimitivaVetor = primitivas_vetor_1.default[expressao.simbolo.lexema];
|
|
62
|
+
if (metodoDePrimitivaVetor) {
|
|
63
|
+
return new estruturas_1.MetodoPrimitiva(objeto, metodoDePrimitivaVetor);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
return Promise.reject(new excecoes_1.ErroEmTempoDeExecucao(expressao.simbolo, `Método para objeto ou primitiva não encontrado: ${expressao.simbolo.lexema}.`, expressao.linha));
|
|
68
|
+
}
|
|
69
|
+
exports.visitarExpressaoAcessoMetodo = visitarExpressaoAcessoMetodo;
|
|
70
|
+
/**
|
|
71
|
+
* Resolve todas as interpolações em um texto.
|
|
72
|
+
* @param {texto} textoOriginal O texto original com as variáveis interpoladas.
|
|
73
|
+
* @returns Uma lista de variáveis interpoladas.
|
|
74
|
+
*/
|
|
75
|
+
async function resolverInterpolacoes(interpretador, textoOriginal, linha) {
|
|
76
|
+
const variaveis = textoOriginal.match(interpretador.regexInterpolacao);
|
|
77
|
+
let resultadosAvaliacaoSintatica = variaveis.map((s) => {
|
|
78
|
+
const expressao = s.replace(/[\{\}]*/gm, '');
|
|
79
|
+
let microLexador = interpretador.microLexador.mapear(expressao);
|
|
80
|
+
const resultadoMicroAvaliadorSintatico = interpretador.microAvaliadorSintatico.analisar(microLexador, linha);
|
|
81
|
+
return {
|
|
82
|
+
nomeVariavel: expressao,
|
|
83
|
+
resultadoMicroAvaliadorSintatico,
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
// TODO: Verificar erros do `resultadosAvaliacaoSintatica`.
|
|
87
|
+
const resolucoesPromises = await Promise.all(resultadosAvaliacaoSintatica
|
|
88
|
+
.flatMap((r) => r.resultadoMicroAvaliadorSintatico.declaracoes)
|
|
89
|
+
.map((d) => interpretador.avaliar(d)));
|
|
90
|
+
return resolucoesPromises.map((item, indice) => ({
|
|
91
|
+
variavel: resultadosAvaliacaoSintatica[indice].nomeVariavel,
|
|
92
|
+
valor: item,
|
|
93
|
+
}));
|
|
94
|
+
}
|
|
95
|
+
exports.resolverInterpolacoes = resolverInterpolacoes;
|
|
96
|
+
/**
|
|
97
|
+
* Retira a interpolação de um texto.
|
|
98
|
+
* @param {texto} texto O texto
|
|
99
|
+
* @param {any[]} variaveis A lista de variaveis interpoladas
|
|
100
|
+
* @returns O texto com o valor das variaveis.
|
|
101
|
+
*/
|
|
102
|
+
function retirarInterpolacao(texto, variaveis) {
|
|
103
|
+
let textoFinal = texto;
|
|
104
|
+
variaveis.forEach((elemento) => {
|
|
105
|
+
var _a, _b, _c;
|
|
106
|
+
if (((_a = elemento === null || elemento === void 0 ? void 0 : elemento.valor) === null || _a === void 0 ? void 0 : _a.tipo) === 'lógico') {
|
|
107
|
+
textoFinal = textoFinal.replace('{' + elemento.variavel + '}', this.paraTexto((_b = elemento === null || elemento === void 0 ? void 0 : elemento.valor) === null || _b === void 0 ? void 0 : _b.valor));
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
textoFinal = textoFinal.replace('{' + elemento.variavel + '}', ((_c = elemento === null || elemento === void 0 ? void 0 : elemento.valor) === null || _c === void 0 ? void 0 : _c.valor) || (elemento === null || elemento === void 0 ? void 0 : elemento.valor));
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
return textoFinal;
|
|
114
|
+
}
|
|
115
|
+
exports.retirarInterpolacao = retirarInterpolacao;
|
|
116
|
+
//# sourceMappingURL=comum.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comum.js","sourceRoot":"","sources":["../../fontes/interpretador/comum.ts"],"names":[],"mappings":";;;;;;AACA,kEAAwG;AAExG,8DAAwE;AAGxE,mDAAsD;AACtD,yFAAgE;AAChE,uFAA8D;AAC9D,uFAA8D;AAE9D;;;;GAIG;AACI,KAAK,UAAU,4BAA4B,CAC9C,aAAgC,EAChC,SAAoC;IAEpC,MAAM,cAAc,GAAsB,MAAM,aAAa,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxF,MAAM,MAAM,GAAG,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAE9F,IAAI,MAAM,YAAY,gCAAmB,EAAE,CAAC;QACxC,OAAO,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IACnD,CAAC;IAED,4CAA4C;IAC5C,yCAAyC;IACzC,IAAI,MAAM,CAAC,WAAW,KAAK,MAAM,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACpD,CAAC;IAED,oCAAoC;IACpC,yDAAyD;IACzD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,UAAU,EAAE,CAAC;QACzD,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,oCAAoC;IACpC,yDAAyD;IACzD,IAAI,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,MAAM,YAAY,0BAAa,EAAE,CAAC;QAClC,OAAO,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAChE,CAAC;IAED,IAAI,UAAU,GAAQ,cAAc,CAAC,IAAI,CAAC;IAC1C,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAClD,UAAU,GAAG,IAAA,mCAAmB,EAAC,cAAqB,CAAC,CAAC;IAC5D,CAAC;IAED,QAAQ,UAAU,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ;YACT,MAAM,uBAAuB,GAAa,2BAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACrF,IAAI,uBAAuB,EAAE,CAAC;gBAC1B,OAAO,IAAI,4BAAe,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;YAChE,CAAC;YACD,MAAM;QACV,KAAK,OAAO;YACR,MAAM,sBAAsB,GAAa,0BAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnF,IAAI,sBAAsB,EAAE,CAAC;gBACzB,OAAO,IAAI,4BAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;QACV,KAAK,OAAO;YACR,MAAM,sBAAsB,GAAa,0BAAe,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YACnF,IAAI,sBAAsB,EAAE,CAAC;gBACzB,OAAO,IAAI,4BAAe,CAAC,MAAM,EAAE,sBAAsB,CAAC,CAAC;YAC/D,CAAC;YACD,MAAM;IACd,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CACjB,IAAI,gCAAqB,CACrB,SAAS,CAAC,OAAO,EACjB,mDAAmD,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,EAC9E,SAAS,CAAC,KAAK,CAClB,CACJ,CAAC;AACN,CAAC;AAnED,oEAmEC;AAED;;;;GAIG;AACI,KAAK,UAAU,qBAAqB,CACvC,aAAgC,EAChC,aAAqB,EACrB,KAAa;IAEb,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAEvE,IAAI,4BAA4B,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACnD,MAAM,SAAS,GAAW,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAErD,IAAI,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChE,MAAM,gCAAgC,GAAG,aAAa,CAAC,uBAAuB,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAE7G,OAAO;YACH,YAAY,EAAE,SAAS;YACvB,gCAAgC;SACnC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,2DAA2D;IAE3D,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,GAAG,CACxC,4BAA4B;SACvB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gCAAgC,CAAC,WAAW,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAC5C,CAAC;IAEF,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;QAC7C,QAAQ,EAAE,4BAA4B,CAAC,MAAM,CAAC,CAAC,YAAY;QAC3D,KAAK,EAAE,IAAI;KACd,CAAC,CAAC,CAAC;AACR,CAAC;AA/BD,sDA+BC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,KAAa,EAAE,SAAgB;IAC/D,IAAI,UAAU,GAAG,KAAK,CAAC;IAEvB,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;;QAC3B,IAAI,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,IAAI,MAAK,QAAQ,EAAE,CAAC;YACrC,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,KAAK,CAAC,CAAC,CAAC;QAC3G,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,GAAG,QAAQ,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAA,MAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,0CAAE,KAAK,MAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,CAAA,CAAC,CAAC;QAC9G,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,UAAU,CAAC;AACtB,CAAC;AAZD,kDAYC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./interpretador-potigol"), exports);
|
|
18
|
+
__exportStar(require("./interpretador-potigol-com-depuracao"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/interpretador/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0DAAwC;AACxC,wEAAsD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare function inferirTipoVariavel(variavel: string | number | Array<any> | boolean | null | undefined): "módulo" | "nulo" | "Inteiro" | "Real" | "Texto" | "Lista" | "Longo" | "Lógico" | "Nulo" | "Dicionário" | "Função" | "Símbolo";
|
|
2
|
+
//# sourceMappingURL=inferenciador.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inferenciador.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/inferenciador.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,kIAwBtG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inferirTipoVariavel = void 0;
|
|
4
|
+
function inferirTipoVariavel(variavel) {
|
|
5
|
+
const tipo = typeof variavel;
|
|
6
|
+
switch (tipo) {
|
|
7
|
+
case 'string':
|
|
8
|
+
return 'Texto';
|
|
9
|
+
case 'number':
|
|
10
|
+
if (variavel.toString().indexOf('.') > -1)
|
|
11
|
+
return 'Real';
|
|
12
|
+
return 'Inteiro';
|
|
13
|
+
case 'bigint':
|
|
14
|
+
return 'Longo';
|
|
15
|
+
case 'boolean':
|
|
16
|
+
return 'Lógico';
|
|
17
|
+
case 'undefined':
|
|
18
|
+
return 'Nulo';
|
|
19
|
+
case 'object':
|
|
20
|
+
if (Array.isArray(variavel))
|
|
21
|
+
return 'Lista';
|
|
22
|
+
if (variavel === null)
|
|
23
|
+
return 'nulo';
|
|
24
|
+
if (variavel.constructor.name === 'DeleguaModulo')
|
|
25
|
+
return 'módulo';
|
|
26
|
+
return 'Dicionário';
|
|
27
|
+
case 'function':
|
|
28
|
+
return 'Função';
|
|
29
|
+
case 'symbol':
|
|
30
|
+
return 'Símbolo';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.inferirTipoVariavel = inferirTipoVariavel;
|
|
34
|
+
//# sourceMappingURL=inferenciador.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inferenciador.js","sourceRoot":"","sources":["../../fontes/interpretador/inferenciador.ts"],"names":[],"mappings":";;;AAAA,SAAgB,mBAAmB,CAAC,QAAmE;IACnG,MAAM,IAAI,GAAG,OAAO,QAAQ,CAAC;IAC7B,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ;YACT,OAAO,OAAO,CAAC;QACnB,KAAK,QAAQ;YACT,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAAE,OAAO,MAAM,CAAC;YACzD,OAAO,SAAS,CAAC;QACrB,KAAK,QAAQ;YACT,OAAO,OAAO,CAAC;QACnB,KAAK,SAAS;YACV,OAAO,QAAQ,CAAC;QACpB,KAAK,WAAW;YACZ,OAAO,MAAM,CAAC;QAClB,KAAK,QAAQ;YACT,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAAE,OAAO,OAAO,CAAC;YAC5C,IAAI,QAAQ,KAAK,IAAI;gBAAE,OAAO,MAAM,CAAC;YACrC,IAAI,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe;gBAAE,OAAO,QAAQ,CAAC;YACnE,OAAO,YAAY,CAAC;QACxB,KAAK,UAAU;YACX,OAAO,QAAQ,CAAC;QACpB,KAAK,QAAQ;YACT,OAAO,SAAS,CAAC;IACzB,CAAC;AACL,CAAC;AAxBD,kDAwBC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AcessoMetodoOuPropriedade } from '@designliquido/delegua/construtos';
|
|
2
|
+
import { InterpretadorComDepuracao } from '@designliquido/delegua/interpretador/interpretador-com-depuracao';
|
|
3
|
+
export declare class InterpretadorPotigolComDepuracao extends InterpretadorComDepuracao {
|
|
4
|
+
constructor(diretorioBase: string, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
|
|
5
|
+
protected resolverInterpolacoes(textoOriginal: string, linha: number): Promise<any[]>;
|
|
6
|
+
protected retirarInterpolacao(texto: string, variaveis: any[]): string;
|
|
7
|
+
visitarExpressaoAcessoMetodo(expressao: AcessoMetodoOuPropriedade): Promise<any>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=interpretador-potigol-com-depuracao.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpretador-potigol-com-depuracao.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-potigol-com-depuracao.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,kEAAkE,CAAC;AAI7G,qBAAa,gCAAiC,SAAQ,yBAAyB;gBAC/D,aAAa,EAAE,MAAM,EAAE,eAAe,GAAE,QAAe,EAAE,yBAAyB,GAAE,QAAe;cAQ/F,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAI3F,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM;IAIhE,4BAA4B,CAAC,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;CAGzF"}
|
|
@@ -0,0 +1,48 @@
|
|
|
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
|
+
exports.InterpretadorPotigolComDepuracao = void 0;
|
|
27
|
+
const biblioteca_global_1 = require("@designliquido/delegua/bibliotecas/dialetos/potigol/biblioteca-global");
|
|
28
|
+
const interpretador_com_depuracao_1 = require("@designliquido/delegua/interpretador/interpretador-com-depuracao");
|
|
29
|
+
const comum = __importStar(require("./comum"));
|
|
30
|
+
class InterpretadorPotigolComDepuracao extends interpretador_com_depuracao_1.InterpretadorComDepuracao {
|
|
31
|
+
constructor(diretorioBase, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
|
|
32
|
+
super(diretorioBase, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
|
|
33
|
+
this.expandirPropriedadesDeObjetosEmEspacoVariaveis = true;
|
|
34
|
+
this.regexInterpolacao = /{(.*?)}/g;
|
|
35
|
+
(0, biblioteca_global_1.registrarBibliotecaGlobalPotigol)(this, this.pilhaEscoposExecucao);
|
|
36
|
+
}
|
|
37
|
+
async resolverInterpolacoes(textoOriginal, linha) {
|
|
38
|
+
return comum.resolverInterpolacoes(this, textoOriginal, linha);
|
|
39
|
+
}
|
|
40
|
+
retirarInterpolacao(texto, variaveis) {
|
|
41
|
+
return comum.retirarInterpolacao(texto, variaveis);
|
|
42
|
+
}
|
|
43
|
+
async visitarExpressaoAcessoMetodo(expressao) {
|
|
44
|
+
return comum.visitarExpressaoAcessoMetodo(this, expressao);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.InterpretadorPotigolComDepuracao = InterpretadorPotigolComDepuracao;
|
|
48
|
+
//# sourceMappingURL=interpretador-potigol-com-depuracao.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpretador-potigol-com-depuracao.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-potigol-com-depuracao.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6GAAyH;AAEzH,kHAA6G;AAE7G,+CAAiC;AAEjC,MAAa,gCAAiC,SAAQ,uDAAyB;IAC3E,YAAY,aAAqB,EAAE,kBAA4B,IAAI,EAAE,4BAAsC,IAAI;QAC3G,KAAK,CAAC,aAAa,EAAE,eAAe,EAAE,yBAAyB,CAAC,CAAC;QACjE,IAAI,CAAC,8CAA8C,GAAG,IAAI,CAAC;QAC3D,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC;QAEpC,IAAA,oDAAgC,EAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtE,CAAC;IAES,KAAK,CAAC,qBAAqB,CAAC,aAAqB,EAAE,KAAa;QACtE,OAAO,KAAK,CAAC,qBAAqB,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAES,mBAAmB,CAAC,KAAa,EAAE,SAAgB;QACzD,OAAO,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,4BAA4B,CAAC,SAAoC;QACnE,OAAO,KAAK,CAAC,4BAA4B,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC/D,CAAC;CACJ;AApBD,4EAoBC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { InterpretadorBase } from '@designliquido/delegua/interpretador/interpretador-base';
|
|
2
|
+
import { AcessoMetodoOuPropriedade, Construto, QualTipo } from '@designliquido/delegua/construtos';
|
|
3
|
+
import { InterpretadorInterfacePotigol } from '../interfaces/interpretador-interface-potigol';
|
|
4
|
+
/**
|
|
5
|
+
* Uma implementação do interpretador de Potigol.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InterpretadorPotigol extends InterpretadorBase implements InterpretadorInterfacePotigol {
|
|
8
|
+
constructor(diretorioBase: string, performance?: boolean, funcaoDeRetorno?: Function, funcaoDeRetornoMesmaLinha?: Function);
|
|
9
|
+
paraTexto(objeto: any): any;
|
|
10
|
+
protected resolverInterpolacoes(textoOriginal: string, linha: number): Promise<any[]>;
|
|
11
|
+
protected retirarInterpolacao(texto: string, variaveis: any[]): string;
|
|
12
|
+
visitarExpressaoAcessoMetodo(expressao: AcessoMetodoOuPropriedade): Promise<any>;
|
|
13
|
+
visitarExpressaoQualTipo(expressao: QualTipo): Promise<string>;
|
|
14
|
+
protected avaliarArgumentosEscreva(argumentos: Construto[]): Promise<string>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=interpretador-potigol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpretador-potigol.d.ts","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-potigol.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAC;AAC5F,OAAO,EACH,yBAAyB,EAGzB,SAAS,EAET,QAAQ,EAGX,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAM9F;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,iBAAkB,YAAW,6BAA6B;gBAE5F,aAAa,EAAE,MAAM,EACrB,WAAW,UAAQ,EACnB,eAAe,GAAE,QAAe,EAChC,yBAAyB,GAAE,QAAe;IAS9C,SAAS,CAAC,MAAM,EAAE,GAAG;cAqBL,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAI3F,SAAS,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,MAAM;IAIhE,4BAA4B,CAAC,SAAS,EAAE,yBAAyB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhF,wBAAwB,CAAC,SAAS,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;cAsBpD,wBAAwB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBrF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
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
|
+
exports.InterpretadorPotigol = void 0;
|
|
27
|
+
const interpretador_base_1 = require("@designliquido/delegua/interpretador/interpretador-base");
|
|
28
|
+
const construtos_1 = require("@designliquido/delegua/construtos");
|
|
29
|
+
const estruturas_1 = require("@designliquido/delegua/estruturas");
|
|
30
|
+
const biblioteca_global_1 = require("../bibliotecas/biblioteca-global");
|
|
31
|
+
const inferenciador_1 = require("./inferenciador");
|
|
32
|
+
const comum = __importStar(require("./comum"));
|
|
33
|
+
/**
|
|
34
|
+
* Uma implementação do interpretador de Potigol.
|
|
35
|
+
*/
|
|
36
|
+
class InterpretadorPotigol extends interpretador_base_1.InterpretadorBase {
|
|
37
|
+
constructor(diretorioBase, performance = false, funcaoDeRetorno = null, funcaoDeRetornoMesmaLinha = null) {
|
|
38
|
+
super(diretorioBase, performance, funcaoDeRetorno, funcaoDeRetornoMesmaLinha);
|
|
39
|
+
this.expandirPropriedadesDeObjetosEmEspacoVariaveis = true;
|
|
40
|
+
this.regexInterpolacao = /{(.*?)}/g;
|
|
41
|
+
(0, biblioteca_global_1.registrarBibliotecaGlobalPotigol)(this, this.pilhaEscoposExecucao);
|
|
42
|
+
}
|
|
43
|
+
paraTexto(objeto) {
|
|
44
|
+
if (objeto === null || objeto === undefined)
|
|
45
|
+
return 'nulo';
|
|
46
|
+
if (typeof objeto === 'boolean') {
|
|
47
|
+
return objeto ? 'verdadeiro' : 'falso';
|
|
48
|
+
}
|
|
49
|
+
if (objeto instanceof Date) {
|
|
50
|
+
const formato = Intl.DateTimeFormat('pt', {
|
|
51
|
+
dateStyle: 'full',
|
|
52
|
+
timeStyle: 'full',
|
|
53
|
+
});
|
|
54
|
+
return formato.format(objeto);
|
|
55
|
+
}
|
|
56
|
+
if (Array.isArray(objeto))
|
|
57
|
+
return `[${objeto.join(', ')}]`;
|
|
58
|
+
if (objeto.valor instanceof estruturas_1.ObjetoPadrao)
|
|
59
|
+
return objeto.valor.paraTexto();
|
|
60
|
+
if (typeof objeto === 'object')
|
|
61
|
+
return JSON.stringify(objeto);
|
|
62
|
+
return objeto.toString();
|
|
63
|
+
}
|
|
64
|
+
async resolverInterpolacoes(textoOriginal, linha) {
|
|
65
|
+
return comum.resolverInterpolacoes(this, textoOriginal, linha);
|
|
66
|
+
}
|
|
67
|
+
retirarInterpolacao(texto, variaveis) {
|
|
68
|
+
return comum.retirarInterpolacao(texto, variaveis);
|
|
69
|
+
}
|
|
70
|
+
async visitarExpressaoAcessoMetodo(expressao) {
|
|
71
|
+
return comum.visitarExpressaoAcessoMetodo(this, expressao);
|
|
72
|
+
}
|
|
73
|
+
async visitarExpressaoQualTipo(expressao) {
|
|
74
|
+
let qualTipo = expressao.valor;
|
|
75
|
+
if ((expressao === null || expressao === void 0 ? void 0 : expressao.valor) instanceof construtos_1.ConstanteOuVariavel) {
|
|
76
|
+
const nome = expressao === null || expressao === void 0 ? void 0 : expressao.valor.simbolo.lexema;
|
|
77
|
+
qualTipo = this.pilhaEscoposExecucao.topoDaPilha().ambiente.valores[nome].valor;
|
|
78
|
+
}
|
|
79
|
+
if (qualTipo instanceof construtos_1.Binario ||
|
|
80
|
+
qualTipo instanceof construtos_1.Literal ||
|
|
81
|
+
qualTipo instanceof construtos_1.QualTipo ||
|
|
82
|
+
qualTipo instanceof construtos_1.Unario ||
|
|
83
|
+
qualTipo instanceof construtos_1.Variavel) {
|
|
84
|
+
qualTipo = await this.avaliar(qualTipo);
|
|
85
|
+
return qualTipo.tipo || (0, inferenciador_1.inferirTipoVariavel)(qualTipo);
|
|
86
|
+
}
|
|
87
|
+
return (0, inferenciador_1.inferirTipoVariavel)((qualTipo === null || qualTipo === void 0 ? void 0 : qualTipo.valores) || qualTipo);
|
|
88
|
+
}
|
|
89
|
+
async avaliarArgumentosEscreva(argumentos) {
|
|
90
|
+
let formatoTexto = '';
|
|
91
|
+
for (const argumento of argumentos) {
|
|
92
|
+
const resultadoAvaliacao = await this.avaliar(argumento);
|
|
93
|
+
let valor = (resultadoAvaliacao === null || resultadoAvaliacao === void 0 ? void 0 : resultadoAvaliacao.hasOwnProperty('valor')) ? resultadoAvaliacao.valor : resultadoAvaliacao;
|
|
94
|
+
formatoTexto += `${this.paraTexto(valor)},`;
|
|
95
|
+
}
|
|
96
|
+
formatoTexto = formatoTexto.slice(0, -1);
|
|
97
|
+
if (argumentos.length > 1) {
|
|
98
|
+
formatoTexto = `(${formatoTexto})`;
|
|
99
|
+
}
|
|
100
|
+
return formatoTexto;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.InterpretadorPotigol = InterpretadorPotigol;
|
|
104
|
+
//# sourceMappingURL=interpretador-potigol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpretador-potigol.js","sourceRoot":"","sources":["../../fontes/interpretador/interpretador-potigol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../fontes/lexador/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC"}
|
package/lexador/index.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./lexador-potigol"), exports);
|
|
18
|
+
__exportStar(require("./palavras-reservadas"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../fontes/lexador/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,wDAAsC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { RetornoLexador } from '@designliquido/delegua/interfaces/retornos';
|
|
2
|
+
import { LexadorBaseLinhaUnica } from '@designliquido/delegua/lexador/lexador-base-linha-unica';
|
|
3
|
+
import { SimboloInterface } from '@designliquido/delegua/interfaces';
|
|
4
|
+
/**
|
|
5
|
+
* Lexador para o dialeto Potigol.
|
|
6
|
+
* Este dialeto é sensível a tamanho de caixa. `Inteiro` é aceito. `inteiro` não.
|
|
7
|
+
*/
|
|
8
|
+
export declare class LexadorPotigol extends LexadorBaseLinhaUnica {
|
|
9
|
+
protected logicaComumCaracteres(delimitador: string): string;
|
|
10
|
+
analisarCaracter(): void;
|
|
11
|
+
analisarTexto(): void;
|
|
12
|
+
analisarNumero(): void;
|
|
13
|
+
avancarParaProximaLinha(): void;
|
|
14
|
+
identificarPalavraChave(): void;
|
|
15
|
+
analisarToken(): void;
|
|
16
|
+
mapear(codigo: string[], hashArquivo: number): RetornoLexador<SimboloInterface>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=lexador-potigol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lexador-potigol.d.ts","sourceRoot":"","sources":["../../fontes/lexador/lexador-potigol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yDAAyD,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE;;;GAGG;AACH,qBAAa,cAAe,SAAQ,qBAAqB;IACrD,SAAS,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM;IAkBnD,gBAAgB;IAKhB,aAAa,IAAI,IAAI;IAKrB,cAAc,IAAI,IAAI;IAoBtB,uBAAuB,IAAI,IAAI;IAM/B,uBAAuB,IAAI,IAAI;IAW/B,aAAa,IAAI,IAAI;IAgOrB,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,gBAAgB,CAAC;CAoBlF"}
|