@semacode/cli 0.8.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 (93) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +52 -0
  3. package/dist/cpp-symbols.d.ts +10 -0
  4. package/dist/cpp-symbols.js +71 -0
  5. package/dist/cpp-symbols.js.map +1 -0
  6. package/dist/dotnet-http.d.ts +23 -0
  7. package/dist/dotnet-http.js +301 -0
  8. package/dist/dotnet-http.js.map +1 -0
  9. package/dist/drift.d.ts +74 -0
  10. package/dist/drift.js +878 -0
  11. package/dist/drift.js.map +1 -0
  12. package/dist/go-http.d.ts +23 -0
  13. package/dist/go-http.js +90 -0
  14. package/dist/go-http.js.map +1 -0
  15. package/dist/importador.d.ts +29 -0
  16. package/dist/importador.js +2094 -0
  17. package/dist/importador.js.map +1 -0
  18. package/dist/index.d.ts +2 -0
  19. package/dist/index.js +2150 -0
  20. package/dist/index.js.map +1 -0
  21. package/dist/java-http.d.ts +23 -0
  22. package/dist/java-http.js +204 -0
  23. package/dist/java-http.js.map +1 -0
  24. package/dist/projeto.d.ts +48 -0
  25. package/dist/projeto.js +560 -0
  26. package/dist/projeto.js.map +1 -0
  27. package/dist/python-http.d.ts +23 -0
  28. package/dist/python-http.js +200 -0
  29. package/dist/python-http.js.map +1 -0
  30. package/dist/rust-http.d.ts +23 -0
  31. package/dist/rust-http.js +95 -0
  32. package/dist/rust-http.js.map +1 -0
  33. package/dist/tipos.d.ts +3 -0
  34. package/dist/tipos.js +2 -0
  35. package/dist/tipos.js.map +1 -0
  36. package/dist/typescript-http.d.ts +35 -0
  37. package/dist/typescript-http.js +854 -0
  38. package/dist/typescript-http.js.map +1 -0
  39. package/logo.png +0 -0
  40. package/node_modules/@sema/gerador-dart/dist/index.d.ts +3 -0
  41. package/node_modules/@sema/gerador-dart/dist/index.js +44 -0
  42. package/node_modules/@sema/gerador-dart/dist/index.js.map +1 -0
  43. package/node_modules/@sema/gerador-dart/package.json +7 -0
  44. package/node_modules/@sema/gerador-python/dist/index.d.ts +6 -0
  45. package/node_modules/@sema/gerador-python/dist/index.js +510 -0
  46. package/node_modules/@sema/gerador-python/dist/index.js.map +1 -0
  47. package/node_modules/@sema/gerador-python/package.json +7 -0
  48. package/node_modules/@sema/gerador-typescript/dist/index.d.ts +6 -0
  49. package/node_modules/@sema/gerador-typescript/dist/index.js +646 -0
  50. package/node_modules/@sema/gerador-typescript/dist/index.js.map +1 -0
  51. package/node_modules/@sema/gerador-typescript/package.json +7 -0
  52. package/node_modules/@sema/nucleo/dist/ast/tipos.d.ts +103 -0
  53. package/node_modules/@sema/nucleo/dist/ast/tipos.js +2 -0
  54. package/node_modules/@sema/nucleo/dist/ast/tipos.js.map +1 -0
  55. package/node_modules/@sema/nucleo/dist/diagnosticos/index.d.ts +21 -0
  56. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js +12 -0
  57. package/node_modules/@sema/nucleo/dist/diagnosticos/index.js.map +1 -0
  58. package/node_modules/@sema/nucleo/dist/formatador/index.d.ts +9 -0
  59. package/node_modules/@sema/nucleo/dist/formatador/index.js +289 -0
  60. package/node_modules/@sema/nucleo/dist/formatador/index.js.map +1 -0
  61. package/node_modules/@sema/nucleo/dist/index.d.ts +34 -0
  62. package/node_modules/@sema/nucleo/dist/index.js +95 -0
  63. package/node_modules/@sema/nucleo/dist/index.js.map +1 -0
  64. package/node_modules/@sema/nucleo/dist/ir/conversor.d.ts +5 -0
  65. package/node_modules/@sema/nucleo/dist/ir/conversor.js +241 -0
  66. package/node_modules/@sema/nucleo/dist/ir/conversor.js.map +1 -0
  67. package/node_modules/@sema/nucleo/dist/ir/modelos.d.ts +131 -0
  68. package/node_modules/@sema/nucleo/dist/ir/modelos.js +2 -0
  69. package/node_modules/@sema/nucleo/dist/ir/modelos.js.map +1 -0
  70. package/node_modules/@sema/nucleo/dist/lexer/lexer.d.ts +7 -0
  71. package/node_modules/@sema/nucleo/dist/lexer/lexer.js +122 -0
  72. package/node_modules/@sema/nucleo/dist/lexer/lexer.js.map +1 -0
  73. package/node_modules/@sema/nucleo/dist/lexer/tokens.d.ts +8 -0
  74. package/node_modules/@sema/nucleo/dist/lexer/tokens.js +30 -0
  75. package/node_modules/@sema/nucleo/dist/lexer/tokens.js.map +1 -0
  76. package/node_modules/@sema/nucleo/dist/parser/parser.d.ts +9 -0
  77. package/node_modules/@sema/nucleo/dist/parser/parser.js +423 -0
  78. package/node_modules/@sema/nucleo/dist/parser/parser.js.map +1 -0
  79. package/node_modules/@sema/nucleo/dist/semantico/analisador.d.ts +52 -0
  80. package/node_modules/@sema/nucleo/dist/semantico/analisador.js +837 -0
  81. package/node_modules/@sema/nucleo/dist/semantico/analisador.js.map +1 -0
  82. package/node_modules/@sema/nucleo/dist/semantico/estruturas.d.ts +99 -0
  83. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js +395 -0
  84. package/node_modules/@sema/nucleo/dist/semantico/estruturas.js.map +1 -0
  85. package/node_modules/@sema/nucleo/dist/util/arquivos.d.ts +2 -0
  86. package/node_modules/@sema/nucleo/dist/util/arquivos.js +25 -0
  87. package/node_modules/@sema/nucleo/dist/util/arquivos.js.map +1 -0
  88. package/node_modules/@sema/nucleo/package.json +7 -0
  89. package/node_modules/@sema/padroes/dist/index.d.ts +20 -0
  90. package/node_modules/@sema/padroes/dist/index.js +79 -0
  91. package/node_modules/@sema/padroes/dist/index.js.map +1 -0
  92. package/node_modules/@sema/padroes/package.json +7 -0
  93. package/package.json +57 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ {
2
+ "name": "@sema/gerador-typescript",
3
+ "version": "0.8.2",
4
+ "type": "module",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts"
7
+ }
@@ -0,0 +1,103 @@
1
+ import type { IntervaloFonte } from "../diagnosticos/index.js";
2
+ export type TipoBloco = "module" | "use" | "type" | "entity" | "enum" | "task" | "input" | "output" | "rules" | "effects" | "impl" | "guarantees" | "state" | "flow" | "route" | "tests" | "error" | "docs" | "comments" | "fields" | "invariants" | "transitions" | "given" | "when" | "expect" | "case" | "desconhecido";
3
+ export interface NoAstBase {
4
+ tipo: string;
5
+ intervalo?: IntervaloFonte;
6
+ }
7
+ export interface CampoAst extends NoAstBase {
8
+ tipo: "campo";
9
+ nome: string;
10
+ valor: string;
11
+ modificadores: string[];
12
+ }
13
+ export interface LinhaDeclarativaAst extends NoAstBase {
14
+ tipo: "linha_declarativa";
15
+ conteudo: string;
16
+ }
17
+ export interface BlocoGenericoAst extends NoAstBase {
18
+ tipo: "bloco_generico";
19
+ palavraChave: TipoBloco;
20
+ nome?: string;
21
+ campos: CampoAst[];
22
+ linhas: LinhaDeclarativaAst[];
23
+ blocos: BlocoAst[];
24
+ }
25
+ export interface BlocoCasoTesteAst extends NoAstBase {
26
+ tipo: "caso_teste";
27
+ nome: string;
28
+ given?: BlocoGenericoAst;
29
+ when?: BlocoGenericoAst;
30
+ expect?: BlocoGenericoAst;
31
+ error?: BlocoGenericoAst;
32
+ docs?: BlocoGenericoAst;
33
+ comments?: BlocoGenericoAst;
34
+ }
35
+ export interface UseAst extends NoAstBase {
36
+ tipo: "use";
37
+ origem: "sema" | "ts" | "py" | "dart" | "cs" | "java" | "go" | "rust" | "cpp";
38
+ caminho: string;
39
+ }
40
+ export interface EnumAst extends NoAstBase {
41
+ tipo: "enum";
42
+ nome: string;
43
+ valores: string[];
44
+ docs?: BlocoGenericoAst;
45
+ }
46
+ export interface TypeAst extends NoAstBase {
47
+ tipo: "type";
48
+ nome: string;
49
+ corpo: BlocoGenericoAst;
50
+ }
51
+ export interface EntityAst extends NoAstBase {
52
+ tipo: "entity";
53
+ nome: string;
54
+ corpo: BlocoGenericoAst;
55
+ }
56
+ export interface TaskAst extends NoAstBase {
57
+ tipo: "task";
58
+ nome: string;
59
+ corpo: BlocoGenericoAst;
60
+ input?: BlocoGenericoAst;
61
+ output?: BlocoGenericoAst;
62
+ rules?: BlocoGenericoAst;
63
+ effects?: BlocoGenericoAst;
64
+ impl?: BlocoGenericoAst;
65
+ guarantees?: BlocoGenericoAst;
66
+ state?: BlocoGenericoAst;
67
+ tests?: BlocoGenericoAst;
68
+ error?: BlocoGenericoAst;
69
+ docs?: BlocoGenericoAst;
70
+ comments?: BlocoGenericoAst;
71
+ }
72
+ export interface FlowAst extends NoAstBase {
73
+ tipo: "flow";
74
+ nome: string;
75
+ corpo: BlocoGenericoAst;
76
+ }
77
+ export interface RouteAst extends NoAstBase {
78
+ tipo: "route";
79
+ nome: string;
80
+ corpo: BlocoGenericoAst;
81
+ }
82
+ export interface StateAst extends NoAstBase {
83
+ tipo: "state";
84
+ nome?: string;
85
+ corpo: BlocoGenericoAst;
86
+ }
87
+ export interface ModuloAst extends NoAstBase {
88
+ tipo: "module";
89
+ nome: string;
90
+ uses: UseAst[];
91
+ docs?: BlocoGenericoAst;
92
+ comments?: BlocoGenericoAst;
93
+ types: TypeAst[];
94
+ entities: EntityAst[];
95
+ enums: EnumAst[];
96
+ tasks: TaskAst[];
97
+ flows: FlowAst[];
98
+ routes: RouteAst[];
99
+ states: StateAst[];
100
+ tests?: BlocoGenericoAst;
101
+ extras: BlocoGenericoAst[];
102
+ }
103
+ export type BlocoAst = BlocoGenericoAst | BlocoCasoTesteAst | UseAst | EnumAst | TypeAst | EntityAst | TaskAst | FlowAst | RouteAst | StateAst;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tipos.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tipos.js","sourceRoot":"","sources":["../../src/ast/tipos.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ export type SeveridadeDiagnostico = "erro" | "aviso" | "informacao";
2
+ export interface PosicaoFonte {
3
+ indice: number;
4
+ linha: number;
5
+ coluna: number;
6
+ }
7
+ export interface IntervaloFonte {
8
+ inicio: PosicaoFonte;
9
+ fim: PosicaoFonte;
10
+ arquivo?: string;
11
+ }
12
+ export interface Diagnostico {
13
+ codigo: string;
14
+ mensagem: string;
15
+ severidade: SeveridadeDiagnostico;
16
+ intervalo?: IntervaloFonte;
17
+ dica?: string;
18
+ contexto?: string;
19
+ }
20
+ export declare function formatarDiagnostico(diagnostico: Diagnostico): string;
21
+ export declare function criarDiagnostico(codigo: string, mensagem: string, severidade: SeveridadeDiagnostico, intervalo?: IntervaloFonte, dica?: string, contexto?: string): Diagnostico;
@@ -0,0 +1,12 @@
1
+ export function formatarDiagnostico(diagnostico) {
2
+ const local = diagnostico.intervalo
3
+ ? `${diagnostico.intervalo.arquivo ?? "arquivo"}:${diagnostico.intervalo.inicio.linha}:${diagnostico.intervalo.inicio.coluna}`
4
+ : "local desconhecido";
5
+ const dica = diagnostico.dica ? `\nDica: ${diagnostico.dica}` : "";
6
+ const contexto = diagnostico.contexto ? `\nContexto: ${diagnostico.contexto}` : "";
7
+ return `[${diagnostico.severidade.toUpperCase()} ${diagnostico.codigo}] ${diagnostico.mensagem} (${local})${dica}${contexto}`;
8
+ }
9
+ export function criarDiagnostico(codigo, mensagem, severidade, intervalo, dica, contexto) {
10
+ return { codigo, mensagem, severidade, intervalo, dica, contexto };
11
+ }
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/diagnosticos/index.ts"],"names":[],"mappings":"AAuBA,MAAM,UAAU,mBAAmB,CAAC,WAAwB;IAC1D,MAAM,KAAK,GAAG,WAAW,CAAC,SAAS;QACjC,CAAC,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,IAAI,SAAS,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE;QAC9H,CAAC,CAAC,oBAAoB,CAAC;IACzB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnE,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,OAAO,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,QAAQ,KAAK,KAAK,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;AAChI,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,MAAc,EACd,QAAgB,EAChB,UAAiC,EACjC,SAA0B,EAC1B,IAAa,EACb,QAAiB;IAEjB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { ModuloAst } from "../ast/tipos.js";
2
+ import type { Diagnostico } from "../diagnosticos/index.js";
3
+ export interface ResultadoFormatacao {
4
+ modulo?: ModuloAst;
5
+ codigoFormatado?: string;
6
+ diagnosticos: Diagnostico[];
7
+ alterado: boolean;
8
+ }
9
+ export declare function formatarCodigo(codigo: string, arquivo?: string): ResultadoFormatacao;
@@ -0,0 +1,289 @@
1
+ import { parsear } from "../parser/parser.js";
2
+ import { tokenizar } from "../lexer/lexer.js";
3
+ const ORDEM_BLOCOS_MODULO = new Map([
4
+ ["docs", 0],
5
+ ["comments", 1],
6
+ ["use", 2],
7
+ ["type", 3],
8
+ ["entity", 4],
9
+ ["enum", 5],
10
+ ["state", 6],
11
+ ["task", 7],
12
+ ["flow", 8],
13
+ ["route", 9],
14
+ ["tests", 10],
15
+ ["desconhecido", 11],
16
+ ]);
17
+ const ORDEM_SUBBLOCOS_TASK = new Map([
18
+ ["docs", 0],
19
+ ["comments", 1],
20
+ ["input", 2],
21
+ ["output", 3],
22
+ ["rules", 4],
23
+ ["effects", 5],
24
+ ["impl", 6],
25
+ ["state", 7],
26
+ ["guarantees", 8],
27
+ ["error", 9],
28
+ ["tests", 10],
29
+ ["desconhecido", 11],
30
+ ]);
31
+ const ORDEM_SUBBLOCOS_ROUTE = new Map([
32
+ ["input", 0],
33
+ ["output", 1],
34
+ ["effects", 2],
35
+ ["error", 3],
36
+ ["docs", 4],
37
+ ["comments", 5],
38
+ ["desconhecido", 6],
39
+ ]);
40
+ const ORDEM_SUBBLOCOS_STATE = new Map([
41
+ ["fields", 0],
42
+ ["invariants", 1],
43
+ ["transitions", 2],
44
+ ["docs", 3],
45
+ ["comments", 4],
46
+ ["desconhecido", 5],
47
+ ]);
48
+ const ORDEM_SUBBLOCOS_TESTE = new Map([
49
+ ["given", 0],
50
+ ["when", 1],
51
+ ["expect", 2],
52
+ ["error", 3],
53
+ ["docs", 4],
54
+ ["comments", 5],
55
+ ["desconhecido", 6],
56
+ ]);
57
+ function indentacao(nivel) {
58
+ return " ".repeat(nivel);
59
+ }
60
+ function ordenarPorMapa(itens, extrairChave, ordem) {
61
+ return [...itens].sort((a, b) => {
62
+ const ordemA = ordem.get(extrairChave(a)) ?? Number.MAX_SAFE_INTEGER;
63
+ const ordemB = ordem.get(extrairChave(b)) ?? Number.MAX_SAFE_INTEGER;
64
+ if (ordemA !== ordemB) {
65
+ return ordemA - ordemB;
66
+ }
67
+ return extrairChave(a).localeCompare(extrairChave(b), "pt-BR");
68
+ });
69
+ }
70
+ function normalizarEspacos(texto) {
71
+ const marcadorSeta = "__SEMA_SETA__";
72
+ return texto
73
+ .trim()
74
+ .replace(/\s*->\s*/g, ` ${marcadorSeta} `)
75
+ .replace(/\s*-\s*>\s*/g, ` ${marcadorSeta} `)
76
+ .replace(/\s+/g, " ")
77
+ .replace(/\s*,\s*/g, ", ")
78
+ .replace(/\(\s+/g, "(")
79
+ .replace(/\s+\)/g, ")")
80
+ .replace(/\[\s+/g, "[")
81
+ .replace(/\s+\]/g, "]")
82
+ .replace(/\s*>=\s*/g, " >= ")
83
+ .replace(/\s*<=\s*/g, " <= ")
84
+ .replace(/\s*==\s*/g, " == ")
85
+ .replace(/\s*!=\s*/g, " != ")
86
+ .replace(/\s*>\s*/g, " > ")
87
+ .replace(/\s*<\s*/g, " < ")
88
+ .replace(new RegExp(`\\s*${marcadorSeta}\\s*`, "g"), " -> ");
89
+ }
90
+ function normalizarCaminho(texto) {
91
+ return texto
92
+ .trim()
93
+ .replace(/\s*\/\s*/g, "/")
94
+ .replace(/\s+/g, "");
95
+ }
96
+ function eLiteralEscalar(texto) {
97
+ const normalizado = texto.trim();
98
+ return /^-?\d+(?:\.\d+)?$/.test(normalizado) || ["verdadeiro", "falso", "nulo"].includes(normalizado);
99
+ }
100
+ function deveColocarAspas(contexto, campo, combinado) {
101
+ if (campo.nome === "metodo") {
102
+ return false;
103
+ }
104
+ if (campo.nome === "caminho") {
105
+ return /[{}]/.test(combinado);
106
+ }
107
+ if (contexto === "docs" || contexto === "comments") {
108
+ return true;
109
+ }
110
+ if (contexto === "error") {
111
+ return !eLiteralEscalar(combinado);
112
+ }
113
+ if (contexto === "given" || contexto === "when" || contexto === "expect") {
114
+ return !eLiteralEscalar(combinado);
115
+ }
116
+ return false;
117
+ }
118
+ function renderizarCampo(campo, nivel, contexto) {
119
+ const partes = [campo.valor, ...campo.modificadores].filter(Boolean);
120
+ let combinado = normalizarEspacos(partes.join(" "));
121
+ if (campo.nome === "caminho") {
122
+ combinado = normalizarCaminho(combinado);
123
+ }
124
+ if (deveColocarAspas(contexto, campo, combinado)) {
125
+ combinado = JSON.stringify(combinado);
126
+ }
127
+ return `${indentacao(nivel)}${campo.nome}: ${combinado}`;
128
+ }
129
+ function renderizarLinha(linha, nivel) {
130
+ return `${indentacao(nivel)}${normalizarEspacos(linha)}`;
131
+ }
132
+ function renderizarCasoTeste(caso, nivel) {
133
+ const partes = [];
134
+ if (caso.given) {
135
+ partes.push(renderizarBlocoGenerico(caso.given, nivel + 1));
136
+ }
137
+ if (caso.when) {
138
+ partes.push(renderizarBlocoGenerico(caso.when, nivel + 1));
139
+ }
140
+ if (caso.expect) {
141
+ partes.push(renderizarBlocoGenerico(caso.expect, nivel + 1));
142
+ }
143
+ if (caso.error) {
144
+ partes.push(renderizarBlocoGenerico(caso.error, nivel + 1));
145
+ }
146
+ if (caso.docs) {
147
+ partes.push(renderizarBlocoGenerico(caso.docs, nivel + 1));
148
+ }
149
+ if (caso.comments) {
150
+ partes.push(renderizarBlocoGenerico(caso.comments, nivel + 1));
151
+ }
152
+ return `${indentacao(nivel)}caso ${JSON.stringify(caso.nome)} {\n${partes.join("\n\n")}\n${indentacao(nivel)}}`;
153
+ }
154
+ function renderizarBlocoAst(bloco, nivel) {
155
+ switch (bloco.tipo) {
156
+ case "caso_teste":
157
+ return renderizarCasoTeste(bloco, nivel);
158
+ case "bloco_generico":
159
+ return renderizarBlocoGenerico(bloco, nivel);
160
+ case "use":
161
+ return `${indentacao(nivel)}use ${bloco.origem === "sema" ? "" : `${bloco.origem} `}${bloco.caminho}`.trimEnd();
162
+ case "enum":
163
+ return renderizarEnum(bloco, nivel);
164
+ case "type":
165
+ return renderizarTipo(bloco, nivel);
166
+ case "entity":
167
+ return renderizarEntity(bloco, nivel);
168
+ case "task":
169
+ return renderizarTask(bloco, nivel);
170
+ case "flow":
171
+ return renderizarFlow(bloco, nivel);
172
+ case "route":
173
+ return renderizarRoute(bloco, nivel);
174
+ case "state":
175
+ return renderizarState(bloco, nivel);
176
+ }
177
+ }
178
+ function ordenarSubblocos(bloco) {
179
+ if (bloco.palavraChave === "task") {
180
+ return ordenarPorMapa(bloco.blocos, (item) => item.tipo === "bloco_generico" ? item.palavraChave : item.tipo, ORDEM_SUBBLOCOS_TASK);
181
+ }
182
+ if (bloco.palavraChave === "route") {
183
+ return ordenarPorMapa(bloco.blocos, (item) => item.tipo === "bloco_generico" ? item.palavraChave : item.tipo, ORDEM_SUBBLOCOS_ROUTE);
184
+ }
185
+ if (bloco.palavraChave === "state") {
186
+ return ordenarPorMapa(bloco.blocos, (item) => item.tipo === "bloco_generico" ? item.palavraChave : item.tipo, ORDEM_SUBBLOCOS_STATE);
187
+ }
188
+ if (bloco.palavraChave === "tests") {
189
+ return ordenarPorMapa(bloco.blocos, (item) => item.tipo === "caso_teste" ? "case" : item.tipo === "bloco_generico" ? item.palavraChave : item.tipo, ORDEM_SUBBLOCOS_TESTE);
190
+ }
191
+ return bloco.blocos;
192
+ }
193
+ function renderizarBlocoGenerico(bloco, nivel) {
194
+ const cabecalho = `${indentacao(nivel)}${bloco.palavraChave}${bloco.nome ? ` ${bloco.nome}` : ""} {`;
195
+ const linhasCampos = bloco.campos.map((campo) => renderizarCampo(campo, nivel + 1, bloco.palavraChave));
196
+ const linhasDeclarativas = bloco.linhas.map((linha) => renderizarLinha(linha.conteudo, nivel + 1));
197
+ const blocosInternos = ordenarSubblocos(bloco).map((subbloco) => renderizarBlocoAst(subbloco, nivel + 1));
198
+ const corpo = [...linhasCampos, ...linhasDeclarativas, ...blocosInternos];
199
+ if (corpo.length === 0) {
200
+ return `${cabecalho}\n${indentacao(nivel)}}`;
201
+ }
202
+ return `${cabecalho}\n${corpo.join("\n")}\n${indentacao(nivel)}}`;
203
+ }
204
+ function renderizarEnum(enumeracao, nivel) {
205
+ const corpo = enumeracao.valores.map((valor, indice) => `${indentacao(nivel + 1)}${valor}${indice < enumeracao.valores.length - 1 ? "," : ""}`);
206
+ return `${indentacao(nivel)}enum ${enumeracao.nome} {\n${corpo.join("\n")}\n${indentacao(nivel)}}`;
207
+ }
208
+ function renderizarTipo(type, nivel) {
209
+ return `${indentacao(nivel)}type ${type.nome} {\n${renderizarCorpoSimples(type.corpo, nivel + 1)}\n${indentacao(nivel)}}`;
210
+ }
211
+ function renderizarEntity(entity, nivel) {
212
+ return `${indentacao(nivel)}entity ${entity.nome} {\n${renderizarCorpoSimples(entity.corpo, nivel + 1)}\n${indentacao(nivel)}}`;
213
+ }
214
+ function renderizarTask(task, nivel) {
215
+ return `${indentacao(nivel)}task ${task.nome} {\n${renderizarCorpoSimples(task.corpo, nivel + 1)}\n${indentacao(nivel)}}`;
216
+ }
217
+ function renderizarFlow(flow, nivel) {
218
+ return `${indentacao(nivel)}flow ${flow.nome} {\n${renderizarCorpoSimples(flow.corpo, nivel + 1)}\n${indentacao(nivel)}}`;
219
+ }
220
+ function renderizarRoute(route, nivel) {
221
+ return `${indentacao(nivel)}route ${route.nome} {\n${renderizarCorpoSimples(route.corpo, nivel + 1)}\n${indentacao(nivel)}}`;
222
+ }
223
+ function renderizarState(state, nivel) {
224
+ return `${indentacao(nivel)}state${state.nome ? ` ${state.nome}` : ""} {\n${renderizarCorpoSimples(state.corpo, nivel + 1)}\n${indentacao(nivel)}}`;
225
+ }
226
+ function renderizarCorpoSimples(bloco, nivel) {
227
+ const conteudo = ordenarSubblocos(bloco).map((subbloco) => renderizarBlocoAst(subbloco, nivel));
228
+ const campos = bloco.campos.map((campo) => renderizarCampo(campo, nivel, bloco.palavraChave));
229
+ const linhas = bloco.linhas.map((linha) => renderizarLinha(linha.conteudo, nivel));
230
+ const corpo = [...campos, ...linhas, ...conteudo];
231
+ return corpo.join("\n");
232
+ }
233
+ function renderizarModulo(modulo) {
234
+ const blocos = [];
235
+ if (modulo.docs) {
236
+ blocos.push({ chave: "docs", conteudo: renderizarBlocoGenerico(modulo.docs, 1) });
237
+ }
238
+ if (modulo.comments) {
239
+ blocos.push({ chave: "comments", conteudo: renderizarBlocoGenerico(modulo.comments, 1) });
240
+ }
241
+ for (const use of modulo.uses) {
242
+ blocos.push({ chave: "use", conteudo: renderizarBlocoAst(use, 1) });
243
+ }
244
+ for (const type of modulo.types) {
245
+ blocos.push({ chave: "type", conteudo: renderizarBlocoAst(type, 1) });
246
+ }
247
+ for (const entity of modulo.entities) {
248
+ blocos.push({ chave: "entity", conteudo: renderizarBlocoAst(entity, 1) });
249
+ }
250
+ for (const enumeracao of modulo.enums) {
251
+ blocos.push({ chave: "enum", conteudo: renderizarBlocoAst(enumeracao, 1) });
252
+ }
253
+ for (const state of modulo.states) {
254
+ blocos.push({ chave: "state", conteudo: renderizarBlocoAst(state, 1) });
255
+ }
256
+ for (const task of modulo.tasks) {
257
+ blocos.push({ chave: "task", conteudo: renderizarBlocoAst(task, 1) });
258
+ }
259
+ for (const flow of modulo.flows) {
260
+ blocos.push({ chave: "flow", conteudo: renderizarBlocoAst(flow, 1) });
261
+ }
262
+ for (const route of modulo.routes) {
263
+ blocos.push({ chave: "route", conteudo: renderizarBlocoAst(route, 1) });
264
+ }
265
+ if (modulo.tests) {
266
+ blocos.push({ chave: "tests", conteudo: renderizarBlocoGenerico(modulo.tests, 1) });
267
+ }
268
+ for (const extra of modulo.extras) {
269
+ blocos.push({ chave: "desconhecido", conteudo: renderizarBlocoGenerico(extra, 1) });
270
+ }
271
+ const ordenados = ordenarPorMapa(blocos, (item) => item.chave, ORDEM_BLOCOS_MODULO);
272
+ return `module ${modulo.nome} {\n${ordenados.map((item) => item.conteudo).join("\n\n")}\n}\n`;
273
+ }
274
+ export function formatarCodigo(codigo, arquivo) {
275
+ const resultadoLexer = tokenizar(codigo, arquivo);
276
+ const resultadoParser = parsear(resultadoLexer.tokens);
277
+ const diagnosticos = [...resultadoLexer.diagnosticos, ...resultadoParser.diagnosticos];
278
+ if (!resultadoParser.modulo) {
279
+ return { diagnosticos, alterado: false };
280
+ }
281
+ const codigoFormatado = renderizarModulo(resultadoParser.modulo);
282
+ return {
283
+ modulo: resultadoParser.modulo,
284
+ codigoFormatado,
285
+ diagnosticos,
286
+ alterado: codigoFormatado !== codigo,
287
+ };
288
+ }
289
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/formatador/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { type Diagnostico } from "./diagnosticos/index.js";
2
+ import type { ModuloAst } from "./ast/tipos.js";
3
+ import type { IrModulo } from "./ir/modelos.js";
4
+ export * from "./diagnosticos/index.js";
5
+ export * from "./ast/tipos.js";
6
+ export * from "./lexer/tokens.js";
7
+ export * from "./lexer/lexer.js";
8
+ export * from "./parser/parser.js";
9
+ export * from "./semantico/analisador.js";
10
+ export * from "./semantico/estruturas.js";
11
+ export * from "./ir/modelos.js";
12
+ export * from "./ir/conversor.js";
13
+ export * from "./formatador/index.js";
14
+ export * from "./util/arquivos.js";
15
+ export interface ResultadoCompilacao {
16
+ modulo?: ModuloAst;
17
+ ir?: IrModulo;
18
+ diagnosticos: Diagnostico[];
19
+ }
20
+ export interface FonteProjeto {
21
+ caminho: string;
22
+ codigo: string;
23
+ }
24
+ export interface ResultadoCompilacaoProjetoModulo extends ResultadoCompilacao {
25
+ caminho: string;
26
+ }
27
+ export interface ResultadoCompilacaoProjeto {
28
+ modulos: ResultadoCompilacaoProjetoModulo[];
29
+ diagnosticos: Diagnostico[];
30
+ }
31
+ export declare function compilarCodigo(codigo: string, arquivo?: string): ResultadoCompilacao;
32
+ export declare function compilarProjeto(fontes: FonteProjeto[]): ResultadoCompilacaoProjeto;
33
+ export declare function temErros(diagnosticos: Diagnostico[]): boolean;
34
+ export declare function formatarDiagnosticos(diagnosticos: Diagnostico[]): string;