septima-lang 0.0.6 → 0.0.7
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/main.js +1 -0
- package/package.json +3 -3
- package/dist/src/ast-node.d.ts +0 -98
- package/dist/src/ast-node.js +0 -139
- package/dist/src/extract-message.d.ts +0 -1
- package/dist/src/extract-message.js +0 -10
- package/dist/src/fail-me.d.ts +0 -1
- package/dist/src/fail-me.js +0 -11
- package/dist/src/find-array-method.d.ts +0 -15
- package/dist/src/find-array-method.js +0 -104
- package/dist/src/find-string-method.d.ts +0 -2
- package/dist/src/find-string-method.js +0 -88
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +0 -18
- package/dist/src/location.d.ts +0 -11
- package/dist/src/location.js +0 -3
- package/dist/src/parser.d.ts +0 -44
- package/dist/src/parser.js +0 -462
- package/dist/src/result.d.ts +0 -24
- package/dist/src/result.js +0 -29
- package/dist/src/runtime.d.ts +0 -28
- package/dist/src/runtime.js +0 -347
- package/dist/src/scanner.d.ts +0 -23
- package/dist/src/scanner.js +0 -88
- package/dist/src/septima.d.ts +0 -32
- package/dist/src/septima.js +0 -91
- package/dist/src/should-never-happen.d.ts +0 -1
- package/dist/src/should-never-happen.js +0 -9
- package/dist/src/source-code.d.ts +0 -19
- package/dist/src/source-code.js +0 -90
- package/dist/src/stack.d.ts +0 -11
- package/dist/src/stack.js +0 -19
- package/dist/src/switch-on.d.ts +0 -1
- package/dist/src/switch-on.js +0 -9
- package/dist/src/symbol-table.d.ts +0 -6
- package/dist/src/symbol-table.js +0 -3
- package/dist/src/value.d.ts +0 -128
- package/dist/src/value.js +0 -634
- package/dist/tests/parser.spec.d.ts +0 -1
- package/dist/tests/parser.spec.js +0 -31
- package/dist/tests/septima-compute-module.spec.d.ts +0 -1
- package/dist/tests/septima-compute-module.spec.js +0 -36
- package/dist/tests/septima.spec.d.ts +0 -1
- package/dist/tests/septima.spec.js +0 -807
- package/dist/tests/value.spec.d.ts +0 -1
- package/dist/tests/value.spec.js +0 -355
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/jest-output.json +0 -1
- package/src/a.js +0 -66
- package/src/ast-node.ts +0 -249
- package/src/extract-message.ts +0 -5
- package/src/fail-me.ts +0 -7
- package/src/find-array-method.ts +0 -115
- package/src/find-string-method.ts +0 -84
- package/src/index.ts +0 -1
- package/src/location.ts +0 -13
- package/src/parser.ts +0 -530
- package/src/result.ts +0 -45
- package/src/runtime.ts +0 -365
- package/src/scanner.ts +0 -106
- package/src/septima.ts +0 -121
- package/src/should-never-happen.ts +0 -4
- package/src/source-code.ts +0 -101
- package/src/stack.ts +0 -18
- package/src/switch-on.ts +0 -4
- package/src/symbol-table.ts +0 -7
- package/src/value.ts +0 -742
- package/tests/parser.spec.ts +0 -30
- package/tests/septima-compute-module.spec.ts +0 -41
- package/tests/septima.spec.ts +0 -880
- package/tests/value.spec.ts +0 -387
- package/tsconfig.json +0 -11
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const ast_node_1 = require("../src/ast-node");
|
|
4
|
-
const septima_1 = require("../src/septima");
|
|
5
|
-
describe('parser', () => {
|
|
6
|
-
test('show()', () => {
|
|
7
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`5`))).toEqual('5');
|
|
8
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`fun (x) x*9`))).toEqual('fun (x) (x * 9)');
|
|
9
|
-
});
|
|
10
|
-
test('syntax errors', () => {
|
|
11
|
-
expect(() => (0, septima_1.parse)(`a + #$%x`)).toThrowError('Unparsable input at (1:5..8) #$%x');
|
|
12
|
-
expect(() => (0, septima_1.parse)(`{#$%x: 8}`)).toThrowError('Expected an identifier at (1:2..9) #$%x: 8}');
|
|
13
|
-
expect(() => (0, septima_1.parse)(`"foo" "goo"`)).toThrowError('Loitering input at (1:7..11) "goo"');
|
|
14
|
-
});
|
|
15
|
-
describe('unit', () => {
|
|
16
|
-
test('show', () => {
|
|
17
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`import * as foo from './bar';'a'`))).toEqual(`import * as foo from './bar';\n'a'`);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
20
|
-
describe('expression', () => {
|
|
21
|
-
test('show', () => {
|
|
22
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`'sunday'`))).toEqual(`'sunday'`);
|
|
23
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`true`))).toEqual(`true`);
|
|
24
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`500`))).toEqual(`500`);
|
|
25
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`sink`))).toEqual(`sink`);
|
|
26
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`sink!`))).toEqual(`sink!`);
|
|
27
|
-
expect((0, ast_node_1.show)((0, septima_1.parse)(`sink!!`))).toEqual(`sink!!`);
|
|
28
|
-
});
|
|
29
|
-
});
|
|
30
|
-
});
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2VyLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi90ZXN0cy9wYXJzZXIuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDhDQUFzQztBQUN0Qyw0Q0FBc0M7QUFFdEMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7SUFDdEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7UUFDbEIsTUFBTSxDQUFDLElBQUEsZUFBSSxFQUFDLElBQUEsZUFBSyxFQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLElBQUEsZUFBSSxFQUFDLElBQUEsZUFBSyxFQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQTtJQUMvRCxDQUFDLENBQUMsQ0FBQTtJQUNGLElBQUksQ0FBQyxlQUFlLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGVBQUssRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO1FBQ2pGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGVBQUssRUFBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFBO1FBQzVGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGVBQUssRUFBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0lBQ3ZGLENBQUMsQ0FBQyxDQUFBO0lBRUYsUUFBUSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7UUFDcEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDaEIsTUFBTSxDQUFDLElBQUEsZUFBSSxFQUFDLElBQUEsZUFBSyxFQUFDLGtDQUFrQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO1FBQ3ZHLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQyxDQUFDLENBQUE7SUFDRixRQUFRLENBQUMsWUFBWSxFQUFFLEdBQUcsRUFBRTtRQUMxQixJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtZQUNoQixNQUFNLENBQUMsSUFBQSxlQUFJLEVBQUMsSUFBQSxlQUFLLEVBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtZQUNuRCxNQUFNLENBQUMsSUFBQSxlQUFJLEVBQUMsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMzQyxNQUFNLENBQUMsSUFBQSxlQUFJLEVBQUMsSUFBQSxlQUFLLEVBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN6QyxNQUFNLENBQUMsSUFBQSxlQUFJLEVBQUMsSUFBQSxlQUFLLEVBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQTtZQUMzQyxNQUFNLENBQUMsSUFBQSxlQUFJLEVBQUMsSUFBQSxlQUFLLEVBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUM3QyxNQUFNLENBQUMsSUFBQSxlQUFJLEVBQUMsSUFBQSxlQUFLLEVBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUNqRCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFDLENBQUEifQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const septima_1 = require("../src/septima");
|
|
4
|
-
const should_never_happen_1 = require("../src/should-never-happen");
|
|
5
|
-
/**
|
|
6
|
-
* Runs a Septima program for testing purposes. Throws an error If the program evaluated to `sink`.
|
|
7
|
-
*/
|
|
8
|
-
async function run(mainModule, inputs, args = {}) {
|
|
9
|
-
const septima = new septima_1.Septima();
|
|
10
|
-
const res = septima.computeModule(mainModule, (m) => inputs[m], args);
|
|
11
|
-
if (res.tag === 'ok') {
|
|
12
|
-
return res.value;
|
|
13
|
-
}
|
|
14
|
-
if (res.tag === 'sink') {
|
|
15
|
-
throw new Error(res.message);
|
|
16
|
-
}
|
|
17
|
-
(0, should_never_happen_1.shouldNeverHappen)(res);
|
|
18
|
-
}
|
|
19
|
-
describe('septima-compute-module', () => {
|
|
20
|
-
test('fetches the content of the module to compute from the given callback function', async () => {
|
|
21
|
-
expect(await run('a', { a: `3+8` })).toEqual(11);
|
|
22
|
-
});
|
|
23
|
-
test('can use exported definitions from another module', async () => {
|
|
24
|
-
expect(await run('a', { a: `import * as b from 'b'; 3+b.eight`, b: `let eight = 8; {}` })).toEqual(11);
|
|
25
|
-
});
|
|
26
|
-
test('errors if the path to input from is not a string literal', async () => {
|
|
27
|
-
await expect(run('a', { a: `import * as foo from 500` })).rejects.toThrowError('Expected a string literal at (1:22..24) 500');
|
|
28
|
-
});
|
|
29
|
-
test('support the passing of args into the runtime', async () => {
|
|
30
|
-
expect(await run('a', { a: `args.x * args.y` }, { x: 5, y: 9 })).toEqual(45);
|
|
31
|
-
});
|
|
32
|
-
test('the args object is available only at the main module', async () => {
|
|
33
|
-
await expect(run('a', { a: `import * as b from 'b'; args.x + '_' + b.foo`, b: `let foo = args.x ?? 'N/A'; {}` }, { x: 'Red' })).rejects.toThrowError(/Symbol args was not found when evaluating/);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwdGltYS1jb21wdXRlLW1vZHVsZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vdGVzdHMvc2VwdGltYS1jb21wdXRlLW1vZHVsZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNENBQXdDO0FBQ3hDLG9FQUE4RDtBQUU5RDs7R0FFRztBQUNILEtBQUssVUFBVSxHQUFHLENBQUMsVUFBa0IsRUFBRSxNQUE4QixFQUFFLE9BQWdDLEVBQUU7SUFDdkcsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxFQUFFLENBQUE7SUFDN0IsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM3RSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssSUFBSSxFQUFFO1FBQ3BCLE9BQU8sR0FBRyxDQUFDLEtBQUssQ0FBQTtLQUNqQjtJQUVELElBQUksR0FBRyxDQUFDLEdBQUcsS0FBSyxNQUFNLEVBQUU7UUFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUE7S0FDN0I7SUFFRCxJQUFBLHVDQUFpQixFQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3hCLENBQUM7QUFFRCxRQUFRLENBQUMsd0JBQXdCLEVBQUUsR0FBRyxFQUFFO0lBQ3RDLElBQUksQ0FBQywrRUFBK0UsRUFBRSxLQUFLLElBQUksRUFBRTtRQUMvRixNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDbEQsQ0FBQyxDQUFDLENBQUE7SUFDRixJQUFJLENBQUMsa0RBQWtELEVBQUUsS0FBSyxJQUFJLEVBQUU7UUFDbEUsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxtQ0FBbUMsRUFBRSxDQUFDLEVBQUUsbUJBQW1CLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ3hHLENBQUMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLDBEQUEwRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzFFLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FDNUUsNkNBQTZDLENBQzlDLENBQUE7SUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNGLElBQUksQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM5RCxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzlFLENBQUMsQ0FBQyxDQUFBO0lBQ0YsSUFBSSxDQUFDLHNEQUFzRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQ3RFLE1BQU0sTUFBTSxDQUNWLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsOENBQThDLEVBQUUsQ0FBQyxFQUFFLCtCQUErQixFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FDbEgsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLDJDQUEyQyxDQUFDLENBQUE7SUFDckUsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDLENBQUMsQ0FBQSJ9
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|