@designliquido/delegua 1.26.2 → 1.27.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 (95) hide show
  1. package/README.md +7 -3
  2. package/avaliador-sintatico/avaliador-sintatico.d.ts +25 -0
  3. package/avaliador-sintatico/avaliador-sintatico.d.ts.map +1 -1
  4. package/avaliador-sintatico/avaliador-sintatico.js +95 -6
  5. package/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
  6. package/bin/package.json +1 -1
  7. package/interfaces/simbolo-interface.d.ts +1 -0
  8. package/interfaces/simbolo-interface.d.ts.map +1 -1
  9. package/interpretador/interpretador.d.ts +1 -1
  10. package/interpretador/interpretador.d.ts.map +1 -1
  11. package/interpretador/interpretador.js +12 -3
  12. package/interpretador/interpretador.js.map +1 -1
  13. package/lexador/lexador-base.d.ts +1 -1
  14. package/lexador/lexador-base.d.ts.map +1 -1
  15. package/lexador/lexador-base.js +2 -2
  16. package/lexador/lexador-base.js.map +1 -1
  17. package/lexador/lexador.d.ts +1 -1
  18. package/lexador/lexador.d.ts.map +1 -1
  19. package/lexador/lexador.js +3 -3
  20. package/lexador/lexador.js.map +1 -1
  21. package/lexador/simbolo.d.ts +2 -1
  22. package/lexador/simbolo.d.ts.map +1 -1
  23. package/lexador/simbolo.js +2 -1
  24. package/lexador/simbolo.js.map +1 -1
  25. package/package.json +1 -1
  26. package/tradutores/index.d.ts +0 -4
  27. package/tradutores/index.d.ts.map +1 -1
  28. package/tradutores/index.js +0 -4
  29. package/tradutores/index.js.map +1 -1
  30. package/tradutores/tradutor-elixir.d.ts +17 -0
  31. package/tradutores/tradutor-elixir.d.ts.map +1 -1
  32. package/tradutores/tradutor-elixir.js +82 -2
  33. package/tradutores/tradutor-elixir.js.map +1 -1
  34. package/tradutores/tradutor-javascript.d.ts.map +1 -1
  35. package/tradutores/tradutor-javascript.js +5 -0
  36. package/tradutores/tradutor-javascript.js.map +1 -1
  37. package/tradutores/tradutor-python.d.ts.map +1 -1
  38. package/tradutores/tradutor-python.js +5 -0
  39. package/tradutores/tradutor-python.js.map +1 -1
  40. package/tradutores/tradutor-ruby.d.ts.map +1 -1
  41. package/tradutores/tradutor-ruby.js +5 -0
  42. package/tradutores/tradutor-ruby.js.map +1 -1
  43. package/umd/delegua.js +457 -4800
  44. package/tradutores/tradutor-assembly-arm.d.ts +0 -98
  45. package/tradutores/tradutor-assembly-arm.d.ts.map +0 -1
  46. package/tradutores/tradutor-assembly-arm.js +0 -711
  47. package/tradutores/tradutor-assembly-arm.js.map +0 -1
  48. package/tradutores/tradutor-assembly-risc-v.d.ts +0 -100
  49. package/tradutores/tradutor-assembly-risc-v.d.ts.map +0 -1
  50. package/tradutores/tradutor-assembly-risc-v.js +0 -688
  51. package/tradutores/tradutor-assembly-risc-v.js.map +0 -1
  52. package/tradutores/tradutor-assembly-x64.d.ts +0 -17
  53. package/tradutores/tradutor-assembly-x64.d.ts.map +0 -1
  54. package/tradutores/tradutor-assembly-x64.js +0 -38
  55. package/tradutores/tradutor-assembly-x64.js.map +0 -1
  56. package/tradutores/tradutor-webassembly.d.ts +0 -159
  57. package/tradutores/tradutor-webassembly.d.ts.map +0 -1
  58. package/tradutores/tradutor-webassembly.js +0 -886
  59. package/tradutores/tradutor-webassembly.js.map +0 -1
  60. package/tradutores/x64/alocador-registradores.d.ts +0 -29
  61. package/tradutores/x64/alocador-registradores.d.ts.map +0 -1
  62. package/tradutores/x64/alocador-registradores.js +0 -192
  63. package/tradutores/x64/alocador-registradores.js.map +0 -1
  64. package/tradutores/x64/codegen.d.ts +0 -43
  65. package/tradutores/x64/codegen.d.ts.map +0 -1
  66. package/tradutores/x64/codegen.js +0 -416
  67. package/tradutores/x64/codegen.js.map +0 -1
  68. package/tradutores/x64/dessa.d.ts +0 -9
  69. package/tradutores/x64/dessa.d.ts.map +0 -1
  70. package/tradutores/x64/dessa.js +0 -124
  71. package/tradutores/x64/dessa.js.map +0 -1
  72. package/tradutores/x64/dominancia.d.ts +0 -25
  73. package/tradutores/x64/dominancia.d.ts.map +0 -1
  74. package/tradutores/x64/dominancia.js +0 -129
  75. package/tradutores/x64/dominancia.js.map +0 -1
  76. package/tradutores/x64/ir.d.ts +0 -144
  77. package/tradutores/x64/ir.d.ts.map +0 -1
  78. package/tradutores/x64/ir.js +0 -44
  79. package/tradutores/x64/ir.js.map +0 -1
  80. package/tradutores/x64/liveness.d.ts +0 -12
  81. package/tradutores/x64/liveness.d.ts.map +0 -1
  82. package/tradutores/x64/liveness.js +0 -159
  83. package/tradutores/x64/liveness.js.map +0 -1
  84. package/tradutores/x64/lowering.d.ts +0 -7
  85. package/tradutores/x64/lowering.d.ts.map +0 -1
  86. package/tradutores/x64/lowering.js +0 -904
  87. package/tradutores/x64/lowering.js.map +0 -1
  88. package/tradutores/x64/ssa.d.ts +0 -9
  89. package/tradutores/x64/ssa.d.ts.map +0 -1
  90. package/tradutores/x64/ssa.js +0 -170
  91. package/tradutores/x64/ssa.js.map +0 -1
  92. package/tradutores/x64/tipos-x64.d.ts +0 -12
  93. package/tradutores/x64/tipos-x64.d.ts.map +0 -1
  94. package/tradutores/x64/tipos-x64.js +0 -59
  95. package/tradutores/x64/tipos-x64.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"lowering.js","sourceRoot":"","sources":["../../../fontes/tradutores/x64/lowering.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,170 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssa.js","sourceRoot":"","sources":["../../../fontes/tradutores/x64/ssa.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,59 +0,0 @@
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
@@ -1 +0,0 @@
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"}