@designliquido/delegua 0.62.0 → 0.63.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.
Files changed (59) hide show
  1. package/README.md +17 -9
  2. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +13 -2
  3. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  4. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +42 -0
  5. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  6. package/bin/package.json +1 -1
  7. package/interfaces/retornos/retorno-lexador.d.ts +2 -2
  8. package/interfaces/retornos/retorno-lexador.d.ts.map +1 -1
  9. package/lexador/dialetos/lexador-pitugues.d.ts +3 -3
  10. package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
  11. package/lexador/dialetos/lexador-pitugues.js +7 -6
  12. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  13. package/lexador/dialetos/lexador-tenda.d.ts +2 -2
  14. package/lexador/dialetos/lexador-tenda.d.ts.map +1 -1
  15. package/lexador/dialetos/localizacao.d.ts +9 -0
  16. package/lexador/dialetos/localizacao.d.ts.map +1 -0
  17. package/lexador/dialetos/{pragma.js → localizacao.js} +1 -1
  18. package/lexador/dialetos/localizacao.js.map +1 -0
  19. package/package.json +1 -1
  20. package/tradutores/index.d.ts +2 -0
  21. package/tradutores/index.d.ts.map +1 -1
  22. package/tradutores/index.js +2 -0
  23. package/tradutores/index.js.map +1 -1
  24. package/tradutores/mermaid/aresta-fluxograma.d.ts +7 -0
  25. package/tradutores/mermaid/aresta-fluxograma.d.ts.map +1 -0
  26. package/tradutores/mermaid/aresta-fluxograma.js +11 -0
  27. package/tradutores/mermaid/aresta-fluxograma.js.map +1 -0
  28. package/tradutores/mermaid/diagrama-classe.d.ts +16 -0
  29. package/tradutores/mermaid/diagrama-classe.d.ts.map +1 -0
  30. package/tradutores/mermaid/diagrama-classe.js +33 -0
  31. package/tradutores/mermaid/diagrama-classe.js.map +1 -0
  32. package/tradutores/mermaid/index.d.ts +5 -0
  33. package/tradutores/mermaid/index.d.ts.map +1 -0
  34. package/tradutores/mermaid/index.js +21 -0
  35. package/tradutores/mermaid/index.js.map +1 -0
  36. package/tradutores/mermaid/subgrafo-classe.d.ts +14 -0
  37. package/tradutores/mermaid/subgrafo-classe.d.ts.map +1 -0
  38. package/tradutores/mermaid/subgrafo-classe.js +45 -0
  39. package/tradutores/mermaid/subgrafo-classe.js.map +1 -0
  40. package/tradutores/mermaid/vertice-fluxograma.d.ts +9 -0
  41. package/tradutores/mermaid/vertice-fluxograma.d.ts.map +1 -0
  42. package/tradutores/mermaid/vertice-fluxograma.js +16 -0
  43. package/tradutores/mermaid/vertice-fluxograma.js.map +1 -0
  44. package/tradutores/tradutor-assembly-arm.d.ts +98 -0
  45. package/tradutores/tradutor-assembly-arm.d.ts.map +1 -0
  46. package/tradutores/tradutor-assembly-arm.js +715 -0
  47. package/tradutores/tradutor-assembly-arm.js.map +1 -0
  48. package/tradutores/tradutor-assembly-x64.d.ts +4 -1
  49. package/tradutores/tradutor-assembly-x64.d.ts.map +1 -1
  50. package/tradutores/tradutor-assembly-x64.js +57 -21
  51. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  52. package/tradutores/tradutor-mermaidjs.d.ts +10 -16
  53. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  54. package/tradutores/tradutor-mermaidjs.js +107 -43
  55. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  56. package/umd/delegua.js +1917 -293
  57. package/lexador/dialetos/pragma.d.ts +0 -9
  58. package/lexador/dialetos/pragma.d.ts.map +0 -1
  59. package/lexador/dialetos/pragma.js.map +0 -1
@@ -5,23 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TradutorMermaidJs = void 0;
7
7
  const delegua_1 = __importDefault(require("../tipos-de-simbolos/delegua"));
