@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.
Files changed (55) hide show
  1. package/README.md +346 -69
  2. package/dist/ast/nodes.d.ts +55 -2
  3. package/dist/ast/nodes.d.ts.map +1 -1
  4. package/dist/lexer/lexer.d.ts.map +1 -1
  5. package/dist/lexer/lexer.js +72 -16
  6. package/dist/lexer/lexer.js.map +1 -1
  7. package/dist/lexer/tokens.d.ts +22 -0
  8. package/dist/lexer/tokens.d.ts.map +1 -1
  9. package/dist/lexer/tokens.js +46 -0
  10. package/dist/lexer/tokens.js.map +1 -1
  11. package/dist/parser/parser.d.ts +20 -0
  12. package/dist/parser/parser.d.ts.map +1 -1
  13. package/dist/parser/parser.js +390 -10
  14. package/dist/parser/parser.js.map +1 -1
  15. package/dist/profiles/arithmetic/index.d.ts +20 -0
  16. package/dist/profiles/arithmetic/index.d.ts.map +1 -0
  17. package/dist/profiles/arithmetic/index.js +222 -0
  18. package/dist/profiles/arithmetic/index.js.map +1 -0
  19. package/dist/profiles/classical/propositional.d.ts.map +1 -1
  20. package/dist/profiles/classical/propositional.js +84 -0
  21. package/dist/profiles/classical/propositional.js.map +1 -1
  22. package/dist/profiles/index.d.ts +2 -1
  23. package/dist/profiles/index.d.ts.map +1 -1
  24. package/dist/profiles/index.js +4 -1
  25. package/dist/profiles/index.js.map +1 -1
  26. package/dist/profiles/intuitionistic/propositional.d.ts.map +1 -1
  27. package/dist/profiles/intuitionistic/propositional.js +27 -0
  28. package/dist/profiles/intuitionistic/propositional.js.map +1 -1
  29. package/dist/profiles/probabilistic/basic.d.ts.map +1 -1
  30. package/dist/profiles/probabilistic/basic.js +12 -0
  31. package/dist/profiles/probabilistic/basic.js.map +1 -1
  32. package/dist/protocol/handler.d.ts +1 -0
  33. package/dist/protocol/handler.d.ts.map +1 -1
  34. package/dist/protocol/handler.js +318 -2
  35. package/dist/protocol/handler.js.map +1 -1
  36. package/dist/runtime/format.d.ts.map +1 -1
  37. package/dist/runtime/format.js +94 -2
  38. package/dist/runtime/format.js.map +1 -1
  39. package/dist/runtime/interpreter.d.ts +31 -0
  40. package/dist/runtime/interpreter.d.ts.map +1 -1
  41. package/dist/runtime/interpreter.js +555 -83
  42. package/dist/runtime/interpreter.js.map +1 -1
  43. package/dist/tests/arithmetic.test.d.ts +2 -0
  44. package/dist/tests/arithmetic.test.d.ts.map +1 -0
  45. package/dist/tests/arithmetic.test.js +416 -0
  46. package/dist/tests/arithmetic.test.js.map +1 -0
  47. package/dist/tests/examples.test.d.ts +2 -0
  48. package/dist/tests/examples.test.d.ts.map +1 -0
  49. package/dist/tests/examples.test.js +85 -0
  50. package/dist/tests/examples.test.js.map +1 -0
  51. package/dist/tests/v1-features.test.js +339 -2
  52. package/dist/tests/v1-features.test.js.map +1 -1
  53. package/dist/types/index.d.ts +3 -1
  54. package/dist/types/index.d.ts.map +1 -1
  55. package/package.json +2 -1
