@designliquido/delegua 0.69.0 → 0.70.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 (106) hide show
  1. package/analisador-semantico/analisador-semantico-base.d.ts +2 -1
  2. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.js +8 -0
  4. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  5. package/analisador-semantico/analisador-semantico.d.ts +4 -1
  6. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  7. package/analisador-semantico/analisador-semantico.js +82 -11
  8. package/analisador-semantico/analisador-semantico.js.map +1 -1
  9. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts +2 -1
  10. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  11. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +6 -0
  12. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  13. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  14. package/avaliador-sintatico/avaliador-sintatico.js +11 -4
  15. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  16. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts +1 -0
  17. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  18. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +34 -18
  19. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  20. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  21. package/bibliotecas/biblioteca-global.js +11 -2
  22. package/bibliotecas/biblioteca-global.js.map +1 -1
  23. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts.map +1 -1
  24. package/bibliotecas/dialetos/pitugues/biblioteca-global.js +26 -8
  25. package/bibliotecas/dialetos/pitugues/biblioteca-global.js.map +1 -1
  26. package/bin/package.json +2 -2
  27. package/construtos/index.d.ts +1 -0
  28. package/construtos/index.d.ts.map +1 -1
  29. package/construtos/index.js +1 -0
  30. package/construtos/index.js.map +1 -1
  31. package/construtos/tupla-n.d.ts +11 -0
  32. package/construtos/tupla-n.d.ts.map +1 -0
  33. package/construtos/tupla-n.js +26 -0
  34. package/construtos/tupla-n.js.map +1 -0
  35. package/formatadores/formatador-delegua.d.ts +2 -1
  36. package/formatadores/formatador-delegua.d.ts.map +1 -1
  37. package/formatadores/formatador-delegua.js +10 -0
  38. package/formatadores/formatador-delegua.js.map +1 -1
  39. package/formatadores/formatador-pitugues.d.ts +2 -1
  40. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  41. package/formatadores/formatador-pitugues.js +11 -0
  42. package/formatadores/formatador-pitugues.js.map +1 -1
  43. package/interfaces/visitante-comum-interface.d.ts +2 -1
  44. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  45. package/interpretador/comum.d.ts.map +1 -1
  46. package/interpretador/comum.js +1 -0
  47. package/interpretador/comum.js.map +1 -1
  48. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts +2 -1
  49. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  50. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +28 -0
  51. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  52. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts +2 -1
  53. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  54. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js +3 -0
  55. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  56. package/interpretador/dialetos/pitugues/comum.d.ts +2 -1
  57. package/interpretador/dialetos/pitugues/comum.d.ts.map +1 -1
  58. package/interpretador/dialetos/pitugues/comum.js +35 -9
  59. package/interpretador/dialetos/pitugues/comum.js.map +1 -1
  60. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts +5 -1
  61. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts.map +1 -1
  62. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js +35 -0
  63. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js.map +1 -1
  64. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +5 -1
  65. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
  66. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +35 -0
  67. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  68. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts +2 -1
  69. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  70. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js +4 -0
  71. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  72. package/interpretador/interpretador-base.d.ts +2 -1
  73. package/interpretador/interpretador-base.d.ts.map +1 -1
  74. package/interpretador/interpretador-base.js +3 -0
  75. package/interpretador/interpretador-base.js.map +1 -1
  76. package/interpretador/interpretador.d.ts +2 -1
  77. package/interpretador/interpretador.d.ts.map +1 -1
  78. package/interpretador/interpretador.js +3 -0
  79. package/interpretador/interpretador.js.map +1 -1
  80. package/lexador/palavras-reservadas.d.ts +12 -1
  81. package/lexador/palavras-reservadas.d.ts.map +1 -1
  82. package/lexador/palavras-reservadas.js +13 -2
  83. package/lexador/palavras-reservadas.js.map +1 -1
  84. package/package.json +2 -2
  85. package/tipos-de-dados/delegua.d.ts +2 -0
  86. package/tipos-de-dados/delegua.d.ts.map +1 -1
  87. package/tipos-de-dados/delegua.js +2 -0
  88. package/tipos-de-dados/delegua.js.map +1 -1
  89. package/tipos-de-simbolos/delegua.d.ts +0 -1
  90. package/tipos-de-simbolos/delegua.d.ts.map +1 -1
  91. package/tipos-de-simbolos/delegua.js +0 -1
  92. package/tipos-de-simbolos/delegua.js.map +1 -1
  93. package/tradutores/mermaid/index.d.ts +1 -0
  94. package/tradutores/mermaid/index.d.ts.map +1 -1
  95. package/tradutores/mermaid/index.js +1 -0
  96. package/tradutores/mermaid/index.js.map +1 -1
  97. package/tradutores/mermaid/subgrafo-funcao.d.ts +11 -0
  98. package/tradutores/mermaid/subgrafo-funcao.d.ts.map +1 -0
  99. package/tradutores/mermaid/subgrafo-funcao.js +14 -0
  100. package/tradutores/mermaid/subgrafo-funcao.js.map +1 -0
  101. package/tradutores/tradutor-assembly-x64.js +122 -122
  102. package/tradutores/tradutor-mermaidjs.d.ts +12 -3
  103. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  104. package/tradutores/tradutor-mermaidjs.js +25 -12
  105. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  106. package/umd/delegua.js +684 -555
