hclang 0.1.0 → 0.5.4
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/README.md +25 -3
- package/lib/src/cli/hc.js +40 -0
- package/lib/src/cli/runfile.js +28 -0
- package/lib/src/execute/eval-pipe.js +15 -0
- package/lib/src/execute/evaluate.js +10 -0
- package/lib/src/execute/execute.js +18 -0
- package/lib/src/execute/frame-space.js +17 -0
- package/lib/src/execute/hc-eval.js +105 -0
- package/lib/src/execute/hc-log.js +39 -0
- package/lib/src/execute/hc-test.js +43 -0
- package/lib/src/execute/lex-bytes.js +42 -0
- package/lib/src/execute/lex-pipe.js +56 -0
- package/lib/src/execute/lex.js +110 -0
- package/lib/src/execute/lexer.js +24 -0
- package/lib/src/execute/parse-pipe.js +52 -0
- package/lib/src/execute/syntax.js +36 -0
- package/lib/src/execute/terminals.js +54 -0
- package/lib/src/execute.js +3 -0
- package/lib/src/frames/frame-alias.js +45 -0
- package/lib/src/frames/frame-arg.js +62 -0
- package/lib/src/frames/frame-array.js +47 -0
- package/lib/src/frames/frame-atom.js +41 -0
- package/lib/src/frames/frame-blob.js +104 -0
- package/lib/src/frames/frame-bytes.js +31 -0
- package/lib/src/frames/frame-comment.js +28 -0
- package/lib/src/frames/frame-doc.js +19 -0
- package/lib/src/frames/frame-expr.js +34 -0
- package/lib/src/frames/frame-group.js +31 -0
- package/lib/src/frames/frame-lazy.js +39 -0
- package/lib/src/frames/frame-list.js +58 -0
- package/lib/src/frames/frame-name.js +29 -0
- package/lib/src/frames/frame-note.js +104 -0
- package/lib/src/frames/frame-number.js +28 -0
- package/lib/src/frames/frame-schema.js +47 -0
- package/lib/src/frames/frame-string.js +41 -0
- package/lib/src/frames/frame-symbol.js +75 -0
- package/lib/src/frames/frame.js +75 -0
- package/lib/src/frames/meta-frame.js +99 -0
- package/lib/src/frames.js +24 -0
- package/lib/src/index.js +5 -0
- package/lib/src/maml/tag.js +17 -0
- package/lib/src/maml.js +26 -0
- package/lib/src/ops/conditionals.js +14 -0
- package/lib/src/ops/frame-curry.js +17 -0
- package/lib/src/ops/frame-ops.js +24 -0
- package/lib/src/ops/iterators.js +28 -0
- package/lib/src/ops.js +12 -0
- package/lib/src/version.js +3 -0
- package/lib/test/execute/eval-pipe-spec.js +45 -0
- package/lib/test/execute/evaluate-spec.js +76 -0
- package/lib/test/execute/execute-spec.js +115 -0
- package/lib/test/execute/hc-eval-spec.js +68 -0
- package/lib/test/execute/hc-test-spec.js +47 -0
- package/lib/test/execute/lex-pipe-spec.js +25 -0
- package/lib/test/execute/parse-spec.js +67 -0
- package/lib/test/execute/script-spec.js +29 -0
- package/lib/test/frames/frame-alias-spec.js +36 -0
- package/lib/test/frames/frame-arg-spec.js +57 -0
- package/lib/test/frames/frame-array-spec.js +54 -0
- package/lib/test/frames/frame-blob-spec.js +56 -0
- package/lib/test/frames/frame-bytes-spec.js +16 -0
- package/lib/test/frames/frame-comment-spec.js +17 -0
- package/lib/test/frames/frame-doc-spec.js +17 -0
- package/lib/test/frames/frame-expr-spec.js +60 -0
- package/lib/test/frames/frame-group-spec.js +27 -0
- package/lib/test/frames/frame-lazy-spec.js +49 -0
- package/lib/test/frames/frame-name-spec.js +26 -0
- package/lib/test/frames/frame-note-spec.js +48 -0
- package/lib/test/frames/frame-number-spec.js +17 -0
- package/lib/test/frames/frame-schema-spec.js +54 -0
- package/lib/test/frames/frame-spec.js +31 -0
- package/lib/test/frames/frame-string-spec.js +43 -0
- package/lib/test/frames/frame-symbol-spec.js +64 -0
- package/lib/test/frames/meta-frame-spec.js +75 -0
- package/lib/test/maml/maml-spec.js +42 -0
- package/lib/test/maml/tag-spec.js +53 -0
- package/lib/test/ops/iterators-spec.js +70 -0
- package/package.json +60 -34
- package/lib/bin.d.ts +0 -0
- package/lib/bin.js +0 -6
- package/lib/execute/actions.d.ts +0 -13
- package/lib/execute/actions.js +0 -48
- package/lib/execute/eval-pipe.d.ts +0 -5
- package/lib/execute/eval-pipe.js +0 -32
- package/lib/execute/evaluate.d.ts +0 -2
- package/lib/execute/evaluate.js +0 -20
- package/lib/execute/frame-space.d.ts +0 -7
- package/lib/execute/frame-space.js +0 -32
- package/lib/execute/group-pipe.d.ts +0 -6
- package/lib/execute/group-pipe.js +0 -27
- package/lib/execute/lex-pipe.d.ts +0 -12
- package/lib/execute/lex-pipe.js +0 -55
- package/lib/execute/lex.d.ts +0 -26
- package/lib/execute/lex.js +0 -94
- package/lib/execute/lexer.d.ts +0 -9
- package/lib/execute/lexer.js +0 -55
- package/lib/execute/parse-pipe.d.ts +0 -8
- package/lib/execute/parse-pipe.js +0 -49
- package/lib/execute/parser.d.ts +0 -8
- package/lib/execute/parser.js +0 -49
- package/lib/execute/syntax.d.ts +0 -2
- package/lib/execute/syntax.js +0 -23
- package/lib/execute/terminals.d.ts +0 -10
- package/lib/execute/terminals.js +0 -48
- package/lib/execute.d.ts +0 -1
- package/lib/execute.js +0 -9
- package/lib/frames/frame-arg.d.ts +0 -24
- package/lib/frames/frame-arg.js +0 -81
- package/lib/frames/frame-array.d.ts +0 -15
- package/lib/frames/frame-array.js +0 -50
- package/lib/frames/frame-atom.d.ts +0 -17
- package/lib/frames/frame-atom.js +0 -52
- package/lib/frames/frame-comment.d.ts +0 -12
- package/lib/frames/frame-comment.js +0 -36
- package/lib/frames/frame-doc.d.ts +0 -9
- package/lib/frames/frame-doc.js +0 -31
- package/lib/frames/frame-expr.d.ts +0 -9
- package/lib/frames/frame-expr.js +0 -48
- package/lib/frames/frame-group.d.ts +0 -7
- package/lib/frames/frame-group.js +0 -39
- package/lib/frames/frame-lazy.d.ts +0 -13
- package/lib/frames/frame-lazy.js +0 -54
- package/lib/frames/frame-list.d.ts +0 -15
- package/lib/frames/frame-list.js +0 -51
- package/lib/frames/frame-name.d.ts +0 -12
- package/lib/frames/frame-name.js +0 -37
- package/lib/frames/frame-number.d.ts +0 -9
- package/lib/frames/frame-number.js +0 -31
- package/lib/frames/frame-string.d.ts +0 -14
- package/lib/frames/frame-string.js +0 -47
- package/lib/frames/frame-symbol.d.ts +0 -18
- package/lib/frames/frame-symbol.js +0 -64
- package/lib/frames/frame.d.ts +0 -22
- package/lib/frames/frame.js +0 -73
- package/lib/frames/meta-frame.d.ts +0 -26
- package/lib/frames/meta-frame.js +0 -85
- package/lib/frames.d.ts +0 -15
- package/lib/frames.js +0 -36
- package/lib/hc.d.ts +0 -0
- package/lib/hc.js +0 -13
- package/lib/index.d.ts +0 -3
- package/lib/index.js +0 -9
- package/lib/maml/tag.d.ts +0 -2
- package/lib/maml/tag.js +0 -19
- package/lib/maml.d.ts +0 -2
- package/lib/maml.js +0 -30
- package/lib/ops/frame-curry.d.ts +0 -9
- package/lib/ops/frame-curry.js +0 -31
- package/lib/ops/frame-ops.d.ts +0 -12
- package/lib/ops/frame-ops.js +0 -41
- package/lib/ops/iterators.d.ts +0 -2
- package/lib/ops/iterators.js +0 -12
- package/lib/ops.d.ts +0 -3
- package/lib/ops.js +0 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hclang",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.4",
|
|
4
4
|
"description": "Homoiconic C: Programming without a Language",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": "https://github.com/TheSwanFactory/hclang",
|
|
@@ -15,50 +15,76 @@
|
|
|
15
15
|
"interpreter",
|
|
16
16
|
"cli"
|
|
17
17
|
],
|
|
18
|
+
"type": "module",
|
|
19
|
+
"directories": {
|
|
20
|
+
"lib": "./lib",
|
|
21
|
+
"src": "./src",
|
|
22
|
+
"test": "./test"
|
|
23
|
+
},
|
|
18
24
|
"files": [
|
|
19
25
|
"lib"
|
|
20
26
|
],
|
|
21
27
|
"bin": {
|
|
22
|
-
"
|
|
23
|
-
|
|
28
|
+
"hc": "lib/src/cli/hc.js"
|
|
29
|
+
},
|
|
30
|
+
"watch": {
|
|
31
|
+
"test": "{src,test}/*.js"
|
|
24
32
|
},
|
|
25
|
-
"main": "lib/index.js",
|
|
26
|
-
"typings": "lib/index.d.ts",
|
|
27
33
|
"scripts": {
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
34
|
+
"bs:html": "tail +3 -q hc/BitScheme.hc hc/BitScheme-1.hc > doc/BitScheme.adoc && asciidoctor doc/BitScheme.adoc && open doc/BitScheme.html",
|
|
35
|
+
"bs:all": "npm run build && npm run bs:html && npm run bs",
|
|
36
|
+
"bs": "node lib/src/cli/hc.js hc/BitScheme.hc -t",
|
|
37
|
+
"b1": "node lib/src/cli/hc.js hc/BitScheme-1.hc -t",
|
|
38
|
+
"testdoc": "npm run build && node lib/src/cli/hc.js hc/testdoc.hc -t",
|
|
39
|
+
"build": "rimraf lib && eslint --fix \"{src,test}/**/*.ts\" && npm run ts",
|
|
40
|
+
"check": "grep -e 'only' -e 'skip' test/*/* || echo 'Ran all tests'",
|
|
41
|
+
"clean": "rimraf lib dist && rm -f *.log.* src/*.js src/*/*.js test/*.js test/*/*.js",
|
|
42
|
+
"debug": "echo 'Use `debugger;`\n' && mocha --inspect-brk --require ts-node/register --recursive test/**/*-spec.ts",
|
|
43
|
+
"done": "npm run clean && npm run bs:all && npm run check && npm run tag && npm install && git commit -am 'update version'",
|
|
44
|
+
"lint": "eslint --fix \"{src,test}/**/*.ts\"",
|
|
45
|
+
"hc": "node lib/src/cli/hc.js",
|
|
46
|
+
"test": "npm run build && mocha --require ts-node/register test/**/*.*ts",
|
|
47
|
+
"test-only": "mocha --require ts-node/register test/**/*.*ts",
|
|
48
|
+
"tag": "bump patch -ct package*.json README.md src/version.ts",
|
|
49
|
+
"tag:minor": "bump minor -ct package*.json README.md src/version.ts",
|
|
50
|
+
"ts": "npx tsc --pretty --inlineSourceMap && chmod a+x ./lib/src/cli/hc.js",
|
|
51
|
+
"ts:version": "echo TypeScript `tsc --version` ",
|
|
52
|
+
"verbose": "NODE_DEBUG=* npm run test",
|
|
53
|
+
"watch": "npm-watch test"
|
|
38
54
|
},
|
|
39
55
|
"dependencies": {
|
|
40
|
-
"chalk": "^
|
|
41
|
-
"inquirer": "
|
|
42
|
-
"
|
|
56
|
+
"chalk": "^5.3.0",
|
|
57
|
+
"inquirer": "^9.2.11",
|
|
58
|
+
"jsbi": "^4.3.0",
|
|
59
|
+
"minimist": "^1.2.8",
|
|
60
|
+
"node-fetch": "^3.3.2",
|
|
61
|
+
"npm-check-updates": "^16.14.4",
|
|
62
|
+
"version-bump-prompt": "^6.1.0"
|
|
43
63
|
},
|
|
44
64
|
"devDependencies": {
|
|
45
|
-
"@types/
|
|
46
|
-
"@types/
|
|
47
|
-
"@types/
|
|
48
|
-
"@types/
|
|
49
|
-
"@
|
|
50
|
-
"
|
|
51
|
-
"
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"
|
|
65
|
+
"@types/chai": "^4.3.6",
|
|
66
|
+
"@types/minimist": "^1.2.3",
|
|
67
|
+
"@types/mocha": "10.0.2",
|
|
68
|
+
"@types/node": ">=20.7.2",
|
|
69
|
+
"@typescript-eslint/eslint-plugin": "^6.7.3",
|
|
70
|
+
"@typescript-eslint/parser": "^6.7.3",
|
|
71
|
+
"asciidoctor": "^3.0.0",
|
|
72
|
+
"chai": "^4.3.10",
|
|
73
|
+
"eslint": "^8.50.0",
|
|
74
|
+
"eslint-config-google": "^0.14.0",
|
|
75
|
+
"eslint-config-standard": "^17.1.0",
|
|
76
|
+
"eslint-plugin-import": "^2.28.1",
|
|
77
|
+
"eslint-plugin-node": "^11.1.0",
|
|
78
|
+
"eslint-plugin-promise": "^6.1.1",
|
|
79
|
+
"mem": "^9.0.2",
|
|
80
|
+
"mocha": "^10.2.0",
|
|
81
|
+
"mocha-junit-reporter": "^2.2.1",
|
|
82
|
+
"pug": "^3.0.2",
|
|
83
|
+
"rimraf": "5.0.5",
|
|
84
|
+
"ts-node": "10.9.1",
|
|
85
|
+
"typescript": "5.2.2"
|
|
60
86
|
},
|
|
61
87
|
"engines": {
|
|
62
|
-
"node": "
|
|
88
|
+
"node": ">=20.0.0"
|
|
63
89
|
}
|
|
64
90
|
}
|
package/lib/bin.d.ts
DELETED
|
File without changes
|
package/lib/bin.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
var chalk_1 = require("chalk");
|
|
5
|
-
console.log(chalk_1.green("MAML; "));
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Jpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSwrQkFBNEI7QUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FDVCxhQUFLLENBQ0gsUUFBUSxDQUNULENBQ0YsQ0FBQyJ9
|
package/lib/execute/actions.d.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import * as frame from "../frames";
|
|
2
|
-
export declare type LexOptions = {
|
|
3
|
-
[key: string]: any;
|
|
4
|
-
};
|
|
5
|
-
export declare type OptionMap = {
|
|
6
|
-
[key: string]: LexOptions;
|
|
7
|
-
};
|
|
8
|
-
export declare class FrameStatement extends frame.Frame {
|
|
9
|
-
}
|
|
10
|
-
export declare class FrameLazyGroup extends frame.FrameLazy {
|
|
11
|
-
constructor(data: Array<frame.FrameExpr>, meta?: frame.Context);
|
|
12
|
-
}
|
|
13
|
-
export declare const actions: OptionMap;
|
package/lib/execute/actions.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var frame = require("../frames");
|
|
14
|
-
var FrameStatement = (function (_super) {
|
|
15
|
-
__extends(FrameStatement, _super);
|
|
16
|
-
function FrameStatement() {
|
|
17
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
-
}
|
|
19
|
-
return FrameStatement;
|
|
20
|
-
}(frame.Frame));
|
|
21
|
-
exports.FrameStatement = FrameStatement;
|
|
22
|
-
var FrameLazyGroup = (function (_super) {
|
|
23
|
-
__extends(FrameLazyGroup, _super);
|
|
24
|
-
function FrameLazyGroup(data, meta) {
|
|
25
|
-
if (meta === void 0) { meta = frame.NilContext; }
|
|
26
|
-
var _this = this;
|
|
27
|
-
var group = new frame.FrameGroup(data);
|
|
28
|
-
_this = _super.call(this, [group], meta) || this;
|
|
29
|
-
return _this;
|
|
30
|
-
}
|
|
31
|
-
return FrameLazyGroup;
|
|
32
|
-
}(frame.FrameLazy));
|
|
33
|
-
exports.FrameLazyGroup = FrameLazyGroup;
|
|
34
|
-
;
|
|
35
|
-
exports.actions = {
|
|
36
|
-
"\n": {},
|
|
37
|
-
",": {},
|
|
38
|
-
";": { wrap: FrameStatement },
|
|
39
|
-
};
|
|
40
|
-
function addGroup(grouper) {
|
|
41
|
-
var sample = new grouper([], frame.NilContext);
|
|
42
|
-
var open = sample.string_open();
|
|
43
|
-
var close = sample.string_close();
|
|
44
|
-
exports.actions[open] = { push: grouper };
|
|
45
|
-
exports.actions[close] = { pop: grouper };
|
|
46
|
-
}
|
|
47
|
-
addGroup(frame.FrameGroup);
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGVjdXRlL2FjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsaUNBQW1DO0FBTW5DO0lBQW9DLGtDQUFXO0lBQS9DOztJQUVBLENBQUM7SUFBRCxxQkFBQztBQUFELENBQUMsQUFGRCxDQUFvQyxLQUFLLENBQUMsS0FBSyxHQUU5QztBQUZZLHdDQUFjO0FBSTNCO0lBQW9DLGtDQUFlO0lBQ2pELHdCQUFZLElBQTRCLEVBQUUsSUFBc0M7UUFBdEMscUJBQUEsRUFBQSxPQUFzQixLQUFLLENBQUMsVUFBVTtRQUFoRixpQkFHQztRQUZDLElBQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxRQUFBLGtCQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQUM7O0lBQ3ZCLENBQUM7SUFDSCxxQkFBQztBQUFELENBQUMsQUFMRCxDQUFvQyxLQUFLLENBQUMsU0FBUyxHQUtsRDtBQUxZLHdDQUFjO0FBSzFCLENBQUM7QUFFVyxRQUFBLE9BQU8sR0FBYztJQUNoQyxJQUFJLEVBQUUsRUFBRTtJQUNSLEdBQUcsRUFBRSxFQUFFO0lBQ1AsR0FBRyxFQUFFLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBQztDQUM1QixDQUFDO0FBRUYsa0JBQWtCLE9BQWdDO0lBQ2hELElBQU0sTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakQsSUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xDLElBQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNwQyxlQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBQyxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUM7SUFDaEMsZUFBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUMsR0FBRyxFQUFFLE9BQU8sRUFBQyxDQUFDO0FBQ2xDLENBQUM7QUFFRCxRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDIn0=
|
package/lib/execute/eval-pipe.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var frames_1 = require("../frames");
|
|
14
|
-
var EvalPipe = (function (_super) {
|
|
15
|
-
__extends(EvalPipe, _super);
|
|
16
|
-
function EvalPipe(out, meta) {
|
|
17
|
-
if (meta === void 0) { meta = frames_1.NilContext; }
|
|
18
|
-
var _this = _super.call(this, meta) || this;
|
|
19
|
-
_this.set(frames_1.Frame.kOUT, out);
|
|
20
|
-
_this.up = out;
|
|
21
|
-
return _this;
|
|
22
|
-
}
|
|
23
|
-
EvalPipe.prototype.apply = function (expr, context) {
|
|
24
|
-
var out = this.get(frames_1.Frame.kOUT);
|
|
25
|
-
var result = expr.in([context, out]);
|
|
26
|
-
out.call(result);
|
|
27
|
-
return result;
|
|
28
|
-
};
|
|
29
|
-
return EvalPipe;
|
|
30
|
-
}(frames_1.Frame));
|
|
31
|
-
exports.EvalPipe = EvalPipe;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbC1waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4ZWN1dGUvZXZhbC1waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLG9DQUF1RDtBQUV2RDtJQUE4Qiw0QkFBSztJQUNqQyxrQkFBWSxHQUFVLEVBQUUsSUFBMEI7UUFBMUIscUJBQUEsRUFBQSwwQkFBMEI7UUFBbEQsWUFDRSxrQkFBTSxJQUFJLENBQUMsU0FHWjtRQUZDLEtBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQixLQUFJLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQzs7SUFDaEIsQ0FBQztJQUVNLHdCQUFLLEdBQVosVUFBYSxJQUFXLEVBQUUsT0FBYztRQUN0QyxJQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGNBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNqQixNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDSCxlQUFDO0FBQUQsQ0FBQyxBQWJELENBQThCLGNBQUssR0FhbEM7QUFiWSw0QkFBUSJ9
|
package/lib/execute/evaluate.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
var frames_1 = require("../frames");
|
|
4
|
-
var eval_pipe_1 = require("./eval-pipe");
|
|
5
|
-
var group_pipe_1 = require("./group-pipe");
|
|
6
|
-
var lex_pipe_1 = require("./lex-pipe");
|
|
7
|
-
var parse_pipe_1 = require("./parse-pipe");
|
|
8
|
-
exports.evaluate = function (input, context) {
|
|
9
|
-
if (context === void 0) { context = frames_1.NilContext; }
|
|
10
|
-
var result = new frames_1.FrameArray([], context);
|
|
11
|
-
var evaluator = new eval_pipe_1.EvalPipe(result);
|
|
12
|
-
var grouper = new group_pipe_1.GroupPipe(evaluator);
|
|
13
|
-
var parser = new parse_pipe_1.ParsePipe(grouper);
|
|
14
|
-
var lexer = new lex_pipe_1.LexPipe(parser);
|
|
15
|
-
var status = lexer.lex_string(input);
|
|
16
|
-
if (status !== lexer) {
|
|
17
|
-
}
|
|
18
|
-
return result;
|
|
19
|
-
};
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhlY3V0ZS9ldmFsdWF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG9DQUF3RztBQUN4Ryx5Q0FBdUM7QUFDdkMsMkNBQXlDO0FBQ3pDLHVDQUFxQztBQUNyQywyQ0FBeUM7QUFFNUIsUUFBQSxRQUFRLEdBQUcsVUFBQyxLQUFhLEVBQUUsT0FBb0I7SUFBcEIsd0JBQUEsRUFBQSw2QkFBb0I7SUFDMUQsSUFBTSxNQUFNLEdBQUcsSUFBSSxtQkFBVSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMzQyxJQUFNLFNBQVMsR0FBRyxJQUFJLG9CQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsSUFBTSxPQUFPLEdBQUcsSUFBSSxzQkFBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3pDLElBQU0sTUFBTSxHQUFHLElBQUksc0JBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxJQUFNLEtBQUssR0FBRyxJQUFJLGtCQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFbEMsSUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxFQUFFLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUV2QixDQUFDO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUMifQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var frame = require("../frames");
|
|
14
|
-
var FrameSpace = (function (_super) {
|
|
15
|
-
__extends(FrameSpace, _super);
|
|
16
|
-
function FrameSpace() {
|
|
17
|
-
return _super !== null && _super.apply(this, arguments) || this;
|
|
18
|
-
}
|
|
19
|
-
FrameSpace.prototype.string_start = function () { return FrameSpace.SPACE_CHAR; };
|
|
20
|
-
;
|
|
21
|
-
FrameSpace.prototype.canInclude = function (char) {
|
|
22
|
-
return char === FrameSpace.SPACE_CHAR;
|
|
23
|
-
};
|
|
24
|
-
FrameSpace.prototype.isVoid = function () {
|
|
25
|
-
return true;
|
|
26
|
-
};
|
|
27
|
-
return FrameSpace;
|
|
28
|
-
}(frame.FrameAtom));
|
|
29
|
-
FrameSpace.SPACE_CHAR = " ";
|
|
30
|
-
exports.FrameSpace = FrameSpace;
|
|
31
|
-
;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWUtc3BhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhlY3V0ZS9mcmFtZS1zcGFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxpQ0FBbUM7QUFFbkM7SUFBZ0MsOEJBQWU7SUFBL0M7O0lBWUEsQ0FBQztJQVRRLGlDQUFZLEdBQW5CLGNBQXdCLE1BQU0sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUFBLENBQUM7SUFFakQsK0JBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUM1QixNQUFNLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUM7SUFDeEMsQ0FBQztJQUVNLDJCQUFNLEdBQWI7UUFDRSxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNILGlCQUFDO0FBQUQsQ0FBQyxBQVpELENBQWdDLEtBQUssQ0FBQyxTQUFTO0FBQ3RCLHFCQUFVLEdBQUcsR0FBRyxDQUFDO0FBRDdCLGdDQUFVO0FBWXRCLENBQUMifQ==
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var frames_1 = require("../frames");
|
|
14
|
-
var parse_pipe_1 = require("./parse-pipe");
|
|
15
|
-
var GroupPipe = (function (_super) {
|
|
16
|
-
__extends(GroupPipe, _super);
|
|
17
|
-
function GroupPipe(out) {
|
|
18
|
-
return _super.call(this, out) || this;
|
|
19
|
-
}
|
|
20
|
-
GroupPipe.prototype.makeFrame = function () {
|
|
21
|
-
var current = this.asArray();
|
|
22
|
-
return new frames_1.FrameGroup(current);
|
|
23
|
-
};
|
|
24
|
-
return GroupPipe;
|
|
25
|
-
}(parse_pipe_1.ParsePipe));
|
|
26
|
-
exports.GroupPipe = GroupPipe;
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAtcGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leGVjdXRlL2dyb3VwLXBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsb0NBQThDO0FBQzlDLDJDQUF5QztBQUd6QztJQUErQiw2QkFBUztJQUN0QyxtQkFBWSxHQUFVO2VBQ3BCLGtCQUFNLEdBQUcsQ0FBQztJQUNaLENBQUM7SUFFUyw2QkFBUyxHQUFuQjtRQUNFLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixNQUFNLENBQUMsSUFBSSxtQkFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFDSCxnQkFBQztBQUFELENBQUMsQUFURCxDQUErQixzQkFBUyxHQVN2QztBQVRZLDhCQUFTIn0=
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Frame, FrameString } from "../frames";
|
|
2
|
-
import { ParsePipe } from "./parse-pipe";
|
|
3
|
-
export declare class LexPipe extends Frame {
|
|
4
|
-
constructor(out: Frame);
|
|
5
|
-
lex_string(input: string): Frame;
|
|
6
|
-
lex(source: FrameString): Frame;
|
|
7
|
-
parser(): ParsePipe;
|
|
8
|
-
push(): Frame;
|
|
9
|
-
pop(): Frame;
|
|
10
|
-
finish(): Frame;
|
|
11
|
-
next(): this;
|
|
12
|
-
}
|
package/lib/execute/lex-pipe.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var frames_1 = require("../frames");
|
|
14
|
-
var syntax_1 = require("./syntax");
|
|
15
|
-
var LexPipe = (function (_super) {
|
|
16
|
-
__extends(LexPipe, _super);
|
|
17
|
-
function LexPipe(out) {
|
|
18
|
-
var _this = this;
|
|
19
|
-
syntax_1.syntax[LexPipe.kOUT] = out;
|
|
20
|
-
_this = _super.call(this, syntax_1.syntax) || this;
|
|
21
|
-
return _this;
|
|
22
|
-
}
|
|
23
|
-
LexPipe.prototype.lex_string = function (input) {
|
|
24
|
-
var source = new frames_1.FrameString(input);
|
|
25
|
-
return this.lex(source);
|
|
26
|
-
};
|
|
27
|
-
LexPipe.prototype.lex = function (source) {
|
|
28
|
-
return source.reduce(this);
|
|
29
|
-
};
|
|
30
|
-
LexPipe.prototype.parser = function () {
|
|
31
|
-
return this.get(LexPipe.kOUT);
|
|
32
|
-
};
|
|
33
|
-
LexPipe.prototype.push = function () {
|
|
34
|
-
var next_parser = this.parser().push();
|
|
35
|
-
this.set(LexPipe.kOUT, next_parser);
|
|
36
|
-
return this;
|
|
37
|
-
};
|
|
38
|
-
LexPipe.prototype.pop = function () {
|
|
39
|
-
var next_parser = this.parser().pop();
|
|
40
|
-
this.set(LexPipe.kOUT, next_parser);
|
|
41
|
-
return this;
|
|
42
|
-
};
|
|
43
|
-
LexPipe.prototype.finish = function () {
|
|
44
|
-
var output = frames_1.FrameSymbol.end();
|
|
45
|
-
var out = this.get(frames_1.Frame.kOUT);
|
|
46
|
-
return out.call(output);
|
|
47
|
-
};
|
|
48
|
-
LexPipe.prototype.next = function () {
|
|
49
|
-
this.finish();
|
|
50
|
-
return this;
|
|
51
|
-
};
|
|
52
|
-
return LexPipe;
|
|
53
|
-
}(frames_1.Frame));
|
|
54
|
-
exports.LexPipe = LexPipe;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV4LXBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhlY3V0ZS9sZXgtcGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSxvQ0FBcUU7QUFFckUsbUNBQWtDO0FBRWxDO0lBQTZCLDJCQUFLO0lBQ2hDLGlCQUFZLEdBQVU7UUFBdEIsaUJBSUM7UUFIQyxlQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQztRQUUzQixRQUFBLGtCQUFNLGVBQU0sQ0FBQyxTQUFDOztJQUNoQixDQUFDO0lBRU0sNEJBQVUsR0FBakIsVUFBa0IsS0FBYTtRQUM3QixJQUFNLE1BQU0sR0FBRyxJQUFJLG9CQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLHFCQUFHLEdBQVYsVUFBVyxNQUFtQjtRQUM1QixNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU0sd0JBQU0sR0FBYjtRQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sc0JBQUksR0FBWDtRQUNFLElBQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxxQkFBRyxHQUFWO1FBQ0UsSUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwQyxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLHdCQUFNLEdBQWI7UUFDRSxJQUFNLE1BQU0sR0FBRyxvQkFBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pDLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxzQkFBSSxHQUFYO1FBQ0UsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQztJQUNkLENBQUM7SUFDSCxjQUFDO0FBQUQsQ0FBQyxBQTFDRCxDQUE2QixjQUFLLEdBMENqQztBQTFDWSwwQkFBTyJ9
|
package/lib/execute/lex.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Frame, FrameAtom, ISourced } from "../frames";
|
|
2
|
-
export declare type Flag = {
|
|
3
|
-
[key: string]: boolean;
|
|
4
|
-
};
|
|
5
|
-
export declare class Token extends FrameAtom {
|
|
6
|
-
protected data: Frame;
|
|
7
|
-
constructor(data: Frame);
|
|
8
|
-
called_by(callee: Frame, parameter: Frame): Frame;
|
|
9
|
-
protected toData(): any;
|
|
10
|
-
}
|
|
11
|
-
export declare class Lex extends Frame implements ISourced {
|
|
12
|
-
protected factory: any;
|
|
13
|
-
source: string;
|
|
14
|
-
protected body: string;
|
|
15
|
-
protected sample: FrameAtom;
|
|
16
|
-
constructor(factory: any);
|
|
17
|
-
call(argument: Frame, parameter?: Frame): Frame;
|
|
18
|
-
getClassName(): string;
|
|
19
|
-
toString(): string;
|
|
20
|
-
protected isEnd(char: string): boolean;
|
|
21
|
-
protected isTerminal(char: string): boolean;
|
|
22
|
-
protected isQuote(): boolean;
|
|
23
|
-
protected finish(argument: Frame, passAlong: boolean): Frame;
|
|
24
|
-
protected exportFrame(): Frame;
|
|
25
|
-
protected makeFrame(): Token;
|
|
26
|
-
}
|
package/lib/execute/lex.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var _ = require("lodash");
|
|
14
|
-
var frames_1 = require("../frames");
|
|
15
|
-
var terminals_1 = require("./terminals");
|
|
16
|
-
var Token = (function (_super) {
|
|
17
|
-
__extends(Token, _super);
|
|
18
|
-
function Token(data) {
|
|
19
|
-
var _this = _super.call(this, frames_1.NilContext) || this;
|
|
20
|
-
_this.data = data;
|
|
21
|
-
return _this;
|
|
22
|
-
}
|
|
23
|
-
Token.prototype.called_by = function (callee, parameter) {
|
|
24
|
-
return callee.apply(this.data, parameter);
|
|
25
|
-
};
|
|
26
|
-
Token.prototype.toData = function () { return this.data; };
|
|
27
|
-
return Token;
|
|
28
|
-
}(frames_1.FrameAtom));
|
|
29
|
-
exports.Token = Token;
|
|
30
|
-
var Lex = (function (_super) {
|
|
31
|
-
__extends(Lex, _super);
|
|
32
|
-
function Lex(factory) {
|
|
33
|
-
var _this = _super.call(this) || this;
|
|
34
|
-
_this.factory = factory;
|
|
35
|
-
_this.body = "";
|
|
36
|
-
_this.sample = new factory("");
|
|
37
|
-
_this.source = "";
|
|
38
|
-
return _this;
|
|
39
|
-
}
|
|
40
|
-
Lex.prototype.call = function (argument, parameter) {
|
|
41
|
-
if (parameter === void 0) { parameter = frames_1.Frame.nil; }
|
|
42
|
-
var char = argument.toString();
|
|
43
|
-
if (this.isEnd(char)) {
|
|
44
|
-
return this.finish(argument, !this.isQuote());
|
|
45
|
-
}
|
|
46
|
-
if (this.isTerminal(char) && !this.isQuote()) {
|
|
47
|
-
return this.finish(argument, true);
|
|
48
|
-
}
|
|
49
|
-
if (this.body === "") {
|
|
50
|
-
this.body = this.source;
|
|
51
|
-
}
|
|
52
|
-
this.body = this.body + argument.toString();
|
|
53
|
-
return this;
|
|
54
|
-
};
|
|
55
|
-
Lex.prototype.getClassName = function () {
|
|
56
|
-
var funcNameRegex = /function (.{1,})\(/;
|
|
57
|
-
var results = (funcNameRegex).exec(this.constructor.toString());
|
|
58
|
-
return (results && results.length > 1) ? results[1] : "<class>";
|
|
59
|
-
};
|
|
60
|
-
Lex.prototype.toString = function () {
|
|
61
|
-
return this.getClassName() + ("[" + this.body + "]");
|
|
62
|
-
};
|
|
63
|
-
Lex.prototype.isEnd = function (char) {
|
|
64
|
-
return !this.sample.canInclude(char);
|
|
65
|
-
};
|
|
66
|
-
Lex.prototype.isTerminal = function (char) {
|
|
67
|
-
var terms = _.keys(terminals_1.terminals);
|
|
68
|
-
return _.includes(terms, char);
|
|
69
|
-
};
|
|
70
|
-
Lex.prototype.isQuote = function () {
|
|
71
|
-
return (this.sample instanceof frames_1.FrameString);
|
|
72
|
-
};
|
|
73
|
-
Lex.prototype.finish = function (argument, passAlong) {
|
|
74
|
-
this.exportFrame();
|
|
75
|
-
if (passAlong) {
|
|
76
|
-
var result = this.up.call(argument);
|
|
77
|
-
return result;
|
|
78
|
-
}
|
|
79
|
-
return this.up;
|
|
80
|
-
};
|
|
81
|
-
Lex.prototype.exportFrame = function () {
|
|
82
|
-
var output = this.makeFrame();
|
|
83
|
-
var out = this.get(frames_1.Frame.kOUT);
|
|
84
|
-
this.body = "";
|
|
85
|
-
return out.call(output);
|
|
86
|
-
};
|
|
87
|
-
Lex.prototype.makeFrame = function () {
|
|
88
|
-
var frame = new this.factory(this.body);
|
|
89
|
-
return new Token(frame);
|
|
90
|
-
};
|
|
91
|
-
return Lex;
|
|
92
|
-
}(frames_1.Frame));
|
|
93
|
-
exports.Lex = Lex;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2V4ZWN1dGUvbGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBLDBCQUE0QjtBQUM1QixvQ0FBNEY7QUFDNUYseUNBQXdDO0FBSXhDO0lBQTJCLHlCQUFTO0lBQ2xDLGVBQXNCLElBQVc7UUFBakMsWUFDRSxrQkFBTSxtQkFBVSxDQUFDLFNBQ2xCO1FBRnFCLFVBQUksR0FBSixJQUFJLENBQU87O0lBRWpDLENBQUM7SUFFTSx5QkFBUyxHQUFoQixVQUFpQixNQUFhLEVBQUUsU0FBZ0I7UUFDOUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRVMsc0JBQU0sR0FBaEIsY0FBMEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQy9DLFlBQUM7QUFBRCxDQUFDLEFBVkQsQ0FBMkIsa0JBQVMsR0FVbkM7QUFWWSxzQkFBSztBQVlsQjtJQUF5Qix1QkFBSztJQU01QixhQUE2QixPQUFZO1FBQXpDLFlBQ0UsaUJBQU8sU0FHUjtRQUo0QixhQUFPLEdBQVAsT0FBTyxDQUFLO1FBSC9CLFVBQUksR0FBVyxFQUFFLENBQUM7UUFLMUIsS0FBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixLQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQzs7SUFDbkIsQ0FBQztJQUVNLGtCQUFJLEdBQVgsVUFBWSxRQUFlLEVBQUUsU0FBcUI7UUFBckIsMEJBQUEsRUFBQSxZQUFZLGNBQUssQ0FBQyxHQUFHO1FBQ2hELElBQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FB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
|
package/lib/execute/lexer.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Frame, FrameString } from "../frames";
|
|
2
|
-
import { LexOptions } from "./actions";
|
|
3
|
-
export declare class Lexer extends Frame {
|
|
4
|
-
constructor(out: Frame);
|
|
5
|
-
lex_string(input: string): Frame;
|
|
6
|
-
lex(source: FrameString): Frame;
|
|
7
|
-
fold(argument: Frame): void;
|
|
8
|
-
finish(options: LexOptions): Frame;
|
|
9
|
-
}
|
package/lib/execute/lexer.js
DELETED
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __extends = (this && this.__extends) || (function () {
|
|
3
|
-
var extendStatics = Object.setPrototypeOf ||
|
|
4
|
-
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
|
|
5
|
-
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
|
|
6
|
-
return function (d, b) {
|
|
7
|
-
extendStatics(d, b);
|
|
8
|
-
function __() { this.constructor = d; }
|
|
9
|
-
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
|
|
10
|
-
};
|
|
11
|
-
})();
|
|
12
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
var frames_1 = require("../frames");
|
|
14
|
-
var syntax_1 = require("./syntax");
|
|
15
|
-
var LexTerminal = (function (_super) {
|
|
16
|
-
__extends(LexTerminal, _super);
|
|
17
|
-
function LexTerminal(options) {
|
|
18
|
-
var _this = _super.call(this, frames_1.NilContext) || this;
|
|
19
|
-
_this.options = options;
|
|
20
|
-
_this.callme = true;
|
|
21
|
-
return _this;
|
|
22
|
-
}
|
|
23
|
-
LexTerminal.prototype.apply = function (argument, parameter) {
|
|
24
|
-
var source = argument;
|
|
25
|
-
var options = parameter;
|
|
26
|
-
return source.finish(options);
|
|
27
|
-
};
|
|
28
|
-
return LexTerminal;
|
|
29
|
-
}(frames_1.Frame));
|
|
30
|
-
var Lexer = (function (_super) {
|
|
31
|
-
__extends(Lexer, _super);
|
|
32
|
-
function Lexer(out) {
|
|
33
|
-
var _this = this;
|
|
34
|
-
syntax_1.syntax[Lexer.kOUT] = out;
|
|
35
|
-
_this = _super.call(this, syntax_1.syntax) || this;
|
|
36
|
-
return _this;
|
|
37
|
-
}
|
|
38
|
-
Lexer.prototype.lex_string = function (input) {
|
|
39
|
-
var source = new frames_1.FrameString(input);
|
|
40
|
-
return this.lex(source);
|
|
41
|
-
};
|
|
42
|
-
Lexer.prototype.lex = function (source) {
|
|
43
|
-
return source.reduce(this);
|
|
44
|
-
};
|
|
45
|
-
Lexer.prototype.fold = function (argument) {
|
|
46
|
-
var out = this.get(frames_1.Frame.kOUT);
|
|
47
|
-
this.set(frames_1.Frame.kOUT, out.call(argument));
|
|
48
|
-
};
|
|
49
|
-
Lexer.prototype.finish = function (options) {
|
|
50
|
-
return frames_1.Frame.nil;
|
|
51
|
-
};
|
|
52
|
-
return Lexer;
|
|
53
|
-
}(frames_1.Frame));
|
|
54
|
-
exports.Lexer = Lexer;
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGV4ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXhlY3V0ZS9sZXhlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFDQSxvQ0FBZ0Y7QUFJaEYsbUNBQWtDO0FBRWxDO0lBQTBCLCtCQUFLO0lBQzdCLHFCQUFzQixPQUFtQjtRQUF6QyxZQUNFLGtCQUFNLG1CQUFVLENBQUMsU0FFbEI7UUFIcUIsYUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUV2QyxLQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQzs7SUFDckIsQ0FBQztJQUVNLDJCQUFLLEdBQVosVUFBYSxRQUFlLEVBQUUsU0FBZ0I7UUFDNUMsSUFBTSxNQUFNLEdBQUcsUUFBaUIsQ0FBQztRQUNqQyxJQUFNLE9BQU8sR0FBRyxTQUF1QixDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFDSCxrQkFBQztBQUFELENBQUMsQUFYRCxDQUEwQixjQUFLLEdBVzlCO0FBRUQ7SUFBMkIseUJBQUs7SUFDOUIsZUFBWSxHQUFVO1FBQXRCLGlCQUdDO1FBRkMsZUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDekIsUUFBQSxrQkFBTSxlQUFNLENBQUMsU0FBQzs7SUFDaEIsQ0FBQztJQUVNLDBCQUFVLEdBQWpCLFVBQWtCLEtBQWE7UUFDN0IsSUFBTSxNQUFNLEdBQUcsSUFBSSxvQkFBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTSxtQkFBRyxHQUFWLFVBQVcsTUFBbUI7UUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVNLG9CQUFJLEdBQVgsVUFBWSxRQUFlO1FBQ3pCLElBQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBSyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVNLHNCQUFNLEdBQWIsVUFBYyxPQUFtQjtRQUMvQixNQUFNLENBQUMsY0FBSyxDQUFDLEdBQUcsQ0FBQztJQUNuQixDQUFDO0lBQ0gsWUFBQztBQUFELENBQUMsQUF2QkQsQ0FBMkIsY0FBSyxHQXVCL0I7QUF2Qlksc0JBQUsifQ==
|