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.
- package/dist/src/ast-node.d.ts +1 -1
- package/dist/src/ast-node.js +2 -4
- package/dist/src/parser.d.ts +1 -1
- package/dist/src/parser.js +20 -21
- package/dist/src/result.d.ts +0 -2
- package/dist/src/result.js +2 -22
- package/dist/src/runtime.d.ts +4 -1
- package/dist/src/runtime.js +31 -19
- package/dist/src/septima.d.ts +7 -1
- package/dist/src/septima.js +6 -11
- package/dist/src/value.d.ts +10 -34
- package/dist/src/value.js +129 -111
- package/package.json +1 -1
package/dist/src/septima.js
CHANGED
|
@@ -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
|
-
|
|
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,
|
|
185
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwdGltYS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXB0aW1hLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTRCO0FBRzVCLHVDQUFrQztBQUNsQyxxQ0FBaUM7QUFDakMscUNBQTBEO0FBQzFELHVDQUF5RDtBQUN6RCx1Q0FBbUM7QUFDbkMsK0RBQXlEO0FBQ3pELCtDQUEwQztBQTJCMUMsTUFBYSxPQUFPO0lBb0NsQixZQUE2QixhQUFhLEVBQUUsRUFBbUIsVUFBc0I7UUFBeEQsZUFBVSxHQUFWLFVBQVUsQ0FBSztRQUFtQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBRnBFLGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQXNCLENBQUE7SUFFMkIsQ0FBQztJQW5DekY7Ozs7Ozs7Ozs7T0FVRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBYSxFQUFFLE9BQWlCLEVBQUUsT0FBZ0MsRUFBRTtRQUM3RSxNQUFNLE1BQU0sR0FDVixPQUFPLEVBQUUsTUFBTTtZQUNmLENBQUMsQ0FBQyxDQUFhLEVBQUUsRUFBRTtnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDNUIsQ0FBQyxDQUFDLENBQUE7UUFFSixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUE7UUFDM0IsTUFBTSxVQUFVLEdBQTJCLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQTtRQUNoRSxNQUFNLFFBQVEsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdDLE1BQU0sR0FBRyxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7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
|
package/dist/src/value.d.ts
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { AstNode, Lambda
|
|
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
|
-
|
|
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;
|