@@ -1 +1 @@
1
- {"version":3,"file":"delegua.d.ts","sourceRoot":"","sources":["../../fontes/tipos-de-dados/delegua.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAyBE"}
1
+ {"version":3,"file":"delegua.d.ts","sourceRoot":"","sources":["../../fontes/tipos-de-dados/delegua.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBA2BE"}
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.default = {
4
4
  DICIONARIO: 'dicionario',
5
5
  DICIONÁRIO: 'dicionário',
6
+ FUNCAO: 'funcao',
7
+ FUNÇÃO: 'função',
6
8
  INTEIRO: 'inteiro',
7
9
  LOGICO: 'logico',
8
10
  LÓGICO: 'lógico',
@@ -1 +1 @@
1
- {"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/tipos-de-dados/delegua.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,WAAW;IAC1B,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,cAAc,EAAE,YAAY;IAC5B,WAAW,EAAE,SAAS;CACzB,CAAC"}
1
+ {"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/tipos-de-dados/delegua.ts"],"names":[],"mappings":";;AAAA,kBAAe;IACX,UAAU,EAAE,YAAY;IACxB,UAAU,EAAE,YAAY;IACxB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,QAAQ,EAAE,UAAU;IACpB,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,aAAa,EAAE,WAAW;IAC1B,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,YAAY,EAAE,UAAU;IACxB,cAAc,EAAE,YAAY;IAC5B,WAAW,EAAE,SAAS;CACzB,CAAC"}
@@ -75,7 +75,6 @@ declare const _default: {
75
75
  PARA: string;
76
76
  PARENTESE_DIREITO: string;
77
77
  PARENTESE_ESQUERDO: string;
78
- PAUSA: string;
79
78
  PEGUE: string;
80
79
  PONTO: string;
81
80
  PONTO_E_VIRGULA: string;
@@ -1 +1 @@
1
- {"version":3,"file":"delegua.d.ts","sourceRoot":"","sources":["../../fontes/tipos-de-simbolos/delegua.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAiGE"}
1
+ {"version":3,"file":"delegua.d.ts","sourceRoot":"","sources":["../../fontes/tipos-de-simbolos/delegua.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wBAgGE"}
@@ -77,7 +77,6 @@ exports.default = {
77
77
  PARA: 'PARA',
78
78
  PARENTESE_DIREITO: 'PARENTESE_DIREITO',
79
79
  PARENTESE_ESQUERDO: 'PARENTESE_ESQUERDO',
80
- PAUSA: 'PAUSA',
81
80
  PEGUE: 'PEGUE',
82
81
  PONTO: 'PONTO',
83
82
  PONTO_E_VIRGULA: 'PONTO_E_VIRGULA',
@@ -1 +1 @@
1
- {"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/tipos-de-simbolos/delegua.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delegua.js","sourceRoot":"","sources":["../../fontes/tipos-de-simbolos/delegua.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './aresta-fluxograma';
2
2
  export * from './diagrama-classe';
3
3
  export * from './subgrafo-classe';
4
+ export * from './subgrafo-funcao';
4
5
  export * from './vertice-fluxograma';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/tradutores/mermaid/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../fontes/tradutores/mermaid/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC"}
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./aresta-fluxograma"), exports);
18
18
  __exportStar(require("./diagrama-classe"), exports);
19
19
  __exportStar(require("./subgrafo-classe"), exports);
20
+ __exportStar(require("./subgrafo-funcao"), exports);
20
21
  __exportStar(require("./vertice-fluxograma"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/tradutores/mermaid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../fontes/tradutores/mermaid/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,oDAAkC;AAClC,oDAAkC;AAClC,oDAAkC;AAClC,uDAAqC"}
@@ -0,0 +1,11 @@
1
+ import { ArestaFluxograma } from "./aresta-fluxograma";
2
+ import { VerticeFluxograma } from "./vertice-fluxograma";
3
+ export declare class SubgrafoFuncao {
4
+ nomeClasse: string;
5
+ linhaDeclaracao: number;
6
+ vertices: VerticeFluxograma[];
7
+ arestaInicial: ArestaFluxograma;
8
+ arestaFinal: ArestaFluxograma;
9
+ constructor(nomeClasse: string, linhaDeclaracao: number, arestaInicial: ArestaFluxograma, arestaFinal: ArestaFluxograma);
10
+ }
11
+ //# sourceMappingURL=subgrafo-funcao.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgrafo-funcao.d.ts","sourceRoot":"","sources":["../../../fontes/tradutores/mermaid/subgrafo-funcao.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,qBAAa,cAAc;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,aAAa,EAAE,gBAAgB,CAAC;IAChC,WAAW,EAAE,gBAAgB,CAAC;gBAElB,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,WAAW,EAAE,gBAAgB;CAO1H"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubgrafoFuncao = void 0;
4
+ class SubgrafoFuncao {
5
+ constructor(nomeClasse, linhaDeclaracao, arestaInicial, arestaFinal) {
6
+ this.nomeClasse = nomeClasse;
7
+ this.linhaDeclaracao = linhaDeclaracao;
8
+ this.vertices = [];
9
+ this.arestaInicial = arestaInicial;
10
+ this.arestaFinal = arestaFinal;
11
+ }
12
+ }
13
+ exports.SubgrafoFuncao = SubgrafoFuncao;
14
+ //# sourceMappingURL=subgrafo-funcao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subgrafo-funcao.js","sourceRoot":"","sources":["../../../fontes/tradutores/mermaid/subgrafo-funcao.ts"],"names":[],"mappings":";;;AAGA,MAAa,cAAc;IAOvB,YAAY,UAAkB,EAAE,eAAuB,EAAE,aAA+B,EAAE,WAA6B;QACnH,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACnC,CAAC;CACJ;AAdD,wCAcC"}
@@ -54,13 +54,13 @@ class TradutorAssemblyX64 {
54
54
  Escreva: this.traduzirDeclaracaoEscreva.bind(this),
55
55
  };
56
56
  this.indentacao = 0;
57
- this.text = `
58
- section .text
59
- ${this.alvo === 'linux' ? 'global _start' : 'global main'}
57
+ this.text = `
58
+ section .text
59
+ ${this.alvo === 'linux' ? 'global _start' : 'global main'}
60
60
  ${this.alvo === 'linux' ? '_start:' : 'main:'}`;
61
61
  if (this.alvo === 'windows') {
62
- this.text = `
63
- extern printf
62
+ this.text = `
63
+ extern printf
64
64
  ` + this.text;
65
65
  }
66
66
  }
@@ -122,8 +122,8 @@ extern printf
122
122
  }
123
123
  const indice = this.dicionarioConstrutos[construto.indice.constructor.name](construto.indice);
124
124
  const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
125
- this.text += `
126
- mov rax, ${valor}
125
+ this.text += `
126
+ mov rax, ${valor}
127
127
  mov [${nomeVar} + ${indice} * 8], rax`;
128
128
  }
129
129
  traduzirConstrutoAtribuir(construto) {
@@ -142,8 +142,8 @@ extern printf
142
142
  this.bss += ` ${varLabel} resq 1\n`;
143
143
  this.variaveis.set(nomeVar, varLabel);
144
144
  }
145
- this.text += `
146
- mov rax, ${valor}
145
+ this.text += `
146
+ mov rax, ${valor}
147
147
  mov [${this.variaveis.get(nomeVar)}], rax`;
148
148
  }
149
149
  traduzirConstrutoBinario(construto) {
@@ -151,35 +151,35 @@ extern printf
151
151
  const direita = this.dicionarioConstrutos[construto.direita.constructor.name](construto.direita);
152
152
  const operador = construto.operador.lexema;
153
153
  const reg = this.obterRegistrador();
154
- this.text += `
155
- mov rax, ${esquerda}
154
+ this.text += `
155
+ mov rax, ${esquerda}
156
156
  mov ${reg}, ${direita}`;
157
157
  switch (operador) {
158
158
  case '+':
159
- this.text += `
159
+ this.text += `
160
160
  add rax, ${reg}`;
161
161
  break;
162
162
  case '-':
163
- this.text += `
163
+ this.text += `
164
164
  sub rax, ${reg}`;
165
165
  break;
166
166
  case '*':
167
- this.text += `
167
+ this.text += `
168
168
  imul rax, ${reg}`;
169
169
  break;
170
170
  case '/':
171
- this.text += `
172
- xor rdx, rdx
171
+ this.text += `
172
+ xor rdx, rdx
173
173
  idiv ${reg}`;
174
174
  break;
175
175
  case '%':
176
- this.text += `
177
- xor rdx, rdx
178
- idiv ${reg}
176
+ this.text += `
177
+ xor rdx, rdx
178
+ idiv ${reg}
179
179
  mov rax, rdx`;
180
180
  break;
181
181
  default:
182
- this.text += `
182
+ this.text += `
183
183
  ; Operador ${operador} não implementado`;
184
184
  }
185
185
  this.liberarRegistrador(reg);
@@ -198,28 +198,28 @@ extern printf
198
198
  construto.argumentos.forEach((arg, index) => {
199
199
  if (index < registrosArgs.length) {
200
200
  const valorArg = this.dicionarioConstrutos[arg.constructor.name](arg);
201
- this.text += `
201
+ this.text += `
202
202
  mov ${registrosArgs[index]}, ${valorArg}`;
203
203
  }
204
204
  else {
205
205
  // TODO: push extra args on stack according to target ABI
206
206
  }
207
207
  });
208
- this.text += `
208
+ this.text += `
209
209
  call ${nomeFuncao}`;
210
210
  }
211
211
  traduzirConstrutoDefinirValor(construto) {
212
212
  const objeto = this.dicionarioConstrutos[construto.objeto.constructor.name](construto.objeto);
213
213
  const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
214
- this.text += `
215
- mov rax, ${valor}
214
+ this.text += `
215
+ mov rax, ${valor}
216
216
  mov [${objeto}], rax`;
217
217
  }
218
218
  traduzirFuncaoConstruto(construto) {
219
219
  const labelFuncao = `func_${this.gerarDigitoAleatorio()}`;
220
- this.text += `
221
- ${labelFuncao}:
222
- push rbp
220
+ this.text += `
221
+ ${labelFuncao}:
222
+ push rbp
223
223
  mov rbp, rsp`;
224
224
  // Traduzir corpo da função
225
225
  if (construto.corpo && Array.isArray(construto.corpo)) {
@@ -229,8 +229,8 @@ ${labelFuncao}:
229
229
  }
230
230
  });
231
231
  }
232
- this.text += `
233
- pop rbp
232
+ this.text += `
233
+ pop rbp
234
234
  ret`;
235
235
  }
236
236
  traduzirConstrutoLiteral(construto) {
@@ -245,29 +245,29 @@ ${labelFuncao}:
245
245
  const operador = construto.operador.lexema;
246
246
  const labelVerdadeiro = this.gerarLabel();
247
247
  const labelFim = this.gerarLabel();
248
- this.text += `
249
- mov rax, ${esquerda}
248
+ this.text += `
249
+ mov rax, ${esquerda}
250
250
  cmp rax, 0`;
251
251
  if (operador === 'e' || operador === '&&') {
252
- this.text += `
253
- je ${labelFim}
254
- mov rax, ${direita}
255
- cmp rax, 0
256
- je ${labelFim}
257
- ${labelVerdadeiro}:
258
- mov rax, 1
252
+ this.text += `
253
+ je ${labelFim}
254
+ mov rax, ${direita}
255
+ cmp rax, 0
256
+ je ${labelFim}
257
+ ${labelVerdadeiro}:
258
+ mov rax, 1
259
259
  ${labelFim}:`;
260
260
  }
261
261
  else if (operador === 'ou' || operador === '||') {
262
- this.text += `
263
- jne ${labelVerdadeiro}
264
- mov rax, ${direita}
265
- cmp rax, 0
266
- jne ${labelVerdadeiro}
267
- mov rax, 0
268
- jmp ${labelFim}
269
- ${labelVerdadeiro}:
270
- mov rax, 1
262
+ this.text += `
263
+ jne ${labelVerdadeiro}
264
+ mov rax, ${direita}
265
+ cmp rax, 0
266
+ jne ${labelVerdadeiro}
267
+ mov rax, 0
268
+ jmp ${labelFim}
269
+ ${labelVerdadeiro}:
270
+ mov rax, 1
271
271
  ${labelFim}:`;
272
272
  }
273
273
  return 'rax';
@@ -280,16 +280,16 @@ ${labelFim}:`;
280
280
  traduzirConstrutoUnario(construto) {
281
281
  const operando = this.dicionarioConstrutos[construto.operando.constructor.name](construto.operando);
282
282
  const operador = construto.operador.lexema;
283
- this.text += `
283
+ this.text += `
284
284
  mov rax, ${operando}`;
285
285
  if (operador === '-') {
286
- this.text += `
286
+ this.text += `
287
287
  neg rax`;
288
288
  }
289
289
  else if (operador === '!' || operador === 'nao') {
290
- this.text += `
291
- cmp rax, 0
292
- sete al
290
+ this.text += `
291
+ cmp rax, 0
292
+ sete al
293
293
  movzx rax, al`;
294
294
  }
295
295
  return 'rax';
@@ -311,8 +311,8 @@ ${labelFim}:`;
311
311
  construto.valores.forEach((valor, index) => {
312
312
  if (this.dicionarioConstrutos[valor.constructor.name]) {
313
313
  const valorTraduzido = this.dicionarioConstrutos[valor.constructor.name](valor);
314
- this.text += `
315
- mov rax, ${valorTraduzido}
314
+ this.text += `
315
+ mov rax, ${valorTraduzido}
316
316
  mov [${labelVetor} + ${index * 8}], rax`;
317
317
  }
318
318
  });
@@ -332,17 +332,17 @@ ${labelFim}:`;
332
332
  traduzirDeclaracaoEnquanto(declaracao) {
333
333
  const labelInicio = this.gerarLabel();
334
334
  const labelFim = this.gerarLabel();
335
- this.text += `
335
+ this.text += `
336
336
  ${labelInicio}:`;
337
337
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
338
- this.text += `
339
- cmp ${condicao}, 0
338
+ this.text += `
339
+ cmp ${condicao}, 0
340
340
  je ${labelFim}`;
341
341
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
342
342
  this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
343
343
  }
344
- this.text += `
345
- jmp ${labelInicio}
344
+ this.text += `
345
+ jmp ${labelInicio}
346
346
  ${labelFim}:`;
347
347
  }
348
348
  traduzirDeclaracaoEscolha(declaracao) {
@@ -353,9 +353,9 @@ ${labelFim}:`;
353
353
  const labelProximo = this.gerarLabel();
354
354
  if (caminho.condicoes && caminho.condicoes[0]) {
355
355
  const valorCaso = this.dicionarioConstrutos[caminho.condicoes[0].constructor.name](caminho.condicoes[0]);
356
- this.text += `
357
- mov rax, ${valorEscolha}
358
- cmp rax, ${valorCaso}
356
+ this.text += `
357
+ mov rax, ${valorEscolha}
358
+ cmp rax, ${valorCaso}
359
359
  jne ${labelProximo}`;
360
360
  if (caminho.declaracoes && Array.isArray(caminho.declaracoes)) {
361
361
  caminho.declaracoes.forEach((decl) => {
@@ -364,13 +364,13 @@ ${labelFim}:`;
364
364
  }
365
365
  });
366
366
  }
367
- this.text += `
368
- jmp ${labelFim}
367
+ this.text += `
368
+ jmp ${labelFim}
369
369
  ${labelProximo}:`;
370
370
  }
371
371
  });
372
372
  }
373
- this.text += `
373
+ this.text += `
374
374
  ${labelFim}:`;
375
375
  }
376
376
  traduzirDeclaracaoExpressao(declaracao) {
@@ -380,7 +380,7 @@ ${labelFim}:`;
380
380
  }
381
381
  traduzirDeclaracaoFazer(declaracao) {
382
382
  const labelInicio = this.gerarLabel();
383
- this.text += `
383
+ this.text += `
384
384
  ${labelInicio}:`;
385
385
  // Em Delégua, fazer-enquanto tem caminhoFazer que é um Bloco
386
386
  if (declaracao.caminhoFazer && declaracao.caminhoFazer.declaracoes) {
@@ -392,8 +392,8 @@ ${labelInicio}:`;
392
392
  }
393
393
  if (declaracao.condicaoEnquanto) {
394
394
  const condicao = this.dicionarioConstrutos[declaracao.condicaoEnquanto.constructor.name](declaracao.condicaoEnquanto);
395
- this.text += `
396
- cmp ${condicao}, 0
395
+ this.text += `
396
+ cmp ${condicao}, 0
397
397
  jne ${labelInicio}`;
398
398
  }
399
399
  }
@@ -406,25 +406,25 @@ ${labelInicio}:`;
406
406
  }
407
407
  }
408
408
  if (this.alvo === 'linux') {
409
- this.text += `
410
- ; Falhar com mensagem: ${mensagem}
411
- mov eax, 1
412
- mov ebx, 1
409
+ this.text += `
410
+ ; Falhar com mensagem: ${mensagem}
411
+ mov eax, 1
412
+ mov ebx, 1
413
413
  int 0x80`;
414
414
  }
415
415
  else {
416
- this.text += `
417
- ; Falhar com mensagem: ${mensagem}
418
- mov eax, 1
416
+ this.text += `
417
+ ; Falhar com mensagem: ${mensagem}
418
+ mov eax, 1
419
419
  ret`;
420
420
  }
421
421
  }
422
422
  traduzirDeclaracaoFuncao(declaracao) {
423
423
  var _a;
424
424
  const nomeFuncao = ((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'funcao';
425
- this.text += `
426
- ${nomeFuncao}:
427
- push rbp
425
+ this.text += `
426
+ ${nomeFuncao}:
427
+ push rbp
428
428
  mov rbp, rsp`;
429
429
  if (declaracao.funcao && declaracao.funcao.corpo && Array.isArray(declaracao.funcao.corpo)) {
430
430
  declaracao.funcao.corpo.forEach((decl) => {
@@ -433,13 +433,13 @@ ${nomeFuncao}:
433
433
  }
434
434
  });
435
435
  }
436
- this.text += `
437
- pop rbp
436
+ this.text += `
437
+ pop rbp
438
438
  ret`;
439
439
  }
440
440
  traduzirDeclaracaoImportar(declaracao) {
441
441
  // Importação é tratada em tempo de linkagem
442
- this.text += `
442
+ this.text += `
443
443
  ; Importar: ${declaracao.caminho || 'unknown'}`;
444
444
  }
445
445
  traduzirDeclaracaoLeia(declaracao) {
@@ -455,11 +455,11 @@ ${nomeFuncao}:
455
455
  this.bss += ` ${varLabel} resb 256\n`;
456
456
  this.variaveis.set(nomeVar, varLabel);
457
457
  }
458
- this.text += `
459
- mov eax, 3
460
- mov ebx, 0
461
- mov ecx, ${this.variaveis.get(nomeVar)}
462
- mov edx, 256
458
+ this.text += `
459
+ mov eax, 3
460
+ mov ebx, 0
461
+ mov ecx, ${this.variaveis.get(nomeVar)}
462
+ mov edx, 256
463
463
  int 0x80`;
464
464
  }
465
465
  traduzirDeclaracaoPara(declaracao) {
@@ -475,12 +475,12 @@ ${nomeFuncao}:
475
475
  this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
476
476
  }
477
477
  }
478
- this.text += `
478
+ this.text += `
479
479
  ${labelInicio}:`;
480
480
  if (declaracao.condicao) {
481
481
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
482
- this.text += `
483
- cmp ${condicao}, 0
482
+ this.text += `
483
+ cmp ${condicao}, 0
484
484
  je ${labelFim}`;
485
485
  }
486
486
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
@@ -491,8 +491,8 @@ ${labelInicio}:`;
491
491
  this.dicionarioConstrutos[declaracao.incrementar.constructor.name](declaracao.incrementar);
492
492
  }
493
493
  }
494
- this.text += `
495
- jmp ${labelInicio}
494
+ this.text += `
495
+ jmp ${labelInicio}
496
496
  ${labelFim}:`;
497
497
  }
498
498
  traduzirDeclaracaoParaCada(declaracao) {
@@ -508,57 +508,57 @@ ${labelFim}:`;
508
508
  if (vetor instanceof construtos_1.Vetor) {
509
509
  tamanhoVetor = vetor.tamanho || 0;
510
510
  }
511
- this.text += `
512
- xor rcx, rcx
513
- ${labelInicio}:
514
- cmp rcx, ${tamanhoVetor}
511
+ this.text += `
512
+ xor rcx, rcx
513
+ ${labelInicio}:
514
+ cmp rcx, ${tamanhoVetor}
515
515
  jge ${labelFim}`;
516
516
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
517
517
  this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
518
518
  }
519
- this.text += `
520
- inc rcx
521
- jmp ${labelInicio}
519
+ this.text += `
520
+ inc rcx
521
+ jmp ${labelInicio}
522
522
  ${labelFim}:`;
523
523
  }