8
- class ArestaFluxograma {
9
- constructor(declaracao, texto) {
10
- this.declaracao = declaracao;
11
- this.texto = texto;
12
- }
13
- }
14
- class VerticeFluxograma {
15
- constructor(origem, destino, texto) {
16
- this.origem = origem;
17
- this.destino = destino;
18
- this.texto = texto;
19
- }
20
- paraTexto() {
21
- const seta = this.texto ? `-->|${this.texto}|` : '-->';
22
- return ` ${this.origem.texto}${seta}${this.destino.texto};\n`;
23
- }
24
- }
8
+ const mermaid_1 = require("./mermaid");
25
9
  /**
26
10
  * [MermaidJs](https://mermaid.js.org/) é uma especificação que nos permite
27
11
  * criar fluxogramas através de uma notação por texto.
@@ -48,7 +32,8 @@ class TradutorMermaidJs {
48
32
  ComentarioComoConstruto: () => '',
49
33
  DefinirValor: this.traduzirConstrutoDefinirValor.bind(this),
50
34
  Dicionario: this.traduzirConstrutoDicionario.bind(this),
51
- FuncaoConstruto: this.traduzirFuncaoConstruto.bind(this),
35
+ // FuncaoConstruto: this.traduzirFuncaoConstruto.bind(this),
36
+ FuncaoConstruto: () => { throw new Error("Fluxogramas de funções ainda não é suportado."); },
52
37
  Isto: () => 'this',
53
38
  Leia: this.traduzirConstrutoLeia.bind(this),
54
39
  Literal: this.traduzirConstrutoLiteral.bind(this),
@@ -59,6 +44,8 @@ class TradutorMermaidJs {
59
44
  };
60
45
  this.dicionarioDeclaracoes = {
61
46
  Bloco: this.traduzirDeclaracaoBloco.bind(this),
47
+ // Classe: this.traduzirDeclaracaoClasse.bind(this),
48
+ Classe: () => { throw new Error("Fluxogramas de classes ainda não é suportado."); },
62
49
  Comentario: () => '',
63
50
  Const: this.traduzirDeclaracaoConst.bind(this),
64
51
  Enquanto: this.traduzirDeclaracaoEnquanto.bind(this),
@@ -66,6 +53,8 @@ class TradutorMermaidJs {
66
53
  Expressao: this.traduzirDeclaracaoExpressao.bind(this),
67
54
  Escreva: this.traduzirDeclaracaoEscreva.bind(this),
68
55
  Fazer: this.traduzirDeclaracaoFazerEnquanto.bind(this),
56
+ // FuncaoDeclaracao: this.traduzirDeclaracaoFuncao.bind(this),
57
+ FuncaoDeclaracao: () => { throw new Error("Fluxogramas de funções ainda não é suportado."); },
69
58
  Para: this.traduzirDeclaracaoPara.bind(this),
70
59
  ParaCada: this.traduzirDeclaracaoParaCada.bind(this),
71
60
  Se: this.traduzirDeclaracaoSe.bind(this),
@@ -139,7 +128,19 @@ class TradutorMermaidJs {
139
128
  return texto;
140
129
  }
141
130
  traduzirFuncaoConstruto(funcaoConstruto) {
142
- return `função`;
131
+ let vertices = [];
132
+ if (funcaoConstruto.corpo && funcaoConstruto.corpo.length > 0) {
133
+ for (const declaracaoCorpo of funcaoConstruto.corpo) {
134
+ // Usa o mesmo caminho de outras declarações,
135
+ // então todas as arestas passam por logicaComumConexaoArestas.
136
+ const verticesCorpo = this.dicionarioDeclaracoes[declaracaoCorpo.constructor.name](declaracaoCorpo);
137
+ vertices = vertices.concat(verticesCorpo);
138
+ }
139
+ }
140
+ /* if (this.anteriores.length > 0) {
141
+ vertices = vertices.concat(this.anteriores)
142
+ } */
143
+ return vertices;
143
144
  }
144
145
  traduzirConstrutoLeia(leia) {
145
146
  let texto = 'leia da entrada';
@@ -199,7 +200,7 @@ class TradutorMermaidJs {
199
200
  textoVertice = String(this.ultimaDicaVertice);
200
201
  this.ultimaDicaVertice = undefined;
201
202
  }
202
- vertices.push(new VerticeFluxograma(anterior, aresta, textoVertice));
203
+ vertices.push(new mermaid_1.VerticeFluxograma(anterior, aresta, textoVertice));
203
204
  }
204
205
  return vertices;
205
206
  }
@@ -211,10 +212,45 @@ class TradutorMermaidJs {
211
212
  }
