@designliquido/delegua 1.11.0 → 1.12.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 (242) hide show
  1. package/analisador-semantico/analisador-semantico-base.d.ts +2 -2
  2. package/analisador-semantico/analisador-semantico-base.d.ts.map +1 -1
  3. package/analisador-semantico/analisador-semantico-base.js +14 -6
  4. package/analisador-semantico/analisador-semantico-base.js.map +1 -1
  5. package/analisador-semantico/analisador-semantico.d.ts.map +1 -1
  6. package/analisador-semantico/analisador-semantico.js +38 -19
  7. package/analisador-semantico/analisador-semantico.js.map +1 -1
  8. package/analisador-semantico/dialetos/analisador-semantico-pitugues.d.ts.map +1 -1
  9. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js +41 -18
  10. package/analisador-semantico/dialetos/analisador-semantico-pitugues.js.map +1 -1
  11. package/analisador-semantico/funcao-hipotetica-interface.d.ts +1 -1
  12. package/analisador-semantico/gerenciador-escopos.d.ts +1 -1
  13. package/analisador-semantico/pilha-variaveis.d.ts.map +1 -1
  14. package/avaliador-sintatico/avaliador-sintatico-base.d.ts.map +1 -1
  15. package/avaliador-sintatico/avaliador-sintatico-base.js.map +1 -1
  16. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  17. package/avaliador-sintatico/avaliador-sintatico.js +99 -42
  18. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  19. package/avaliador-sintatico/comum.d.ts.map +1 -1
  20. package/avaliador-sintatico/comum.js.map +1 -1
  21. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.d.ts.map +1 -1
  22. package/avaliador-sintatico/dialetos/avaliador-sintatico-calango.js.map +1 -1
  23. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.d.ts.map +1 -1
  24. package/avaliador-sintatico/dialetos/avaliador-sintatico-egua-classico.js.map +1 -1
  25. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.d.ts.map +1 -1
  26. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js +1 -1
  27. package/avaliador-sintatico/dialetos/avaliador-sintatico-guarani.js.map +1 -1
  28. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.d.ts.map +1 -1
  29. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js +91 -96
  30. package/avaliador-sintatico/dialetos/avaliador-sintatico-pitugues.js.map +1 -1
  31. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.d.ts.map +1 -1
  32. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js +4 -4
  33. package/avaliador-sintatico/dialetos/avaliador-sintatico-prisma.js.map +1 -1
  34. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.d.ts.map +1 -1
  35. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js +1 -1
  36. package/avaliador-sintatico/dialetos/avaliador-sintatico-tenda.js.map +1 -1
  37. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.d.ts.map +1 -1
  38. package/avaliador-sintatico/dialetos/micro-avaliador-sintatico-pitugues.js.map +1 -1
  39. package/avaliador-sintatico/erro-avaliador-sintatico.d.ts +18 -0
  40. package/avaliador-sintatico/erro-avaliador-sintatico.d.ts.map +1 -1
  41. package/avaliador-sintatico/erro-avaliador-sintatico.js.map +1 -1
  42. package/avaliador-sintatico/micro-avaliador-sintatico.d.ts.map +1 -1
  43. package/avaliador-sintatico/micro-avaliador-sintatico.js.map +1 -1
  44. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.d.ts.map +1 -1
  45. package/avaliador-sintatico/traducao/avaliador-sintatico-javascript.js.map +1 -1
  46. package/bibliotecas/biblioteca-global.d.ts.map +1 -1
  47. package/bibliotecas/biblioteca-global.js +93 -31
  48. package/bibliotecas/biblioteca-global.js.map +1 -1
  49. package/bibliotecas/dialetos/pitugues/biblioteca-global.d.ts.map +1 -1
  50. package/bibliotecas/dialetos/pitugues/biblioteca-global.js +12 -8
  51. package/bibliotecas/dialetos/pitugues/biblioteca-global.js.map +1 -1
  52. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.d.ts.map +1 -1
  53. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.js.map +1 -1
  54. package/bibliotecas/dialetos/pitugues/primitivas-numero.d.ts.map +1 -1
  55. package/bibliotecas/dialetos/pitugues/primitivas-numero.js.map +1 -1
  56. package/bibliotecas/dialetos/pitugues/primitivas-texto.d.ts.map +1 -1
  57. package/bibliotecas/dialetos/pitugues/primitivas-texto.js.map +1 -1
  58. package/bibliotecas/dialetos/pitugues/primitivas-tupla.d.ts.map +1 -1
  59. package/bibliotecas/dialetos/pitugues/primitivas-tupla.js +3 -4
  60. package/bibliotecas/dialetos/pitugues/primitivas-tupla.js.map +1 -1
  61. package/bibliotecas/dialetos/pitugues/primitivas-vetor.d.ts.map +1 -1
  62. package/bibliotecas/dialetos/pitugues/primitivas-vetor.js +9 -11
  63. package/bibliotecas/dialetos/pitugues/primitivas-vetor.js.map +1 -1
  64. package/bibliotecas/primitivas-dicionario.d.ts.map +1 -1
  65. package/bibliotecas/primitivas-dicionario.js +1 -1
  66. package/bibliotecas/primitivas-dicionario.js.map +1 -1
  67. package/bibliotecas/primitivas-numero.d.ts.map +1 -1
  68. package/bibliotecas/primitivas-numero.js.map +1 -1
  69. package/bibliotecas/primitivas-texto.d.ts.map +1 -1
  70. package/bibliotecas/primitivas-texto.js +1 -1
  71. package/bibliotecas/primitivas-texto.js.map +1 -1
  72. package/bibliotecas/primitivas-tupla.d.ts.map +1 -1
  73. package/bibliotecas/primitivas-tupla.js +34 -14
  74. package/bibliotecas/primitivas-tupla.js.map +1 -1
  75. package/bibliotecas/primitivas-vetor.d.ts.map +1 -1
  76. package/bibliotecas/primitivas-vetor.js +1 -1
  77. package/bibliotecas/primitivas-vetor.js.map +1 -1
  78. package/bin/package.json +1 -1
  79. package/construtos/ajuda-como-construto.d.ts +2 -2
  80. package/construtos/ajuda-como-construto.js +1 -1
  81. package/construtos/atribuir.d.ts.map +1 -1
  82. package/construtos/atribuir.js +5 -2
  83. package/construtos/atribuir.js.map +1 -1
  84. package/construtos/binario.d.ts.map +1 -1
  85. package/construtos/binario.js +1 -2
  86. package/construtos/binario.js.map +1 -1
  87. package/construtos/comentario-como-construto.d.ts.map +1 -1
  88. package/construtos/comentario-como-construto.js.map +1 -1
  89. package/construtos/decorador.d.ts.map +1 -1
  90. package/construtos/decorador.js +3 -1
  91. package/construtos/decorador.js.map +1 -1
  92. package/construtos/dicionario.d.ts.map +1 -1
  93. package/construtos/dicionario.js.map +1 -1
  94. package/construtos/tupla-n.d.ts +3 -3
  95. package/construtos/tupla-n.d.ts.map +1 -1
  96. package/construtos/tupla-n.js +4 -2
  97. package/construtos/tupla-n.js.map +1 -1
  98. package/declaracoes/ajuda.d.ts +3 -3
  99. package/declaracoes/funcao.d.ts +2 -1
  100. package/declaracoes/funcao.d.ts.map +1 -1
  101. package/declaracoes/funcao.js +2 -1
  102. package/declaracoes/funcao.js.map +1 -1
  103. package/declaracoes/interface.d.ts.map +1 -1
  104. package/declaracoes/interface.js.map +1 -1
  105. package/declaracoes/texto-documentacao.d.ts.map +1 -1
  106. package/declaracoes/texto-documentacao.js.map +1 -1
  107. package/estilizador/estilizador-delegua.d.ts.map +1 -1
  108. package/estilizador/estilizador-delegua.js +5 -1
  109. package/estilizador/estilizador-delegua.js.map +1 -1
  110. package/formatadores/formatador-delegua.d.ts.map +1 -1
  111. package/formatadores/formatador-delegua.js.map +1 -1
  112. package/formatadores/formatador-pitugues.d.ts.map +1 -1
  113. package/formatadores/formatador-pitugues.js +74 -29
  114. package/formatadores/formatador-pitugues.js.map +1 -1
  115. package/geracao-identificadores/index.js +2 -2
  116. package/geracao-identificadores/index.js.map +1 -1
  117. package/interfaces/componente-modulo-classe-interface.d.ts.map +1 -1
  118. package/interfaces/componente-modulo-funcao-interface.d.ts.map +1 -1
  119. package/interfaces/interpretador-com-depuracao-interface.d.ts.map +1 -1
  120. package/interfaces/modulo-interface.d.ts +2 -2
  121. package/interfaces/modulo-interface.d.ts.map +1 -1
  122. package/interfaces/visitante-comum-interface.d.ts.map +1 -1
  123. package/interpretador/comum.d.ts.map +1 -1
  124. package/interpretador/comum.js +55 -55
  125. package/interpretador/comum.js.map +1 -1
  126. package/interpretador/depuracao/avaliador-expressao-depuracao.d.ts.map +1 -1
  127. package/interpretador/depuracao/avaliador-expressao-depuracao.js.map +1 -1
  128. package/interpretador/depuracao/comum.d.ts.map +1 -1
  129. package/interpretador/depuracao/comum.js +8 -4
  130. package/interpretador/depuracao/comum.js.map +1 -1
  131. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.d.ts.map +1 -1
  132. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js +1 -3
  133. package/interpretador/dialetos/egua-classico/interpretador-egua-classico.js.map +1 -1
  134. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.d.ts.map +1 -1
  135. package/interpretador/dialetos/egua-classico/resolvedor/resolvedor.js.map +1 -1
  136. package/interpretador/dialetos/pitugues/comum.d.ts +2 -2
  137. package/interpretador/dialetos/pitugues/comum.d.ts.map +1 -1
  138. package/interpretador/dialetos/pitugues/comum.js +2 -3
  139. package/interpretador/dialetos/pitugues/comum.js.map +1 -1
  140. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts +2 -2
  141. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.d.ts.map +1 -1
  142. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js +1 -1
  143. package/interpretador/dialetos/pitugues/interpretador-pitugues-com-depuracao.js.map +1 -1
  144. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts +3 -3
  145. package/interpretador/dialetos/pitugues/interpretador-pitugues.d.ts.map +1 -1
  146. package/interpretador/dialetos/pitugues/interpretador-pitugues.js +3 -2
  147. package/interpretador/dialetos/pitugues/interpretador-pitugues.js.map +1 -1
  148. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.d.ts.map +1 -1
  149. package/interpretador/dialetos/portugol-ipt/interpretador-portugol-ipt.js.map +1 -1
  150. package/interpretador/estruturas/classe-de-modulo.d.ts.map +1 -1
  151. package/interpretador/estruturas/delegua-funcao.d.ts.map +1 -1
  152. package/interpretador/estruturas/delegua-funcao.js +3 -1
  153. package/interpretador/estruturas/delegua-funcao.js.map +1 -1
  154. package/interpretador/estruturas/descritor-tipo-classe.d.ts.map +1 -1
  155. package/interpretador/estruturas/descritor-tipo-classe.js +6 -6
  156. package/interpretador/estruturas/descritor-tipo-classe.js.map +1 -1
  157. package/interpretador/estruturas/metodo-polimorfico.d.ts.map +1 -1
  158. package/interpretador/estruturas/metodo-polimorfico.js +13 -9
  159. package/interpretador/estruturas/metodo-polimorfico.js.map +1 -1
  160. package/interpretador/estruturas/metodo-primitiva.d.ts.map +1 -1
  161. package/interpretador/estruturas/metodo-primitiva.js.map +1 -1
  162. package/interpretador/estruturas/objeto-base.d.ts.map +1 -1
  163. package/interpretador/estruturas/objeto-base.js.map +1 -1
  164. package/interpretador/estruturas/objeto-delegua-classe.d.ts.map +1 -1
  165. package/interpretador/estruturas/objeto-delegua-classe.js +10 -6
  166. package/interpretador/estruturas/objeto-delegua-classe.js.map +1 -1
  167. package/interpretador/interpretador-base.d.ts +4 -4
  168. package/interpretador/interpretador-base.d.ts.map +1 -1
  169. package/interpretador/interpretador-base.js +123 -54
  170. package/interpretador/interpretador-base.js.map +1 -1
  171. package/interpretador/interpretador.d.ts.map +1 -1
  172. package/interpretador/interpretador.js +28 -17
  173. package/interpretador/interpretador.js.map +1 -1
  174. package/interpretador/pilha-escopos-execucao.d.ts.map +1 -1
  175. package/interpretador/pilha-escopos-execucao.js.map +1 -1
  176. package/lexador/dialetos/lexador-calango.d.ts.map +1 -1
  177. package/lexador/dialetos/lexador-calango.js.map +1 -1
  178. package/lexador/dialetos/lexador-egua-classico.d.ts.map +1 -1
  179. package/lexador/dialetos/lexador-egua-classico.js.map +1 -1
  180. package/lexador/dialetos/lexador-pitugues.d.ts.map +1 -1
  181. package/lexador/dialetos/lexador-pitugues.js +21 -13
  182. package/lexador/dialetos/lexador-pitugues.js.map +1 -1
  183. package/lexador/dialetos/lexador-portugol-ipt.d.ts.map +1 -1
  184. package/lexador/dialetos/lexador-portugol-ipt.js.map +1 -1
  185. package/lexador/dialetos/lexador-prisma.d.ts.map +1 -1
  186. package/lexador/dialetos/lexador-prisma.js +25 -3
  187. package/lexador/dialetos/lexador-prisma.js.map +1 -1
  188. package/lexador/dialetos/lexador-tenda.d.ts.map +1 -1
  189. package/lexador/dialetos/lexador-tenda.js.map +1 -1
  190. package/lexador/filtro-paradigma.d.ts.map +1 -1
  191. package/lexador/filtro-paradigma.js.map +1 -1
  192. package/lexador/lexador-base-linha-unica.d.ts.map +1 -1
  193. package/lexador/lexador-base-linha-unica.js.map +1 -1
  194. package/lexador/lexador-base.d.ts.map +1 -1
  195. package/lexador/lexador-base.js.map +1 -1
  196. package/lexador/lexador.d.ts.map +1 -1
  197. package/lexador/lexador.js.map +1 -1
  198. package/lexador/mapeamento-paradigmas.d.ts.map +1 -1
  199. package/lexador/mapeamento-paradigmas.js.map +1 -1
  200. package/lexador/palavras-reservadas.js +2 -2
  201. package/lexador/palavras-reservadas.js.map +1 -1
  202. package/lexador/simbolo.d.ts.map +1 -1
  203. package/lexador/simbolo.js.map +1 -1
  204. package/lexador/traducao/lexador-javascript.d.ts.map +1 -1
  205. package/package.json +1 -1
  206. package/tradutores/mermaid/aresta-fluxograma.d.ts +1 -1
  207. package/tradutores/mermaid/subgrafo-classe.d.ts +3 -3
  208. package/tradutores/mermaid/subgrafo-funcao.d.ts +2 -2
  209. package/tradutores/mermaid/subgrafo-funcao.d.ts.map +1 -1
  210. package/tradutores/mermaid/subgrafo-funcao.js.map +1 -1
  211. package/tradutores/mermaid/subgrafo-metodo.d.ts +2 -2
  212. package/tradutores/mermaid/vertice-fluxograma.d.ts +1 -1
  213. package/tradutores/tradutor-assembly-arm.d.ts.map +1 -1
  214. package/tradutores/tradutor-assembly-arm.js +164 -156
  215. package/tradutores/tradutor-assembly-arm.js.map +1 -1
  216. package/tradutores/tradutor-assembly-x64.d.ts.map +1 -1
  217. package/tradutores/tradutor-assembly-x64.js +136 -127
  218. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  219. package/tradutores/tradutor-assemblyscript.d.ts.map +1 -1
  220. package/tradutores/tradutor-assemblyscript.js +10 -6
  221. package/tradutores/tradutor-assemblyscript.js.map +1 -1
  222. package/tradutores/tradutor-calango.d.ts.map +1 -1
  223. package/tradutores/tradutor-calango.js.map +1 -1
  224. package/tradutores/tradutor-elixir.d.ts.map +1 -1
  225. package/tradutores/tradutor-elixir.js +9 -7
  226. package/tradutores/tradutor-elixir.js.map +1 -1
  227. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  228. package/tradutores/tradutor-javascript.js +2 -1
  229. package/tradutores/tradutor-javascript.js.map +1 -1
  230. package/tradutores/tradutor-mermaidjs.d.ts.map +1 -1
  231. package/tradutores/tradutor-mermaidjs.js +4 -8
  232. package/tradutores/tradutor-mermaidjs.js.map +1 -1
  233. package/tradutores/tradutor-portugol-ipt.d.ts.map +1 -1
  234. package/tradutores/tradutor-portugol-ipt.js.map +1 -1
  235. package/tradutores/tradutor-python.d.ts.map +1 -1
  236. package/tradutores/tradutor-python.js +1 -1
  237. package/tradutores/tradutor-python.js.map +1 -1
  238. package/tradutores/tradutor-reverso-javascript.d.ts.map +1 -1
  239. package/tradutores/tradutor-ruby.d.ts.map +1 -1
  240. package/tradutores/tradutor-ruby.js +1 -1
  241. package/tradutores/tradutor-ruby.js.map +1 -1
  242. package/umd/delegua.js +1056 -720
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-assembly-arm.js","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-assembly-arm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-assembly-arm.js","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-assembly-arm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tradutor-assembly-x64.d.ts","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-assembly-x64.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tradutor-assembly-x64.d.ts","sourceRoot":"","sources":["../../fontes/tradutores/tradutor-assembly-x64.ts"],"names":[],"mappings":"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"}
@@ -54,13 +54,14 @@ 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
+ `
64
+ extern printf
64
65
  ` + this.text;
