@designliquido/delegua 1.3.0 → 1.3.1

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.
@@ -2,7 +2,6 @@ import { AcessoElementoMatriz, AcessoIndiceVariavel, AcessoIntervaloVariavel, Ac
2
2
  import { Bloco, CabecalhoPrograma, Classe, Comentario, Const, ConstMultiplo, Continua, Declaracao, Enquanto, Escolha, Escreva, EscrevaMesmaLinha, Expressao, Falhar, Fazer, FuncaoDeclaracao, InicioAlgoritmo, Para, ParaCada, Retorna, Se, Sustar, TendoComo, Tente, TextoDocumentacao, Var, VarMultiplo } from '../declaracoes';
3
3
  import { CaminhoEscolha, TradutorInterface, VisitanteComumInterface } from '../interfaces';
4
4
  import { ArestaFluxograma, SubgrafoClasse, SubgrafoFuncao, VerticeFluxograma } from './mermaid';
5
- import { ContinuarQuebra, SustarQuebra } from '../quebras';
6
5
  /**
7
6
  * [MermaidJs](https://mermaid.js.org/) é uma especificação que nos permite
8
7
  * criar fluxogramas através de uma notação por texto.
@@ -16,6 +15,16 @@ import { ContinuarQuebra, SustarQuebra } from '../quebras';
16
15
  * @see VerticeFluxograma
17
16
  */
18
17
  export declare class TradutorMermaidJs implements TradutorInterface<Declaracao>, VisitanteComumInterface {
18
+ anteriores: ArestaFluxograma[];
19
+ vertices: VerticeFluxograma[];
20
+ ultimaDicaVertice: string | undefined;
21
+ declaracoesFuncoes: {
22
+ [nome: string]: SubgrafoFuncao;
23
+ };
24
+ declaracoesClasses: {
25
+ [nome: string]: SubgrafoClasse;
26
+ };
27
+ indentacaoAtual: number;
19
28
  visitarDeclaracaoCabecalhoPrograma(declaracao: CabecalhoPrograma): Promise<any> | void;
20
29
  visitarDeclaracaoClasse(declaracao: Classe): Promise<VerticeFluxograma[]>;
21
30
  visitarDeclaracaoComentario(declaracao: Comentario): Promise<string>;
@@ -33,7 +42,7 @@ export declare class TradutorMermaidJs implements TradutorInterface<Declaracao>,
33
42
  visitarDeclaracaoPara(declaracao: Para): Promise<VerticeFluxograma[]>;
34
43
  visitarDeclaracaoSe(declaracao: Se): Promise<VerticeFluxograma[]>;
35
44
  visitarDeclaracaoTendoComo(declaracao: TendoComo): Promise<VerticeFluxograma[]>;
36
- visitarDeclaracaoTente(declaracao: Tente): Promise<any> | void;
45
+ visitarDeclaracaoTente(declaracao: Tente): Promise<VerticeFluxograma[]>;
37
46
  visitarDeclaracaoTextoDocumentacao(declaracao: TextoDocumentacao): Promise<any> | void;
38
47
  visitarDeclaracaoVar(declaracao: Var): Promise<VerticeFluxograma[]>;
39
48
  visitarDeclaracaoVarMultiplo(declaracao: VarMultiplo): Promise<any> | void;
@@ -45,46 +54,36 @@ export declare class TradutorMermaidJs implements TradutorInterface<Declaracao>,
45
54
  visitarExpressaoAcessoMetodoOuPropriedade(expressao: AcessoMetodoOuPropriedade): Promise<string>;
46
55
  visitarExpressaoAcessoPropriedade(expressao: AcessoPropriedade): Promise<string>;
47
56
  visitarExpressaoAgrupamento(expressao: Agrupamento): Promise<string>;
48
- visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<any> | void;
49
- visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<any> | void;
57
+ visitarExpressaoArgumentoReferenciaFuncao(expressao: ArgumentoReferenciaFuncao): Promise<string>;
58
+ visitarExpressaoAtribuicaoPorIndice(expressao: AtribuicaoPorIndice): Promise<string>;
50
59
  visitarExpressaoAtribuicaoPorIndicesMatriz(expressao: AtribuicaoPorIndicesMatriz): Promise<any> | void;
51
60
  visitarExpressaoBinaria(expressao: Binario): Promise<string>;
52
61
  visitarExpressaoBloco(bloco: Bloco): Promise<VerticeFluxograma[]>;
53
62
  visitarExpressaoComentario(expressao: ComentarioComoConstruto): Promise<string>;
54
- visitarExpressaoContinua(declaracao?: Continua): ContinuarQuebra;
63
+ visitarExpressaoContinua(declaracao?: Continua): Promise<VerticeFluxograma[]>;
55
64
  visitarExpressaoDeChamada(expressao: Chamada): Promise<string>;
56
65
  visitarExpressaoDefinirValor(expressao: DefinirValor): Promise<string>;
57
- visitarExpressaoFuncaoConstruto(expressao: FuncaoConstruto): Promise<any> | void;
66
+ visitarExpressaoFuncaoConstruto(expressao: FuncaoConstruto): Promise<string>;
58
67
  visitarExpressaoDeVariavel(expressao: Variavel | Constante): Promise<string>;
59
68
  visitarExpressaoDicionario(expressao: Dicionario): Promise<string>;
60
- visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<RegExp> | void;
61
- visitarExpressaoFalhar(expressao: Falhar): Promise<any> | void;
69
+ visitarExpressaoExpressaoRegular(expressao: ExpressaoRegular): Promise<string>;
70
+ visitarExpressaoFalhar(expressao: Falhar): Promise<VerticeFluxograma[]>;
62
71
  visitarExpressaoFimPara(declaracao: FimPara): Promise<any> | void;
63
- visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<any> | void;
72
+ visitarExpressaoFormatacaoEscrita(declaracao: FormatacaoEscrita): Promise<string>;
64
73
  visitarExpressaoIsto(expressao: Isto): Promise<string>;
65
74
  visitarExpressaoLeia(expressao: Leia): Promise<string>;
66
75
  visitarExpressaoLiteral(expressao: Literal): Promise<string>;
67
- visitarExpressaoLogica(expressao: Logico): Promise<any> | void;
68
- visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<any> | void;
76
+ visitarExpressaoLogica(expressao: Logico): Promise<string>;
77
+ visitarExpressaoReferenciaFuncao(expressao: ReferenciaFuncao): Promise<string>;
69
78
  visitarExpressaoRetornar(expressao: Retorna): Promise<VerticeFluxograma[]>;
70
79
  visitarExpressaoSeparador(expressao: Separador): Promise<string>;
71
- visitarExpressaoSuper(expressao: Super): Promise<any> | void;
72
- visitarExpressaoSustar(declaracao?: Sustar): SustarQuebra | void;
73
- visitarExpressaoTupla(expressao: Tupla): Promise<any> | void;
74
- visitarExpressaoTuplaN(expressao: TuplaN): Promise<any> | void;
80
+ visitarExpressaoSuper(expressao: Super): Promise<string>;
81
+ visitarExpressaoSustar(declaracao?: Sustar): Promise<VerticeFluxograma[]>;
82
+ visitarExpressaoTupla(expressao: Tupla): Promise<string>;
83
+ visitarExpressaoTuplaN(expressao: TuplaN): Promise<string>;
75
84
  visitarExpressaoTipoDe(expressao: TipoDe): Promise<any> | void;
76
85
  visitarExpressaoUnaria(expressao: Unario): Promise<string>;
77
86
  visitarExpressaoVetor(expressao: Vetor): Promise<string>;
78
- anteriores: ArestaFluxograma[];
79
- vertices: VerticeFluxograma[];
80
- ultimaDicaVertice: string | undefined;
81
- declaracoesFuncoes: {
82
- [nome: string]: SubgrafoFuncao;
83
- };
84
- declaracoesClasses: {
85
- [nome: string]: SubgrafoClasse;
86
- };
87
- indentacaoAtual: number;
88
87
  /**
89
88
  * Traduz uma declaração de Expressao que contém uma chamada de função,
90
89
  * criando os vértices necessários para conectar ao subgrafo da função.
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-mermaidjs.d.ts","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-mermaidjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-mermaidjs.d.ts","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-mermaidjs.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TradutorMermaidJs = void 0;
7
+ const construtos_1 = require("../construtos");
7
8
  const mermaid_1 = require("./mermaid");
8
9
  const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
9
10
  /**
@@ -96,7 +97,7 @@ class TradutorMermaidJs {
96
97
  }
97
98
  async visitarDeclaracaoDeExpressao(declaracao) {
98
99
  // Verifica se é uma chamada de função
99
- if (declaracao.expressao.constructor.name === 'Chamada') {
100
+ if (declaracao.expressao.constructor === construtos_1.Chamada) {
100
101
  const chamada = declaracao.expressao;
101
102
  const verticesChamada = await this.traduzirChamadaFuncao(declaracao, chamada);
102
103
  if (verticesChamada.length > 0) {
@@ -287,7 +288,9 @@ class TradutorMermaidJs {
287
288
  // Caminho então, normalmente um `Bloco`.
288
289
  const verticesEntao = await declaracao.caminhoEntao.aceitar(this);
289
290
  vertices = vertices.concat(verticesEntao);
290
- const ultimaArestaEntao = verticesEntao[verticesEntao.length - 1].destino;
291
+ const ultimaArestaEntao = verticesEntao.length > 0
292
+ ? verticesEntao[verticesEntao.length - 1].destino
293
+ : aresta;
291
294
  if (declaracao.caminhoSenao) {
292
295
  this.anteriores = [];
293
296
  const arestaSenao = new mermaid_1.ArestaFluxograma(declaracao, `Linha${declaracao.caminhoSenao.linha}(senão)`);
@@ -313,8 +316,80 @@ class TradutorMermaidJs {
313
316
  vertices.push(new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta));
314
317
  return Promise.resolve(vertices);
315
318
  }
316
- visitarDeclaracaoTente(declaracao) {
317
- throw new Error('Método não implementado.');
319
+ async visitarDeclaracaoTente(declaracao) {
320
+ const texto = `Linha${declaracao.linha}(tente)`;
321
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
322
+ let vertices = this.logicaComumConexaoArestas(aresta);
323
+ this.anteriores.push(aresta);
324
+ // Caminho tente (try)
325
+ const verticesTente = [];
326
+ for (const declaracaoTente of declaracao.caminhoTente) {
327
+ const verticesDeclaracao = await declaracaoTente.aceitar(this);
328
+ verticesTente.push(...verticesDeclaracao);
329
+ }
330
+ vertices = vertices.concat(verticesTente);
331
+ const ultimaArestaTente = verticesTente.length > 0
332
+ ? verticesTente[verticesTente.length - 1].destino
333
+ : aresta;
334
+ const anterioresAposTente = [];
335
+ // Caminho pegue (catch) - se existir
336
+ if (declaracao.caminhoPegue) {
337
+ this.anteriores = [aresta];
338
+ const arestaPegue = new mermaid_1.ArestaFluxograma(declaracao, `Linha${declaracao.linha}Pegue(pegue)`);
339
+ vertices.push(new mermaid_1.VerticeFluxograma(aresta, arestaPegue, 'Erro'));
340
+ this.anteriores.push(arestaPegue);
341
+ const verticesPegue = [];
342
+ if (Array.isArray(declaracao.caminhoPegue)) {
343
+ for (const declaracaoPegue of declaracao.caminhoPegue) {
344
+ const verticesDeclaracao = await declaracaoPegue.aceitar(this);
345
+ verticesPegue.push(...verticesDeclaracao);
346
+ }
347
+ }
348
+ vertices = vertices.concat(verticesPegue);
349
+ const ultimaArestaPegue = verticesPegue.length > 0
350
+ ? verticesPegue[verticesPegue.length - 1].destino
351
+ : arestaPegue;
352
+ anterioresAposTente.push(ultimaArestaPegue);
353
+ }
354
+ // Caminho senão (else) - se existir
355
+ if (declaracao.caminhoSenao && declaracao.caminhoSenao.length > 0) {
356
+ this.anteriores = [ultimaArestaTente];
357
+ const arestaSenao = new mermaid_1.ArestaFluxograma(declaracao, `Linha${declaracao.linha}Senao(senão - sem erro)`);
358
+ vertices.push(new mermaid_1.VerticeFluxograma(ultimaArestaTente, arestaSenao, 'Sucesso'));
359
+ this.anteriores.push(arestaSenao);
360
+ const verticesSenao = [];
361
+ for (const declaracaoSenao of declaracao.caminhoSenao) {
362
+ const verticesDeclaracao = await declaracaoSenao.aceitar(this);
363
+ verticesSenao.push(...verticesDeclaracao);
364
+ }
365
+ vertices = vertices.concat(verticesSenao);
366
+ const ultimaArestaSenao = verticesSenao.length > 0
367
+ ? verticesSenao[verticesSenao.length - 1].destino
368
+ : arestaSenao;
369
+ anterioresAposTente.push(ultimaArestaSenao);
370
+ }
371
+ else {
372
+ // Se não há senão, o caminho de sucesso também continua
373
+ anterioresAposTente.push(ultimaArestaTente);
374
+ }
375
+ // Caminho finalmente (finally) - se existir
376
+ if (declaracao.caminhoFinalmente && declaracao.caminhoFinalmente.length > 0) {
377
+ this.anteriores = anterioresAposTente;
378
+ const arestaFinalmente = new mermaid_1.ArestaFluxograma(declaracao, `Linha${declaracao.linha}Finalmente(finalmente)`);
379
+ vertices = vertices.concat(this.logicaComumConexaoArestas(arestaFinalmente));
380
+ this.anteriores.push(arestaFinalmente);
381
+ const verticesFinalmente = [];
382
+ for (const declaracaoFinalmente of declaracao.caminhoFinalmente) {
383
+ const verticesDeclaracao = await declaracaoFinalmente.aceitar(this);
384
+ verticesFinalmente.push(...verticesDeclaracao);
385
+ }
386
+ vertices = vertices.concat(verticesFinalmente);
387
+ }
388
+ else {
389
+ // Se não há finalmente, os anteriores são os caminhos após tente
390
+ this.anteriores = anterioresAposTente;
391
+ }
392
+ return Promise.resolve(vertices);
318
393
  }
319
394
  visitarDeclaracaoTextoDocumentacao(declaracao) {
320
395
  throw new Error('Método não implementado.');
@@ -357,11 +432,15 @@ class TradutorMermaidJs {
357
432
  async visitarExpressaoAgrupamento(expressao) {
358
433
  return await expressao.expressao.aceitar(this);
359
434
  }
360
- visitarExpressaoArgumentoReferenciaFuncao(expressao) {
361
- throw new Error('Método não implementado.');
435
+ async visitarExpressaoArgumentoReferenciaFuncao(expressao) {
436
+ const nomeFuncao = expressao.simboloFuncao.lexema;
437
+ return Promise.resolve(`referência à função ${nomeFuncao}`);
362
438
  }
363
- visitarExpressaoAtribuicaoPorIndice(expressao) {
364
- throw new Error('Método não implementado.');
439
+ async visitarExpressaoAtribuicaoPorIndice(expressao) {
440
+ const textoObjeto = await expressao.objeto.aceitar(this);
441
+ const textoIndice = await expressao.indice.aceitar(this);
442
+ const textoValor = await expressao.valor.aceitar(this);
443
+ return Promise.resolve(`${textoObjeto} no índice ${textoIndice} recebe: ${textoValor}`);
365
444
  }
366
445
  visitarExpressaoAtribuicaoPorIndicesMatriz(expressao) {
367
446
  throw new Error('Método não implementado.');
@@ -372,8 +451,26 @@ class TradutorMermaidJs {
372
451
  switch (expressao.operador.tipo) {
373
452
  case delegua_1.default.ADICAO:
374
453
  return Promise.resolve(`somar ${operandoEsquerdo} e ${operandoDireito}`);
454
+ case delegua_1.default.SUBTRACAO:
455
+ return Promise.resolve(`subtrair ${operandoDireito} de ${operandoEsquerdo}`);
456
+ case delegua_1.default.MULTIPLICACAO:
457
+ return Promise.resolve(`multiplicar ${operandoEsquerdo} por ${operandoDireito}`);
458
+ case delegua_1.default.DIVISAO:
459
+ return Promise.resolve(`dividir ${operandoEsquerdo} por ${operandoDireito}`);
460
+ case delegua_1.default.MODULO:
461
+ return Promise.resolve(`resto de ${operandoEsquerdo} dividido por ${operandoDireito}`);
375
462
  case delegua_1.default.MENOR:
376
463
  return Promise.resolve(`${operandoEsquerdo} for menor que ${operandoDireito}`);
464
+ case delegua_1.default.MENOR_IGUAL:
465
+ return Promise.resolve(`${operandoEsquerdo} for menor ou igual a ${operandoDireito}`);
466
+ case delegua_1.default.MAIOR:
467
+ return Promise.resolve(`${operandoEsquerdo} for maior que ${operandoDireito}`);
468
+ case delegua_1.default.MAIOR_IGUAL:
469
+ return Promise.resolve(`${operandoEsquerdo} for maior ou igual a ${operandoDireito}`);
470
+ case delegua_1.default.IGUAL_IGUAL:
471
+ return Promise.resolve(`${operandoEsquerdo} for igual a ${operandoDireito}`);
472
+ case delegua_1.default.DIFERENTE:
473
+ return Promise.resolve(`${operandoEsquerdo} for diferente de ${operandoDireito}`);
377
474
  }
378
475
  return Promise.resolve('');
379
476
  }
@@ -388,8 +485,12 @@ class TradutorMermaidJs {
388
485
  async visitarExpressaoComentario(expressao) {
389
486
  return Promise.resolve('');
390
487
  }
391
- visitarExpressaoContinua(declaracao) {
392
- throw new Error('Método não implementado.');
488
+ async visitarExpressaoContinua(declaracao) {
489
+ const texto = `Linha${declaracao.linha}(continua)`;
490
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
491
+ const vertices = this.logicaComumConexaoArestas(aresta);
492
+ this.anteriores.push(aresta);
493
+ return Promise.resolve(vertices);
393
494
  }
394
495
  async visitarExpressaoDeChamada(expressao) {
395
496
  const textoEntidadeChamada = await expressao.entidadeChamada.aceitar(this);
@@ -412,8 +513,16 @@ class TradutorMermaidJs {
412
513
  const textoValor = await expressao.valor.aceitar(this);
413
514
  return Promise.resolve(`${expressao.nome.lexema} em ${textoObjeto} recebe ${textoValor}`);
414
515
  }
415
- visitarExpressaoFuncaoConstruto(expressao) {
416
- throw new Error('Método não implementado.');
516
+ async visitarExpressaoFuncaoConstruto(expressao) {
517
+ let texto = 'função anônima';
518
+ if (expressao.parametros && expressao.parametros.length > 0) {
519
+ const parametros = expressao.parametros.map(p => p.nome.lexema).join(', ');
520
+ texto += `(${parametros})`;
521
+ }
522
+ else {
523
+ texto += '()';
524
+ }
525
+ return Promise.resolve(texto);
417
526
  }
418
527
  async visitarExpressaoDeVariavel(expressao) {
419
528
  return Promise.resolve(expressao.simbolo.lexema);
@@ -431,17 +540,41 @@ class TradutorMermaidJs {
431
540
  }
432
541
  return Promise.resolve(texto);
433
542
  }
434
- visitarExpressaoExpressaoRegular(expressao) {
435
- throw new Error('Método não implementado.');
543
+ async visitarExpressaoExpressaoRegular(expressao) {
544
+ // Representa a expressão regular como texto para o fluxograma
545
+ const padraoRegex = expressao.valor ? String(expressao.valor) : expressao.simbolo.lexema;
546
+ return Promise.resolve(`expressão regular: /${padraoRegex}/`);
436
547
  }
437
- visitarExpressaoFalhar(expressao) {
438
- throw new Error('Método não implementado.');
548
+ async visitarExpressaoFalhar(expressao) {
549
+ let texto = `Linha${expressao.linha}(falhar`;
550
+ if (expressao.explicacao) {
551
+ const textoExplicacao = await expressao.explicacao.aceitar(this);
552
+ texto += `: ${textoExplicacao}`;
553
+ }
554
+ texto += ')';
555
+ const aresta = new mermaid_1.ArestaFluxograma(expressao, texto);
556
+ const vertices = this.logicaComumConexaoArestas(aresta);
557
+ this.anteriores.push(aresta);
558
+ return Promise.resolve(vertices);
439
559
  }
440
560
  visitarExpressaoFimPara(declaracao) {
441
561
  throw new Error('Método não implementado.');
442
562
  }
443
- visitarExpressaoFormatacaoEscrita(declaracao) {
444
- throw new Error('Método não implementado.');
563
+ async visitarExpressaoFormatacaoEscrita(declaracao) {
564
+ const textoExpressao = await declaracao.expressao.aceitar(this);
565
+ let formato = textoExpressao;
566
+ // Adiciona informações de formatação se especificadas
567
+ const partes = [textoExpressao];
568
+ if (declaracao.espacos > 0) {
569
+ partes.push(`${declaracao.espacos} espaços`);
570
+ }
571
+ if (declaracao.casasDecimais > 0) {
572
+ partes.push(`${declaracao.casasDecimais} casas decimais`);
573
+ }
574
+ if (partes.length > 1) {
575
+ formato = `${partes[0]} (${partes.slice(1).join(', ')})`;
576
+ }
577
+ return Promise.resolve(formato);
445
578
  }
446
579
  async visitarExpressaoIsto(expressao) {
447
580
  return Promise.resolve('this');
@@ -464,11 +597,20 @@ class TradutorMermaidJs {
464
597
  return Promise.resolve(String(expressao.valor));
465
598
  }
466
599
  }
467
- visitarExpressaoLogica(expressao) {
468
- throw new Error('Método não implementado.');
600
+ async visitarExpressaoLogica(expressao) {
601
+ const operandoEsquerdo = await expressao.esquerda.aceitar(this);
602
+ const operandoDireito = await expressao.direita.aceitar(this);
603
+ switch (expressao.operador.tipo) {
604
+ case delegua_1.default.E:
605
+ return Promise.resolve(`${operandoEsquerdo} e ${operandoDireito}`);
606
+ case delegua_1.default.OU:
607
+ return Promise.resolve(`${operandoEsquerdo} ou ${operandoDireito}`);
608
+ }
609
+ return Promise.resolve('');
469
610
  }
470
- visitarExpressaoReferenciaFuncao(expressao) {
471
- throw new Error('Método não implementado.');
611
+ async visitarExpressaoReferenciaFuncao(expressao) {
612
+ const nomeFuncao = expressao.simboloFuncao.lexema;
613
+ return Promise.resolve(`@${nomeFuncao}`);
472
614
  }
473
615
  async visitarExpressaoRetornar(expressao) {
474
616
  let texto = `Linha${expressao.linha}(retorna`;
@@ -484,17 +626,31 @@ class TradutorMermaidJs {
484
626
  async visitarExpressaoSeparador(expressao) {
485
627
  return Promise.resolve(`${expressao.conteudo} `);
486
628
  }
487
- visitarExpressaoSuper(expressao) {
488
- throw new Error('Método não implementado.');
629
+ async visitarExpressaoSuper(expressao) {
630
+ return Promise.resolve('super');
489
631
  }
490
- visitarExpressaoSustar(declaracao) {
491
- throw new Error('Método não implementado.');
632
+ async visitarExpressaoSustar(declaracao) {
633
+ const texto = `Linha${declaracao.linha}(sustar)`;
634
+ const aresta = new mermaid_1.ArestaFluxograma(declaracao, texto);
635
+ const vertices = this.logicaComumConexaoArestas(aresta);
636
+ this.anteriores.push(aresta);
637
+ return Promise.resolve(vertices);
492
638
  }
493
- visitarExpressaoTupla(expressao) {
494
- throw new Error('Método não implementado.');
639
+ async visitarExpressaoTupla(expressao) {
640
+ // Tupla base pode ter um único valor
641
+ if (expressao.valor !== undefined) {
642
+ return Promise.resolve(`tupla(${expressao.valor})`);
643
+ }
644
+ // Se não houver valor, tupla vazia
645
+ return Promise.resolve('tupla()');
495
646
  }
496
- visitarExpressaoTuplaN(expressao) {
497
- throw new Error('Método não implementado.');
647
+ async visitarExpressaoTuplaN(expressao) {
648
+ const valores = [];
649
+ for (const elemento of expressao.elementos) {
650
+ const valorTraduzido = await elemento.aceitar(this);
651
+ valores.push(valorTraduzido);
652
+ }
653
+ return Promise.resolve(`tupla(${valores.join(', ')})`);
498
654
  }
499
655
  visitarExpressaoTipoDe(expressao) {
500
656
  throw new Error('Método não implementado.');
@@ -530,7 +686,7 @@ class TradutorMermaidJs {
530
686
  */
531
687
  async traduzirChamadaFuncao(declaracaoExpressao, chamada) {
532
688
  // Verifica se é uma chamada a uma função conhecida
533
- if (chamada.entidadeChamada.constructor.name === 'Variavel') {
689
+ if (chamada.entidadeChamada.constructor === construtos_1.Variavel) {
534
690
  const variavel = chamada.entidadeChamada;
535
691
  const nomeFuncao = variavel.simbolo.lexema;
536
692
  if (this.declaracoesFuncoes[nomeFuncao]) {
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-mermaidjs.js","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-mermaidjs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-mermaidjs.js","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-mermaidjs.ts"],"names":[],"mappings":"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"}