212
213
  return vertices;
213
214
  }
215
+ traduzirDeclaracaoClasse(declaracaoClasse) {
216
+ const nomeClasse = declaracaoClasse.simbolo.lexema;
217
+ const superClasse = declaracaoClasse.superClasse
218
+ ? declaracaoClasse.superClasse.nome.lexema
219
+ : undefined;
220
+ // Cria o diagrama de classe
221
+ const diagramaClasse = new mermaid_1.DiagramaClasse(nomeClasse, superClasse);
222
+ // Adiciona métodos ao diagrama
223
+ if (declaracaoClasse.metodos && declaracaoClasse.metodos.length > 0) {
224
+ for (const metodo of declaracaoClasse.metodos) {
225
+ const parametros = [];
226
+ if (metodo.funcao.parametros && metodo.funcao.parametros.length > 0) {
227
+ for (const param of metodo.funcao.parametros) {
228
+ const nomeParam = param.nome.lexema;
229
+ const tipoParam = param.tipoDado || 'qualquer';
230
+ parametros.push(`${nomeParam}: ${tipoParam}`);
231
+ }
232
+ }
233
+ const tipoRetorno = metodo.funcao.tipo;
234
+ diagramaClasse.metodos.push({
235
+ nome: metodo.simbolo.lexema,
236
+ parametros,
237
+ tipoRetorno
238
+ });
239
+ }
240
+ }
241
+ // Adiciona o diagrama à lista
242
+ this.diagramasClasses.push(diagramaClasse);
243
+ // No fluxograma principal, apenas mostra a definição da classe
244
+ const texto = `Linha${declaracaoClasse.linha}[Classe ${nomeClasse}${superClasse ? ` herda ${superClasse}` : ''}]`;
245
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoClasse, texto);
246
+ const vertices = this.logicaComumConexaoArestas(aresta);
247
+ this.anteriores.push(aresta);
248
+ return vertices;
249
+ }
214
250
  traduzirDeclaracaoConst(declaracaoConst) {
215
251
  let texto = `Linha${declaracaoConst.linha}(variável: ${declaracaoConst.simbolo.lexema}`;
216
252
  texto += this.logicaComumTraducaoVarEConst(declaracaoConst, texto);
217
- const aresta = new ArestaFluxograma(declaracaoConst, texto);
253
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoConst, texto);
218
254
  const vertices = this.logicaComumConexaoArestas(aresta);
219
255
  this.anteriores.push(aresta);
220
256
  return vertices;
@@ -223,14 +259,14 @@ class TradutorMermaidJs {
223
259
  let texto = `Linha${declaracaoEnquanto.linha}(enquanto `;
224
260
  const condicao = this.dicionarioConstrutos[declaracaoEnquanto.condicao.constructor.name](declaracaoEnquanto.condicao);
225
261
  texto += condicao + ')';
226
- const aresta = new ArestaFluxograma(declaracaoEnquanto, texto);
262
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoEnquanto, texto);
227
263
  let vertices = this.logicaComumConexaoArestas(aresta);
228
264
  this.anteriores.push(aresta);
229
265
  // Corpo, normalmente um `Bloco`.
230
266
  const verticesCorpo = this.dicionarioDeclaracoes[declaracaoEnquanto.corpo.constructor.name](declaracaoEnquanto.corpo);
231
267
  vertices = vertices.concat(verticesCorpo);
232
268
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
233
- const verticeLaco = new VerticeFluxograma(ultimaArestaCorpo, aresta);
269
+ const verticeLaco = new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta);
234
270
  vertices.push(verticeLaco);
235
271
  return vertices;
236
272
  }
@@ -249,7 +285,7 @@ class TradutorMermaidJs {
249
285
  textoCaso = `caso ${textoIdentificadorOuLiteral} tenha qualquer outro valor:`;
250
286
  }
251
287
  let textoCaminho = `Linha${linha}(${textoCaso})`;
252
- const arestaCondicaoCaminho = new ArestaFluxograma(declaracaoEscolha, textoCaminho);
288
+ const arestaCondicaoCaminho = new mermaid_1.ArestaFluxograma(declaracaoEscolha, textoCaminho);
253
289
  this.anteriores.push(arestaCondicaoCaminho);
254
290
  let verticesResolvidos = [];