65
66
  }
66
67
  }
@@ -122,8 +123,8 @@ extern printf
122
123
  }
123
124
  const indice = this.dicionarioConstrutos[construto.indice.constructor.name](construto.indice);
124
125
  const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
125
- this.text += `
126
- mov rax, ${valor}
126
+ this.text += `
127
+ mov rax, ${valor}
127
128
  mov [${nomeVar} + ${indice} * 8], rax`;
128
129
  }
129
130
  traduzirConstrutoAtribuir(construto) {
@@ -142,8 +143,8 @@ extern printf
142
143
  this.bss += ` ${varLabel} resq 1\n`;
143
144
  this.variaveis.set(nomeVar, varLabel);
144
145
  }
145
- this.text += `
146
- mov rax, ${valor}
146
+ this.text += `
147
+ mov rax, ${valor}
147
148
  mov [${this.variaveis.get(nomeVar)}], rax`;
148
149
  }
149
150
  traduzirConstrutoBinario(construto) {
@@ -151,35 +152,35 @@ extern printf
151
152
  const direita = this.dicionarioConstrutos[construto.direita.constructor.name](construto.direita);
152
153
  const operador = construto.operador.lexema;
153
154
  const reg = this.obterRegistrador();
154
- this.text += `
155
- mov rax, ${esquerda}
155
+ this.text += `
156
+ mov rax, ${esquerda}
156
157
  mov ${reg}, ${direita}`;
157
158
  switch (operador) {
158
159
  case '+':
159
- this.text += `
160
+ this.text += `
160
161
  add rax, ${reg}`;
161
162
  break;
162
163
  case '-':
163
- this.text += `
164
+ this.text += `
164
165
  sub rax, ${reg}`;
165
166
  break;
166
167
  case '*':
167
- this.text += `
168
+ this.text += `
168
169
  imul rax, ${reg}`;
169
170
  break;
170
171
  case '/':
171
- this.text += `
172
- xor rdx, rdx
172
+ this.text += `
173
+ xor rdx, rdx
173
174
  idiv ${reg}`;
174
175
  break;
175
176
  case '%':
176
- this.text += `
177
- xor rdx, rdx
178
- idiv ${reg}
177
+ this.text += `
178
+ xor rdx, rdx
179
+ idiv ${reg}
179
180
  mov rax, rdx`;
180
181
  break;
181
182
  default:
182
- this.text += `
183
+ this.text += `
183
184
  ; Operador ${operador} não implementado`;
184
185
  }
185
186
  this.liberarRegistrador(reg);
@@ -198,28 +199,28 @@ extern printf
198
199
  construto.argumentos.forEach((arg, index) => {
199
200
  if (index < registrosArgs.length) {
200
201
  const valorArg = this.dicionarioConstrutos[arg.constructor.name](arg);
201
- this.text += `
202
+ this.text += `
202
203
  mov ${registrosArgs[index]}, ${valorArg}`;
203
204
  }