524
524
  traduzirDeclaracaoRetorna(declaracao) {
525
525
  if (declaracao.valor) {
526
526
  const valor = this.dicionarioConstrutos[declaracao.valor.constructor.name](declaracao.valor);
527
- this.text += `
527
+ this.text += `
528
528
  mov rax, ${valor}`;
529
529
  }
530
- this.text += `
531
- pop rbp
530
+ this.text += `
531
+ pop rbp
532
532
  ret`;
533
533
  }
534
534
  traduzirDeclaracaoSe(declaracao) {
535
535
  const labelSenao = this.gerarLabel();
536
536
  const labelFim = this.gerarLabel();
537
537
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
538
- this.text += `
539
- cmp ${condicao}, 0
538
+ this.text += `
539
+ cmp ${condicao}, 0
540
540
  je ${labelSenao}`;
541
541
  if (this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name]) {
542
542
  this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name](declaracao.caminhoEntao);
543
543
  }
544
- this.text += `
545
- jmp ${labelFim}
544
+ this.text += `
545
+ jmp ${labelFim}
546
546
  ${labelSenao}:`;
547
547
  if (declaracao.caminhoSenao && this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name]) {
548
548
  this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name](declaracao.caminhoSenao);
549
549
  }
550
- this.text += `
550
+ this.text += `
551
551
  ${labelFim}:`;
552
552
  }
553
553
  traduzirDeclaracaoClasse(declaracao) {
554
554
  var _a;
555
555
  // Classes em assembly são complexas - implementação básica
556
- this.text += `
556
+ this.text += `
557
557
  ; Classe: ${((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'unknown'}`;