@@ -111,6 +111,28 @@ class ProtocolHandler {
111
111
  case 'theorem_decl':
112
112
  theoremDefs.set(stmt.name, { formula: (0, propositional_1.formulaToString)(stmt.formula), line: stmt.source.line });
113
113
  break;
114
+ case 'export_decl':
115
+ // Tratar la declaración interna como si estuviera en el scope global
116
+ const inner = stmt.statement;
117
+ if (inner.kind === 'let_decl') {
118
+ if (inner.letType === 'description') {
119
+ letDefs.set(inner.name, { description: inner.description, line: inner.source.line });
120
+ }
121
+ else if (inner.letType === 'formula') {
122
+ const desc = 'description' in inner ? inner.description : undefined;
123
+ letDefs.set(inner.name, { formula: (0, propositional_1.formulaToString)(inner.formula), description: desc, line: inner.source.line });
124
+ }
125
+ }
126
+ else if (inner.kind === 'axiom_decl') {
127
+ axiomDefs.set(inner.name, { formula: (0, propositional_1.formulaToString)(inner.formula), line: inner.source.line });
128
+ }
129
+ else if (inner.kind === 'theorem_decl') {
130
+ theoremDefs.set(inner.name, { formula: (0, propositional_1.formulaToString)(inner.formula), line: inner.source.line });
131
+ }
132
+ else if (inner.kind === 'fn_decl') {
133
+ // Registrar función si fuera posible (habría que añadir functionDefs)
134
+ }
135
+ break;
114
136
  case 'theory_decl':
115
137
  // Registrar miembros de la teoría como defs prefijados
116
138
  for (const member of stmt.members) {
@@ -175,6 +197,13 @@ class ProtocolHandler {
175
197
  result: { content: `**Teorema** \`${word}\` = \`${theoremDef.formula}\``, range: { line, column } },
176
198
  };
177
199
  }
200
+ const staticHover = this.getStaticHoverInfo(word);
201
+ if (staticHover) {
202
+ return {
203
+ id: request.id,
204
+ result: { content: staticHover, range: { line, column } },
205
+ };
206
+ }
178
207
  }
179
208
  }
180
209
  }
@@ -207,6 +236,95 @@ class ProtocolHandler {
207
236
  const cleaned = word.replace(/^\.+|\.+$/g, '');
208
237
  return cleaned.length > 0 ? cleaned : null;
209
238
  }
