septima-lang 0.0.14 → 0.0.16

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.
@@ -33,8 +33,9 @@ const scanner_1 = require("./scanner");
33
33
  const should_never_happen_1 = require("./should-never-happen");
34
34
  const source_code_1 = require("./source-code");
35
35
  class Septima {
36
- constructor(sourceRoot = '') {
36
+ constructor(sourceRoot = '', consoleLog) {
37
37
  this.sourceRoot = sourceRoot;
38
+ this.consoleLog = consoleLog;
38
39
  this.unitByUnitId = new Map();
39
40
  }
40
41
  /**
@@ -56,7 +57,7 @@ class Septima {
56
57
  const fileName = '<inline>';
57
58
  const contentRec = { [fileName]: input };
58
59
  const readFile = (m) => contentRec[m];
59
- const res = new Septima().compileSync(fileName, readFile).execute(args);
60
+ const res = new Septima(undefined, options?.consoleLog).compileSync(fileName, readFile).execute(args);
60
61
  if (res.tag === 'ok') {
61
62
  return res.value;
62
63
  }
@@ -89,19 +90,13 @@ class Septima {
89
90
  return {
90
91
  execute: (args) => {
91
92
  const value = this.execute(fileName, 'quiet', args);
92
- let ret;
93
- if (!value.isSink()) {
94
- ret = { value: value.export(), tag: 'ok' };
95
- }
96
- else {
97
- ret = (0, result_1.createResultSink)(value, this.unitByUnitId);
98
- }
93
+ const ret = { value: value.export(), tag: 'ok' };
99
94
  return ret;
100
95
  },
101
96
  };
102
97
  }
103
98
  execute(fileName, verbosity, args) {
104
- const runtime = new runtime_1.Runtime(this.unitOf(undefined, fileName), verbosity, (a, b) => this.unitOf(a, b), args);
99
+ const runtime = new runtime_1.Runtime(this.unitOf(undefined, fileName), verbosity, (a, b) => this.unitOf(a, b), args, this.consoleLog);
105
100
  const c = runtime.compute();
106
101
  if (c.value) {
107
102
  return c.value;
@@ -187,4 +182,4 @@ class Septima {
187
182
  }
188
183
  }
189
184
  exports.Septima = Septima;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwdGltYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXB0aW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTRCO0FBRzVCLHVDQUFrQztBQUNsQyxxQ0FBaUM7QUFDakMscUNBQTRFO0FBQzVFLHVDQUE4QztBQUM5Qyx1Q0FBbUM7QUFDbkMsK0RBQXlEO0FBQ3pELCtDQUEwQztBQXVCMUMsTUFBYSxPQUFPO0lBb0NsQixZQUE2QixhQUFhLEVBQUU7UUFBZixlQUFVLEdBQVYsVUFBVSxDQUFLO1FBRjNCLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUE7SUFFZCxDQUFDO0lBbkNoRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFhLEVBQUUsT0FBaUIsRUFBRSxPQUFnQyxFQUFFO1FBQzdFLE1BQU0sTUFBTSxHQUNWLE9BQU8sRUFBRSxNQUFNO1lBQ2YsQ0FBQyxDQUFDLENBQWEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM1QixDQUFDLENBQUMsQ0FBQTtRQUVKLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQTtRQUMzQixNQUFNLFVBQVUsR0FBMkIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFBO1FBQ2hFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDN0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN2RSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFO1lBQ3BCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FB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
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwdGltYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXB0aW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTRCO0FBRzVCLHVDQUFrQztBQUNsQyxxQ0FBaUM7QUFDakMscUNBQTBEO0FBQzFELHVDQUF5RDtBQUN6RCx1Q0FBbUM7QUFDbkMsK0RBQXlEO0FBQ3pELCtDQUEwQztBQTJCMUMsTUFBYSxPQUFPO0lBb0NsQixZQUE2QixhQUFhLEVBQUUsRUFBbUIsVUFBc0I7UUFBeEQsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUFtQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRnBFLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUE7SUFFMkIsQ0FBQztJQW5DekY7Ozs7Ozs7Ozs7T0FVRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQWlCLEVBQUUsT0FBZ0MsRUFBRTtRQUM3RSxNQUFNLE1BQU0sR0FDVixPQUFPLEVBQUUsTUFBTTtZQUNmLENBQUMsQ0FBQyxDQUFhLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDNUIsQ0FBQyxDQUFDLENBQUE7UUFFSixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUE7UUFDM0IsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUNoRSxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7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
@@ -1,7 +1,5 @@
1
- import { AstNode, Lambda, UnitId } from './ast-node';
1
+ import { AstNode, Lambda } from './ast-node';
2
2
  import { CallEvaluator } from './find-array-method';
3
- import { Span } from './location';
4
- import * as Stack from './stack';
5
3
  import { SymbolTable } from './symbol-table';
6
4
  declare type LambdaEvaluator = (names: string[], ast: AstNode, table: SymbolTable) => Value;
7
5
  declare type Inner = {
@@ -22,16 +20,12 @@ declare type Inner = {
22
20
  } | {
23
21
  tag: 'num';
24
22
  val: number;
23
+ } | {
24
+ tag: 'undef';
25
+ val: undefined;
25
26
  } | {
26
27
  tag: 'obj';
27
28
  val: Record<string, Value>;
28
- } | {
29
- tag: 'sink';
30
- val: undefined;
31
- span?: Span;
32
- trace?: Stack.T;
33
- symbols?: SymbolTable;
34
- unitId?: UnitId;
35
29
  } | {
36
30
  tag: 'str';
37
31
  val: string;
@@ -41,27 +35,12 @@ export declare class Value {
41
35
  private constructor();
42
36
  static bool(val: boolean): Value;
43
37
  static num(val: number): Value;
44
- /**
45
- * Returns a Value which is essentially a "sink": (almost) every computation involving a sink evaluates to sink. A few
46
- * quick examples: `5+sink`, `sink.x`, `sink()`, `Object.keys(sink)`, `if (sink) 4 else 8` all evaluate to `sink`. The
47
- * raitonale is that once an expression evaluates to `sink` all expressions depending on it also evaluate to `sink`.
48
- *
49
- * There are however a few (intentional) exemptions:
50
- * (i) a sink can be passed as an actual parameter in a function call. Hence `(fun (x,y) y)(sink, 5)` will evaluate
51
- * to `5`.
52
- * (ii) a sink can be compared with itself.
53
- * (iii) in `if()` expressions, only one of the branches is evlauated (based on the condition's value). As a result,
54
- * evluation of a sink-producing branch can be skipping. Specifically, `if (true) 5 else sink` evaluates to `5`.
55
- * (iv) in `||` and `&&` expressions, the evaluation of the right hand side can be skipped. Specifically,
56
- * `true || sink` evaluates to `true` and `false && sink` evaluates to `false`.
57
- */
58
- static sink(span?: Span, trace?: Stack.T, symbols?: SymbolTable, unitId?: UnitId): Value;
59
38
  static str(val: string): Value;
39
+ static undef(): Value;
60
40
  static arr(val: Value[]): Value;
61
41
  static obj(val: Record<string, Value>): Value;
62
42
  static lambda(ast: Lambda, table: SymbolTable): Value;
63
43
  static foreign(f: (...args: Value[]) => unknown): Value;
64
- isSink(): boolean;
65
44
  unwrap(): unknown;
66
45
  assertBool(): boolean;
67
46
  assertNum(): number;
@@ -73,17 +52,12 @@ export declare class Value {
73
52
  table: SymbolTable;
74
53
  };
75
54
  isLambda(): boolean;
55
+ isArray(): boolean;
56
+ isUndefined(): boolean;
76
57
  ifElse(positive: () => Value, negative: () => Value): Value;
77
- bindToSpan(span: Span, unitId?: UnitId): Value;
78
- trace(): AstNode[] | undefined;
79
- symbols(): SymbolTable | undefined;
80
- where(): {
81
- span: Span;
82
- unitId: string;
83
- } | undefined;
58
+ coalesce(that: () => Value): Value;
84
59
  or(that: () => Value): Value;
85
60
  and(that: () => Value): Value;
86
- unsink(that: () => Value): Value;
87
61
  equalsTo(that: Value): Value;
88
62
  not(): Value;
89
63
  private binaryNumericOperator;
@@ -125,6 +99,8 @@ export declare class Value {
125
99
  entries(): Value;
126
100
  fromEntries(): Value;
127
101
  toString(): string;
102
+ toBoolean(): boolean;
103
+ toNumber(): number;
128
104
  toJSON(): unknown;
129
105
  export(): unknown;
130
106
  static from(u: unknown): Value;