558
558
  }
559
559
  traduzirDeclaracaoTente(declaracao) {
560
560
  // Try-catch em assembly requer handler complexo
561
- this.text += `
561
+ this.text += `
562
562
  ; Tente-pegue`;
563
563
  if (declaracao.caminhoTente && Array.isArray(declaracao.caminhoTente)) {
564
564
  declaracao.caminhoTente.forEach((decl) => {
@@ -597,8 +597,8 @@ ${labelFim}:`;
597
597
  }
598
598
  else if (this.dicionarioConstrutos[tipoInicializador]) {
599
599
  const valor = this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
600
- this.text += `
601
- mov rax, ${valor}
600
+ this.text += `
601
+ mov rax, ${valor}
602
602
  mov [${varLabel}], rax`;
603
603
  }
604
604
  }
@@ -621,32 +621,32 @@ ${labelFim}:`;
621
621
  tam_string_literal = this.criaTamanhoNaMemoriaReferenteAVar(nome_string_literal);
622
622
  }
623
623
  if (this.alvo === 'linux') {
624
- this.text += `
625
- mov edx, ${tam_string_literal}
626
- mov ecx, ${nome_string_literal}
627
- mov ebx, 1 ; fd stdout
628
- mov eax, 4 ; sys_write
624
+ this.text += `
625
+ mov edx, ${tam_string_literal}
626
+ mov ecx, ${nome_string_literal}
627
+ mov ebx, 1 ; fd stdout
628
+ mov eax, 4 ; sys_write
629
629
  int 0x80`;
630
630
  }
631
631
  else {
632
632
  // Windows: prototype `extern printf` and follow Win64 calling convention
633
633
  // RCX = format pointer; here we use the literal directly as a C string
634
- this.text += `
635
- lea rcx, [rel ${nome_string_literal}]
634
+ this.text += `
635
+ lea rcx, [rel ${nome_string_literal}]
636
636
  call printf`;
637
637
  }