204
205
  else {
205
206
  // TODO: push extra args on stack according to target ABI
206
207
  }
207
208
  });
208
- this.text += `
209
+ this.text += `
209
210
  call ${nomeFuncao}`;
210
211
  }
211
212
  traduzirConstrutoDefinirValor(construto) {
212
213
  const objeto = this.dicionarioConstrutos[construto.objeto.constructor.name](construto.objeto);
213
214
  const valor = this.dicionarioConstrutos[construto.valor.constructor.name](construto.valor);
214
- this.text += `
215
- mov rax, ${valor}
215
+ this.text += `
216
+ mov rax, ${valor}
216
217
  mov [${objeto}], rax`;
217
218
  }
218
219
  traduzirFuncaoConstruto(construto) {
219
220
  const labelFuncao = `func_${this.gerarDigitoAleatorio()}`;
220
- this.text += `
221
- ${labelFuncao}:
222
- push rbp
221
+ this.text += `
222
+ ${labelFuncao}:
223
+ push rbp
223
224
  mov rbp, rsp`;
224
225
  // Traduzir corpo da função
225
226
  if (construto.corpo && Array.isArray(construto.corpo)) {
@@ -229,8 +230,8 @@ ${labelFuncao}:
229
230
  }
230
231
  });
231
232
  }
232
- this.text += `
233
- pop rbp
233
+ this.text += `
234
+ pop rbp
234
235
  ret`;
235
236
  }
