@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/LICENSE +115 -0
- package/README.md +158 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +250 -0
- package/dist/cli.js.map +1 -0
- package/dist/errores.d.ts +16 -0
- package/dist/errores.d.ts.map +1 -0
- package/dist/errores.js +85 -0
- package/dist/errores.js.map +1 -0
- package/dist/generador.d.ts +28 -0
- package/dist/generador.d.ts.map +1 -0
- package/dist/generador.js +307 -0
- package/dist/generador.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +93 -0
- package/dist/index.js.map +1 -0
- package/dist/lexer.d.ts +22 -0
- package/dist/lexer.d.ts.map +1 -0
- package/dist/lexer.js +222 -0
- package/dist/lexer.js.map +1 -0
- package/dist/parser.d.ts +35 -0
- package/dist/parser.d.ts.map +1 -0
- package/dist/parser.js +441 -0
- package/dist/parser.js.map +1 -0
- package/dist/tipos.d.ts +183 -0
- package/dist/tipos.d.ts.map +1 -0
- package/dist/tipos.js +88 -0
- package/dist/tipos.js.map +1 -0
- package/examples/blog/app.telar +61 -0
- package/examples/tienda/app.telar +86 -0
- package/package.json +30 -0
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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"}
|
package/dist/parser.d.ts
ADDED
|
@@ -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"}
|