638
638
  }
639
639
  saidaSistema() {
640
640
  if (this.alvo === 'linux') {
641
- this.text += `
642
- mov eax, 1 ; sys_exit
643
- xor ebx, ebx ; status 0
641
+ this.text += `
642
+ mov eax, 1 ; sys_exit
643
+ xor ebx, ebx ; status 0
644
644
  int 0x80`;
645
645
  }
646
646
  else {
647
647
  // Windows: return from main with 0 in EAX
648
- this.text += `
649
- xor eax, eax
648
+ this.text += `
649
+ xor eax, eax
650
650
  ret`;
651
651
  }
652
652
  }
@@ -1,7 +1,7 @@
1
1
  import { AcessoIndiceVariavel, AcessoMetodo, AcessoMetodoOuPropriedade, AcessoPropriedade, Agrupamento, Atribuir, Binario, Chamada, DefinirValor, Dicionario, FuncaoConstruto, Leia, Literal, Separador, Unario, Variavel, Vetor } from '../construtos';
2
2
  import { Bloco, Classe, Const, Declaracao, Enquanto, Escolha, Escreva, Expressao, Fazer, FuncaoDeclaracao, Para, ParaCada, Se, Var } from '../declaracoes';
3
3
  import { CaminhoEscolha, TradutorInterface } from '../interfaces';
