@stevenvo780/st-lang 1.5.6 → 1.5.8

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 (40) hide show
  1. package/dist/ast/nodes.d.ts +50 -2
  2. package/dist/ast/nodes.d.ts.map +1 -1
  3. package/dist/lexer/lexer.d.ts.map +1 -1
  4. package/dist/lexer/lexer.js +42 -14
  5. package/dist/lexer/lexer.js.map +1 -1
  6. package/dist/lexer/tokens.d.ts +18 -0
  7. package/dist/lexer/tokens.d.ts.map +1 -1
  8. package/dist/lexer/tokens.js +37 -0
  9. package/dist/lexer/tokens.js.map +1 -1
  10. package/dist/parser/parser.d.ts +16 -0
  11. package/dist/parser/parser.d.ts.map +1 -1
  12. package/dist/parser/parser.js +281 -2
  13. package/dist/parser/parser.js.map +1 -1
  14. package/dist/profiles/arithmetic/index.d.ts +20 -0
  15. package/dist/profiles/arithmetic/index.d.ts.map +1 -0
  16. package/dist/profiles/arithmetic/index.js +222 -0
  17. package/dist/profiles/arithmetic/index.js.map +1 -0
  18. package/dist/profiles/classical/propositional.d.ts.map +1 -1
  19. package/dist/profiles/classical/propositional.js +39 -0
  20. package/dist/profiles/classical/propositional.js.map +1 -1
  21. package/dist/profiles/index.d.ts +2 -1
  22. package/dist/profiles/index.d.ts.map +1 -1
  23. package/dist/profiles/index.js +4 -1
  24. package/dist/profiles/index.js.map +1 -1
  25. package/dist/runtime/format.d.ts.map +1 -1
  26. package/dist/runtime/format.js +80 -2
  27. package/dist/runtime/format.js.map +1 -1
  28. package/dist/runtime/interpreter.d.ts +13 -0
  29. package/dist/runtime/interpreter.d.ts.map +1 -1
  30. package/dist/runtime/interpreter.js +212 -0
  31. package/dist/runtime/interpreter.js.map +1 -1
  32. package/dist/tests/arithmetic.test.d.ts +2 -0
  33. package/dist/tests/arithmetic.test.d.ts.map +1 -0
  34. package/dist/tests/arithmetic.test.js +416 -0
  35. package/dist/tests/arithmetic.test.js.map +1 -0
  36. package/dist/tests/v1-features.test.js +339 -2
  37. package/dist/tests/v1-features.test.js.map +1 -1
  38. package/dist/types/index.d.ts +2 -1
  39. package/dist/types/index.d.ts.map +1 -1
  40. package/package.json +1 -1
