@designliquido/delegua 1.26.1 → 1.26.2

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 (62) hide show
  1. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.js +3 -3
  2. package/bibliotecas/dialetos/pitugues/primitivas-dicionario.js.map +1 -1
  3. package/bibliotecas/dialetos/pitugues/primitivas-numero.js +2 -2
  4. package/bibliotecas/dialetos/pitugues/primitivas-numero.js.map +1 -1
  5. package/bibliotecas/dialetos/pitugues/primitivas-texto.js +17 -17
  6. package/bibliotecas/dialetos/pitugues/primitivas-texto.js.map +1 -1
  7. package/bibliotecas/dialetos/pitugues/primitivas-vetor.js +13 -13
  8. package/bibliotecas/dialetos/pitugues/primitivas-vetor.js.map +1 -1
  9. package/bin/package.json +2 -2
  10. package/package.json +2 -2
  11. package/tradutores/tradutor-assembly-x64.d.ts +11 -96
  12. package/tradutores/tradutor-assembly-x64.d.ts.map +1 -1
  13. package/tradutores/tradutor-assembly-x64.js +25 -761
  14. package/tradutores/tradutor-assembly-x64.js.map +1 -1
  15. package/tradutores/tradutor-javascript.d.ts +1 -1
  16. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  17. package/tradutores/tradutor-javascript.js +7 -0
  18. package/tradutores/tradutor-javascript.js.map +1 -1
  19. package/tradutores/tradutor-python.d.ts +8 -0
  20. package/tradutores/tradutor-python.d.ts.map +1 -1
  21. package/tradutores/tradutor-python.js +35 -4
  22. package/tradutores/tradutor-python.js.map +1 -1
  23. package/tradutores/tradutor-reverso-javascript.d.ts.map +1 -1
  24. package/tradutores/tradutor-reverso-javascript.js +3 -0
  25. package/tradutores/tradutor-reverso-javascript.js.map +1 -1
  26. package/tradutores/x64/alocador-registradores.d.ts +29 -0
  27. package/tradutores/x64/alocador-registradores.d.ts.map +1 -0
  28. package/tradutores/x64/alocador-registradores.js +192 -0
  29. package/tradutores/x64/alocador-registradores.js.map +1 -0
  30. package/tradutores/x64/codegen.d.ts +43 -0
  31. package/tradutores/x64/codegen.d.ts.map +1 -0
  32. package/tradutores/x64/codegen.js +416 -0
  33. package/tradutores/x64/codegen.js.map +1 -0
  34. package/tradutores/x64/dessa.d.ts +9 -0
  35. package/tradutores/x64/dessa.d.ts.map +1 -0
  36. package/tradutores/x64/dessa.js +124 -0
  37. package/tradutores/x64/dessa.js.map +1 -0
  38. package/tradutores/x64/dominancia.d.ts +25 -0
  39. package/tradutores/x64/dominancia.d.ts.map +1 -0
  40. package/tradutores/x64/dominancia.js +129 -0
  41. package/tradutores/x64/dominancia.js.map +1 -0
  42. package/tradutores/x64/ir.d.ts +144 -0
  43. package/tradutores/x64/ir.d.ts.map +1 -0
  44. package/tradutores/x64/ir.js +44 -0
  45. package/tradutores/x64/ir.js.map +1 -0
  46. package/tradutores/x64/liveness.d.ts +12 -0
  47. package/tradutores/x64/liveness.d.ts.map +1 -0
  48. package/tradutores/x64/liveness.js +159 -0
  49. package/tradutores/x64/liveness.js.map +1 -0
  50. package/tradutores/x64/lowering.d.ts +7 -0
  51. package/tradutores/x64/lowering.d.ts.map +1 -0
  52. package/tradutores/x64/lowering.js +904 -0
  53. package/tradutores/x64/lowering.js.map +1 -0
  54. package/tradutores/x64/ssa.d.ts +9 -0
  55. package/tradutores/x64/ssa.d.ts.map +1 -0
  56. package/tradutores/x64/ssa.js +170 -0
  57. package/tradutores/x64/ssa.js.map +1 -0
  58. package/tradutores/x64/tipos-x64.d.ts +12 -0
  59. package/tradutores/x64/tipos-x64.d.ts.map +1 -0
  60. package/tradutores/x64/tipos-x64.js +59 -0
  61. package/tradutores/x64/tipos-x64.js.map +1 -0
  62. package/umd/delegua.js +2512 -1001
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lowering.js","sourceRoot":"","sources":["../../../fontes/tradutores/x64/lowering.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { IRFuncao } from './ir';
2
+ /**
3
+ * Constrói SSA para a função: insere phis via fronteira de dominância iterada
4
+ * (Cytron et al.) e renomeia cada definição/uso na árvore de dominância.
5
+ * Assume que `dst`s de instruções e nomes de registrador de parâmetros já usam
6
+ * nomes "pré-SSA" (um nome por variável/temporário lógico, sem versão).
7
+ */
8
+ export declare function construirSSA(funcao: IRFuncao): void;
9
+ //# sourceMappingURL=ssa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssa.d.ts","sourceRoot":"","sources":["../../../fontes/tradutores/x64/ssa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAA+B,MAAM,MAAM,CAAC;AA+D7D;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAuGnD"}
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.construirSSA = construirSSA;
4
+ const dominancia_1 = require("./dominancia");
5
+ function obterDst(instrucao) {
6
+ switch (instrucao.op) {
7
+ case 'const':
8
+ case 'copia':
9
+ case 'bin':
10
+ case 'neg':
11
+ case 'nao':
12
+ case 'enderecoRotulo':
13
+ case 'carregarGlobal':
14
+ case 'indiceLer':
15
+ return instrucao.dst;
16
+ case 'chamada':
17
+ return instrucao.dst;
18
+ default:
19
+ return null;
20
+ }
21
+ }
22
+ function reescreverUsos(valor, pilhas) {
23
+ if (valor.classe !== 'registrador')
24
+ return valor;
25
+ const pilha = pilhas.get(valor.nome);
26
+ if (!pilha || pilha.length === 0)
27
+ return valor;
28
+ return { classe: 'registrador', nome: pilha[pilha.length - 1] };
29
+ }
30
+ function reescreverUsosInstrucao(instrucao, pilhas) {
31
+ switch (instrucao.op) {
32
+ case 'copia':
33
+ instrucao.src = reescreverUsos(instrucao.src, pilhas);
34
+ break;
35
+ case 'bin':
36
+ instrucao.esquerda = reescreverUsos(instrucao.esquerda, pilhas);
37
+ instrucao.direita = reescreverUsos(instrucao.direita, pilhas);
38
+ break;
39
+ case 'neg':
40
+ case 'nao':
41
+ instrucao.src = reescreverUsos(instrucao.src, pilhas);
42
+ break;
43
+ case 'indiceLer':
44
+ instrucao.indice = reescreverUsos(instrucao.indice, pilhas);
45
+ break;
46
+ case 'indiceEscrever':
47
+ instrucao.indice = reescreverUsos(instrucao.indice, pilhas);
48
+ instrucao.valor = reescreverUsos(instrucao.valor, pilhas);
49
+ break;
50
+ case 'armazenarGlobal':
51
+ instrucao.valor = reescreverUsos(instrucao.valor, pilhas);
52
+ break;
53
+ case 'chamada':
54
+ instrucao.argumentos = instrucao.argumentos.map((argumento) => reescreverUsos(argumento, pilhas));
55
+ break;
56
+ case 'imprimirNumero':
57
+ instrucao.valor = reescreverUsos(instrucao.valor, pilhas);
58
+ break;
59
+ default:
60
+ break;
61
+ }
62
+ }
63
+ /**
64
+ * Constrói SSA para a função: insere phis via fronteira de dominância iterada
65
+ * (Cytron et al.) e renomeia cada definição/uso na árvore de dominância.
66
+ * Assume que `dst`s de instruções e nomes de registrador de parâmetros já usam
67
+ * nomes "pré-SSA" (um nome por variável/temporário lógico, sem versão).
68
+ */
69
+ function construirSSA(funcao) {
70
+ const dominancia = (0, dominancia_1.computeDominancia)(funcao);
71
+ const blocosVivos = new Set(dominancia.ordem);
72
+ // 1) Sítios de definição por variável pré-SSA.
73
+ const defsites = new Map();
74
+ function registrarDef(variavel, blocoId) {
75
+ if (!defsites.has(variavel))
76
+ defsites.set(variavel, new Set());
77
+ defsites.get(variavel).add(blocoId);
78
+ }
79
+ for (const blocoId of dominancia.ordem) {
80
+ const bloco = funcao.blocos.get(blocoId);
81
+ for (const instrucao of bloco.instrucoes) {
82
+ const dst = obterDst(instrucao);
83
+ if (dst)
84
+ registrarDef(dst, blocoId);
85
+ }
86
+ }
87
+ // 2) Inserção de phis via fronteira de dominância iterada.
88
+ const temPhi = new Map(); // variavel -> blocos que já ganharam phi dela
89
+ for (const [variavel, sitiosIniciais] of defsites) {
90
+ temPhi.set(variavel, new Set());
91
+ const worklist = [...sitiosIniciais];
92
+ while (worklist.length > 0) {
93
+ const n = worklist.pop();
94
+ const fronteira = dominancia.domFrontier.get(n);
95
+ if (!fronteira)
96
+ continue;
97
+ for (const d of fronteira) {
98
+ if (!blocosVivos.has(d))
99
+ continue;
100
+ if (temPhi.get(variavel).has(d))
101
+ continue;
102
+ temPhi.get(variavel).add(d);
103
+ const bloco = funcao.blocos.get(d);
104
+ const phi = { dst: variavel, variavel, opcoes: [] };
105
+ bloco.phis.push(phi);
106
+ if (!sitiosIniciais.has(d))
107
+ worklist.push(d);
108
+ }
109
+ }
110
+ }
111
+ // 3) Renomeação por percurso pré-ordem na árvore de dominância.
112
+ const filhosNaArvore = (0, dominancia_1.arvoreDominancia)(dominancia, funcao.blocoEntrada);
113
+ const pilhas = new Map();
114
+ const contadores = new Map();
115
+ function nomeFresco(variavel) {
116
+ const proximo = (contadores.get(variavel) ?? 0) + 1;
117
+ contadores.set(variavel, proximo);
118
+ const nome = `${variavel}.${proximo}`;
119
+ if (!pilhas.has(variavel))
120
+ pilhas.set(variavel, []);
121
+ pilhas.get(variavel).push(nome);
122
+ return nome;
123
+ }
124
+ function renomearBloco(blocoId) {
125
+ const bloco = funcao.blocos.get(blocoId);
126
+ const definidosAqui = [];
127
+ for (const phi of bloco.phis) {
128
+ const nome = nomeFresco(phi.variavel);
129
+ phi.dst = nome;
130
+ definidosAqui.push(phi.variavel);
131
+ }
132
+ for (const instrucao of bloco.instrucoes) {
133
+ reescreverUsosInstrucao(instrucao, pilhas);
134
+ const dstPreSSA = obterDst(instrucao);
135
+ if (dstPreSSA) {
136
+ const nome = nomeFresco(dstPreSSA);
137
+ instrucao.dst = nome;
138
+ definidosAqui.push(dstPreSSA);
139
+ }
140
+ }
141
+ if (bloco.terminador.op === 'saltoCondicional') {
142
+ bloco.terminador.condicao = reescreverUsos(bloco.terminador.condicao, pilhas);
143
+ }
144
+ else if (bloco.terminador.op === 'retorno' && bloco.terminador.valor) {
145
+ bloco.terminador.valor = reescreverUsos(bloco.terminador.valor, pilhas);
146
+ }
147
+ for (const sucessorId of bloco.sucessores) {
148
+ const sucessor = funcao.blocos.get(sucessorId);
149
+ if (!sucessor)
150
+ continue;
151
+ for (const phi of sucessor.phis) {
152
+ const pilha = pilhas.get(phi.variavel);
153
+ if (!pilha || pilha.length === 0)
154
+ continue;
155
+ phi.opcoes.push({
156
+ predecessor: blocoId,
157
+ valor: { classe: 'registrador', nome: pilha[pilha.length - 1] },
158
+ });
159
+ }
160
+ }
161
+ for (const filho of filhosNaArvore.get(blocoId) ?? []) {
162
+ renomearBloco(filho);
163
+ }
164
+ for (const variavel of definidosAqui) {
165
+ pilhas.get(variavel).pop();
166
+ }
167
+ }
168
+ renomearBloco(funcao.blocoEntrada);
169
+ }
170
+ //# sourceMappingURL=ssa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ssa.js","sourceRoot":"","sources":["../../../fontes/tradutores/x64/ssa.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tipos Delégua suportados por este backend: valores inteiros de 64 bits (caber num
3
+ * registrador geral x64), booleanos (0/1) e ponteiros para rótulos de texto (somente
4
+ * para passagem a `escreva`, sem aritmética). Ponto flutuante (`real`/`real_curto`)
5
+ * exigiria registradores xmm/instruções SSE, não implementadas aqui.
6
+ */
7
+ export type IRTipo = 'numero' | 'inteiro' | 'longo' | 'logico' | 'texto' | 'vazio';
8
+ export declare function resolverTipoEscalar(tipo: string | undefined, contexto: string): IRTipo;
9
+ export declare function resolverTipoElementoVetor(tipo: string | undefined, contexto: string): IRTipo;
10
+ /** Todo tipo escalar suportado ocupa um registrador/slot de 8 bytes (ver nota de arquitetura do backend). */
11
+ export declare function tamanhoEmBytes(_tipo: IRTipo): number;
12
+ //# sourceMappingURL=tipos-x64.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipos-x64.d.ts","sourceRoot":"","sources":["../../../fontes/tradutores/x64/tipos-x64.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAuBnF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAyBtF;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiB5F;AAED,6GAA6G;AAC7G,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resolverTipoEscalar = resolverTipoEscalar;
4
+ exports.resolverTipoElementoVetor = resolverTipoElementoVetor;
5
+ exports.tamanhoEmBytes = tamanhoEmBytes;
6
+ const SINONIMOS_ESCALARES = {
7
+ numero: 'numero',
8
+ número: 'numero',
9
+ inteiro: 'inteiro',
10
+ longo: 'longo',
11
+ logico: 'logico',
12
+ lógico: 'logico',
13
+ texto: 'texto',
14
+ vazio: 'vazio',
15
+ nada: 'vazio',
16
+ };
17
+ const SINONIMOS_VETORES = {
18
+ 'numero[]': 'numero',
19
+ 'número[]': 'numero',
20
+ 'inteiro[]': 'inteiro',
21
+ 'longo[]': 'longo',
22
+ 'logico[]': 'logico',
23
+ 'lógico[]': 'logico',
24
+ };
25
+ function resolverTipoEscalar(tipo, contexto) {
26
+ if (!tipo) {
27
+ throw new Error(`${contexto} não tem tipo definido. O tradutor para x64 requer tipos explícitos.`);
28
+ }
29
+ const resolvido = SINONIMOS_ESCALARES[tipo];
30
+ if (!resolvido) {
31
+ if (tipo === 'real' || tipo === 'real_curto' || tipo === 'realCurto') {
32
+ throw new Error(`${contexto} usa tipo de ponto flutuante ('${tipo}'), não suportado pelo tradutor para x64 ` +
33
+ `(exigiria instruções SSE/AVX sobre registradores xmm, ainda não implementadas).`);
34
+ }
35
+ if (tipo === 'qualquer') {
36
+ throw new Error(`${contexto} tem tipo 'qualquer' (dinâmico). O tradutor para x64 requer tipos explícitos ` +
37
+ `e estáticos (numero, inteiro, longo ou lógico).`);
38
+ }
39
+ throw new Error(`${contexto} usa tipo não suportado pelo tradutor para x64: '${tipo}'.`);
40
+ }
41
+ return resolvido;
42
+ }
43
+ function resolverTipoElementoVetor(tipo, contexto) {
44
+ if (!tipo) {
45
+ throw new Error(`${contexto} não tem tipo de elemento definido. O tradutor para x64 requer vetores tipados ` +
46
+ `(ex.: numero[]).`);
47
+ }
48
+ const resolvido = SINONIMOS_VETORES[tipo];
49
+ if (!resolvido) {
50
+ throw new Error(`${contexto} usa tipo de vetor não suportado pelo tradutor para x64: '${tipo}'. ` +
51
+ `Suportados: numero[], inteiro[], longo[], lógico[]/logico[].`);
52
+ }
53
+ return resolvido;
54
+ }
55
+ /** Todo tipo escalar suportado ocupa um registrador/slot de 8 bytes (ver nota de arquitetura do backend). */
56
+ function tamanhoEmBytes(_tipo) {
57
+ return 8;
58
+ }
59
+ //# sourceMappingURL=tipos-x64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipos-x64.js","sourceRoot":"","sources":["../../../fontes/tradutores/x64/tipos-x64.ts"],"names":[],"mappings":";;AA6BA,kDAyBC;AAED,8DAiBC;AAGD,wCAEC;AAtED,MAAM,mBAAmB,GAA2B;IAChD,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,OAAO;CAChB,CAAC;AAEF,MAAM,iBAAiB,GAA2B;IAC9C,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;IACpB,WAAW,EAAE,SAAS;IACtB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;CACvB,CAAC;AAEF,SAAgB,mBAAmB,CAAC,IAAwB,EAAE,QAAgB;IAC1E,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACX,GAAG,QAAQ,sEAAsE,CACpF,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,WAAW,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CACX,GAAG,QAAQ,kCAAkC,IAAI,2CAA2C;gBACxF,iFAAiF,CACxF,CAAC;QACN,CAAC;QACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CACX,GAAG,QAAQ,+EAA+E;gBACtF,iDAAiD,CACxD,CAAC;QACN,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,oDAAoD,IAAI,IAAI,CAAC,CAAC;IAC7F,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,SAAgB,yBAAyB,CAAC,IAAwB,EAAE,QAAgB;IAChF,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CACX,GAAG,QAAQ,iFAAiF;YACxF,kBAAkB,CACzB,CAAC;IACN,CAAC;IAED,MAAM,SAAS,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACX,GAAG,QAAQ,6DAA6D,IAAI,KAAK;YAC7E,8DAA8D,CACrE,CAAC;IACN,CAAC;IAED,OAAO,SAAS,CAAC;AACrB,CAAC;AAED,6GAA6G;AAC7G,SAAgB,cAAc,CAAC,KAAa;IACxC,OAAO,CAAC,CAAC;AACb,CAAC"}