236
237
  traduzirConstrutoLiteral(construto) {
@@ -245,29 +246,29 @@ ${labelFuncao}:
245
246
  const operador = construto.operador.lexema;
246
247
  const labelVerdadeiro = this.gerarLabel();
247
248
  const labelFim = this.gerarLabel();
248
- this.text += `
249
- mov rax, ${esquerda}
249
+ this.text += `
250
+ mov rax, ${esquerda}
250
251
  cmp rax, 0`;
251
252
  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
253
+ this.text += `
254
+ je ${labelFim}
255
+ mov rax, ${direita}
256
+ cmp rax, 0
257
+ je ${labelFim}
258
+ ${labelVerdadeiro}:
259
+ mov rax, 1
259
260
  ${labelFim}:`;
260
261
  }
261
262
  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
263
+ this.text += `
264
+ jne ${labelVerdadeiro}
265
+ mov rax, ${direita}
266
+ cmp rax, 0
267
+ jne ${labelVerdadeiro}
268
+ mov rax, 0
269
+ jmp ${labelFim}
270
+ ${labelVerdadeiro}:
271
+ mov rax, 1
271
272
  ${labelFim}:`;
272
273
  }
273
274
  return 'rax';
@@ -280,16 +281,16 @@ ${labelFim}:`;
280
281
  traduzirConstrutoUnario(construto) {
281
282
  const operando = this.dicionarioConstrutos[construto.operando.constructor.name](construto.operando);
282
283
  const operador = construto.operador.lexema;
283
- this.text += `
284
+ this.text += `
284
285
  mov rax, ${operando}`;
285
286
  if (operador === '-') {
286
- this.text += `
287
+ this.text += `
287
288
  neg rax`;
288
289
  }
289
290
  else if (operador === '!' || operador === 'nao') {
290
- this.text += `
291
- cmp rax, 0
292
- sete al
291
+ this.text += `
292
+ cmp rax, 0
293
+ sete al
293
294
  movzx rax, al`;
294
295
  }
295
296
  return 'rax';
@@ -311,8 +312,8 @@ ${labelFim}:`;
311
312
  construto.valores.forEach((valor, index) => {
312
313
  if (this.dicionarioConstrutos[valor.constructor.name]) {
313
314
  const valorTraduzido = this.dicionarioConstrutos[valor.constructor.name](valor);
314
- this.text += `
315
- mov rax, ${valorTraduzido}
315
+ this.text += `
316
+ mov rax, ${valorTraduzido}
316
317
  mov [${labelVetor} + ${index * 8}], rax`;
317
318
  }
318
319
  });
@@ -332,17 +333,17 @@ ${labelFim}:`;
332
333
  traduzirDeclaracaoEnquanto(declaracao) {
333
334
  const labelInicio = this.gerarLabel();
334
335
  const labelFim = this.gerarLabel();
335
- this.text += `
336
+ this.text += `
336
337
  ${labelInicio}:`;
337
338
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
338
- this.text += `
339
- cmp ${condicao}, 0
339
+ this.text += `
340
+ cmp ${condicao}, 0
340
341
  je ${labelFim}`;
341
342
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
342
343
  this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
343
344
  }
344
- this.text += `
345
- jmp ${labelInicio}
345
+ this.text += `
346
+ jmp ${labelInicio}
346
347
  ${labelFim}:`;
347
348
  }
348
349
  traduzirDeclaracaoEscolha(declaracao) {
@@ -353,9 +354,9 @@ ${labelFim}:`;
353
354
  const labelProximo = this.gerarLabel();
354
355
  if (caminho.condicoes && caminho.condicoes[0]) {
355
356
  const valorCaso = this.dicionarioConstrutos[caminho.condicoes[0].constructor.name](caminho.condicoes[0]);
356
- this.text += `
357
- mov rax, ${valorEscolha}
358
- cmp rax, ${valorCaso}
357
+ this.text += `
358
+ mov rax, ${valorEscolha}
359
+ cmp rax, ${valorCaso}
359
360
  jne ${labelProximo}`;
360
361
  if (caminho.declaracoes && Array.isArray(caminho.declaracoes)) {
361
362
  caminho.declaracoes.forEach((decl) => {
@@ -364,23 +365,24 @@ ${labelFim}:`;
364
365
  }
365
366
  });
366
367
  }
367
- this.text += `
368
- jmp ${labelFim}
368
+ this.text += `
369
+ jmp ${labelFim}
369
370
  ${labelProximo}:`;
370
371
  }
371
372
  });
372
373
  }
373
- this.text += `
374
+ this.text += `
374
375
  ${labelFim}:`;
375
376
  }
376
377
  traduzirDeclaracaoExpressao(declaracao) {
377
- if (declaracao.expressao && this.dicionarioConstrutos[declaracao.expressao.constructor.name]) {
378
+ if (declaracao.expressao &&
379
+ this.dicionarioConstrutos[declaracao.expressao.constructor.name]) {
378
380
  this.dicionarioConstrutos[declaracao.expressao.constructor.name](declaracao.expressao);
379
381
  }
380
382
  }
381
383
  traduzirDeclaracaoFazer(declaracao) {
382
384
  const labelInicio = this.gerarLabel();
383
- this.text += `
385
+ this.text += `
384
386
  ${labelInicio}:`;
385
387
  // Em Delégua, fazer-enquanto tem caminhoFazer que é um Bloco
386
388
  if (declaracao.caminhoFazer && declaracao.caminhoFazer.declaracoes) {
@@ -392,60 +394,66 @@ ${labelInicio}:`;
392
394
  }
393
395
  if (declaracao.condicaoEnquanto) {
394
396
  const condicao = this.dicionarioConstrutos[declaracao.condicaoEnquanto.constructor.name](declaracao.condicaoEnquanto);
395
- this.text += `
396
- cmp ${condicao}, 0
397
+ this.text += `
398
+ cmp ${condicao}, 0
397
399
  jne ${labelInicio}`;
398
400
  }
399
401
  }
400
402
  traduzirDeclaracaoFalhar(declaracao) {
401
403
  let mensagem = '"Erro"';
402
- if (declaracao.explicacao && typeof declaracao.explicacao === 'object' && 'constructor' in declaracao.explicacao) {
404
+ if (declaracao.explicacao &&
405
+ typeof declaracao.explicacao === 'object' &&
406
+ 'constructor' in declaracao.explicacao) {
403
407
  const explicacao = declaracao.explicacao;
404
408
  if (explicacao.constructor && this.dicionarioConstrutos[explicacao.constructor.name]) {
405
409
  mensagem = this.dicionarioConstrutos[explicacao.constructor.name](explicacao);
406
410
  }
407
411
  }
408
412
  if (this.alvo === 'linux') {
409
- this.text += `
410
- ; Falhar com mensagem: ${mensagem}
411
- mov eax, 1
412
- mov ebx, 1
413
+ this.text += `
414
+ ; Falhar com mensagem: ${mensagem}
415
+ mov eax, 1
416
+ mov ebx, 1
413
417
  int 0x80`;
414
418
  }
415
419
  else {
416
- this.text += `
417
- ; Falhar com mensagem: ${mensagem}
418
- mov eax, 1
420
+ this.text += `
421
+ ; Falhar com mensagem: ${mensagem}
422
+ mov eax, 1
419
423
  ret`;
420
424
  }
421
425
  }
422
426
  traduzirDeclaracaoFuncao(declaracao) {
423
427
  var _a;
424
428
  const nomeFuncao = ((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'funcao';
425
- this.text += `
426
- ${nomeFuncao}:
427
- push rbp
429
+ this.text += `
430
+ ${nomeFuncao}:
431
+ push rbp
428
432
  mov rbp, rsp`;
429
- if (declaracao.funcao && declaracao.funcao.corpo && Array.isArray(declaracao.funcao.corpo)) {
433
+ if (declaracao.funcao &&
434
+ declaracao.funcao.corpo &&
435
+ Array.isArray(declaracao.funcao.corpo)) {
430
436
  declaracao.funcao.corpo.forEach((decl) => {
431
437
  if (this.dicionarioDeclaracoes[decl.constructor.name]) {
432
438
  this.dicionarioDeclaracoes[decl.constructor.name](decl);
433
439
  }
434
440
  });
435
441
  }
436
- this.text += `
437
- pop rbp
442
+ this.text += `
443
+ pop rbp
438
444
  ret`;
439
445
  }
440
446
  traduzirDeclaracaoImportar(declaracao) {
441
447
  // Importação é tratada em tempo de linkagem
442
- this.text += `
448
+ this.text += `
443
449
  ; Importar: ${declaracao.caminho || 'unknown'}`;
444
450
  }
445
451
  traduzirDeclaracaoLeia(declaracao) {
446
452
  var _a;
447
453
  let nomeVar;
448
- if (declaracao.argumentos && declaracao.argumentos[0] && declaracao.argumentos[0] instanceof construtos_1.Variavel) {
454
+ if (declaracao.argumentos &&
455
+ declaracao.argumentos[0] &&
456
+ declaracao.argumentos[0] instanceof construtos_1.Variavel) {
449
457
  nomeVar = (_a = declaracao.argumentos[0].simbolo) === null || _a === void 0 ? void 0 : _a.lexema;
450
458
  }
451
459
  if (!nomeVar)
@@ -455,11 +463,11 @@ ${nomeFuncao}:
455
463
  this.bss += ` ${varLabel} resb 256\n`;
456
464
  this.variaveis.set(nomeVar, varLabel);
457
465
  }
458
- this.text += `
459
- mov eax, 3
460
- mov ebx, 0
461
- mov ecx, ${this.variaveis.get(nomeVar)}
462
- mov edx, 256
466
+ this.text += `
467
+ mov eax, 3
468
+ mov ebx, 0
469
+ mov ecx, ${this.variaveis.get(nomeVar)}
470
+ mov edx, 256
463
471
  int 0x80`;
464
472
  }
465
473
  traduzirDeclaracaoPara(declaracao) {
@@ -475,12 +483,12 @@ ${nomeFuncao}:
475
483
  this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
476
484
  }
477
485
  }
478
- this.text += `
486
+ this.text += `
479
487
  ${labelInicio}:`;
480
488
  if (declaracao.condicao) {
481
489
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
482
- this.text += `
483
- cmp ${condicao}, 0
490
+ this.text += `
491
+ cmp ${condicao}, 0
484
492
  je ${labelFim}`;
485
493
  }
486
494
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
@@ -491,8 +499,8 @@ ${labelInicio}:`;
491
499
  this.dicionarioConstrutos[declaracao.incrementar.constructor.name](declaracao.incrementar);
492
500
  }
493
501
  }
494
- this.text += `
495
- jmp ${labelInicio}
502
+ this.text += `
503
+ jmp ${labelInicio}
496
504
  ${labelFim}:`;
497
505
  }
498
506
  traduzirDeclaracaoParaCada(declaracao) {
@@ -508,57 +516,58 @@ ${labelFim}:`;
508
516
  if (vetor instanceof construtos_1.Vetor) {
509
517
  tamanhoVetor = vetor.tamanho || 0;
510
518
  }
511
- this.text += `
512
- xor rcx, rcx
513
- ${labelInicio}:
514
- cmp rcx, ${tamanhoVetor}
519
+ this.text += `
520
+ xor rcx, rcx
521
+ ${labelInicio}:
522
+ cmp rcx, ${tamanhoVetor}
515
523
  jge ${labelFim}`;
516
524
  if (this.dicionarioDeclaracoes[declaracao.corpo.constructor.name]) {
517
525
  this.dicionarioDeclaracoes[declaracao.corpo.constructor.name](declaracao.corpo);
518
526
  }
519
- this.text += `
520
- inc rcx
521
- jmp ${labelInicio}
527
+ this.text += `
528
+ inc rcx
529
+ jmp ${labelInicio}
522
530
  ${labelFim}:`;
523
531
  }
524
532
  traduzirDeclaracaoRetorna(declaracao) {
525
533
  if (declaracao.valor) {
526
534
  const valor = this.dicionarioConstrutos[declaracao.valor.constructor.name](declaracao.valor);
527
- this.text += `
535
+ this.text += `
528
536
  mov rax, ${valor}`;
529
537
  }
530
- this.text += `
531
- pop rbp
538
+ this.text += `
539
+ pop rbp
532
540
  ret`;
533
541
  }
534
542
  traduzirDeclaracaoSe(declaracao) {
535
543
  const labelSenao = this.gerarLabel();
536
544
  const labelFim = this.gerarLabel();
537
545
  const condicao = this.dicionarioConstrutos[declaracao.condicao.constructor.name](declaracao.condicao);
538
- this.text += `
539
- cmp ${condicao}, 0
546
+ this.text += `
547
+ cmp ${condicao}, 0
540
548
  je ${labelSenao}`;
541
549
  if (this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name]) {
542
550
  this.dicionarioDeclaracoes[declaracao.caminhoEntao.constructor.name](declaracao.caminhoEntao);
543
551
  }
544
- this.text += `
545
- jmp ${labelFim}
552
+ this.text += `
553
+ jmp ${labelFim}
546
554
  ${labelSenao}:`;
547
- if (declaracao.caminhoSenao && this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name]) {
555
+ if (declaracao.caminhoSenao &&
556
+ this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name]) {
548
557
  this.dicionarioDeclaracoes[declaracao.caminhoSenao.constructor.name](declaracao.caminhoSenao);
549
558
  }
550
- this.text += `
559
+ this.text += `
551
560
  ${labelFim}:`;
552
561
  }
553
562
  traduzirDeclaracaoClasse(declaracao) {
554
563
  var _a;
555
564
  // Classes em assembly são complexas - implementação básica
556
- this.text += `
565
+ this.text += `
557
566
  ; Classe: ${((_a = declaracao.simbolo) === null || _a === void 0 ? void 0 : _a.lexema) || 'unknown'}`;
558
567
  }
559
568
  traduzirDeclaracaoTente(declaracao) {
560
569
  // Try-catch em assembly requer handler complexo
561
- this.text += `
570
+ this.text += `
562
571
  ; Tente-pegue`;
563
572
  if (declaracao.caminhoTente && Array.isArray(declaracao.caminhoTente)) {
564
573
  declaracao.caminhoTente.forEach((decl) => {
@@ -597,8 +606,8 @@ ${labelFim}:`;
597
606
  }
598
607
  else if (this.dicionarioConstrutos[tipoInicializador]) {
599
608
  const valor = this.dicionarioConstrutos[tipoInicializador](declaracao.inicializador);
600
- this.text += `
601
- mov rax, ${valor}
609
+ this.text += `
610
+ mov rax, ${valor}
602
611
  mov [${varLabel}], rax`;
603
612
  }
604
613
  }
@@ -621,32 +630,32 @@ ${labelFim}:`;
621
630
  tam_string_literal = this.criaTamanhoNaMemoriaReferenteAVar(nome_string_literal);
622
631
  }
623
632
  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
633
+ this.text += `
634
+ mov edx, ${tam_string_literal}
635
+ mov ecx, ${nome_string_literal}
636
+ mov ebx, 1 ; fd stdout
637
+ mov eax, 4 ; sys_write
629
638
  int 0x80`;
630
639
  }
631
640
  else {
632
641
  // Windows: prototype `extern printf` and follow Win64 calling convention
633
642
  // RCX = format pointer; here we use the literal directly as a C string
634
- this.text += `
635
- lea rcx, [rel ${nome_string_literal}]
643
+ this.text += `
644
+ lea rcx, [rel ${nome_string_literal}]
636
645
  call printf`;
637
646
  }
638
647
  }
639
648
  saidaSistema() {
640
649
  if (this.alvo === 'linux') {
641
- this.text += `
642
- mov eax, 1 ; sys_exit
643
- xor ebx, ebx ; status 0
650
+ this.text += `
651
+ mov eax, 1 ; sys_exit
652
+ xor ebx, ebx ; status 0
644
653
  int 0x80`;
645
654
  }
646
655
  else {
647
656
  // Windows: return from main with 0 in EAX
648
- this.text += `
649
- xor eax, eax
657
+ this.text += `
658
+ xor eax, eax
650
659
  ret`;
651
660
  }
652
661
  }