@@ -11,6 +11,7 @@ class Parser {
11
11
  pos = 0;
12
12
  file;
13
13
  diagnostics = [];
14
+ knownFunctionNames = new Set();
14
15
  constructor(file = '<stdin>') {
15
16
  this.file = file;
16
17
  }
@@ -47,6 +48,10 @@ class Parser {
47
48
  // --- Parsing de statements ---
48
49
  parseStatement() {
49
50
  const tok = this.current();
51
+ if (this.peek(1) === tokens_1.TokenType.LPAREN &&
52
+ (tok.type === tokens_1.TokenType.IDENTIFIER || this.knownFunctionNames.has(tok.value))) {
53
+ return this.parseFnCall();
54
+ }
50
55
  switch (tok.type) {
51
56
  case tokens_1.TokenType.LOGIC:
52
57
  return this.parseLogicDecl();
@@ -87,6 +92,22 @@ class Parser {
87
92
  return this.parseProofBlock();
88
93
  case tokens_1.TokenType.THEORY:
89
94
  return this.parseTheoryDecl();
95
+ case tokens_1.TokenType.PRINT:
96
+ return this.parsePrintCmd();
97
+ case tokens_1.TokenType.SET:
98
+ return this.parseSetCmd();
99
+ case tokens_1.TokenType.IF:
100
+ return this.parseIfStmt();
101
+ case tokens_1.TokenType.FOR:
102
+ return this.parseForStmt();
103
+ case tokens_1.TokenType.WHILE:
104
+ return this.parseWhileStmt();
105
+ case tokens_1.TokenType.FN:
106
+ return this.parseFnDecl();
107
+ case tokens_1.TokenType.RETURN:
108
+ return this.parseReturnStmt();
109
+ case tokens_1.TokenType.IDENTIFIER:
110
+ throw new Error(`Statement inesperado: '${tok.value}' (${tok.type})`);
90
111
  case tokens_1.TokenType.NEWLINE:
91
112
  this.advance();
92
113
  return null;
@@ -446,6 +467,186 @@ class Parser {
446
467
  this.expect(tokens_1.TokenType.RBRACE);
447
468
  return { kind: 'theory_decl', name, parent, members, source: src };
448
469
  }
470
+ // --- print "texto" | print formula ---
471
+ parsePrintCmd() {
472
+ const src = this.loc();
473
+ this.expect(tokens_1.TokenType.PRINT);
474
+ if (this.checkType(tokens_1.TokenType.STRING)) {
475
+ const value = this.current().value;
476
+ this.advance();
477
+ return { kind: 'print_cmd', value, source: src };
478
+ }
479
+ // Imprimir resultado de fórmula
480
+ const formula = this.parseFormula();
481
+ return { kind: 'print_cmd', value: null, formula, source: src };
482
+ }
483
+ // --- set x = formula ---
484
+ parseSetCmd() {
485
+ const src = this.loc();
486
+ this.expect(tokens_1.TokenType.SET);
487
+ const name = this.expectName();
488
+ this.expectOneOf(tokens_1.TokenType.EQUALS, tokens_1.TokenType.COLON);
489
+ const formula = this.parseFormula();
490
+ return { kind: 'set_cmd', name, formula, source: src };
491
+ }
492
+ // --- if valid FORMULA { } else if satisfiable FORMULA { } else { } ---
493
+ parseIfStmt() {
494
+ const src = this.loc();
495
+ const branches = [];
496
+ let elseBranch;
497
+ // Primera rama: if
498
+ this.expect(tokens_1.TokenType.IF);
499
+ branches.push(this.parseConditionBranch());
500
+ // Ramas else if
501
+ while (this.checkElseIf()) {
502
+ this.expect(tokens_1.TokenType.ELSE);
503
+ this.expect(tokens_1.TokenType.IF);
504
+ branches.push(this.parseConditionBranch());
505
+ }
506
+ // Rama else
507
+ if (this.match(tokens_1.TokenType.ELSE)) {
508
+ elseBranch = this.parseBlock();
509
+ }
510
+ return { kind: 'if_stmt', branches, elseBranch, source: src };
511
+ }
512
+ checkElseIf() {
513
+ // Mira si hay else seguido de if (con posibles newlines entre medio)
514
+ if (!this.checkType(tokens_1.TokenType.ELSE))
515
+ return false;
516
+ // Buscar if después de else (puede haber newlines)
517
+ let lookahead = 1;
518
+ while (this.peek(lookahead) === tokens_1.TokenType.NEWLINE)
519
+ lookahead++;
520
+ return this.peek(lookahead) === tokens_1.TokenType.IF;
521
+ }
522
+ parseConditionBranch() {
523
+ const condition = this.parseConditionKeyword();
524
+ const formula = this.parseFormula();
525
+ const body = this.parseBlock();
526
+ return { condition, formula, body };
527
+ }
528
+ parseConditionKeyword() {
529
+ if (this.match(tokens_1.TokenType.VALID))
530
+ return 'valid';
531
+ if (this.match(tokens_1.TokenType.SATISFIABLE))
532
+ return 'satisfiable';
533
+ // Aceptar "invalid" / "unsatisfiable" como identifiers
534
+ if (this.checkType(tokens_1.TokenType.IDENTIFIER)) {
535
+ const v = this.current().value.toLowerCase();
536
+ if (v === 'invalid' || v === 'invalido') {
537
+ this.advance();
538
+ return 'invalid';
539
+ }
540
+ if (v === 'unsatisfiable' || v === 'insatisfacible') {
541
+ this.advance();
542
+ return 'unsatisfiable';
543
+ }
544
+ }
545
+ // Default: valid
546
+ return 'valid';
547
+ }
548
+ // --- for x in {A, B, C} { body } ---
549
+ parseForStmt() {
550
+ const src = this.loc();
551
+ this.expect(tokens_1.TokenType.FOR);
552
+ const variable = this.expectName();
553
+ this.expect(tokens_1.TokenType.IN);
554
+ this.expect(tokens_1.TokenType.LBRACE);
555
+ const items = [];
556
+ if (!this.checkType(tokens_1.TokenType.RBRACE)) {
557
+ items.push(this.parseFormula());
558
+ while (this.match(tokens_1.TokenType.COMMA)) {
559
+ items.push(this.parseFormula());
560
+ }
561
+ }
562
+ this.expect(tokens_1.TokenType.RBRACE);
563
+ const body = this.parseBlock();
564
+ return { kind: 'for_stmt', variable, items, body, source: src };
565
+ }
566
+ // --- while valid FORMULA { body } ---
567
+ parseWhileStmt() {
568
+ const src = this.loc();
569
+ this.expect(tokens_1.TokenType.WHILE);
570
+ const condition = this.parseConditionKeyword();
571
+ const formula = this.parseFormula();
572
+ const body = this.parseBlock();
573
+ return { kind: 'while_stmt', condition, formula, body, maxIterations: 1000, source: src };
574
+ }
575
+ // --- fn nombre(param1, param2) { body } ---
576
+ parseFnDecl() {
577
+ const src = this.loc();
578
+ this.expect(tokens_1.TokenType.FN);
579
+ const name = this.expectName();
580
+ this.knownFunctionNames.add(name);
581
+ this.expect(tokens_1.TokenType.LPAREN);
582
+ const params = [];
583
+ if (!this.checkType(tokens_1.TokenType.RPAREN)) {
584
+ params.push(this.expectName());
585
+ while (this.match(tokens_1.TokenType.COMMA)) {
586
+ params.push(this.expectName());
587
+ }
588
+ }
589
+ this.expect(tokens_1.TokenType.RPAREN);
590
+ const body = this.parseBlock();
591
+ return { kind: 'fn_decl', name, params, body, source: src };
592
+ }
593
+ // --- return formula ---
594
+ parseReturnStmt() {
595
+ const src = this.loc();
596
+ this.expect(tokens_1.TokenType.RETURN);
597
+ let formula;
598
+ // Si hay algo después del return que no sea newline/EOF/}
599
+ if (!this.checkType(tokens_1.TokenType.NEWLINE) && !this.checkType(tokens_1.TokenType.EOF) &&
600
+ !this.checkType(tokens_1.TokenType.RBRACE)) {
601
+ formula = this.parseFormula();
602
+ }
603
+ return { kind: 'return_stmt', formula, source: src };
604
+ }
605
+ // --- nombre(arg1, arg2) — llamada a función ---
606
+ parseFnCall() {
607
+ const src = this.loc();
608
+ const name = this.expectName();
609
+ this.expect(tokens_1.TokenType.LPAREN);
610
+ const args = [];
611
+ if (!this.checkType(tokens_1.TokenType.RPAREN)) {
612
+ args.push(this.parseFormula());
613
+ while (this.match(tokens_1.TokenType.COMMA)) {
614
+ args.push(this.parseFormula());
615
+ }
616
+ }
617
+ this.expect(tokens_1.TokenType.RPAREN);
618
+ return { kind: 'fn_call', name, args, source: src };
619
+ }
620
+ // --- Helper: parsear un bloque { statements } ---
621
+ parseBlock() {
622
+ this.skipNewlines();
623
+ this.expect(tokens_1.TokenType.LBRACE);
624
+ this.skipNewlines();
625
+ const body = [];
626
+ while (!this.checkType(tokens_1.TokenType.RBRACE) && !this.isAtEnd()) {
627
+ this.skipNewlines();
628
+ if (this.checkType(tokens_1.TokenType.RBRACE))
629
+ break;
630
+ try {
631
+ const stmt = this.parseStatement();
632
+ if (stmt)
633
+ body.push(stmt);
634
+ }
635
+ catch (e) {
636
+ const message = e instanceof Error ? e.message : 'Error de parseo en bloque';
637
+ this.diagnostics.push({
638
+ severity: 'error',
639
+ message,
640
+ file: this.file,
641
+ line: this.current().line,
642
+ column: this.current().column,
643
+ });
644
+ this.advanceToNextStatement();
645
+ }
646
+ }
647
+ this.expect(tokens_1.TokenType.RBRACE);
648
+ return body;
649
+ }
449
650
  // --- Parsing de fórmulas (precedencia) ---
450
651
  // Precedencia (de menor a mayor):
451
652
  // 1. <-> (bicondicional)
@@ -490,14 +691,79 @@ class Parser {
490
691
  return left;
491
692
  }
492
693
  parseConjunction() {
493
- let left = this.parseUnary();
694
+ let left = this.parseComparison();
494
695
  while (this.match(tokens_1.TokenType.AND)) {
495
- const right = this.parseUnary();
696
+ const right = this.parseComparison();
496
697
  left = { kind: 'and', args: [left, right], source: this.loc() };
497
698
  }
498
699
  return left;
499
700
  }
701
+ // --- Arithmetic precedence ---
702
+ parseComparison() {
703
+ let left = this.parseAdditive();
704
+ while (this.checkType(tokens_1.TokenType.LT) ||
705
+ this.checkType(tokens_1.TokenType.GT) ||
706
+ this.checkType(tokens_1.TokenType.LTE) ||
707
+ this.checkType(tokens_1.TokenType.GTE)) {
708
+ if (this.match(tokens_1.TokenType.LT)) {
709
+ const right = this.parseAdditive();
710
+ left = { kind: 'less', args: [left, right], source: this.loc() };
711
+ }
712
+ else if (this.match(tokens_1.TokenType.GT)) {
713
+ const right = this.parseAdditive();
714
+ left = { kind: 'greater', args: [left, right], source: this.loc() };
715
+ }
716
+ else if (this.match(tokens_1.TokenType.LTE)) {
717
+ const right = this.parseAdditive();
718
+ left = { kind: 'less_eq', args: [left, right], source: this.loc() };
719
+ }
720
+ else if (this.match(tokens_1.TokenType.GTE)) {
721
+ const right = this.parseAdditive();
722
+ left = { kind: 'greater_eq', args: [left, right], source: this.loc() };
723
+ }
724
+ }
725
+ return left;
726
+ }
727
+ parseAdditive() {
728
+ let left = this.parseMultiplicative();
729
+ while (this.checkType(tokens_1.TokenType.PLUS) || this.checkType(tokens_1.TokenType.MINUS)) {
730
+ if (this.match(tokens_1.TokenType.PLUS)) {
731
+ const right = this.parseMultiplicative();
732
+ left = { kind: 'add', args: [left, right], source: this.loc() };
733
+ }
734
+ else if (this.match(tokens_1.TokenType.MINUS)) {
735
+ const right = this.parseMultiplicative();
736
+ left = { kind: 'subtract', args: [left, right], source: this.loc() };
737
+ }
738
+ }
739
+ return left;
740
+ }
741
+ parseMultiplicative() {
742
+ let left = this.parseUnary();
743
+ while (this.checkType(tokens_1.TokenType.STAR) ||
744
+ this.checkType(tokens_1.TokenType.SLASH) ||
745
+ this.checkType(tokens_1.TokenType.PERCENT)) {
746
+ if (this.match(tokens_1.TokenType.STAR)) {
747
+ const right = this.parseUnary();
748
+ left = { kind: 'multiply', args: [left, right], source: this.loc() };
749
+ }
750
+ else if (this.match(tokens_1.TokenType.SLASH)) {
751
+ const right = this.parseUnary();
752
+ left = { kind: 'divide', args: [left, right], source: this.loc() };
753
+ }
754
+ else if (this.match(tokens_1.TokenType.PERCENT)) {
755
+ const right = this.parseUnary();
756
+ left = { kind: 'modulo', args: [left, right], source: this.loc() };
757
+ }
758
+ }
759
+ return left;
760
+ }
500
761
  parseUnary() {
762
+ // Unary minus: -expr → subtract(0, expr)
763
+ if (this.match(tokens_1.TokenType.MINUS)) {
764
+ const operand = this.parseUnary();
765
+ return { kind: 'subtract', args: [{ kind: 'number', value: 0, source: this.loc() }, operand], source: this.loc() };
766
+ }
501
767
  if (this.match(tokens_1.TokenType.NOT)) {
502
768
  const operand = this.parseUnary();
503
769
  return { kind: 'not', args: [operand], source: this.loc() };
@@ -527,6 +793,12 @@ class Parser {
527
793
  return this.parseAtom();
528
794
  }
529
795
  parseAtom() {
796
+ // Literal numérico
797
+ if (this.checkType(tokens_1.TokenType.NUMBER)) {
798
+ const tok = this.current();
799
+ this.advance();
800
+ return { kind: 'number', value: parseFloat(tok.value), source: { line: tok.line, column: tok.column } };
801
+ }
530
802
  // Paréntesis
531
803
  if (this.match(tokens_1.TokenType.LPAREN)) {
532
804
  const inner = this.parseFormula();
@@ -807,6 +1079,13 @@ class Parser {
807
1079
  tokens_1.TokenType.SHOW,
808
1080
  tokens_1.TokenType.QED,
809
1081
  tokens_1.TokenType.THEORY,
1082
+ tokens_1.TokenType.PRINT,
1083
+ tokens_1.TokenType.SET,
1084
+ tokens_1.TokenType.IF,
1085
+ tokens_1.TokenType.FOR,
1086
+ tokens_1.TokenType.WHILE,
1087
+ tokens_1.TokenType.FN,
1088
+ tokens_1.TokenType.RETURN,
810
1089
  ]);
811
1090
  while (!this.isAtEnd()) {
812
1091
  if (this.checkType(tokens_1.TokenType.NEWLINE)) {
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Formula, Diagnostic, RunResult, Theory, LogicProfile } from '../../types';
2
+ /**
3
+ * Evalúa recursivamente una fórmula aritmética a un valor numérico.
4
+ * Los átomos se interpretan como 0 (o se buscan en la teoría).
5
+ * Las comparaciones retornan 1 (true) o 0 (false).
6
+ */
7
+ export declare function evalNumeric(f: Formula, vars?: Map<string, number>): number;
8
+ export declare class ArithmeticProfile implements LogicProfile {
9
+ name: string;
10
+ description: string;
11
+ private result;
12
+ checkWellFormed(formula: Formula): Diagnostic[];
13
+ checkValid(formula: Formula): RunResult;
14
+ checkSatisfiable(formula: Formula): RunResult;
15
+ prove(goal: Formula, theory: Theory): RunResult;
16
+ derive(goal: Formula, premises: string[], theory: Theory): RunResult;
17
+ countermodel(formula: Formula): RunResult;
18
+ explain(formula: Formula): RunResult;
19
+ }
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/profiles/arithmetic/index.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,OAAO,EACP,UAAU,EACV,SAAS,EACT,MAAM,EACN,YAAY,EACb,MAAM,aAAa,CAAC;AAerB;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAmD1E;AAqCD,qBAAa,iBAAkB,YAAW,YAAY;IACpD,IAAI,SAAgB;IACpB,WAAW,SAAgE;IAE3E,OAAO,CAAC,MAAM;IAQd,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU,EAAE;IAqB/C,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAkBvC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAgB7C,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IA+B/C,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS;IAIpE,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;IAsBzC,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS;CAuBrC"}