@davidbc01/telar 0.1.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.
package/dist/lexer.js ADDED
@@ -0,0 +1,222 @@
1
+ "use strict";
2
+ // ---
3
+ // lexer.ts
4
+ // Convierte un archivo .telar en una lista de tokens
5
+ // Es el primer paso del compilador.
6
+ // ---
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.Lexer = void 0;
9
+ const tipos_1 = require("./tipos");
10
+ const errores_1 = require("./errores");
11
+ const tipos_2 = require("./tipos");
12
+ // Mapa de palabras clave del lenguaje
13
+ const PALABRAS_CLAVE = {
14
+ "aplicación": tipos_1.TipoToken.Aplicacion,
15
+ "aplicacion": tipos_1.TipoToken.Aplicacion,
16
+ "página": tipos_1.TipoToken.Pagina,
17
+ "pagina": tipos_1.TipoToken.Pagina,
18
+ "datos": tipos_1.TipoToken.Datos,
19
+ "en": tipos_1.TipoToken.En,
20
+ "título": tipos_1.TipoToken.Titulo,
21
+ "titulo": tipos_1.TipoToken.Titulo,
22
+ "descripción": tipos_1.TipoToken.Descripcion,
23
+ "descripcion": tipos_1.TipoToken.Descripcion,
24
+ "mostrar": tipos_1.TipoToken.Mostrar,
25
+ "botón": tipos_1.TipoToken.Boton,
26
+ "boton": tipos_1.TipoToken.Boton,
27
+ "campo": tipos_1.TipoToken.Campo,
28
+ "si": tipos_1.TipoToken.Si,
29
+ "el": tipos_1.TipoToken.El,
30
+ "la": tipos_1.TipoToken.La,
31
+ "está": tipos_1.TipoToken.Esta,
32
+ "esta": tipos_1.TipoToken.Esta,
33
+ "es": tipos_1.TipoToken.Es,
34
+ "hay": tipos_1.TipoToken.Hay,
35
+ "falla": tipos_1.TipoToken.Falla,
36
+ "funciona": tipos_1.TipoToken.Funciona,
37
+ "máximo": tipos_1.TipoToken.Maximo,
38
+ "maximo": tipos_1.TipoToken.Maximo,
39
+ "ordenados": tipos_1.TipoToken.Ordenados,
40
+ "filtrados": tipos_1.TipoToken.Filtrados,
41
+ "por": tipos_1.TipoToken.Por,
42
+ "recientes": tipos_1.TipoToken.Recientes,
43
+ "para": tipos_1.TipoToken.Para,
44
+ "móvil": tipos_1.TipoToken.Movil,
45
+ "movil": tipos_1.TipoToken.Movil,
46
+ "caché": tipos_1.TipoToken.Cache,
47
+ "cache": tipos_1.TipoToken.Cache,
48
+ "reintentar": tipos_1.TipoToken.Reintentar,
49
+ "minutos": tipos_1.TipoToken.Minutos,
50
+ "horas": tipos_1.TipoToken.Horas,
51
+ "segundos": tipos_1.TipoToken.Segundos,
52
+ "optimizar": tipos_1.TipoToken.Optimizar,
53
+ "ir": tipos_1.TipoToken.Ir,
54
+ "hacer": tipos_1.TipoToken.Hacer,
55
+ "tipo": tipos_1.TipoToken.Tipo,
56
+ "idioma": tipos_1.TipoToken.Idioma,
57
+ "no": tipos_1.TipoToken.SiNo,
58
+ };
59
+ class Lexer {
60
+ constructor(texto) {
61
+ this.posicion = 0;
62
+ this.linea = 1;
63
+ this.columna = 1;
64
+ this.nivelIndentacion = 0;
65
+ this.texto = texto;
66
+ }
67
+ tokenizar() {
68
+ const tokens = [];
69
+ while (!this.finArchivo()) {
70
+ const token = this.siguienteToken();
71
+ if (token)
72
+ tokens.push(token);
73
+ }
74
+ tokens.push(this.crearToken(tipos_1.TipoToken.FinArchivo, ""));
75
+ return tokens;
76
+ }
77
+ siguienteToken() {
78
+ // Ignorar retorno de carro (Windows \r\n)
79
+ if (this.actual() === "\r") {
80
+ this.avanzar();
81
+ return null;
82
+ }
83
+ // Saltar comentarios
84
+ if (this.actual() === "#") {
85
+ while (!this.finArchivo() && this.actual() !== "\n") {
86
+ this.avanzar();
87
+ }
88
+ return null;
89
+ }
90
+ // Nueva línea — gestiona la indentación
91
+ if (this.actual() === "\n") {
92
+ this.avanzar();
93
+ this.linea++;
94
+ this.columna = 1;
95
+ return this.procesarIndentacion();
96
+ }
97
+ // Espacios al inicio ya procesados por indentación
98
+ if (this.actual() === " " || this.actual() === "\t") {
99
+ this.avanzar();
100
+ return null;
101
+ }
102
+ // Caracteres válidos que se ignoran fuera de strings
103
+ if (".-()¿?¡!,;€@/".includes(this.actual())) {
104
+ this.avanzar();
105
+ return null;
106
+ }
107
+ // Texto entre comillas
108
+ if (this.actual() === '"') {
109
+ return this.leerTexto();
110
+ }
111
+ // Números
112
+ if (this.esDigito(this.actual())) {
113
+ return this.leerNumero();
114
+ }
115
+ // Dos puntos
116
+ if (this.actual() === ":") {
117
+ const token = this.crearToken(tipos_1.TipoToken.DosPuntos, ":");
118
+ this.avanzar();
119
+ return token;
120
+ }
121
+ // Mayor que
122
+ if (this.actual() === ">") {
123
+ const token = this.crearToken(tipos_1.TipoToken.Mayor, ">");
124
+ this.avanzar();
125
+ return token;
126
+ }
127
+ // Igual
128
+ if (this.actual() === "=") {
129
+ const token = this.crearToken(tipos_1.TipoToken.Igual, "=");
130
+ this.avanzar();
131
+ return token;
132
+ }
133
+ // Palabras
134
+ if (this.esLetra(this.actual())) {
135
+ return this.leerPalabra();
136
+ }
137
+ // Carácter desconocido
138
+ const caracter = this.actual();
139
+ throw new tipos_2.TelarError(errores_1.Errores.caracterDesconocido(caracter, this.linea, this.columna));
140
+ }
141
+ procesarIndentacion() {
142
+ let espacios = 0;
143
+ while (this.actual() === " ") {
144
+ espacios++;
145
+ this.avanzar();
146
+ }
147
+ // Línea vacía o comentario — ignorar
148
+ if (this.actual() === "\n" || this.actual() === "#") {
149
+ return null;
150
+ }
151
+ const nuevoNivel = Math.floor(espacios / 2);
152
+ if (nuevoNivel > this.nivelIndentacion) {
153
+ this.nivelIndentacion = nuevoNivel;
154
+ return this.crearToken(tipos_1.TipoToken.Indentacion, ">");
155
+ }
156
+ if (nuevoNivel < this.nivelIndentacion) {
157
+ this.nivelIndentacion = nuevoNivel;
158
+ return this.crearToken(tipos_1.TipoToken.FinIndentacion, "<");
159
+ }
160
+ return null;
161
+ }
162
+ leerTexto() {
163
+ const inicio = this.columna;
164
+ this.avanzar(); // saltar la comilla de apertura
165
+ let valor = "";
166
+ while (!this.finArchivo() && this.actual() !== '"') {
167
+ if (this.actual() === "\n") {
168
+ throw new tipos_2.TelarError(errores_1.Errores.textoSinCerrar(this.linea, inicio));
169
+ }
170
+ valor += this.actual();
171
+ this.avanzar();
172
+ }
173
+ if (this.finArchivo()) {
174
+ throw new tipos_2.TelarError(errores_1.Errores.textoSinCerrar(this.linea, inicio));
175
+ }
176
+ this.avanzar(); // saltar la comilla de cierre
177
+ return this.crearToken(tipos_1.TipoToken.Texto, valor);
178
+ }
179
+ leerNumero() {
180
+ let valor = "";
181
+ while (!this.finArchivo() && (this.esDigito(this.actual()) || this.actual() === ".")) {
182
+ valor += this.actual();
183
+ this.avanzar();
184
+ }
185
+ return this.crearToken(tipos_1.TipoToken.Numero, valor);
186
+ }
187
+ leerPalabra() {
188
+ let valor = "";
189
+ while (!this.finArchivo() && (this.esLetra(this.actual()) || this.esDigito(this.actual()) || this.actual() === ".")) {
190
+ valor += this.actual();
191
+ this.avanzar();
192
+ }
193
+ // Comprobar si es palabra clave
194
+ const tipo = PALABRAS_CLAVE[valor.toLowerCase()] ?? tipos_1.TipoToken.Identificador;
195
+ // Si empieza por mayúscula y no es palabra clave, es un Nombre propio
196
+ if (tipo === tipos_1.TipoToken.Identificador && valor[0] === valor[0].toUpperCase() && valor[0] !== valor[0].toLowerCase()) {
197
+ return this.crearToken(tipos_1.TipoToken.Nombre, valor);
198
+ }
199
+ return this.crearToken(tipo, valor);
200
+ }
201
+ actual() {
202
+ return this.texto[this.posicion] ?? "";
203
+ }
204
+ avanzar() {
205
+ this.posicion++;
206
+ this.columna++;
207
+ }
208
+ finArchivo() {
209
+ return this.posicion >= this.texto.length;
210
+ }
211
+ esDigito(c) {
212
+ return c >= "0" && c <= "9";
213
+ }
214
+ esLetra(c) {
215
+ return /[a-záéíóúüñA-ZÁÉÍÓÚÜÑ_]/.test(c);
216
+ }
217
+ crearToken(tipo, valor) {
218
+ return { tipo, valor, linea: this.linea, columna: this.columna };
219
+ }
220
+ }
221
+ exports.Lexer = Lexer;
222
+ //# sourceMappingURL=lexer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.js","sourceRoot":"","sources":["../src/lexer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { Token, NodoAplicacion } from './tipos';
2
+ export declare class Parser {
3
+ private tokens;
4
+ private posicion;
5
+ constructor(tokens: Token[]);
6
+ parsear(): NodoAplicacion;
7
+ private parsearAplicacion;
8
+ private parsearDatos;
9
+ private parsearCampoDatos;
10
+ private parsearTipoDato;
11
+ private parsearPagina;
12
+ private parsearNodo;
13
+ private parsearTitulo;
14
+ private parsearDescripcion;
15
+ private parsearMostrar;
16
+ private parsearBoton;
17
+ private parsearCampo;
18
+ private parsearTipoCampo;
19
+ private parsearSi;
20
+ private parsearCondicion;
21
+ private parsearOptimizar;
22
+ private parsearCache;
23
+ private parsearReintentar;
24
+ private parsearBloque;
25
+ private esNivelRaiz;
26
+ private esSiguientePagina;
27
+ private esInstruccionNueva;
28
+ private consumir;
29
+ private consumirIdentificador;
30
+ private actual;
31
+ private siguiente;
32
+ private avanzar;
33
+ private finArchivo;
34
+ }
35
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAMA,OAAO,EACH,KAAK,EACL,cAAc,EAIjB,MAAM,SAAS,CAAA;AAGhB,qBAAa,MAAM;IACf,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAY;gBAEhB,MAAM,EAAE,KAAK,EAAE;IAS3B,OAAO,IAAI,cAAc;IAgBzB,OAAO,CAAC,iBAAiB;IAkDzB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,eAAe;IA+BvB,OAAO,CAAC,aAAa;IAwBrB,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAkEtB,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,gBAAgB;IA+BxB,OAAO,CAAC,SAAS;IA6BjB,OAAO,CAAC,gBAAgB;IAwDxB,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,QAAQ;IAWhB,OAAO,CAAC,qBAAqB;IAW7B,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;CAGrB"}