@designliquido/delegua 0.45.9 → 0.46.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 -0
- package/avaliador-sintatico/avaliador-sintatico-base.d.ts +1 -1
- package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico-base.js +2 -8
- package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
- package/avaliador-sintatico/avaliador-sintatico.js +33 -28
- package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/avaliador-sintatico/comum.d.ts.map +1 -1
- package/avaliador-sintatico/comum.js +1 -1
- package/avaliador-sintatico/comum.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +27 -28
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts +0 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +4 -87
- package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
- package/bibliotecas/biblioteca-global.d.ts.map +1 -1
- package/bibliotecas/biblioteca-global.js +2 -1
- package/bibliotecas/biblioteca-global.js.map +1 -1
- package/bin/package.json +1 -1
- package/depuracao/cyrb53.d.ts +4 -4
- package/depuracao/cyrb53.d.ts.map +1 -1
- package/depuracao/cyrb53.js +4 -4
- package/informacao-variavel-ou-constante.d.ts +2 -1
- package/informacao-variavel-ou-constante.d.ts.map +1 -1
- package/informacao-variavel-ou-constante.js +3 -2
- package/informacao-variavel-ou-constante.js.map +1 -1
- package/lexador/lexador.d.ts.map +1 -1
- package/lexador/lexador.js +1 -0
- package/lexador/lexador.js.map +1 -1
- package/lexador/palavras-reservadas.d.ts +1 -0
- package/lexador/palavras-reservadas.d.ts.map +1 -1
- package/lexador/palavras-reservadas.js +1 -0
- package/lexador/palavras-reservadas.js.map +1 -1
- package/package.json +1 -1
- package/tradutores/tradutor-reverso-javascript.d.ts.map +1 -1
- package/tradutores/tradutor-reverso-javascript.js.map +1 -1
- package/umd/delegua.js +78 -159
package/README.md
CHANGED
|
@@ -52,7 +52,9 @@ aplicações por linha de comando. Em outras palavras, todo programa escrito em
|
|
|
52
52
|
|
|
53
53
|
- Atualmente, há 300 milhões de falantes de português no mundo, seja como primeira ou segunda língua;
|
|
54
54
|
- A língua materna é substancialmente mais eficiente para expressão em passos lógicos do que uma segunda língua, com conjunto de evidências farto e [largamente documentado no meio acadêmico](https://www.researchgate.net/publication/382758173_The_Influence_of_Mother_Tongue_Thinking_on_Second_Language_Writing);
|
|
55
|
+
- [A Importância da Linguagem Nativa para a Aprendizagem Significativa em Lógica de Programação](https://sol.sbc.org.br/index.php/sbie/article/view/12936)
|
|
55
56
|
- Como carreira, a programação é uma das formas mais eficazes de geração de emprego e renda com a aplicação de poucos recursos, especialmente quando em código aberto e acessível a todos.
|
|
57
|
+
- [Rendimentos 200% acima da média: por que o setor de tecnologia é o que mais paga no Brasil?](https://exame.com/carreira/com-rendimentos-200-acima-da-media-brasileira-estudo-revela-qual-o-setor-mais-bem-pago-do-mercado/)
|
|
56
58
|
|
|
57
59
|
### Cenário brasileiro
|
|
58
60
|
|
|
@@ -61,6 +63,7 @@ aplicações por linha de comando. Em outras palavras, todo programa escrito em
|
|
|
61
63
|
- [Cabo Verde, na 89a posição, nível "baixo"](https://www.ef.com/wwen/epi/regions/africa/cabo-verde/).
|
|
62
64
|
- [Menos de 1 milhão de pessoas trabalha com programação](https://www.jetbrains.com/pt-br/lp/devecosystem-data-playground/);
|
|
63
65
|
- [Taxas de evasão em universidades para cursos de Ciência da Computação são alarmantes](https://carreiraemti.com.br/blog/mapa-do-ensino-superior-revela-385-de-evasao-em-cursos-de-ti/).
|
|
66
|
+
- [Reprovações e trancamentos nas disciplinas de introdução à programação da Universidade de São Paulo: um estudo preliminar (2015)](https://repositorio.usp.br/item/002855292)
|
|
64
67
|
|
|
65
68
|
|
|
66
69
|
## Vantagens de programar em português
|
|
@@ -21,7 +21,6 @@ export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintati
|
|
|
21
21
|
protected verificarTipoProximoSimbolo(tipo: string): boolean;
|
|
22
22
|
protected estaNoFinal(): boolean;
|
|
23
23
|
protected avancarEDevolverAnterior(): SimboloInterface;
|
|
24
|
-
protected regredirEDevolverAtual(): SimboloInterface;
|
|
25
24
|
protected verificarSeSimboloAtualEIgualA(...argumentos: string[]): boolean;
|
|
26
25
|
/**
|
|
27
26
|
* Os métodos a seguir devem ser implementados nos seus respectivos
|
|
@@ -84,6 +83,7 @@ export declare abstract class AvaliadorSintaticoBase implements AvaliadorSintati
|
|
|
84
83
|
* avaliador sintático deve implementar o seu método.
|
|
85
84
|
* @param retornoLexador O retorno do Lexador.
|
|
86
85
|
* @param hashArquivo O hash do arquivo, gerado pela função `cyrb53`.
|
|
86
|
+
* @see cyrb53
|
|
87
87
|
*/
|
|
88
88
|
abstract analisar(retornoLexador: RetornoLexador<SimboloInterface>, hashArquivo: number): RetornoAvaliadorSintatico<Declaracao>;
|
|
89
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-base.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAkB,MAAM,eAAe,CAAC;AACnG,OAAO,EACH,MAAM,EACN,QAAQ,EACR,UAAU,EACV,QAAQ,
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-base.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,13 +55,6 @@ class AvaliadorSintaticoBase {
|
|
|
55
55
|
this.atual += 1;
|
|
56
56
|
return this.simbolos[this.atual - 1];
|
|
57
57
|
}
|
|
58
|
-
// TODO: Verificar possibilidade de remoção.
|
|
59
|
-
// Regressão de símbolo é uma roubada por N razões.
|
|
60
|
-
regredirEDevolverAtual() {
|
|
61
|
-
if (this.atual > 0)
|
|
62
|
-
this.atual -= 1;
|
|
63
|
-
return this.simbolos[this.atual];
|
|
64
|
-
}
|
|
65
58
|
verificarSeSimboloAtualEIgualA(...argumentos) {
|
|
66
59
|
for (let i = 0; i < argumentos.length; i++) {
|
|
67
60
|
const tipoAtual = argumentos[i];
|
|
@@ -168,7 +161,8 @@ class AvaliadorSintaticoBase {
|
|
|
168
161
|
return this.atribuir();
|
|
169
162
|
}
|
|
170
163
|
funcao(tipo) {
|
|
171
|
-
|
|
164
|
+
// Avançar `função` ou `funcao`.
|
|
165
|
+
this.avancarEDevolverAnterior();
|
|
172
166
|
const nomeFuncao = this.consumir(comum_1.default.IDENTIFICADOR, `Esperado nome ${tipo}.`);
|
|
173
167
|
return new declaracoes_1.FuncaoDeclaracao(nomeFuncao, this.corpoDaFuncao(tipo));
|
|
174
168
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmG;AACnG,
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico-base.js","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"AAEA,OAAO,EAGH,yBAAyB,EAOzB,OAAO,EAEP,SAAS,EACT,SAAS,EAET,UAAU,EAEV,eAAe,EAEf,IAAI,EASP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAElG,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EAAiB,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EACH,KAAK,EACL,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,SAAS,EACT,MAAM,EACN,KAAK,EACL,gBAAgB,EAChB,QAAQ,EACR,IAAI,EACJ,QAAQ,EAER,OAAO,EACP,EAAE,EACF,MAAM,EACN,SAAS,EACT,KAAK,EACL,GAAG,EACN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,yBAAyB,EAAE,MAAM,oDAAoD,CAAC;AAC/F,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAExE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAGpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAepF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBACT,SAAQ,sBACR,YAAW,2BAA2B,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAEpE,gBAAgB,EAAE,SAAS,EAAE,CAAC;IAC9B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAChC,sBAAsB,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAA;KAAE,CAAC;IAC3D,YAAY,EAAE,YAAY,CAAC;IAC3B,0BAA0B,EAAE;QAAE,CAAC,cAAc,EAAE,MAAM,GAAG;YAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IACzF,oBAAoB,EAAE;QAAE,CAAC,kBAAkB,EAAE,MAAM,GAAG;YAAC,CAAC,aAAa,EAAE,MAAM,GAAG,6BAA6B,CAAA;SAAE,CAAA;KAAC,CAAC;IAEjH,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEzB,WAAW,UAAQ;IAmB/B,SAAS,CAAC,2BAA2B,IAAI,MAAM;IA0C/C,SAAS,CAAC,oBAAoB,IAAI,SAAS;IA4C3C,SAAS,CAAC,mBAAmB,CAAC,oBAAoB,EAAE,gBAAgB,GAAG,UAAU;IAiCjF,SAAS,CAAC,cAAc,IAAI,KAAK;IAaxB,QAAQ,IAAI,SAAS;IAgUrB,MAAM,IAAI,SAAS;IAmC5B;;;;;;OAMG;IACH,SAAS,CAAC,gDAAgD,CACtD,wBAAwB,EAAE,yBAAyB,GACpD,SAAS;IAmGZ,SAAS,CAAC,gCAAgC,CACtC,yBAAyB,EAAE,6BAA6B,EAAE,EAC1D,oBAAoB,EAAE,SAAS,EAAE,GAClC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"avaliador-sintatico.d.ts","sourceRoot":"","sources":["../../fontes/avaliador-sintatico/avaliador-sintatico.ts"],"names":[],"mappings":"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"}
|
|
@@ -397,12 +397,18 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
397
397
|
const possiveisErros = [];
|
|
398
398
|
for (const [indice, argumentoEntidadeChamada] of argumentosEntidadeChamada.entries()) {
|
|
399
399
|
const argumentoUtilizado = argumentosUtilizados[indice];
|
|
400
|
+
if (!argumentoUtilizado) {
|
|
401
|
+
if (argumentoEntidadeChamada.obrigatorio) {
|
|
402
|
+
possiveisErros.push(`Argumento ${argumentoEntidadeChamada.nome} é obrigatório, mas não foi fornecido.`);
|
|
403
|
+
}
|
|
404
|
+
continue;
|
|
405
|
+
}
|
|
400
406
|
if (argumentoUtilizado.tipo === null || argumentoUtilizado.tipo === undefined) {
|
|
401
407
|
continue;
|
|
402
408
|
}
|
|
403
409
|
const argumentoEntidadeChamadaQualquer = argumentoEntidadeChamada.tipo.startsWith('qualquer');
|
|
404
410
|
const argumentoUtilizadoQualquer = argumentoUtilizado.tipo.startsWith('qualquer');
|
|
405
|
-
// Este caso é tarefa do
|
|
411
|
+
// Este caso é tarefa do analisador semântico apontar.
|
|
406
412
|
if (argumentoEntidadeChamadaQualquer || argumentoUtilizadoQualquer) {
|
|
407
413
|
continue;
|
|
408
414
|
}
|
|
@@ -435,7 +441,7 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
435
441
|
if (tipoPrimitiva === undefined) {
|
|
436
442
|
// Provavelmente uma chamada a alguma função da biblioteca global.
|
|
437
443
|
const informacoesPossivelFuncaoBibliotecaGlobal = this.pilhaEscopos.obterBibliotecaGlobal(entidadeChamadaResolvidaVariavel.simbolo.lexema);
|
|
438
|
-
if (informacoesPossivelFuncaoBibliotecaGlobal
|
|
444
|
+
if (informacoesPossivelFuncaoBibliotecaGlobal) {
|
|
439
445
|
const erros = this.validarArgumentosEntidadeChamada(informacoesPossivelFuncaoBibliotecaGlobal.argumentos, argumentos);
|
|
440
446
|
if (erros.length > 0) {
|
|
441
447
|
throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(entidadeChamadaResolvidaVariavel.simbolo, `Erros ao resolver argumentos de chamada a ${entidadeChamadaResolvidaVariavel.simbolo.lexema}: \n${erros.reduce((mensagem, erro) => (mensagem += `${erro}\n`), '')}`);
|
|
@@ -1283,8 +1289,9 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1283
1289
|
// para ela. Vai ser atualizado após avaliação do corpo da função.
|
|
1284
1290
|
this.pilhaEscopos.definirInformacoesVariavel(simbolo.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simbolo.lexema, 'qualquer'));
|
|
1285
1291
|
const corpoDaFuncao = this.corpoDaFuncao(tipo);
|
|
1286
|
-
|
|
1287
|
-
|
|
1292
|
+
const tipoDaFuncao = `função<${corpoDaFuncao.tipo}>`;
|
|
1293
|
+
this.pilhaEscopos.definirInformacoesVariavel(simbolo.lexema, new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante(simbolo.lexema, tipoDaFuncao));
|
|
1294
|
+
const funcaoDeclaracao = new declaracoes_1.FuncaoDeclaracao(simbolo, corpoDaFuncao, tipoDaFuncao, decoradores);
|
|
1288
1295
|
this.pilhaEscopos.registrarReferenciaFuncao(simbolo.lexema, funcaoDeclaracao);
|
|
1289
1296
|
return funcaoDeclaracao;
|
|
1290
1297
|
}
|
|
@@ -1534,85 +1541,83 @@ class AvaliadorSintatico extends avaliador_sintatico_base_1.AvaliadorSintaticoBa
|
|
|
1534
1541
|
this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
|
|
1535
1542
|
this.pilhaEscopos.empilhar(new informacao_escopo_1.InformacaoEscopo());
|
|
1536
1543
|
// Funções nativas de Delégua
|
|
1537
|
-
this.pilhaEscopos.definirInformacoesVariavel('aleatorio', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('aleatorio', '
|
|
1538
|
-
|
|
1539
|
-
]));
|
|
1540
|
-
this.pilhaEscopos.definirInformacoesVariavel('aleatorioEntre', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('aleatorioEntre', 'inteiro', [
|
|
1544
|
+
this.pilhaEscopos.definirInformacoesVariavel('aleatorio', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('aleatorio', 'número'));
|
|
1545
|
+
this.pilhaEscopos.definirInformacoesVariavel('aleatorioEntre', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('aleatorioEntre', 'número', true, [
|
|
1541
1546
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('minimo', 'número'),
|
|
1542
1547
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('maximo', 'número'),
|
|
1543
1548
|
]));
|
|
1544
|
-
this.pilhaEscopos.definirInformacoesVariavel('algum', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('algum', 'lógico', [
|
|
1549
|
+
this.pilhaEscopos.definirInformacoesVariavel('algum', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('algum', 'lógico', true, [
|
|
1545
1550
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1546
1551
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoPesquisa', 'função'),
|
|
1547
1552
|
]));
|
|
1548
|
-
this.pilhaEscopos.definirInformacoesVariavel('encontrar', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrar', 'qualquer', [
|
|
1553
|
+
this.pilhaEscopos.definirInformacoesVariavel('encontrar', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrar', 'qualquer', true, [
|
|
1549
1554
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1550
1555
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoPesquisa', 'função'),
|
|
1551
1556
|
]));
|
|
1552
|
-
this.pilhaEscopos.definirInformacoesVariavel('encontrarIndice', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrarIndice', 'inteiro', [
|
|
1557
|
+
this.pilhaEscopos.definirInformacoesVariavel('encontrarIndice', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrarIndice', 'inteiro', true, [
|
|
1553
1558
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1554
1559
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoPesquisa', 'função'),
|
|
1555
1560
|
]));
|
|
1556
|
-
this.pilhaEscopos.definirInformacoesVariavel('encontrarUltimo', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrarUltimo', 'inteiro', [
|
|
1561
|
+
this.pilhaEscopos.definirInformacoesVariavel('encontrarUltimo', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrarUltimo', 'inteiro', true, [
|
|
1557
1562
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1558
1563
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoPesquisa', 'função'),
|
|
1559
1564
|
]));
|
|
1560
|
-
this.pilhaEscopos.definirInformacoesVariavel('encontrarUltimoIndice', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrarUltimoIndice', 'inteiro', [
|
|
1565
|
+
this.pilhaEscopos.definirInformacoesVariavel('encontrarUltimoIndice', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('encontrarUltimoIndice', 'inteiro', true, [
|
|
1561
1566
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1562
1567
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoPesquisa', 'função'),
|
|
1563
1568
|
]));
|
|
1564
|
-
this.pilhaEscopos.definirInformacoesVariavel('filtrarPor', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('filtrarPor', 'qualquer[]', [
|
|
1569
|
+
this.pilhaEscopos.definirInformacoesVariavel('filtrarPor', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('filtrarPor', 'qualquer[]', true, [
|
|
1565
1570
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1566
1571
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoFiltragem', 'função'),
|
|
1567
1572
|
]));
|
|
1568
|
-
this.pilhaEscopos.definirInformacoesVariavel('incluido', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('incluido', 'lógico', [
|
|
1573
|
+
this.pilhaEscopos.definirInformacoesVariavel('incluido', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('incluido', 'lógico', true, [
|
|
1569
1574
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1570
1575
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valor', 'qualquer'),
|
|
1571
1576
|
]));
|
|
1572
|
-
this.pilhaEscopos.definirInformacoesVariavel('inteiro', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('inteiro', 'inteiro', [
|
|
1577
|
+
this.pilhaEscopos.definirInformacoesVariavel('inteiro', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('inteiro', 'inteiro', true, [
|
|
1573
1578
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valor', 'qualquer'),
|
|
1574
1579
|
]));
|
|
1575
|
-
this.pilhaEscopos.definirInformacoesVariavel('mapear', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('mapear', 'qualquer[]', [
|
|
1580
|
+
this.pilhaEscopos.definirInformacoesVariavel('mapear', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('mapear', 'qualquer[]', true, [
|
|
1576
1581
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1577
1582
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoMapeamento', 'função'),
|
|
1578
1583
|
]));
|
|
1579
|
-
this.pilhaEscopos.definirInformacoesVariavel('numero', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('número', 'número', [
|
|
1584
|
+
this.pilhaEscopos.definirInformacoesVariavel('numero', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('número', 'número', true, [
|
|
1580
1585
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valorParaConverter', 'qualquer'),
|
|
1581
1586
|
]));
|
|
1582
|
-
this.pilhaEscopos.definirInformacoesVariavel('número', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('número', 'número', [
|
|
1587
|
+
this.pilhaEscopos.definirInformacoesVariavel('número', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('número', 'número', true, [
|
|
1583
1588
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valorParaConverter', 'qualquer'),
|
|
1584
1589
|
]));
|
|
1585
|
-
this.pilhaEscopos.definirInformacoesVariavel('ordenar', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('ordenar', 'qualquer[]', [
|
|
1590
|
+
this.pilhaEscopos.definirInformacoesVariavel('ordenar', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('ordenar', 'qualquer[]', true, [
|
|
1586
1591
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1587
1592
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoOrdenacao', 'função'),
|
|
1588
1593
|
]));
|
|
1589
|
-
this.pilhaEscopos.definirInformacoesVariavel('paraCada', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('paraCada', 'qualquer[]', [
|
|
1594
|
+
this.pilhaEscopos.definirInformacoesVariavel('paraCada', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('paraCada', 'qualquer[]', true, [
|
|
1590
1595
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1591
1596
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoFiltragem', 'função'),
|
|
1592
1597
|
]));
|
|
1593
|
-
this.pilhaEscopos.definirInformacoesVariavel('primeiroEmCondicao', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('primeiroEmCondicao', 'qualquer', [
|
|
1598
|
+
this.pilhaEscopos.definirInformacoesVariavel('primeiroEmCondicao', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('primeiroEmCondicao', 'qualquer', true, [
|
|
1594
1599
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1595
1600
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoFiltragem', 'função'),
|
|
1596
1601
|
]));
|
|
1597
|
-
this.pilhaEscopos.definirInformacoesVariavel('real', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('real', 'número', [
|
|
1602
|
+
this.pilhaEscopos.definirInformacoesVariavel('real', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('real', 'número', true, [
|
|
1598
1603
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valorParaConverter', 'qualquer'),
|
|
1599
1604
|
]));
|
|
1600
|
-
this.pilhaEscopos.definirInformacoesVariavel('reduzir', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('reduzir', 'qualquer', [
|
|
1605
|
+
this.pilhaEscopos.definirInformacoesVariavel('reduzir', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('reduzir', 'qualquer', true, [
|
|
1601
1606
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1602
1607
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoReducao', 'função'),
|
|
1603
1608
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valorInicial', 'qualquer'),
|
|
1604
1609
|
]));
|
|
1605
|
-
this.pilhaEscopos.definirInformacoesVariavel('tamanho', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('tamanho', 'inteiro', [
|
|
1610
|
+
this.pilhaEscopos.definirInformacoesVariavel('tamanho', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('tamanho', 'inteiro', true, [
|
|
1606
1611
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('objeto', 'qualquer'),
|
|
1607
1612
|
]));
|
|
1608
|
-
this.pilhaEscopos.definirInformacoesVariavel('texto', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('texto', 'texto', [
|
|
1613
|
+
this.pilhaEscopos.definirInformacoesVariavel('texto', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('texto', 'texto', true, [
|
|
1609
1614
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('valorParaConverter', 'qualquer'),
|
|
1610
1615
|
]));
|
|
1611
|
-
this.pilhaEscopos.definirInformacoesVariavel('todosEmCondicao', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('todosEmCondicao', 'lógico', [
|
|
1616
|
+
this.pilhaEscopos.definirInformacoesVariavel('todosEmCondicao', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('todosEmCondicao', 'lógico', true, [
|
|
1612
1617
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1613
1618
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('funcaoCondicional', 'função'),
|
|
1614
1619
|
]));
|
|
1615
|
-
this.pilhaEscopos.definirInformacoesVariavel('tupla', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('tupla', 'tupla', [
|
|
1620
|
+
this.pilhaEscopos.definirInformacoesVariavel('tupla', new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('tupla', 'tupla', true, [
|
|
1616
1621
|
new informacao_variavel_ou_constante_1.InformacaoVariavelOuConstante('vetor', 'qualquer[]'),
|
|
1617
1622
|
]));
|
|
1618
1623
|
// TODO: Escrever algum tipo de validação aqui.
|