255
291
  for (const declaracaoCaminho of caminhoEscolha.declaracoes) {
@@ -268,7 +304,7 @@ class TradutorMermaidJs {
268
304
  let texto = `Linha${declaracaoEscolha.linha}(escolha um caminho pelo valor de `;
269
305
  const textoIdentificadorOuLiteral = this.dicionarioConstrutos[declaracaoEscolha.identificadorOuLiteral.constructor.name](declaracaoEscolha.identificadorOuLiteral);
270
306
  texto += textoIdentificadorOuLiteral + ')';
271
- const aresta = new ArestaFluxograma(declaracaoEscolha, texto);
307
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoEscolha, texto);
272
308
  let vertices = this.logicaComumConexaoArestas(aresta);
273
309
  const arestasCaminho = [];
274
310
  for (const caminho of declaracaoEscolha.caminhos) {
@@ -278,7 +314,7 @@ class TradutorMermaidJs {
278
314
  arestasCaminho.push(this.logicaComumCaminhoEscolha(declaracaoEscolha, declaracaoEscolha.caminhoPadrao, declaracaoEscolha.caminhoPadrao.declaracoes[0].linha - 1, textoIdentificadorOuLiteral, true));
279
315
  }
280
316
  for (const conjunto of Object.values(arestasCaminho)) {
281
- const verticeEscolhaECaminho = new VerticeFluxograma(aresta, conjunto.caminho);
317
+ const verticeEscolhaECaminho = new mermaid_1.VerticeFluxograma(aresta, conjunto.caminho);
282
318
  vertices.push(verticeEscolhaECaminho);
283
319
  vertices = vertices.concat(conjunto.declaracoesCaminho);
284
320
  this.anteriores.push(conjunto.declaracoesCaminho[conjunto.declaracoesCaminho.length - 1].destino);
@@ -293,7 +329,7 @@ class TradutorMermaidJs {
293
329
  }
294
330
  texto = texto.slice(0, -2);
295
331
  texto += ')';
296
- const aresta = new ArestaFluxograma(declaracaoEscreva, texto);
332
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoEscreva, texto);
297
333
  const vertices = this.logicaComumConexaoArestas(aresta);
298
334
  this.anteriores.push(aresta);
299
335
  return vertices;
@@ -302,14 +338,14 @@ class TradutorMermaidJs {
302
338
  let texto = `Linha${declaracaoExpressao.linha}(`;
303
339
  const textoConstruto = this.dicionarioConstrutos[declaracaoExpressao.expressao.constructor.name](declaracaoExpressao.expressao);
304
340
  texto += textoConstruto + ')';
305
- const aresta = new ArestaFluxograma(declaracaoExpressao, texto);
341
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoExpressao, texto);
306
342
  const vertices = this.logicaComumConexaoArestas(aresta);
307
343
  this.anteriores.push(aresta);
308
344
  return vertices;
309
345
  }
310
346
  traduzirDeclaracaoFazerEnquanto(declaracaoFazerEnquanto) {
311
347
  const texto = `Linha${declaracaoFazerEnquanto.linha}(fazer)`;
312
- const aresta = new ArestaFluxograma(declaracaoFazerEnquanto, texto);
348
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoFazerEnquanto, texto);
313
349
  let vertices = this.logicaComumConexaoArestas(aresta);
314
350
  this.anteriores.push(aresta);
315
351
  // Corpo, normalmente um `Bloco`.
@@ -318,15 +354,37 @@ class TradutorMermaidJs {
318
354
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
319
355
  const condicao = this.dicionarioConstrutos[declaracaoFazerEnquanto.condicaoEnquanto.constructor.name](declaracaoFazerEnquanto.condicaoEnquanto);
320
356
  let textoEnquanto = `Linha${declaracaoFazerEnquanto.condicaoEnquanto.linha}(enquanto ${condicao})`;
321
- const arestaEnquanto = new ArestaFluxograma(declaracaoFazerEnquanto, textoEnquanto);
322
- const verticeEnquanto = new VerticeFluxograma(ultimaArestaCorpo, arestaEnquanto);
357
+ const arestaEnquanto = new mermaid_1.ArestaFluxograma(declaracaoFazerEnquanto, textoEnquanto);
358
+ const verticeEnquanto = new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, arestaEnquanto);
323
359
  vertices.push(verticeEnquanto);
324
- const verticeCondicaoComFazer = new VerticeFluxograma(arestaEnquanto, aresta);
360
+ const verticeCondicaoComFazer = new mermaid_1.VerticeFluxograma(arestaEnquanto, aresta);
325
361
  vertices.push(verticeCondicaoComFazer);
326
362
  this.anteriores.pop();
327
363
  this.anteriores.push(arestaEnquanto);
328
364
  return vertices;
329
365
  }