4
- import { ArestaFluxograma, DiagramaClasse, VerticeFluxograma } from './mermaid';
4
+ import { ArestaFluxograma, DiagramaClasse, SubgrafoFuncao, VerticeFluxograma } from './mermaid';
5
5
  /**
6
6
  * [MermaidJs](https://mermaid.js.org/) é uma especificação que nos permite
7
7
  * criar fluxogramas através de uma notação por texto.
@@ -18,8 +18,11 @@ export declare class TradutorMermaidJs implements TradutorInterface<Declaracao>
18
18
  anteriores: ArestaFluxograma[];
19
19
  vertices: VerticeFluxograma[];
20
20
  ultimaDicaVertice: string | undefined;
21
- diagramasClasses: DiagramaClasse[];
22
- subgrafosFuncoes: string[];
21
+ classes: DiagramaClasse[];
22
+ subgrafosFuncoes: {
23
+ [nome: string]: SubgrafoFuncao;
24
+ };
25
+ indentacaoAtual: number;
23
26
  traduzirConstrutoAcessoIndiceVariavel(acessoIndiceVariavel: AcessoIndiceVariavel): string;
24
27
  traduzirConstrutoAcessoMetodo(acessoMetodo: AcessoMetodo): string;
25
28
  traduzirConstrutoAcessoMetodoOuPropriedade(acessoMetodoOuPropriedade: AcessoMetodoOuPropriedade): string;
@@ -93,6 +96,12 @@ export declare class TradutorMermaidJs implements TradutorInterface<Declaracao>
93
96
  Se: any;
94
97
  Var: any;
95
98
  };
99
+ /**
100
+ * Ponto de entrada para a tradução de declarações em um fluxograma
101
+ * no formato MermaidJs.
102
+ * @param {Declaracao[]} declaracoes As declarações a serem traduzidas.
103
+ * @returns {string} Texto no formato MermaidJs representando o fluxograma.
104
+ */
96
105
  traduzir(declaracoes: Declaracao[]): string;
97
106
  }
98
107
  //# sourceMappingURL=tradutor-mermaidjs.d.ts.map