@designliquido/delegua 1.28.1 → 1.28.3
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/analisador-semantico/analisador-semantico.d.ts +1 -0
- package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
- package/analisador-semantico/analisador-semantico.js +28 -0
- package/analisador-semantico/analisador-semantico.js.map +1 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +3 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +31 -0
- package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +2 -0
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +44 -1
- package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
- package/bin/package.json +1 -1
- package/declaracoes/importar.d.ts +4 -0
- package/declaracoes/importar.d.ts.map +1 -1
- package/declaracoes/importar.js +1 -0
- package/declaracoes/importar.js.map +1 -1
- package/interpretador/comum.d.ts.map +1 -1
- package/interpretador/comum.js +49 -41
- package/interpretador/comum.js.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +15 -14
- package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js +54 -12
- package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
- package/interpretador/estruturas/funcao-padrao.d.ts +2 -0
- package/interpretador/estruturas/funcao-padrao.d.ts.map +1 -1
- package/interpretador/estruturas/funcao-padrao.js +1 -1
- package/interpretador/estruturas/funcao-padrao.js.map +1 -1
- package/interpretador/interpretador-base.d.ts.map +1 -1
- package/interpretador/interpretador-base.js +2 -1
- package/interpretador/interpretador-base.js.map +1 -1
- package/interpretador/interpretador.js +1 -1
- package/interpretador/interpretador.js.map +1 -1
- package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
- package/lexador/dialetos/lexador-pitugues.js +11 -0
- package/lexador/dialetos/lexador-pitugues.js.map +1 -1
- package/package.json +1 -1
- package/umd/delegua.js +137 -45
package/umd/delegua.js
CHANGED
|
@@ -548,7 +548,35 @@ class AnalisadorSemantico extends analisador_semantico_base_1.AnalisadorSemantic
|
|
|
548
548
|
}
|
|
549
549
|
}
|
|
550
550
|
}
|
|
551
|
+
declararVariaveisImportadas(declaracao) {
|
|
552
|
+
if (declaracao.simboloTudo) {
|
|
553
|
+
this.gerenciadorEscopos.declarar(declaracao.simboloTudo.lexema, {
|
|
554
|
+
nome: declaracao.simboloTudo.lexema,
|
|
555
|
+
tipo: 'módulo',
|
|
556
|
+
imutavel: true,
|
|
557
|
+
valor: undefined,
|
|
558
|
+
inicializada: true,
|
|
559
|
+
usada: false,
|
|
560
|
+
hashArquivo: declaracao.simboloTudo.hashArquivo,
|
|
561
|
+
linha: declaracao.simboloTudo.linha,
|
|
562
|
+
});
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
for (const simboloImportado of declaracao.elementosImportacao || []) {
|
|
566
|
+
this.gerenciadorEscopos.declarar(simboloImportado.lexema, {
|
|
567
|
+
nome: simboloImportado.lexema,
|
|
568
|
+
tipo: 'qualquer',
|
|
569
|
+
imutavel: true,
|
|
570
|
+
valor: undefined,
|
|
571
|
+
inicializada: true,
|
|
572
|
+
usada: false,
|
|
573
|
+
hashArquivo: simboloImportado.hashArquivo,
|
|
574
|
+
linha: simboloImportado.linha,
|
|
575
|
+
});
|
|
576
|
+
}
|
|
577
|
+
}
|
|
551
578
|
async visitarDeclaracaoImportar(declaracao) {
|
|
579
|
+
this.declararVariaveisImportadas(declaracao);
|
|
552
580
|
this.registrarFuncoesImportadasDeTestes(declaracao);
|
|
553
581
|
return Promise.resolve();
|
|
554
582
|
}
|
|
@@ -6610,6 +6638,7 @@ class AvaliadorSintaticoPitugues extends avaliador_sintatico_base_1.AvaliadorSin
|
|
|
6610
6638
|
this.blocos = 0;
|
|
6611
6639
|
this.performance = performance;
|
|
6612
6640
|
this.intuirTipoQualquerParaIdentificadores = false;
|
|
6641
|
+
this.existeImportacaoCoringa = false;
|
|
6613
6642
|
this.escopos = [];
|
|
6614
6643
|
this.pilhaDecoradores = [];
|
|
6615
6644
|
this.pilhaEscopos = new pilha_escopos_1.PilhaEscopos();
|
|
@@ -6652,6 +6681,12 @@ class AvaliadorSintaticoPitugues extends avaliador_sintatico_base_1.AvaliadorSin
|
|
|
6652
6681
|
return this.primitivasConhecidas[primitiva][entidadeChamada.simbolo.lexema].tipo;
|
|
6653
6682
|
}
|
|
6654
6683
|
}
|
|
6684
|
+
// 'módulo' é um tipo opaco (usado por integrações externas, como o Liquido,
|
|
6685
|
+
// para objetos cujo formato não é conhecido em tempo de análise estática).
|
|
6686
|
+
// Não há como validar a existência do membro, então assumimos 'qualquer'.
|
|
6687
|
+
if (entidadeChamada.objeto.tipo === 'módulo') {
|
|
6688
|
+
return 'qualquer';
|
|
6689
|
+
}
|
|
6655
6690
|
throw new erro_avaliador_sintatico_1.ErroAvaliadorSintatico(entidadeChamada.simbolo, `Primitiva '${entidadeChamada.simbolo.lexema}' não existe.`);
|
|
6656
6691
|
}
|
|
6657
6692
|
logicaComumInferenciaTiposVariaveisEConstantes(inicializador, tipoPrevio) {
|
|
@@ -7207,7 +7242,12 @@ class AvaliadorSintaticoPitugues extends avaliador_sintatico_base_1.AvaliadorSin
|
|
|
7207
7242
|
.obterTipoVariavelPorNome(simboloIdentificador.lexema);
|
|
7208
7243
|
}
|
|
7209
7244
|
catch (erro) {
|
|
7210
|
-
|
|
7245
|
+
if (this.existeImportacaoCoringa) {
|
|
7246
|
+
tipoOperando = 'qualquer';
|
|
7247
|
+
}
|
|
7248
|
+
else {
|
|
7249
|
+
throw this.erro(simboloIdentificador, erro.message);
|
|
7250
|
+
}
|
|
7211
7251
|
}
|
|
7212
7252
|
}
|
|
7213
7253
|
return new construtos_1.Variavel(this.hashArquivo, simboloIdentificador, tipoOperando);
|
|
@@ -7835,21 +7875,52 @@ class AvaliadorSintaticoPitugues extends avaliador_sintatico_base_1.AvaliadorSin
|
|
|
7835
7875
|
else {
|
|
7836
7876
|
declaracao.simboloTudo = nomeModulo;
|
|
7837
7877
|
}
|
|
7878
|
+
await this.registrarAliasImportacao(declaracao);
|
|
7838
7879
|
return Promise.resolve(declaracao);
|
|
7839
7880
|
}
|
|
7840
7881
|
async declaracaoImportarDe() {
|
|
7841
7882
|
const nomeModulo = this.consumir(pitugues_2.default.IDENTIFICADOR, "Esperado nome do módulo após 'de'.");
|
|
7842
7883
|
const caminho = new construtos_1.Literal(nomeModulo.hashArquivo, Number(nomeModulo.linha), nomeModulo.lexema);
|
|
7843
7884
|
this.consumir(pitugues_2.default.IMPORTAR, "Esperado 'importar' após nome do módulo em declaração 'de ... importar'.");
|
|
7885
|
+
if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.MULTIPLICACAO)) {
|
|
7886
|
+
const declaracao = new declaracoes_1.Importar(caminho);
|
|
7887
|
+
declaracao.simboloTudo = this.simboloAnterior();
|
|
7888
|
+
this.existeImportacaoCoringa = true;
|
|
7889
|
+
return Promise.resolve(declaracao);
|
|
7890
|
+
}
|
|
7844
7891
|
const elementosImportacao = [];
|
|
7892
|
+
const elementosImportacaoComo = [];
|
|
7845
7893
|
do {
|
|
7846
7894
|
const elemento = this.consumir(pitugues_2.default.IDENTIFICADOR, 'Esperado identificador de elemento a ser importado.');
|
|
7847
7895
|
elementosImportacao.push(elemento);
|
|
7896
|
+
if (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.COMO)) {
|
|
7897
|
+
const alias = this.consumir(pitugues_2.default.IDENTIFICADOR, "Esperado identificador após 'como' em importação seletiva.");
|
|
7898
|
+
elementosImportacaoComo.push({ elemento, alias });
|
|
7899
|
+
}
|
|
7848
7900
|
} while (this.verificarSeSimboloAtualEIgualA(pitugues_2.default.VIRGULA));
|
|
7849
7901
|
const declaracao = new declaracoes_1.Importar(caminho);
|
|
7850
7902
|
declaracao.elementosImportacao = elementosImportacao;
|
|
7903
|
+
declaracao.elementosImportacaoComo = elementosImportacaoComo;
|
|
7904
|
+
await this.registrarAliasImportacao(declaracao);
|
|
7851
7905
|
return Promise.resolve(declaracao);
|
|
7852
7906
|
}
|
|
7907
|
+
async registrarAliasImportacao(declaracao) {
|
|
7908
|
+
if (declaracao.simboloTudo) {
|
|
7909
|
+
this.pilhaEscopos.definirInformacoesVariavel(declaracao.simboloTudo.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(declaracao.simboloTudo.lexema, 'qualquer'));
|
|
7910
|
+
}
|
|
7911
|
+
if (declaracao.elementosImportacao) {
|
|
7912
|
+
for (const elemento of declaracao.elementosImportacao) {
|
|
7913
|
+
this.pilhaEscopos.definirInformacoesVariavel(elemento.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(elemento.lexema, 'qualquer'));
|
|
7914
|
+
}
|
|
7915
|
+
for (const { alias } of declaracao.elementosImportacaoComo) {
|
|
7916
|
+
this.pilhaEscopos.definirInformacoesVariavel(alias.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(alias.lexema, 'qualquer'));
|
|
7917
|
+
}
|
|
7918
|
+
}
|
|
7919
|
+
else {
|
|
7920
|
+
const alias = this.avancarEDevolverAnterior();
|
|
7921
|
+
this.pilhaEscopos.definirInformacoesVariavel(alias.lexema, new informacao_elemento_sintatico_1.InformacaoElementoSintatico(alias.lexema, 'qualquer'));
|
|
7922
|
+
}
|
|
7923
|
+
}
|
|
7853
7924
|
async declaracaoTente() {
|
|
7854
7925
|
const simboloTente = this.simboloAnterior();
|
|
7855
7926
|
this.consumir(pitugues_2.default.DOIS_PONTOS, "Esperado ':' após a declaração 'tente'.");
|
|
@@ -16651,6 +16722,7 @@ class Importar extends declaracao_1.Declaracao {
|
|
|
16651
16722
|
super(caminho.linha, caminho.hashArquivo);
|
|
16652
16723
|
this.simboloTudo = null;
|
|
16653
16724
|
this.elementosImportacao = [];
|
|
16725
|
+
this.elementosImportacaoComo = [];
|
|
16654
16726
|
this.caminho = caminho;
|
|
16655
16727
|
}
|
|
16656
16728
|
async aceitar(visitante) {
|
|
@@ -20316,67 +20388,75 @@ async function visitarExpressaoAcessoIntervaloVariavel(interpretador, expressao)
|
|
|
20316
20388
|
return resultadoFatiado;
|
|
20317
20389
|
}
|
|
20318
20390
|
function carregarBibliotecasGlobais(pilhaEscoposExecucao) {
|
|
20319
|
-
|
|
20320
|
-
|
|
20321
|
-
|
|
20322
|
-
|
|
20323
|
-
|
|
20324
|
-
|
|
20325
|
-
|
|
20326
|
-
|
|
20327
|
-
|
|
20328
|
-
|
|
20329
|
-
|
|
20330
|
-
|
|
20331
|
-
|
|
20332
|
-
|
|
20333
|
-
|
|
20334
|
-
|
|
20335
|
-
|
|
20391
|
+
// Registra a variável e, para funções padrão, guarda o nome com que foram
|
|
20392
|
+
// registradas, usado para representá-las como texto (ex.: `escreva(real)`).
|
|
20393
|
+
const definir = (nome, valor) => {
|
|
20394
|
+
if (valor instanceof funcao_padrao_1.FuncaoPadrao && !valor.nome) {
|
|
20395
|
+
valor.nome = nome;
|
|
20396
|
+
}
|
|
20397
|
+
pilhaEscoposExecucao.definirVariavel(nome, valor);
|
|
20398
|
+
};
|
|
20399
|
+
definir('aleatorio', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.aleatorio));
|
|
20400
|
+
definir('aleatório', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.aleatorio));
|
|
20401
|
+
definir('aleatorioEntre', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.aleatorioEntre));
|
|
20402
|
+
definir('aleatórioEntre', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.aleatorioEntre));
|
|
20403
|
+
definir('algum', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.algum));
|
|
20404
|
+
definir('arredondar', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.arredondar));
|
|
20405
|
+
definir('clonar', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.clonar));
|
|
20406
|
+
definir('encontrar', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrar));
|
|
20407
|
+
definir('encontrarIndice', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrarIndice));
|
|
20408
|
+
definir('encontrarÍndice', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrarIndice));
|
|
20409
|
+
definir('encontrarUltimo', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrarUltimo));
|
|
20410
|
+
definir('encontrarÚltimo', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrarUltimo));
|
|
20411
|
+
definir('encontrarUltimoIndice', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrarUltimoIndice));
|
|
20412
|
+
definir('encontrarÚltimoÍndice', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.encontrarUltimoIndice));
|
|
20413
|
+
definir('filtrarPor', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.filtrarPor));
|
|
20414
|
+
definir('incluido', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.incluido));
|
|
20415
|
+
definir('incluído', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.incluido));
|
|
20336
20416
|
const funcaoInteiro = new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.inteiro);
|
|
20337
20417
|
funcaoInteiro.MAXIMO = 2147483647;
|
|
20338
20418
|
funcaoInteiro.MÁXIMO = 2147483647;
|
|
20339
20419
|
funcaoInteiro.MINIMO = -2147483648;
|
|
20340
20420
|
funcaoInteiro.MÍNIMO = -2147483648;
|
|
20341
|
-
|
|
20421
|
+
definir('inteiro', funcaoInteiro);
|
|
20342
20422
|
const funcaoLongo = new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.longo);
|
|
20343
20423
|
funcaoLongo.MAXIMO = globalThis.BigInt('9223372036854775807');
|
|
20344
20424
|
funcaoLongo.MÁXIMO = globalThis.BigInt('9223372036854775807');
|
|
20345
20425
|
funcaoLongo.MINIMO = globalThis.BigInt('-9223372036854775808');
|
|
20346
20426
|
funcaoLongo.MÍNIMO = globalThis.BigInt('-9223372036854775808');
|
|
20347
|
-
|
|
20348
|
-
|
|
20349
|
-
|
|
20350
|
-
|
|
20351
|
-
|
|
20352
|
-
|
|
20353
|
-
|
|
20427
|
+
definir('longo', funcaoLongo);
|
|
20428
|
+
definir('intervalo', new funcao_padrao_1.FuncaoPadrao(3, bibliotecaGlobal.intervalo));
|
|
20429
|
+
definir('mapear', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.mapear));
|
|
20430
|
+
definir('maximo', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.maximo));
|
|
20431
|
+
definir('máximo', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.maximo));
|
|
20432
|
+
definir('minimo', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.minimo));
|
|
20433
|
+
definir('mínimo', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.minimo));
|
|
20354
20434
|
const funcaoNumero = new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.numero);
|
|
20355
20435
|
funcaoNumero.MAXIMO = Number.MAX_VALUE;
|
|
20356
20436
|
funcaoNumero.MÁXIMO = Number.MAX_VALUE;
|
|
20357
20437
|
funcaoNumero.MINIMO = -Number.MAX_VALUE;
|
|
20358
20438
|
funcaoNumero.MÍNIMO = -Number.MAX_VALUE;
|
|
20359
|
-
|
|
20360
|
-
|
|
20361
|
-
|
|
20362
|
-
|
|
20363
|
-
|
|
20364
|
-
|
|
20439
|
+
definir('numero', funcaoNumero);
|
|
20440
|
+
definir('número', funcaoNumero);
|
|
20441
|
+
definir('ordenar', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.ordenar));
|
|
20442
|
+
definir('paraCada', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.paraCada));
|
|
20443
|
+
definir('primeiroEmCondicao', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.primeiroEmCondicao));
|
|
20444
|
+
definir('primeiroEmCondição', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.primeiroEmCondicao));
|
|
20365
20445
|
const funcaoReal = new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.real);
|
|
20366
20446
|
funcaoReal.MAXIMO = Number.MAX_VALUE;
|
|
20367
20447
|
funcaoReal.MÁXIMO = Number.MAX_VALUE;
|
|
20368
20448
|
funcaoReal.MINIMO = -Number.MAX_VALUE;
|
|
20369
20449
|
funcaoReal.MÍNIMO = -Number.MAX_VALUE;
|
|
20370
|
-
|
|
20371
|
-
|
|
20372
|
-
|
|
20373
|
-
|
|
20374
|
-
|
|
20375
|
-
|
|
20376
|
-
|
|
20377
|
-
|
|
20378
|
-
|
|
20379
|
-
|
|
20450
|
+
definir('real', funcaoReal);
|
|
20451
|
+
definir('reduzir', new funcao_padrao_1.FuncaoPadrao(3, bibliotecaGlobal.reduzir));
|
|
20452
|
+
definir('somar', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.somar));
|
|
20453
|
+
definir('tamanho', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.tamanho));
|
|
20454
|
+
definir('texto', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.texto));
|
|
20455
|
+
definir('todos', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.todos));
|
|
20456
|
+
definir('todosEmCondicao', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.todosEmCondicao));
|
|
20457
|
+
definir('todosEmCondição', new funcao_padrao_1.FuncaoPadrao(2, bibliotecaGlobal.todosEmCondicao));
|
|
20458
|
+
definir('tupla', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.tupla));
|
|
20459
|
+
definir('vetor', new funcao_padrao_1.FuncaoPadrao(1, bibliotecaGlobal.vetor));
|
|
20380
20460
|
}
|
|
20381
20461
|
function pontoEntradaAjuda(funcao, topico) {
|
|
20382
20462
|
if (!funcao) {
|
|
@@ -21763,7 +21843,7 @@ class FuncaoPadrao extends chamavel_1.Chamavel {
|
|
|
21763
21843
|
* @returns {string} A representação da função como texto.
|
|
21764
21844
|
*/
|
|
21765
21845
|
paraTexto() {
|
|
21766
|
-
return `<função-padrão nome=${this.simbolo?.lexema || '(função anônima)'} />`;
|
|
21846
|
+
return `<função-padrão nome=${this.nome || this.simbolo?.lexema || '(função anônima)'} />`;
|
|
21767
21847
|
}
|
|
21768
21848
|
/**
|
|
21769
21849
|
* Método utilizado pelo VSCode para representar esta função quando impressa.
|
|
@@ -24649,7 +24729,8 @@ class InterpretadorBase {
|
|
|
24649
24729
|
return this.paraTexto(objeto.valor);
|
|
24650
24730
|
if (objeto instanceof estruturas_1.ObjetoDeleguaClasse ||
|
|
24651
24731
|
objeto instanceof estruturas_1.DeleguaFuncao ||
|
|
24652
|
-
objeto instanceof estruturas_1.DescritorTipoClasse
|
|
24732
|
+
objeto instanceof estruturas_1.DescritorTipoClasse ||
|
|
24733
|
+
objeto instanceof estruturas_1.FuncaoPadrao)
|
|
24653
24734
|
return objeto.paraTexto();
|
|
24654
24735
|
if (objeto instanceof quebras_1.RetornoQuebra) {
|
|
24655
24736
|
if (typeof objeto.valor === 'boolean')
|
|
@@ -25005,7 +25086,7 @@ class Interpretador extends interpretador_base_1.InterpretadorBase {
|
|
|
25005
25086
|
if (typeof objeto.valor === 'boolean')
|
|
25006
25087
|
return objeto.valor ? 'verdadeiro' : 'falso';
|
|
25007
25088
|
}
|
|
25008
|
-
if (objeto instanceof estruturas_1.MetodoPrimitiva) {
|
|
25089
|
+
if (objeto instanceof estruturas_1.MetodoPrimitiva || objeto instanceof estruturas_1.FuncaoPadrao) {
|
|
25009
25090
|
return objeto.paraTexto();
|
|
25010
25091
|
}
|
|
25011
25092
|
if (objeto instanceof Date) {
|
|
@@ -28072,6 +28153,17 @@ class LexadorPitugues {
|
|
|
28072
28153
|
break;
|
|
28073
28154
|
case '*':
|
|
28074
28155
|
this.inicioSimbolo = this.atual;
|
|
28156
|
+
const terminaLinha = this.atual + 1 >= this.codigo[this.linha].length;
|
|
28157
|
+
if (terminaLinha) {
|
|
28158
|
+
this.atual += 1;
|
|
28159
|
+
this.adicionarSimbolo(pitugues_2.default.MULTIPLICACAO);
|
|
28160
|
+
if (!this.eUltimaLinha()) {
|
|
28161
|
+
this.linha += 1;
|
|
28162
|
+
this.atual = 0;
|
|
28163
|
+
this.analisarIndentacao();
|
|
28164
|
+
}
|
|
28165
|
+
break;
|
|
28166
|
+
}
|
|
28075
28167
|
this.avancar();
|
|
28076
28168
|
if (this.simboloAtual() === '*') {
|
|
28077
28169
|
this.avancar();
|