366
+ traduzirDeclaracaoFuncao(declaracaoFuncao) {
367
+ // Gera o corpo como vértices, mas não conecta nada ao fluxo principal
368
+ const verticesCorpo = this.traduzirFuncaoConstruto(declaracaoFuncao.funcao);
369
+ if (verticesCorpo.length === 0) {
370
+ return [];
371
+ }
372
+ // Descobre o texto dos nós do corpo
373
+ let textoSubgraph = `subgraph função ${declaracaoFuncao.simbolo.lexema}\n`;
374
+ for (const vertice of verticesCorpo) {
375
+ textoSubgraph += vertice.paraTexto();
376
+ }
377
+ textoSubgraph += `end;\n`;
378
+ // Armazena o subgraph para imprimir depois de graph TD;
379
+ this.subgrafosFuncoes.push(textoSubgraph);
380
+ // IMPORTANTE: não altera this.anteriores aqui, para a função
381
+ // não entrar no fluxo principal. O fluxo principal continua
382
+ // sendo só as declarações "top-level" (como a chamada em Linha4).
383
+ // Também não precisa devolver vértices, porque eles já
384
+ // foram adicionados em this.vertices pelos próprios tradutores
385
+ // das declarações do corpo (via dicionarioDeclaracoes).
386
+ return [];
387
+ }
330
388
  traduzirDeclaracaoPara(declaracaoPara) {
331
389
  let texto = `Linha${declaracaoPara.linha}(para `;
332
390
  if (declaracaoPara.inicializador) {
@@ -339,13 +397,13 @@ class TradutorMermaidJs {
339
397
  texto = texto.slice(0, -2);
340
398
  }
341
399
  texto += ')';
342
- const aresta = new ArestaFluxograma(declaracaoPara, texto);
400
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoPara, texto);
343
401
  let vertices = this.logicaComumConexaoArestas(aresta);
344
402
  this.anteriores.push(aresta);
345
403
  // Condição
346
404
  const textoCondicao = this.dicionarioConstrutos[declaracaoPara.condicao.constructor.name](declaracaoPara.condicao);
347
405
  const textoArestaCondicao = `Linha${declaracaoPara.linha}Condicao{se ${textoCondicao}}`;
348
- const arestaCondicao = new ArestaFluxograma(declaracaoPara, textoArestaCondicao);
406
+ const arestaCondicao = new mermaid_1.ArestaFluxograma(declaracaoPara, textoArestaCondicao);
349
407
  vertices = vertices.concat(this.logicaComumConexaoArestas(arestaCondicao));
350
408
  this.anteriores.push(arestaCondicao);
351
409
  this.ultimaDicaVertice = 'Sim';
@@ -355,10 +413,10 @@ class TradutorMermaidJs {
355
413
  // Incremento
356
414
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
357
415
  const textoIncremento = this.dicionarioConstrutos[declaracaoPara.incrementar.constructor.name](declaracaoPara.incrementar);
358
- const arestaIncremento = new ArestaFluxograma(declaracaoPara, `Linha${declaracaoPara.linha}Incremento(${textoIncremento})`);
359
- const verticeIncremento = new VerticeFluxograma(ultimaArestaCorpo, arestaIncremento);
416
+ const arestaIncremento = new mermaid_1.ArestaFluxograma(declaracaoPara, `Linha${declaracaoPara.linha}Incremento(${textoIncremento})`);
417
+ const verticeIncremento = new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, arestaIncremento);
360
418
  vertices.push(verticeIncremento);
361
- const verticeLaco = new VerticeFluxograma(arestaIncremento, arestaCondicao);
419
+ const verticeLaco = new mermaid_1.VerticeFluxograma(arestaIncremento, arestaCondicao);
362
420
  vertices.push(verticeLaco);
363
421
  // Configura a condição como anterior
364
422
  this.anteriores.pop();
@@ -371,14 +429,14 @@ class TradutorMermaidJs {
371
429
  let texto = `Linha${declaracaoParaCada.linha}(para cada ${textoVariavelIteracao} em `;
372
430
  const textoVariavelIterada = this.dicionarioConstrutos[declaracaoParaCada.vetorOuDicionario.constructor.name](declaracaoParaCada.vetorOuDicionario);
373
431
  texto += textoVariavelIterada + ')';
374
- const aresta = new ArestaFluxograma(declaracaoParaCada, texto);
432
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoParaCada, texto);
375
433
  let vertices = this.logicaComumConexaoArestas(aresta);
376
434
  this.anteriores.push(aresta);
377
435
  // Corpo, normalmente um `Bloco`.
378
436
  const verticesCorpo = this.dicionarioDeclaracoes[declaracaoParaCada.corpo.constructor.name](declaracaoParaCada.corpo);
379
437
  vertices = vertices.concat(verticesCorpo);
380
438
  const ultimaArestaCorpo = verticesCorpo[verticesCorpo.length - 1].destino;
381
- vertices.push(new VerticeFluxograma(ultimaArestaCorpo, aresta));
439
+ vertices.push(new mermaid_1.VerticeFluxograma(ultimaArestaCorpo, aresta));
382
440
  return vertices;
383
441
  }
