@stevenvo780/st-lang 1.5.7 → 2.0.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/README.md +346 -69
- package/dist/ast/nodes.d.ts +55 -2
- package/dist/ast/nodes.d.ts.map +1 -1
- package/dist/lexer/lexer.d.ts.map +1 -1
- package/dist/lexer/lexer.js +72 -16
- package/dist/lexer/lexer.js.map +1 -1
- package/dist/lexer/tokens.d.ts +22 -0
- package/dist/lexer/tokens.d.ts.map +1 -1
- package/dist/lexer/tokens.js +46 -0
- package/dist/lexer/tokens.js.map +1 -1
- package/dist/parser/parser.d.ts +20 -0
- package/dist/parser/parser.d.ts.map +1 -1
- package/dist/parser/parser.js +390 -10
- package/dist/parser/parser.js.map +1 -1
- package/dist/profiles/arithmetic/index.d.ts +20 -0
- package/dist/profiles/arithmetic/index.d.ts.map +1 -0
- package/dist/profiles/arithmetic/index.js +222 -0
- package/dist/profiles/arithmetic/index.js.map +1 -0
- package/dist/profiles/classical/propositional.d.ts.map +1 -1
- package/dist/profiles/classical/propositional.js +84 -0
- package/dist/profiles/classical/propositional.js.map +1 -1
- package/dist/profiles/index.d.ts +2 -1
- package/dist/profiles/index.d.ts.map +1 -1
- package/dist/profiles/index.js +4 -1
- package/dist/profiles/index.js.map +1 -1
- package/dist/profiles/intuitionistic/propositional.d.ts.map +1 -1
- package/dist/profiles/intuitionistic/propositional.js +27 -0
- package/dist/profiles/intuitionistic/propositional.js.map +1 -1
- package/dist/profiles/probabilistic/basic.d.ts.map +1 -1
- package/dist/profiles/probabilistic/basic.js +12 -0
- package/dist/profiles/probabilistic/basic.js.map +1 -1
- package/dist/protocol/handler.d.ts +1 -0
- package/dist/protocol/handler.d.ts.map +1 -1
- package/dist/protocol/handler.js +318 -2
- package/dist/protocol/handler.js.map +1 -1
- package/dist/runtime/format.d.ts.map +1 -1
- package/dist/runtime/format.js +94 -2
- package/dist/runtime/format.js.map +1 -1
- package/dist/runtime/interpreter.d.ts +31 -0
- package/dist/runtime/interpreter.d.ts.map +1 -1
- package/dist/runtime/interpreter.js +555 -83
- package/dist/runtime/interpreter.js.map +1 -1
- package/dist/tests/arithmetic.test.d.ts +2 -0
- package/dist/tests/arithmetic.test.d.ts.map +1 -0
- package/dist/tests/arithmetic.test.js +416 -0
- package/dist/tests/arithmetic.test.js.map +1 -0
- package/dist/tests/examples.test.d.ts +2 -0
- package/dist/tests/examples.test.d.ts.map +1 -0
- package/dist/tests/examples.test.js +85 -0
- package/dist/tests/examples.test.js.map +1 -0
- package/dist/tests/v1-features.test.js +339 -2
- package/dist/tests/v1-features.test.js.map +1 -1
- package/dist/types/index.d.ts +3 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -4,43 +4,44 @@
|
|
|
4
4
|
<img src="https://raw.githubusercontent.com/stevenvo780/ST/main/logo.png" alt="ST Logo" width="200" style="border-radius: 50%"/>
|
|
5
5
|
</p>
|
|
6
6
|
|
|
7
|
-
**ST**
|
|
7
|
+
**ST** es un lenguaje ejecutable para lógica, argumentación y formalización documental.
|
|
8
|
+
Combina verificación formal, scripting declarativo, control de flujo, funciones, perfiles lógicos múltiples y una **Text Layer** para conectar fórmulas con texto humano real.
|
|
8
9
|
|
|
9
|
-
[](package.json)
|
|
10
11
|
[](LICENSE)
|
|
11
12
|
[]()
|
|
12
13
|
|
|
13
14
|
---
|
|
14
15
|
|
|
15
|
-
##
|
|
16
|
+
## ¿Qué hace diferente a ST?
|
|
16
17
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
| **Generic Linux** | [⬇️ Binary](https://github.com/stevenvo780/ST/releases/latest/download/st) | `chmod +x st && sudo mv st /usr/local/bin/` |
|
|
18
|
+
- **Lógica ejecutable**: no solo declaras axiomas; también ejecutas verificaciones, derivaciones, análisis y explicaciones.
|
|
19
|
+
- **Mini-lenguaje pedagógico**: `let`, `set`, `print`, `if`, `for`, `while`, `fn`, `return`, `theory`, `import`.
|
|
20
|
+
- **Múltiples perfiles**: proposicional clásica, primer orden, modal, deóntica, epistémica, intuicionista, temporal, probabilística, aristotélica, paraconsistente y aritmética.
|
|
21
|
+
- **Text Layer**: vincula pasajes de documentos con formalizaciones y claims verificables.
|
|
22
|
+
- **CLI + API + protocolo**: usable desde terminal, REPL, TypeScript/JavaScript y editores.
|
|
23
|
+
- **Alias en español**: el lenguaje acepta tanto sintaxis en inglés como en español.
|
|
24
24
|
|
|
25
25
|
---
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## Instalación
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
- **🤖 Automated Reasoning**: Built-in engines for automated derivations, truth tables, and countermodel generation.
|
|
31
|
-
- **📝 Text Layer**: Map logical claims directly to document anchors (e.g., `file.md#heading`), enabling formal verification of "live" documents.
|
|
32
|
-
- **💻 Interactive REPL**: A powerful CLI to explore theories in real-time with syntax highlighting and autocompletion.
|
|
33
|
-
- **🔌 Programmatic API**: Full TypeScript/JavaScript support to integrate logical verification into your own applications.
|
|
34
|
-
- **🛠️ Editor Integration**: Protocol-ready for high-level features like hover, go-to-definition, and symbols.
|
|
29
|
+
### Descarga directa en Linux
|
|
35
30
|
|
|
36
|
-
|
|
31
|
+
| Distribución | Paquete | Comando |
|
|
32
|
+
|--------------|---------|---------|
|
|
33
|
+
| **Debian / Ubuntu** | [⬇️ `.deb`](https://github.com/stevenvo780/ST/releases/latest/download/st-lang_1.5.8_amd64.deb) | `sudo dpkg -i st-lang_*.deb` |
|
|
34
|
+
| **Fedora / RHEL** | [⬇️ `.rpm`](https://github.com/stevenvo780/ST/releases/latest/download/st-lang-1.5.8-1.x86_64.rpm) | `sudo rpm -i st-lang-*.rpm` |
|
|
35
|
+
| **Linux genérico** | [⬇️ binario](https://github.com/stevenvo780/ST/releases/latest/download/st) | `chmod +x st && sudo mv st /usr/local/bin/` |
|
|
36
|
+
|
|
37
|
+
### Con npm
|
|
37
38
|
|
|
38
|
-
### Using NPM (Cross-platform)
|
|
39
39
|
```bash
|
|
40
40
|
npm install -g @stevenvo780/st-lang
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
###
|
|
43
|
+
### Desde el código fuente
|
|
44
|
+
|
|
44
45
|
```bash
|
|
45
46
|
git clone https://github.com/stevenvo780/ST.git
|
|
46
47
|
cd ST
|
|
@@ -49,96 +50,372 @@ npm run build
|
|
|
49
50
|
npm link
|
|
50
51
|
```
|
|
51
52
|
|
|
52
|
-
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Inicio rápido
|
|
53
56
|
|
|
54
|
-
1
|
|
57
|
+
### 1) Tu primer archivo `theory.st`
|
|
55
58
|
|
|
56
59
|
```st
|
|
57
60
|
logic classical.propositional
|
|
58
61
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
axiom a2 : P
|
|
62
|
+
let regla = P -> Q
|
|
63
|
+
let hecho = P
|
|
62
64
|
|
|
63
|
-
|
|
64
|
-
derive Q from {a1, a2}
|
|
65
|
+
derive Q from {regla, hecho}
|
|
65
66
|
check valid (P | !P)
|
|
67
|
+
countermodel (P -> Q)
|
|
66
68
|
```
|
|
67
69
|
|
|
68
|
-
2
|
|
70
|
+
### 2) Ejecútalo
|
|
69
71
|
|
|
70
72
|
```bash
|
|
71
73
|
st theory.st
|
|
72
74
|
```
|
|
73
75
|
|
|
74
|
-
3
|
|
76
|
+
### 3) Revisa perfiles disponibles
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
st profiles
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4) Entra al REPL
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
st repl
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Ejemplo paso a paso: variables, `if`, funciones y análisis
|
|
91
|
+
|
|
92
|
+
```st
|
|
93
|
+
logic classical.propositional
|
|
94
|
+
|
|
95
|
+
print "=== demo guiada ==="
|
|
96
|
+
|
|
97
|
+
let regla = "Si estudio, apruebo" : (E -> A)
|
|
98
|
+
let hecho = "Estudio hoy" : E
|
|
99
|
+
|
|
100
|
+
derive A from {regla, hecho}
|
|
101
|
+
analyze {E, E -> A} -> A
|
|
102
|
+
explain (E -> A)
|
|
103
|
+
|
|
104
|
+
if valid (P | !P) {
|
|
105
|
+
print "tautología detectada"
|
|
106
|
+
} else {
|
|
107
|
+
print "esto no debería ocurrir en clásica"
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
for Caso in { P, Q, (R -> R) } {
|
|
111
|
+
print Caso
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
set estado = P
|
|
115
|
+
while satisfiable estado {
|
|
116
|
+
print "iteración del while"
|
|
117
|
+
set estado = P & !P
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
fn revisar(X) {
|
|
121
|
+
print "revisando"
|
|
122
|
+
print X
|
|
123
|
+
check satisfiable X
|
|
124
|
+
return X
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
revisar((P -> Q))
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Qué muestra este ejemplo
|
|
131
|
+
|
|
132
|
+
1. `let` define aliases lógicos y además los deja disponibles para derivaciones.
|
|
133
|
+
2. `analyze` evalúa si una inferencia es válida y detecta falacias conocidas.
|
|
134
|
+
3. `explain` devuelve una explicación del perfil activo sobre la fórmula.
|
|
135
|
+
4. `if valid|invalid|satisfiable|unsatisfiable` permite ramificar lógica del script.
|
|
136
|
+
5. `for` recorre una lista de fórmulas.
|
|
137
|
+
6. `while` reevalúa una condición lógica en cada iteración.
|
|
138
|
+
7. `fn` agrupa pasos reutilizables; `return` corta la ejecución del cuerpo.
|
|
139
|
+
|
|
140
|
+
> Nota: hoy `return` sirve para cortar la función y preservar un valor interno para futuras extensiones, pero las llamadas a función todavía se usan como sentencia, no como expresión anidable.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Sintaxis principal de ST
|
|
145
|
+
|
|
146
|
+
### Núcleo lógico
|
|
147
|
+
|
|
148
|
+
```st
|
|
149
|
+
logic classical.propositional
|
|
150
|
+
axiom a1 : P -> Q
|
|
151
|
+
theorem t1 : (P -> P)
|
|
152
|
+
derive Q from {a1, a2}
|
|
153
|
+
prove (P -> P)
|
|
154
|
+
check valid (P | !P)
|
|
155
|
+
check satisfiable (P & Q)
|
|
156
|
+
check equivalent (!(P & Q)), (!P | !Q)
|
|
157
|
+
truth_table (P -> Q)
|
|
158
|
+
countermodel (P -> Q)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
### Variables y scripting
|
|
162
|
+
|
|
163
|
+
```st
|
|
164
|
+
let phi = (P -> Q)
|
|
165
|
+
set phi = (Q -> R)
|
|
166
|
+
print phi
|
|
167
|
+
|
|
168
|
+
if satisfiable phi {
|
|
169
|
+
print "hay modelo"
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
for X in {P, Q, R} {
|
|
173
|
+
print X
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
while invalid phi {
|
|
177
|
+
set phi = (P -> P)
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
fn verificar(X) {
|
|
181
|
+
check valid X
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
verificar((P -> P))
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Text Layer
|
|
188
|
+
|
|
189
|
+
```st
|
|
190
|
+
let p = passage([[contrato.md#clausula-1]])
|
|
191
|
+
let f = formalize p as (P -> Q)
|
|
192
|
+
claim c1 = f
|
|
193
|
+
support c1 <- p
|
|
194
|
+
confidence c1 = 0.92
|
|
195
|
+
context c1 = "Interpretación jurídica conservadora"
|
|
196
|
+
render claims
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Pruebas estructuradas y teorías
|
|
200
|
+
|
|
201
|
+
```st
|
|
202
|
+
assume h1 : P -> Q
|
|
203
|
+
assume h2 : P
|
|
204
|
+
show Q
|
|
205
|
+
derive Q from {h1, h2}
|
|
206
|
+
qed
|
|
207
|
+
|
|
208
|
+
theory Base {
|
|
209
|
+
let alias = P -> Q
|
|
210
|
+
private let secreto = R & S
|
|
211
|
+
axiom regla : P -> Q
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
print Base.alias
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## Alias en español
|
|
220
|
+
|
|
221
|
+
ST acepta las dos familias de keywords. Ejemplos:
|
|
222
|
+
|
|
223
|
+
| Inglés | Español |
|
|
224
|
+
|--------|---------|
|
|
225
|
+
| `logic` | `logica` |
|
|
226
|
+
| `axiom` | `axioma` |
|
|
227
|
+
| `derive` | `derivar` |
|
|
228
|
+
| `from` | `desde` |
|
|
229
|
+
| `check valid` | `verificar valido` |
|
|
230
|
+
| `check satisfiable` | `verificar satisfacible` |
|
|
231
|
+
| `countermodel` | `contramodelo` |
|
|
232
|
+
| `truth_table` | `tabla_verdad` |
|
|
233
|
+
| `analyze` | `analizar` |
|
|
234
|
+
| `explain` | `explicar` |
|
|
235
|
+
| `import` | `importar` |
|
|
236
|
+
| `theory` | `teoria` |
|
|
237
|
+
| `if` | `si` |
|
|
238
|
+
| `else` | `sino` |
|
|
239
|
+
| `for` | `para` |
|
|
240
|
+
| `while` | `mientras` |
|
|
241
|
+
| `fn` | `funcion` |
|
|
242
|
+
| `return` | `retornar` |
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## Perfiles incorporados
|
|
247
|
+
|
|
248
|
+
ST registra automáticamente estos perfiles:
|
|
249
|
+
|
|
250
|
+
- `classical.propositional`
|
|
251
|
+
- `classical.first_order`
|
|
252
|
+
- `modal.k`
|
|
253
|
+
- `paraconsistent.belnap`
|
|
254
|
+
- `deontic.standard`
|
|
255
|
+
- `epistemic.s5`
|
|
256
|
+
- `aristotelian.syllogistic`
|
|
257
|
+
- `intuitionistic.propositional`
|
|
258
|
+
- `temporal.ltl`
|
|
259
|
+
- `probabilistic.basic`
|
|
260
|
+
- `arithmetic`
|
|
261
|
+
|
|
262
|
+
### Operadores destacados por perfil
|
|
263
|
+
|
|
264
|
+
- **Proposicional clásica**: `!`, `&`, `|`, `->`, `<->`
|
|
265
|
+
- **Primer orden**: `forall`, `exists`, `P(x)`, igualdad `x = y`
|
|
266
|
+
- **Modal / deóntica / epistémica**: `[]`, `<>`
|
|
267
|
+
- **Temporal**: `next`, `until`
|
|
268
|
+
- **Aritmética**: `+`, `-`, `*`, `/`, `%`, `<`, `>`, `<=`, `>=`
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Herramientas explicativas nuevas y reforzadas
|
|
273
|
+
|
|
274
|
+
### `explain`
|
|
275
|
+
|
|
276
|
+
Explica una fórmula dentro del perfil activo:
|
|
277
|
+
|
|
278
|
+
```st
|
|
279
|
+
logic modal.k
|
|
280
|
+
explain [](P -> P)
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### `analyze`
|
|
284
|
+
|
|
285
|
+
Evalúa inferencias completas y detecta falacias como:
|
|
286
|
+
|
|
287
|
+
- afirmación del consecuente
|
|
288
|
+
- negación del antecedente
|
|
289
|
+
- medio no distribuido
|
|
290
|
+
|
|
291
|
+
```st
|
|
292
|
+
logic classical.propositional
|
|
293
|
+
analyze {P, P -> Q} -> Q
|
|
294
|
+
analyze {P} -> Q
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
### `render`
|
|
298
|
+
|
|
299
|
+
Permite inspeccionar el estado acumulado:
|
|
300
|
+
|
|
301
|
+
```st
|
|
302
|
+
render theory
|
|
303
|
+
render claims
|
|
304
|
+
render c1
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## CLI
|
|
310
|
+
|
|
311
|
+
### Ejecutar archivo
|
|
75
312
|
|
|
76
313
|
```bash
|
|
77
|
-
st
|
|
314
|
+
st run archivo.st
|
|
78
315
|
```
|
|
79
316
|
|
|
80
|
-
|
|
317
|
+
### Ejecutar modo legacy
|
|
318
|
+
|
|
319
|
+
```bash
|
|
320
|
+
st archivo.st
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Validar sintaxis y resultados
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
st check archivo.st
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### Guardar diagnósticos JSON
|
|
330
|
+
|
|
331
|
+
```bash
|
|
332
|
+
st run archivo.st --diagnostics
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### Evaluar una expresión directa
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
st eval "check valid (P -> P)"
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Protocolo para editores
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
st protocol
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## API programática
|
|
81
350
|
|
|
82
351
|
```typescript
|
|
83
352
|
import { evaluate, createInterpreter } from '@stevenvo780/st-lang/api';
|
|
84
353
|
|
|
85
|
-
// Stateless evaluation
|
|
86
354
|
const result = evaluate(`
|
|
87
355
|
logic classical.propositional
|
|
88
|
-
|
|
356
|
+
let regla = P -> Q
|
|
357
|
+
let hecho = P
|
|
358
|
+
derive Q from {regla, hecho}
|
|
89
359
|
`);
|
|
90
|
-
console.log(result.results[0].status); // 'valid'
|
|
91
360
|
|
|
92
|
-
|
|
361
|
+
console.log(result.results[0].status);
|
|
362
|
+
|
|
93
363
|
const st = createInterpreter();
|
|
94
|
-
st.exec('logic
|
|
95
|
-
st.exec('
|
|
96
|
-
const r = st.exec('check satisfiable a1');
|
|
97
|
-
console.log(r.ok); // true
|
|
364
|
+
st.exec('logic arithmetic');
|
|
365
|
+
st.exec('explain 2 + 3 * 4');
|
|
98
366
|
```
|
|
99
367
|
|
|
100
|
-
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Carpeta `examples/`
|
|
371
|
+
|
|
372
|
+
El repositorio incluye ejemplos listos para ejecutar:
|
|
101
373
|
|
|
102
|
-
|
|
374
|
+
- `demo.st`: núcleo lógico básico
|
|
375
|
+
- `programming-control-flow.st`: `let`, `if`, `for`, `while`, `fn`
|
|
376
|
+
- `guided-language-tour.st`: recorrido guiado y pedagógico
|
|
377
|
+
- `text-layer.st`: formalización de documentos
|
|
378
|
+
- `theory-showcase.st`: encapsulación, herencia y acceso con punto
|
|
379
|
+
- `arithmetic-programming.st`: scripting con `logic arithmetic`
|
|
380
|
+
- `stress-all-profiles.st`: smoke test amplio
|
|
381
|
+
|
|
382
|
+
Para ejecutarlos todos:
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
npm run examples:run
|
|
386
|
+
```
|
|
103
387
|
|
|
104
|
-
1. **Lexer/Parser**: Consumes `.st` scripts into a typed AST.
|
|
105
|
-
2. **Interpreter**: Manages the **Theory** (axioms, theorems, claims) and executes statements.
|
|
106
|
-
3. **Logic Profiles**: Pluggable engines that implement the `LogicProfile` interface. Each profile provides its own solvers (Tableau, Truth Tables, etc.).
|
|
107
|
-
4. **Text Layer State**: Tracks references to external documents and maps them to logical formulas.
|
|
108
388
|
---
|
|
109
389
|
|
|
110
|
-
##
|
|
390
|
+
## Extensión de VS Code
|
|
111
391
|
|
|
112
|
-
|
|
113
|
-
The ST interpreter can be used in three ways:
|
|
392
|
+
La extensión oficial en `editors/vscode-st` aporta:
|
|
114
393
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
st
|
|
122
|
-
```
|
|
123
|
-
3. **API Mode**: Integrate into your Node.js/TypeScript projects via `@stevenvo780/st-lang`.
|
|
394
|
+
- resaltado sintáctico
|
|
395
|
+
- snippets
|
|
396
|
+
- símbolos del documento
|
|
397
|
+
- hover
|
|
398
|
+
- diagnósticos
|
|
399
|
+
- autocompletado orientado al lenguaje
|
|
124
400
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
- **Diagnostics**: Real-time linting and syntax error reporting.
|
|
129
|
-
- **Hover Support**: View axiom definitions and logical formulas on hover.
|
|
130
|
-
- **Symbols**: Easily navigate your theory using the document symbol tree.
|
|
131
|
-
- **Autocompletion**: Intelligent snippets for logical commands and profiles.
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
## Arquitectura
|
|
132
404
|
|
|
133
|
-
|
|
405
|
+
1. **Lexer/Parser**: transforma el script `.st` en AST.
|
|
406
|
+
2. **Interpreter**: ejecuta statements, mantiene teoría, bindings, funciones y Text Layer.
|
|
407
|
+
3. **Profiles**: cada perfil implementa derivación, validez, satisfacibilidad, explicación y más.
|
|
408
|
+
4. **ProtocolHandler**: expone capacidades para integraciones de editor.
|
|
409
|
+
|
|
410
|
+
---
|
|
134
411
|
|
|
135
|
-
|
|
136
|
-
For detailed syntax guides, logic profile references, and advanced Text Layer features, please visit our official documentation at:
|
|
412
|
+
## Documentación ampliada
|
|
137
413
|
|
|
138
|
-
|
|
414
|
+
- Guía completa local: [`DOCS.md`](./DOCS.md)
|
|
415
|
+
- Documentación web: [agora.humanizar.cloud/docs#st-lang](https://agora.humanizar.cloud/docs#st-lang)
|
|
139
416
|
|
|
140
417
|
---
|
|
141
418
|
|
|
142
|
-
##
|
|
419
|
+
## Licencia
|
|
143
420
|
|
|
144
421
|
MIT © [Steven Velez](https://github.com/stevenvo780) | Developed by [Humanizar](https://github.com/humanizar)
|
package/dist/ast/nodes.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Formula, SourceLocation } from '../types';
|
|
2
|
-
export type StatementKind = 'logic_decl' | 'axiom_decl' | 'theorem_decl' | 'derive_cmd' | 'check_valid_cmd' | 'check_satisfiable_cmd' | 'check_equivalent_cmd' | 'prove_cmd' | 'countermodel_cmd' | 'truth_table_cmd' | 'let_decl' | 'claim_decl' | 'support_decl' | 'confidence_decl' | 'context_decl' | 'render_cmd' | 'analyze_cmd' | 'explain_cmd' | 'import_decl' | 'proof_block' | 'theory_decl';
|
|
2
|
+
export type StatementKind = 'logic_decl' | 'axiom_decl' | 'theorem_decl' | 'derive_cmd' | 'check_valid_cmd' | 'check_satisfiable_cmd' | 'check_equivalent_cmd' | 'prove_cmd' | 'countermodel_cmd' | 'truth_table_cmd' | 'let_decl' | 'claim_decl' | 'support_decl' | 'confidence_decl' | 'context_decl' | 'render_cmd' | 'analyze_cmd' | 'explain_cmd' | 'import_decl' | 'proof_block' | 'theory_decl' | 'print_cmd' | 'set_cmd' | 'if_stmt' | 'for_stmt' | 'while_stmt' | 'fn_decl' | 'return_stmt' | 'fn_call' | 'export_decl';
|
|
3
3
|
export interface ASTNode {
|
|
4
4
|
kind: StatementKind;
|
|
5
5
|
source: SourceLocation;
|
|
@@ -83,9 +83,62 @@ export interface TheoryMember {
|
|
|
83
83
|
export interface TheoryDeclNode extends ASTNode {
|
|
84
84
|
kind: 'theory_decl';
|
|
85
85
|
name: string;
|
|
86
|
+
params?: string[];
|
|
86
87
|
parent?: string;
|
|
87
88
|
members: TheoryMember[];
|
|
88
89
|
}
|
|
90
|
+
export interface PrintCmdNode extends ASTNode {
|
|
91
|
+
kind: 'print_cmd';
|
|
92
|
+
value: string | null;
|
|
93
|
+
formula?: Formula;
|
|
94
|
+
}
|
|
95
|
+
export interface SetCmdNode extends ASTNode {
|
|
96
|
+
kind: 'set_cmd';
|
|
97
|
+
name: string;
|
|
98
|
+
formula: Formula;
|
|
99
|
+
}
|
|
100
|
+
export interface IfBranch {
|
|
101
|
+
condition: 'valid' | 'satisfiable' | 'unsatisfiable' | 'invalid';
|
|
102
|
+
formula: Formula;
|
|
103
|
+
body: Statement[];
|
|
104
|
+
}
|
|
105
|
+
export interface IfStmtNode extends ASTNode {
|
|
106
|
+
kind: 'if_stmt';
|
|
107
|
+
branches: IfBranch[];
|
|
108
|
+
elseBranch?: Statement[];
|
|
109
|
+
}
|
|
110
|
+
export interface ForStmtNode extends ASTNode {
|
|
111
|
+
kind: 'for_stmt';
|
|
112
|
+
variable: string;
|
|
113
|
+
items: Formula[];
|
|
114
|
+
body: Statement[];
|
|
115
|
+
}
|
|
116
|
+
export interface WhileStmtNode extends ASTNode {
|
|
117
|
+
kind: 'while_stmt';
|
|
118
|
+
condition: 'valid' | 'satisfiable' | 'unsatisfiable' | 'invalid';
|
|
119
|
+
formula: Formula;
|
|
120
|
+
body: Statement[];
|
|
121
|
+
maxIterations: number;
|
|
122
|
+
}
|
|
123
|
+
export interface FnDeclNode extends ASTNode {
|
|
124
|
+
kind: 'fn_decl';
|
|
125
|
+
name: string;
|
|
126
|
+
params: string[];
|
|
127
|
+
body: Statement[];
|
|
128
|
+
}
|
|
129
|
+
export interface ReturnStmtNode extends ASTNode {
|
|
130
|
+
kind: 'return_stmt';
|
|
131
|
+
formula?: Formula;
|
|
132
|
+
}
|
|
133
|
+
export interface FnCallNode extends ASTNode {
|
|
134
|
+
kind: 'fn_call';
|
|
135
|
+
name: string;
|
|
136
|
+
args: Formula[];
|
|
137
|
+
}
|
|
138
|
+
export interface ExportDeclNode extends ASTNode {
|
|
139
|
+
kind: 'export_decl';
|
|
140
|
+
statement: Statement;
|
|
141
|
+
}
|
|
89
142
|
export interface LetPassageNode extends ASTNode {
|
|
90
143
|
kind: 'let_decl';
|
|
91
144
|
name: string;
|
|
@@ -135,7 +188,7 @@ export interface ContextDeclNode extends ASTNode {
|
|
|
135
188
|
claimName: string;
|
|
136
189
|
text: string;
|
|
137
190
|
}
|
|
138
|
-
export type Statement = LogicDeclNode | AxiomDeclNode | TheoremDeclNode | DeriveCmdNode | CheckValidCmdNode | CheckSatisfiableCmdNode | CheckEquivalentCmdNode | ProveCmdNode | CountermodelCmdNode | TruthTableCmdNode | LetDeclNode | ClaimDeclNode | SupportDeclNode | ConfidenceDeclNode | ContextDeclNode | RenderCmdNode | AnalyzeCmdNode | ExplainCmdNode | ImportDeclNode | ProofBlockNode | TheoryDeclNode;
|
|
191
|
+
export type Statement = LogicDeclNode | AxiomDeclNode | TheoremDeclNode | DeriveCmdNode | CheckValidCmdNode | CheckSatisfiableCmdNode | CheckEquivalentCmdNode | ProveCmdNode | CountermodelCmdNode | TruthTableCmdNode | LetDeclNode | ClaimDeclNode | SupportDeclNode | ConfidenceDeclNode | ContextDeclNode | RenderCmdNode | AnalyzeCmdNode | ExplainCmdNode | ImportDeclNode | ProofBlockNode | TheoryDeclNode | PrintCmdNode | SetCmdNode | IfStmtNode | ForStmtNode | WhileStmtNode | FnDeclNode | ReturnStmtNode | FnCallNode | ExportDeclNode;
|
|
139
192
|
export interface Program {
|
|
140
193
|
statements: Statement[];
|
|
141
194
|
file: string;
|
package/dist/ast/nodes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/ast/nodes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAInD,MAAM,MAAM,aAAa,GACrB,YAAY,GACZ,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,iBAAiB,GACjB,uBAAuB,GACvB,sBAAsB,GACtB,WAAW,GACX,kBAAkB,GAClB,iBAAiB,GACjB,UAAU,GACV,YAAY,GACZ,cAAc,GACd,iBAAiB,GACjB,cAAc,GACd,YAAY,GACZ,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,WAAW,GACX,SAAS,GACT,SAAS,GACT,UAAU,GACV,YAAY,GACZ,SAAS,GACT,aAAa,GACb,SAAS,GACT,aAAa,CAAC;AAElB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,cAAc,CAAC;CACxB;AAID,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAID,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,OAAO;IACtD,IAAI,EAAE,uBAAuB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAuB,SAAQ,OAAO;IACrD,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,mBAAoB,SAAQ,OAAO;IAClD,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,OAAO;IAChD,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,EAAE,CAAC;IAClD,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAID,MAAM,WAAW,YAAa,SAAQ,OAAO;IAC3C,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,WAAY,SAAQ,OAAO;IAC1C,IAAI,EAAE,UAAU,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,OAAO,GAAG,aAAa,GAAG,eAAe,GAAG,SAAS,CAAC;IACjE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,EAAE,SAAS,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAW,SAAQ,OAAO;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC;CACtB;AAID,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAiB,SAAQ,OAAO;IAC/C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,aAAa,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,WAAW,GAAG,cAAc,GAAG,gBAAgB,GAAG,cAAc,GAAG,kBAAkB,CAAC;AAElG,MAAM,WAAW,aAAc,SAAQ,OAAO;IAC5C,IAAI,EAAE,YAAY,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAmB,SAAQ,OAAO;IACjD,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAgB,SAAQ,OAAO;IAC9C,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAID,MAAM,MAAM,SAAS,GACjB,aAAa,GACb,aAAa,GACb,eAAe,GACf,aAAa,GACb,iBAAiB,GACjB,uBAAuB,GACvB,sBAAsB,GACtB,YAAY,GACZ,mBAAmB,GACnB,iBAAiB,GACjB,WAAW,GACX,aAAa,GACb,eAAe,GACf,kBAAkB,GAClB,eAAe,GACf,aAAa,GACb,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,cAAc,GACd,YAAY,GACZ,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,GACb,UAAU,GACV,cAAc,GACd,UAAU,GACV,cAAc,CAAC;AAEnB,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,SAAS,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;CACd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAuB,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAS;IACd,WAAW,EAAE,UAAU,EAAE,CAAM;gBAE1B,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB;IAKpD,QAAQ,IAAI,KAAK,EAAE;
|
|
1
|
+
{"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/lexer/lexer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAuB,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,IAAI,CAAa;IACzB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,IAAI,CAAS;IACd,WAAW,EAAE,UAAU,EAAE,CAAM;gBAE1B,MAAM,EAAE,MAAM,EAAE,IAAI,GAAE,MAAkB;IAKpD,QAAQ,IAAI,KAAK,EAAE;IA8PnB,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,OAAO;IAKf,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,gBAAgB;IA6BxB,OAAO,CAAC,UAAU;IAuDlB,OAAO,CAAC,UAAU;IAuBlB,OAAO,CAAC,cAAc;CAyBvB"}
|