239
+ getStaticHoverInfo(word) {
240
+ const lower = word.toLowerCase();
241
+ const keywordInfo = {
242
+ logic: '**logic**\n\nActiva el perfil lógico del script actual.\n\nEjemplo: `logic arithmetic`',
243
+ axiom: '**axiom**\n\nDeclara una premisa o ley base disponible para derivaciones.\n\nEjemplo: `axiom regla : P -> Q`',
244
+ theorem: '**theorem**\n\nDeclara un teorema nombrado dentro de una teoría o script.\n\nEjemplo: `theorem identidad : P -> P`',
245
+ let: '**let**\n\nCrea un alias reutilizable para fórmulas, descripciones o pasajes.',
246
+ derive: '**derive**\n\nIntenta derivar una conclusión a partir de premisas nombradas.\n\nEjemplo: `derive Q from {regla, hecho}`',
247
+ check: '**check**\n\nEvalúa propiedades como validez, satisfacibilidad o equivalencia.',
248
+ prove: '**prove**\n\nSolicita una demostración formal del objetivo.',
249
+ countermodel: '**countermodel**\n\nBusca un modelo que haga falsa la fórmula dada.',
250
+ truth_table: '**truth_table**\n\nGenera la tabla de verdad de una fórmula proposicional.',
251
+ explain: '**explain**\n\nDevuelve una explicación del perfil o del juicio ejecutado.',
252
+ analyze: '**analyze**\n\nAnaliza premisas y conclusión para detectar estructura inferencial o falacias.',
253
+ import: '**import**\n\nImporta otro archivo `.st` dentro del script actual.',
254
+ export: '**export**\n\nMarca una declaración para que sea visible desde otros scripts que importen este archivo.',
255
+ theory: '**theory**\n\nDefine un bloque reutilizable (Clase o Singleton) con miembros públicos y privados.\n\nEjemplo:\n```st\ntheory Agente(nombre) {\n let id = nombre\n}\n```',
256
+ extends: '**extends**\n\nPermite que una teoría herede miembros públicos de otra teoría.',
257
+ private: '**private**\n\nMarca un miembro de teoría como interno y no accesible externamente.',
258
+ print: '**print**\n\nImprime texto o fórmulas durante la ejecución.',
259
+ set: '**set**\n\nReasigna el valor de una variable o alias en tiempo de ejecución.',
260
+ if: '**if**\n\nEjecuta un bloque cuando una condición (`valid`, `satisfiable`, etc.) se cumple.',
261
+ else: '**else**\n\nDefine la rama alternativa de un bloque condicional.',
262
+ for: '**for**\n\nItera sobre una colección de fórmulas o valores.',
263
+ in: '**in**\n\nIntroduce la colección usada por un bucle `for`.',
264
+ while: '**while**\n\nRepite un bloque mientras una condición siga siendo verdadera.',
265
+ fn: '**fn**\n\nDeclara una función con parámetros y posible retorno.',
266
+ return: '**return**\n\nDevuelve un valor desde una función.',
267
+ arithmetic: '**arithmetic**\n\nPerfil numérico para expresiones aritméticas, comparaciones y scripting ST.',
268
+ '+': '**+**\n\nSuma dos expresiones numéricas.',
269
+ '-': '**-**\n\nResta dos expresiones numéricas o expresa signo negativo.',
270
+ '*': '**\\***\n\nMultiplica dos expresiones numéricas.',
271
+ '/': '**/**\n\nDivide una expresión numérica por otra.',
272
+ '%': '**%**\n\nCalcula el residuo de una división entera.',
273
+ '<': '**<**\n\nCompara si el operando izquierdo es menor.',
274
+ '>': '**>**\n\nCompara si el operando izquierdo es mayor.',
275
+ '<=': '**<=**\n\nCompara si el operando izquierdo es menor o igual.',
276
+ '>=': '**>=**\n\nCompara si el operando izquierdo es mayor o igual.',
277
+ '≤': '**≤**\n\nVersión Unicode de `<=`.',
278
+ '≥': '**≥**\n\nVersión Unicode de `>=`.',
279
+ '^': '**^** (XOR)\n\nDisyunción exclusiva. Verdadera si solo uno de los operandos es verdadero.',
280
+ '⊕': '**⊕** (XOR)\n\nVersión Unicode de `^`.',
281
+ 'xor': '**xor**\n\nVersión textual de `^`.',
282
+ '!&': '**!&** (NAND)\n\nNegación alternativa (Sheffer stroke). Falsa solo si ambos operandos son verdaderos.',
283
+ '↑': '**↑** (NAND)\n\nVersión Unicode de `!&`.',
284
+ 'nand': '**nand**\n\nVersión textual de `!&`.',
285
+ '!|': '**!|** (NOR)\n\nNegación conjunta (Peirce arrow). Verdadera solo si ambos operandos son falsos.',
286
+ '↓': '**↓** (NOR)\n\nVersión Unicode de `!|`.',
287
+ 'nor': '**nor**\n\nVersión textual de `!|`.'
288
+ };
289
+ const aliases = {
290
+ logica: keywordInfo.logic,
291
+ axioma: keywordInfo.axiom,
292
+ teorema: keywordInfo.theorem,
293
+ derivar: keywordInfo.derive,
294
+ contramodelo: keywordInfo.countermodel,
295
+ tabla_verdad: keywordInfo.truth_table,
296
+ explicar: keywordInfo.explain,
297
+ analizar: keywordInfo.analyze,
298
+ importar: keywordInfo.import,
299
+ exportar: keywordInfo.export,
300
+ teoria: keywordInfo.theory,
301
+ extiende: keywordInfo.extends,
302
+ privado: keywordInfo.private,
303
+ imprimir: keywordInfo.print,
304
+ asignar: keywordInfo.set,
305
+ si: keywordInfo.if,
306
+ sino: keywordInfo.else,
307
+ para: keywordInfo.for,
308
+ en: keywordInfo.in,
309
+ mientras: keywordInfo.while,
310
+ funcion: keywordInfo.fn,
311
+ retornar: keywordInfo.return
312
+ };
313
+ const profileInfo = {
314
+ 'classical.propositional': '**classical.propositional**\n\nLógica proposicional clásica con tablas de verdad y tableaux.',
315
+ 'classical.first_order': '**classical.first_order**\n\nLógica de primer orden con cuantificadores, predicados e igualdad.',
316
+ 'modal.k': '**modal.k**\n\nLógica modal mínima con necesidad (`[]`) y posibilidad (`<>`).',
317
+ 'paraconsistent.belnap': '**paraconsistent.belnap**\n\nLógica paraconsistente de cuatro valores.',
318
+ 'deontic.standard': '**deontic.standard**\n\nLógica deóntica para obligación, permisión y prohibición.',
319
+ 'epistemic.s5': '**epistemic.s5**\n\nLógica epistémica del conocimiento en marcos S5.',
320
+ 'intuitionistic.propositional': '**intuitionistic.propositional**\n\nLógica constructiva sin tercero excluido general.',
321
+ 'temporal.ltl': '**temporal.ltl**\n\nLógica temporal lineal con `next` y `until`.',
322
+ 'aristotelian.syllogistic': '**aristotelian.syllogistic**\n\nSilogística categórica clásica.',
323
+ 'probabilistic.basic': '**probabilistic.basic**\n\nRazonamiento probabilístico básico.',
324
+ arithmetic: keywordInfo.arithmetic,
325
+ };
326
+ return keywordInfo[word] ?? keywordInfo[lower] ?? aliases[lower] ?? profileInfo[word] ?? profileInfo[lower] ?? null;
327
+ }
210
328
  handleSymbols(request) {
211
329
  const source = request.params.source;
212
330
  const file = request.params.file || '<stdin>';
@@ -363,6 +481,13 @@ class ProtocolHandler {
363
481
  detail: 'Lógica probabilística — razonamiento con probabilidades [0,1]',
364
482
  insertText: 'logic probabilistic.basic',
365
483
  },
484
+ {
485
+ label: 'logic arithmetic',
486
+ kind: 'value',
487
+ detail: 'Perfil aritmético para cálculos numéricos, comparaciones y scripting',
488
+ documentation: 'Activa el perfil `arithmetic` para usar `+`, `-`, `*`, `/`, `%`, `<`, `>`, `<=` y `>=` con evaluación numérica.',
489
+ insertText: 'logic arithmetic',
490
+ },
366
491
  // ── Declaraciones ───────────────────────────────────────────
367
492
  {
368
493
  label: 'axiom',
@@ -616,6 +741,42 @@ class ProtocolHandler {
616
741
  detail: 'Negación (¬)',
617
742
  insertText: '!${1:A}',
618
743
  },
744
+ {
745
+ label: '^',
746
+ kind: 'operator',
747
+ detail: 'XOR (⊕) — disyunción exclusiva',
748
+ insertText: '${1:A} ^ ${2:B}',
749
+ },
750
+ {
751
+ label: '!&',
752
+ kind: 'operator',
753
+ detail: 'NAND (↑) — negación alternativa',
754
+ insertText: '${1:A} !& ${2:B}',
755
+ },
756
+ {
757
+ label: '!|',
758
+ kind: 'operator',
759
+ detail: 'NOR (↓) — negación conjunta',
760
+ insertText: '${1:A} !| ${2:B}',
761
+ },
762
+ {
763
+ label: 'xor',
764
+ kind: 'operator',
765
+ detail: 'XOR (texto)',
766
+ insertText: '${1:A} xor ${2:B}',
767
+ },
768
+ {
769
+ label: 'nand',
770
+ kind: 'operator',
771
+ detail: 'NAND (texto)',
772
+ insertText: '${1:A} nand ${2:B}',
773
+ },
774
+ {
775
+ label: 'nor',
776
+ kind: 'operator',
777
+ detail: 'NOR (texto)',
778
+ insertText: '${1:A} nor ${2:B}',
779
+ },
619
780
  // ── Renderizado ─────────────────────────────────────────────
620
781
  {
621
782
  label: 'render',
@@ -693,6 +854,18 @@ class ProtocolHandler {
693
854
  detail: 'Importar archivo .st (español)',
694
855
  insertText: 'importar "${1:ruta.st}"',
695
856
  },
857
+ {
858
+ label: 'export',
859
+ kind: 'keyword',
860
+ detail: 'Exportar declaración',
861
+ insertText: 'export ',
862
+ },
863
+ {
864
+ label: 'exportar',
865
+ kind: 'keyword',
866
+ detail: 'Exportar declaración (español)',
867
+ insertText: 'exportar ',
868
+ },
696
869
  // ── Proof blocks ────────────────────────────────────────────
697
870
  {
698
871
  label: 'assume',
@@ -729,13 +902,13 @@ class ProtocolHandler {
729
902
  label: 'theory',
730
903
  kind: 'keyword',
731
904
  detail: 'Declarar bloque de teoría (encapsula axiomas, let, teoremas)',
732
- insertText: 'theory ${1:Name} {\n ${2}\n}',
905
+ insertText: 'theory ${1:Name}(${2:params}) {\n ${3}\n}',
733
906
  },
734
907
  {
735
908
  label: 'teoria',
736
909
  kind: 'keyword',
737
910
  detail: 'Declarar bloque de teoría (español)',
738
- insertText: 'teoria ${1:Nombre} {\n ${2}\n}',
911
+ insertText: 'teoria ${1:Nombre}(${2:parametros}) {\n ${3}\n}',
739
912
  },
740
913
  {
741
914
  label: 'theory extends',
@@ -761,6 +934,149 @@ class ProtocolHandler {
761
934
  detail: 'Miembro privado de teoría (español)',
762
935
  insertText: 'privado ${1:statement}',
763
936
  },
937
+ // ── Programación y control de flujo ───────────────────────
938
+ {
939
+ label: 'print',
940
+ kind: 'keyword',
941
+ detail: 'Imprimir texto o fórmulas durante la ejecución',
942
+ documentation: 'Úsalo para inspeccionar valores intermedios, resultados o mensajes del script.',
943
+ insertText: 'print ${1:value}',
944
+ },
945
+ {
946
+ label: 'imprimir',
947
+ kind: 'keyword',
948
+ detail: 'Imprimir texto o fórmulas (español)',
949
+ insertText: 'imprimir ${1:valor}',
950
+ },
951
+ {
952
+ label: 'set',
953
+ kind: 'keyword',
954
+ detail: 'Reasignar una variable o alias',
955
+ documentation: 'Actualiza un valor en tiempo de ejecución, útil dentro de loops y funciones.',
956
+ insertText: 'set ${1:name} = ${2:value}',
957
+ },
958
+ {
959
+ label: 'asignar',
960
+ kind: 'keyword',
961
+ detail: 'Reasignar una variable o alias (español)',
962
+ insertText: 'asignar ${1:nombre} = ${2:valor}',
963
+ },
964
+ {
965
+ label: 'if',
966
+ kind: 'keyword',
967
+ detail: 'Condicional ST con rama else',
968
+ documentation: 'Evalúa condiciones como `valid`, `invalid`, `satisfiable` o `unsatisfiable` y ejecuta bloques según el resultado.',
969
+ insertText: 'if ${1:valid} ${2:formula} {\n ${3}\n} else {\n ${4}\n}',
970
+ },
971
+ {
972
+ label: 'si',
973
+ kind: 'keyword',
974
+ detail: 'Condicional ST con rama sino (español)',
975
+ insertText: 'si ${1:valido} ${2:formula} {\n ${3}\n} sino {\n ${4}\n}',
976
+ },
977
+ {
978
+ label: 'for',
979
+ kind: 'keyword',
980
+ detail: 'Bucle sobre colección de valores o fórmulas',
981
+ insertText: 'for ${1:item} in {${2:items}} {\n ${3}\n}',
982
+ },
983
+ {
984
+ label: 'para',
985
+ kind: 'keyword',
986
+ detail: 'Bucle sobre colección (español)',
987
+ insertText: 'para ${1:item} en {${2:items}} {\n ${3}\n}',
988
+ },
989
+ {
990
+ label: 'while',
991
+ kind: 'keyword',
992
+ detail: 'Bucle condicionado',
993
+ insertText: 'while ${1:valid} ${2:formula} {\n ${3}\n}',
994
+ },
995
+ {
996
+ label: 'mientras',
997
+ kind: 'keyword',
998
+ detail: 'Bucle condicionado (español)',
999
+ insertText: 'mientras ${1:valido} ${2:formula} {\n ${3}\n}',
1000
+ },
1001
+ {
1002
+ label: 'fn',
1003
+ kind: 'keyword',
1004
+ detail: 'Declarar función con parámetros y retorno',
1005
+ insertText: 'fn ${1:name}(${2:params}) {\n ${3}\n return ${4:result}\n}',
1006
+ },
1007
+ {
1008
+ label: 'funcion',
1009
+ kind: 'keyword',
1010
+ detail: 'Declarar función con parámetros y retorno (español)',
1011
+ insertText: 'funcion ${1:nombre}(${2:parametros}) {\n ${3}\n retornar ${4:resultado}\n}',
1012
+ },
1013
+ {
1014
+ label: 'return',
1015
+ kind: 'keyword',
1016
+ detail: 'Retornar un valor desde una función',
1017
+ insertText: 'return ${1:value}',
1018
+ },
1019
+ {
1020
+ label: 'retornar',
1021
+ kind: 'keyword',
1022
+ detail: 'Retornar un valor desde una función (español)',
1023
+ insertText: 'retornar ${1:valor}',
1024
+ },
1025
+ // ── Aritmética ────────────────────────────────────────────
1026
+ {
1027
+ label: '+',
1028
+ kind: 'operator',
1029
+ detail: 'Suma dos expresiones numéricas',
1030
+ insertText: '${1:a} + ${2:b}',
1031
+ },
1032
+ {
1033
+ label: '-',
1034
+ kind: 'operator',
1035
+ detail: 'Resta dos expresiones numéricas',
1036
+ insertText: '${1:a} - ${2:b}',
1037
+ },
1038
+ {
1039
+ label: '*',
1040
+ kind: 'operator',
1041
+ detail: 'Multiplicación numérica',
1042
+ insertText: '${1:a} * ${2:b}',
1043
+ },
1044
+ {
1045
+ label: '/',
1046
+ kind: 'operator',
1047
+ detail: 'División numérica',
1048
+ insertText: '${1:a} / ${2:b}',
1049
+ },
1050
+ {
1051
+ label: '%',
1052
+ kind: 'operator',
1053
+ detail: 'Residuo de división entera',
1054
+ insertText: '${1:a} % ${2:b}',
1055
+ },
1056
+ {
1057
+ label: '<',
1058
+ kind: 'operator',
1059
+ detail: 'Comparación menor que',
1060
+ insertText: '${1:a} < ${2:b}',
1061
+ },
1062
+ {
1063
+ label: '>',
1064
+ kind: 'operator',
1065
+ detail: 'Comparación mayor que',
1066
+ insertText: '${1:a} > ${2:b}',
1067
+ },
1068
+ {
1069
+ label: '<=',
1070
+ kind: 'operator',
1071
+ detail: 'Comparación menor o igual que',
1072
+ insertText: '${1:a} <= ${2:b}',
1073
+ },
1074
+ {
1075
+ label: '>=',
1076
+ kind: 'operator',
1077
+ detail: 'Comparación mayor o igual que',
1078
+ insertText: '${1:a} >= ${2:b}',
1079
+ },
764
1080
  ];
765
1081
  return { id: request.id, result: items };
766
1082
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/protocol/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../src/protocol/handler.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAiBnC,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAsDnD;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAsDjD"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAiBnC,oFAAoF;AACpF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA2GnD;AAED,kDAAkD;AAClD,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CA6FjD"}
@@ -53,6 +53,18 @@ function formulaToUnicode(f) {
53
53
  return f.args?.[0] && f.args?.[1]
54
54
  ? `(${formulaToUnicode(f.args[0])} ↔ ${formulaToUnicode(f.args[1])})`
55
55
  : '? ↔ ?';
56
+ case 'nand':
57
+ return f.args?.[0] && f.args?.[1]
58
+ ? `(${formulaToUnicode(f.args[0])} ↑ ${formulaToUnicode(f.args[1])})`
59
+ : '? ↑ ?';
60
+ case 'nor':
61
+ return f.args?.[0] && f.args?.[1]
62
+ ? `(${formulaToUnicode(f.args[0])} ↓ ${formulaToUnicode(f.args[1])})`
63
+ : '? ↓ ?';
64
+ case 'xor':
65
+ return f.args?.[0] && f.args?.[1]
66
+ ? `(${collectAssociativeArgs(f, 'xor').map(formulaToUnicode).join(' ⊕ ')})`
67
+ : '? ⊕ ?';
56
68
  case 'modal_necessity':
57
69
  return f.args?.[0] ? `□(${formulaToUnicode(f.args[0])})` : '□?';
58
70
  case 'modal_possibility':
@@ -77,6 +89,47 @@ function formulaToUnicode(f) {
77
89
  return f.args?.[0] && f.args?.[1]
78
90
  ? `(${formulaToUnicode(f.args[0])} U ${formulaToUnicode(f.args[1])})`
79
91
  : '? U ?';
92
+ // Arithmetic
93
+ case 'number':
94
+ return f.value !== undefined ? String(f.value) : '?';
95
+ case 'add':
96
+ return f.args?.[0] && f.args?.[1]
97
+ ? `(${formulaToUnicode(f.args[0])} + ${formulaToUnicode(f.args[1])})`
98
+ : '? + ?';
99
+ case 'subtract':
100
+ return f.args?.[0] && f.args?.[1]
101
+ ? `(${formulaToUnicode(f.args[0])} - ${formulaToUnicode(f.args[1])})`
102
+ : '? - ?';
103
+ case 'multiply':
104
+ return f.args?.[0] && f.args?.[1]
105
+ ? `(${formulaToUnicode(f.args[0])} × ${formulaToUnicode(f.args[1])})`
106
+ : '? × ?';
107
+ case 'divide':
108
+ return f.args?.[0] && f.args?.[1]
109
+ ? `(${formulaToUnicode(f.args[0])} ÷ ${formulaToUnicode(f.args[1])})`
110
+ : '? ÷ ?';
111
+ case 'modulo':
112
+ return f.args?.[0] && f.args?.[1]
113
+ ? `(${formulaToUnicode(f.args[0])} % ${formulaToUnicode(f.args[1])})`
114
+ : '? % ?';
115
+ case 'less':
116
+ return f.args?.[0] && f.args?.[1]
117
+ ? `(${formulaToUnicode(f.args[0])} < ${formulaToUnicode(f.args[1])})`
118
+ : '? < ?';
119
+ case 'greater':
120
+ return f.args?.[0] && f.args?.[1]
121
+ ? `(${formulaToUnicode(f.args[0])} > ${formulaToUnicode(f.args[1])})`
122
+ : '? > ?';
123
+ case 'less_eq':
124
+ return f.args?.[0] && f.args?.[1]
125
+ ? `(${formulaToUnicode(f.args[0])} ≤ ${formulaToUnicode(f.args[1])})`
126
+ : '? ≤ ?';
127
+ case 'greater_eq':
128
+ return f.args?.[0] && f.args?.[1]
129
+ ? `(${formulaToUnicode(f.args[0])} \u2265 ${formulaToUnicode(f.args[1])})`
130
+ : '? \u2265 ?';
131
+ case 'fn_call':
132
+ return `${f.name ?? '?'}(${(f.args ?? []).map(formulaToUnicode).join(', ')})`;
80
133
  default:
81
134
  return '?';
82
135
  }
@@ -132,8 +185,47 @@ function formulaToLaTeX(f) {
132
185
  return f.args?.[0] ? `\\mathsf{X}\\,(${formulaToLaTeX(f.args[0])})` : '\\mathsf{X}\\,?';
133
186
  case 'temporal_until':
134
187
  return f.args?.[0] && f.args?.[1]
135
- ? `(${formulaToLaTeX(f.args[0])} \\mathbin{\\mathsf{U}} ${formulaToLaTeX(f.args[1])})`
136
- : '? \\mathbin{\\mathsf{U}} ?';
188
+ ? `(${formulaToLaTeX(f.args[0])} \mathbin{\mathsf{U}} ${formulaToLaTeX(f.args[1])})`
189
+ : '? \mathbin{\mathsf{U}} ?';
190
+ // Arithmetic
191
+ case 'number':
192
+ return f.value !== undefined ? String(f.value) : '?';
193
+ case 'add':
194
+ return f.args?.[0] && f.args?.[1]
195
+ ? `(${formulaToLaTeX(f.args[0])} + ${formulaToLaTeX(f.args[1])})`
196
+ : '? + ?';
197
+ case 'subtract':
198
+ return f.args?.[0] && f.args?.[1]
199
+ ? `(${formulaToLaTeX(f.args[0])} - ${formulaToLaTeX(f.args[1])})`
200
+ : '? - ?';
201
+ case 'multiply':
202
+ return f.args?.[0] && f.args?.[1]
203
+ ? `(${formulaToLaTeX(f.args[0])} \\times ${formulaToLaTeX(f.args[1])})`
204
+ : '? \\times ?';
205
+ case 'divide':
206
+ return f.args?.[0] && f.args?.[1]
207
+ ? `\\frac{${formulaToLaTeX(f.args[0])}}{${formulaToLaTeX(f.args[1])}}`
208
+ : '\\frac{?}{?}';
209
+ case 'modulo':
210
+ return f.args?.[0] && f.args?.[1]
211
+ ? `(${formulaToLaTeX(f.args[0])} \\bmod ${formulaToLaTeX(f.args[1])})`
212
+ : '? \\bmod ?';
213
+ case 'less':
214
+ return f.args?.[0] && f.args?.[1]
215
+ ? `(${formulaToLaTeX(f.args[0])} < ${formulaToLaTeX(f.args[1])})`
216
+ : '? < ?';
217
+ case 'greater':
218
+ return f.args?.[0] && f.args?.[1]
219
+ ? `(${formulaToLaTeX(f.args[0])} > ${formulaToLaTeX(f.args[1])})`
220
+ : '? > ?';
221
+ case 'less_eq':
222
+ return f.args?.[0] && f.args?.[1]
223
+ ? `(${formulaToLaTeX(f.args[0])} \\leq ${formulaToLaTeX(f.args[1])})`
224
+ : '? \\leq ?';
225
+ case 'greater_eq':
226
+ return f.args?.[0] && f.args?.[1]
227
+ ? `(${formulaToLaTeX(f.args[0])} \\geq ${formulaToLaTeX(f.args[1])})`
228
+ : '? \\geq ?';
137
229
  default:
138
230
  return '?';
139
231
  }