384
442
  traduzirDeclaracaoSe(declaracaoSe) {
@@ -386,7 +444,7 @@ class TradutorMermaidJs {
386
444
  const condicao = this.dicionarioConstrutos[declaracaoSe.condicao.constructor.name](declaracaoSe.condicao);
387
445
  texto += condicao;
388
446
  texto += `}`;
389
- const aresta = new ArestaFluxograma(declaracaoSe, texto);
447
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoSe, texto);
390
448
  let vertices = this.logicaComumConexaoArestas(aresta);
391
449
  this.anteriores.push(aresta);
392
450
  this.ultimaDicaVertice = 'Sim';
@@ -396,8 +454,8 @@ class TradutorMermaidJs {
396
454
  const ultimaArestaEntao = verticesEntao[verticesEntao.length - 1].destino;
397
455
  if (declaracaoSe.caminhoSenao) {
398
456
  this.anteriores = [];
399
- const arestaSenao = new ArestaFluxograma(declaracaoSe, `Linha${declaracaoSe.caminhoSenao.linha}(senão)`);
400
- vertices.push(new VerticeFluxograma(aresta, arestaSenao, 'Não'));
457
+ const arestaSenao = new mermaid_1.ArestaFluxograma(declaracaoSe, `Linha${declaracaoSe.caminhoSenao.linha}(senão)`);
458
+ vertices.push(new mermaid_1.VerticeFluxograma(aresta, arestaSenao, 'Não'));
401
459
  this.anteriores.push(arestaSenao);
402
460
  const verticesSenao = this.dicionarioDeclaracoes[declaracaoSe.caminhoSenao.constructor.name](declaracaoSe.caminhoSenao);
403
461
  vertices = vertices.concat(verticesSenao);
@@ -415,7 +473,7 @@ class TradutorMermaidJs {
415
473
  traduzirDeclaracaoVar(declaracaoVar) {
416
474
  let texto = `Linha${declaracaoVar.linha}(variável: ${declaracaoVar.simbolo.lexema}`;
417
475
  texto += this.logicaComumTraducaoVarEConst(declaracaoVar, texto);
418
- const aresta = new ArestaFluxograma(declaracaoVar, texto);
476
+ const aresta = new mermaid_1.ArestaFluxograma(declaracaoVar, texto);
419
477
  const vertices = this.logicaComumConexaoArestas(aresta);
420
478
  this.anteriores.push(aresta);
421
479
  return vertices;
@@ -424,9 +482,15 @@ class TradutorMermaidJs {
424
482
  this.anteriores = [];
425
483
  this.vertices = [];
426
484
  let resultado = 'graph TD;\n';
485
+ this.subgrafosFuncoes = [];
427
486
  for (const declaracao of declaracoes) {
428
487
  this.vertices = this.vertices.concat(this.dicionarioDeclaracoes[declaracao.constructor.name](declaracao));
429
488
  }
489
+ if (this.subgrafosFuncoes.length > 0) {
490
+ for (const sub of this.subgrafosFuncoes) {
491
+ resultado += sub;
492
+ }
493
+ }
430
494
  if (this.vertices.length === 0 && this.anteriores.length === 0) {
431
495
  resultado += ` Vazio;\n`;
432
496
  }
@@ -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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"}