greybel-interpreter 0.1.8 → 0.2.2

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 (85) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +2 -2
  3. package/dist/context.d.ts +81 -73
  4. package/dist/context.js +412 -403
  5. package/dist/cps.d.ts +15 -15
  6. package/dist/cps.js +849 -438
  7. package/dist/custom-types/boolean.d.ts +10 -10
  8. package/dist/custom-types/boolean.js +41 -41
  9. package/dist/custom-types/list.d.ts +25 -25
  10. package/dist/custom-types/list.js +292 -292
  11. package/dist/custom-types/map.d.ts +28 -28
  12. package/dist/custom-types/map.js +289 -289
  13. package/dist/custom-types/nil.d.ts +8 -8
  14. package/dist/custom-types/nil.js +38 -38
  15. package/dist/custom-types/number.d.ts +10 -10
  16. package/dist/custom-types/number.js +41 -41
  17. package/dist/custom-types/string.d.ts +21 -21
  18. package/dist/custom-types/string.js +131 -131
  19. package/dist/expressions/assign.d.ts +13 -12
  20. package/dist/expressions/assign.js +174 -156
  21. package/dist/expressions/binary-negated-expression.d.ts +19 -18
  22. package/dist/expressions/binary-negated-expression.js +131 -115
  23. package/dist/expressions/call.d.ts +14 -13
  24. package/dist/expressions/call.js +211 -177
  25. package/dist/expressions/import.d.ts +14 -0
  26. package/dist/expressions/import.js +155 -0
  27. package/dist/expressions/include.d.ts +13 -0
  28. package/dist/expressions/include.js +132 -0
  29. package/dist/expressions/list.d.ts +14 -13
  30. package/dist/expressions/list.js +134 -119
  31. package/dist/expressions/logical-and-binary.d.ts +23 -22
  32. package/dist/expressions/logical-and-binary.js +212 -192
  33. package/dist/expressions/map.d.ts +19 -18
  34. package/dist/expressions/map.js +196 -171
  35. package/dist/expressions/path.d.ts +31 -30
  36. package/dist/expressions/path.js +364 -310
  37. package/dist/index.d.ts +37 -37
  38. package/dist/index.js +91 -91
  39. package/dist/interpreter.d.ts +22 -22
  40. package/dist/interpreter.js +122 -64
  41. package/dist/operations/argument.d.ts +8 -8
  42. package/dist/operations/argument.js +129 -129
  43. package/dist/operations/body.d.ts +8 -8
  44. package/dist/operations/body.js +144 -144
  45. package/dist/operations/break.d.ts +7 -7
  46. package/dist/operations/break.js +34 -34
  47. package/dist/operations/continue.d.ts +7 -7
  48. package/dist/operations/continue.js +34 -34
  49. package/dist/operations/debugger.d.ts +7 -7
  50. package/dist/operations/debugger.js +32 -32
  51. package/dist/operations/else-if.d.ts +12 -12
  52. package/dist/operations/else-if.js +31 -31
  53. package/dist/operations/else.d.ts +10 -10
  54. package/dist/operations/else.js +30 -30
  55. package/dist/operations/for.d.ts +16 -16
  56. package/dist/operations/for.js +143 -139
  57. package/dist/operations/function.d.ts +21 -21
  58. package/dist/operations/function.js +129 -125
  59. package/dist/operations/if-statement.d.ts +8 -8
  60. package/dist/operations/if-statement.js +138 -138
  61. package/dist/operations/if.d.ts +12 -12
  62. package/dist/operations/if.js +31 -31
  63. package/dist/operations/new.d.ts +11 -11
  64. package/dist/operations/new.js +96 -96
  65. package/dist/operations/not.d.ts +11 -11
  66. package/dist/operations/not.js +95 -95
  67. package/dist/operations/reference.d.ts +11 -11
  68. package/dist/operations/reference.js +102 -102
  69. package/dist/operations/return.d.ts +11 -11
  70. package/dist/operations/return.js +102 -102
  71. package/dist/operations/top.d.ts +12 -12
  72. package/dist/operations/top.js +87 -84
  73. package/dist/operations/while.d.ts +14 -14
  74. package/dist/operations/while.js +127 -123
  75. package/dist/resource.d.ts +9 -9
  76. package/dist/resource.js +29 -29
  77. package/dist/typer.d.ts +6 -6
  78. package/dist/typer.js +95 -95
  79. package/dist/types/custom-type.d.ts +19 -19
  80. package/dist/types/custom-type.js +58 -58
  81. package/dist/types/expression.d.ts +6 -6
  82. package/dist/types/expression.js +9 -9
  83. package/dist/types/operation.d.ts +9 -9
  84. package/dist/types/operation.js +38 -38
  85. package/package.json +45 -45
package/dist/index.d.ts CHANGED
@@ -1,37 +1,37 @@
1
- export { default as AssignExpression } from './expressions/assign';
2
- export { default as CallExpression } from './expressions/call';
3
- export { default as ListExpression } from './expressions/list';
4
- export { default as LogicalAndBinaryExpression } from './expressions/logical-and-binary';
5
- export { default as MapExpression } from './expressions/map';
6
- export { default as PathExpression } from './expressions/path';
7
- export { default as BinaryNegatedExpression } from './expressions/binary-negated-expression';
8
- export { default as ArgumentOperation } from './operations/argument';
9
- export { default as WhileOperation } from './operations/while';
10
- export { default as ForOperation } from './operations/for';
11
- export { default as FunctionOperation } from './operations/function';
12
- export { default as ReturnOperation } from './operations/return';
13
- export { default as NewOperation } from './operations/new';
14
- export { default as NotOperation } from './operations/not';
15
- export { default as IfStatementOperation } from './operations/if-statement';
16
- export { default as IfOperation } from './operations/if';
17
- export { default as ElseIfOperation } from './operations/else-if';
18
- export { default as ElseOperation } from './operations/else';
19
- export { default as ContinueOperation } from './operations/continue';
20
- export { default as BreakOperation } from './operations/break';
21
- export { default as BodyOperation } from './operations/body';
22
- export { default as TopOperation } from './operations/top';
23
- export { default as DebuggerOperation } from './operations/debugger';
24
- export { default as CustomBoolean } from './custom-types/boolean';
25
- export { default as CustomNumber } from './custom-types/number';
26
- export { default as CustomString } from './custom-types/string';
27
- export { default as CustomNil } from './custom-types/nil';
28
- export { default as CustomMap } from './custom-types/map';
29
- export { default as CustomList } from './custom-types/list';
30
- export * from './resource';
31
- export * from './context';
32
- export * from './types/operation';
33
- export * from './types/expression';
34
- export * from './types/custom-type';
35
- export { default as CPS, CPSMap, CPSMapContext, CPSMapType } from './cps';
36
- export { default as Interpreter, InterpreterOptions } from './interpreter';
37
- export { isCustomValue, isCustomMap, isCustomList, isCustomString, isCustomNumber, cast as toCustomValue } from './typer';
1
+ export { default as AssignExpression } from './expressions/assign';
2
+ export { default as CallExpression } from './expressions/call';
3
+ export { default as ListExpression } from './expressions/list';
4
+ export { default as LogicalAndBinaryExpression } from './expressions/logical-and-binary';
5
+ export { default as MapExpression } from './expressions/map';
6
+ export { default as PathExpression } from './expressions/path';
7
+ export { default as BinaryNegatedExpression } from './expressions/binary-negated-expression';
8
+ export { default as ArgumentOperation } from './operations/argument';
9
+ export { default as WhileOperation } from './operations/while';
10
+ export { default as ForOperation } from './operations/for';
11
+ export { default as FunctionOperation } from './operations/function';
12
+ export { default as ReturnOperation } from './operations/return';
13
+ export { default as NewOperation } from './operations/new';
14
+ export { default as NotOperation } from './operations/not';
15
+ export { default as IfStatementOperation } from './operations/if-statement';
16
+ export { default as IfOperation } from './operations/if';
17
+ export { default as ElseIfOperation } from './operations/else-if';
18
+ export { default as ElseOperation } from './operations/else';
19
+ export { default as ContinueOperation } from './operations/continue';
20
+ export { default as BreakOperation } from './operations/break';
21
+ export { default as BodyOperation } from './operations/body';
22
+ export { default as TopOperation } from './operations/top';
23
+ export { default as DebuggerOperation } from './operations/debugger';
24
+ export { default as CustomBoolean } from './custom-types/boolean';
25
+ export { default as CustomNumber } from './custom-types/number';
26
+ export { default as CustomString } from './custom-types/string';
27
+ export { default as CustomNil } from './custom-types/nil';
28
+ export { default as CustomMap } from './custom-types/map';
29
+ export { default as CustomList } from './custom-types/list';
30
+ export * from './resource';
31
+ export * from './context';
32
+ export * from './types/operation';
33
+ export * from './types/expression';
34
+ export * from './types/custom-type';
35
+ export { default as CPS, CPSMap, CPSMapContext, CPSMapType } from './cps';
36
+ export { default as Interpreter, InterpreterOptions } from './interpreter';
37
+ export { isCustomValue, isCustomMap, isCustomList, isCustomString, isCustomNumber, cast as toCustomValue } from './typer';
package/dist/index.js CHANGED
@@ -1,91 +1,91 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
- }) : (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- o[k2] = m[k];
8
- }));
9
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
- };
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.toCustomValue = exports.isCustomNumber = exports.isCustomString = exports.isCustomList = exports.isCustomMap = exports.isCustomValue = exports.Interpreter = exports.CPSMap = exports.CPS = exports.CustomList = exports.CustomMap = exports.CustomNil = exports.CustomString = exports.CustomNumber = exports.CustomBoolean = exports.DebuggerOperation = exports.TopOperation = exports.BodyOperation = exports.BreakOperation = exports.ContinueOperation = exports.ElseOperation = exports.ElseIfOperation = exports.IfOperation = exports.IfStatementOperation = exports.NotOperation = exports.NewOperation = exports.ReturnOperation = exports.FunctionOperation = exports.ForOperation = exports.WhileOperation = exports.ArgumentOperation = exports.BinaryNegatedExpression = exports.PathExpression = exports.MapExpression = exports.LogicalAndBinaryExpression = exports.ListExpression = exports.CallExpression = exports.AssignExpression = void 0;
17
- var assign_1 = require("./expressions/assign");
18
- Object.defineProperty(exports, "AssignExpression", { enumerable: true, get: function () { return __importDefault(assign_1).default; } });
19
- var call_1 = require("./expressions/call");
20
- Object.defineProperty(exports, "CallExpression", { enumerable: true, get: function () { return __importDefault(call_1).default; } });
21
- var list_1 = require("./expressions/list");
22
- Object.defineProperty(exports, "ListExpression", { enumerable: true, get: function () { return __importDefault(list_1).default; } });
23
- var logical_and_binary_1 = require("./expressions/logical-and-binary");
24
- Object.defineProperty(exports, "LogicalAndBinaryExpression", { enumerable: true, get: function () { return __importDefault(logical_and_binary_1).default; } });
25
- var map_1 = require("./expressions/map");
26
- Object.defineProperty(exports, "MapExpression", { enumerable: true, get: function () { return __importDefault(map_1).default; } });
27
- var path_1 = require("./expressions/path");
28
- Object.defineProperty(exports, "PathExpression", { enumerable: true, get: function () { return __importDefault(path_1).default; } });
29
- var binary_negated_expression_1 = require("./expressions/binary-negated-expression");
30
- Object.defineProperty(exports, "BinaryNegatedExpression", { enumerable: true, get: function () { return __importDefault(binary_negated_expression_1).default; } });
31
- var argument_1 = require("./operations/argument");
32
- Object.defineProperty(exports, "ArgumentOperation", { enumerable: true, get: function () { return __importDefault(argument_1).default; } });
33
- var while_1 = require("./operations/while");
34
- Object.defineProperty(exports, "WhileOperation", { enumerable: true, get: function () { return __importDefault(while_1).default; } });
35
- var for_1 = require("./operations/for");
36
- Object.defineProperty(exports, "ForOperation", { enumerable: true, get: function () { return __importDefault(for_1).default; } });
37
- var function_1 = require("./operations/function");
38
- Object.defineProperty(exports, "FunctionOperation", { enumerable: true, get: function () { return __importDefault(function_1).default; } });
39
- var return_1 = require("./operations/return");
40
- Object.defineProperty(exports, "ReturnOperation", { enumerable: true, get: function () { return __importDefault(return_1).default; } });
41
- var new_1 = require("./operations/new");
42
- Object.defineProperty(exports, "NewOperation", { enumerable: true, get: function () { return __importDefault(new_1).default; } });
43
- var not_1 = require("./operations/not");
44
- Object.defineProperty(exports, "NotOperation", { enumerable: true, get: function () { return __importDefault(not_1).default; } });
45
- var if_statement_1 = require("./operations/if-statement");
46
- Object.defineProperty(exports, "IfStatementOperation", { enumerable: true, get: function () { return __importDefault(if_statement_1).default; } });
47
- var if_1 = require("./operations/if");
48
- Object.defineProperty(exports, "IfOperation", { enumerable: true, get: function () { return __importDefault(if_1).default; } });
49
- var else_if_1 = require("./operations/else-if");
50
- Object.defineProperty(exports, "ElseIfOperation", { enumerable: true, get: function () { return __importDefault(else_if_1).default; } });
51
- var else_1 = require("./operations/else");
52
- Object.defineProperty(exports, "ElseOperation", { enumerable: true, get: function () { return __importDefault(else_1).default; } });
53
- var continue_1 = require("./operations/continue");
54
- Object.defineProperty(exports, "ContinueOperation", { enumerable: true, get: function () { return __importDefault(continue_1).default; } });
55
- var break_1 = require("./operations/break");
56
- Object.defineProperty(exports, "BreakOperation", { enumerable: true, get: function () { return __importDefault(break_1).default; } });
57
- var body_1 = require("./operations/body");
58
- Object.defineProperty(exports, "BodyOperation", { enumerable: true, get: function () { return __importDefault(body_1).default; } });
59
- var top_1 = require("./operations/top");
60
- Object.defineProperty(exports, "TopOperation", { enumerable: true, get: function () { return __importDefault(top_1).default; } });
61
- var debugger_1 = require("./operations/debugger");
62
- Object.defineProperty(exports, "DebuggerOperation", { enumerable: true, get: function () { return __importDefault(debugger_1).default; } });
63
- var boolean_1 = require("./custom-types/boolean");
64
- Object.defineProperty(exports, "CustomBoolean", { enumerable: true, get: function () { return __importDefault(boolean_1).default; } });
65
- var number_1 = require("./custom-types/number");
66
- Object.defineProperty(exports, "CustomNumber", { enumerable: true, get: function () { return __importDefault(number_1).default; } });
67
- var string_1 = require("./custom-types/string");
68
- Object.defineProperty(exports, "CustomString", { enumerable: true, get: function () { return __importDefault(string_1).default; } });
69
- var nil_1 = require("./custom-types/nil");
70
- Object.defineProperty(exports, "CustomNil", { enumerable: true, get: function () { return __importDefault(nil_1).default; } });
71
- var map_2 = require("./custom-types/map");
72
- Object.defineProperty(exports, "CustomMap", { enumerable: true, get: function () { return __importDefault(map_2).default; } });
73
- var list_2 = require("./custom-types/list");
74
- Object.defineProperty(exports, "CustomList", { enumerable: true, get: function () { return __importDefault(list_2).default; } });
75
- __exportStar(require("./resource"), exports);
76
- __exportStar(require("./context"), exports);
77
- __exportStar(require("./types/operation"), exports);
78
- __exportStar(require("./types/expression"), exports);
79
- __exportStar(require("./types/custom-type"), exports);
80
- var cps_1 = require("./cps");
81
- Object.defineProperty(exports, "CPS", { enumerable: true, get: function () { return __importDefault(cps_1).default; } });
82
- Object.defineProperty(exports, "CPSMap", { enumerable: true, get: function () { return cps_1.CPSMap; } });
83
- var interpreter_1 = require("./interpreter");
84
- Object.defineProperty(exports, "Interpreter", { enumerable: true, get: function () { return __importDefault(interpreter_1).default; } });
85
- var typer_1 = require("./typer");
86
- Object.defineProperty(exports, "isCustomValue", { enumerable: true, get: function () { return typer_1.isCustomValue; } });
87
- Object.defineProperty(exports, "isCustomMap", { enumerable: true, get: function () { return typer_1.isCustomMap; } });
88
- Object.defineProperty(exports, "isCustomList", { enumerable: true, get: function () { return typer_1.isCustomList; } });
89
- Object.defineProperty(exports, "isCustomString", { enumerable: true, get: function () { return typer_1.isCustomString; } });
90
- Object.defineProperty(exports, "isCustomNumber", { enumerable: true, get: function () { return typer_1.isCustomNumber; } });
91
- Object.defineProperty(exports, "toCustomValue", { enumerable: true, get: function () { return typer_1.cast; } });
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.toCustomValue = exports.isCustomNumber = exports.isCustomString = exports.isCustomList = exports.isCustomMap = exports.isCustomValue = exports.Interpreter = exports.CPSMap = exports.CPS = exports.CustomList = exports.CustomMap = exports.CustomNil = exports.CustomString = exports.CustomNumber = exports.CustomBoolean = exports.DebuggerOperation = exports.TopOperation = exports.BodyOperation = exports.BreakOperation = exports.ContinueOperation = exports.ElseOperation = exports.ElseIfOperation = exports.IfOperation = exports.IfStatementOperation = exports.NotOperation = exports.NewOperation = exports.ReturnOperation = exports.FunctionOperation = exports.ForOperation = exports.WhileOperation = exports.ArgumentOperation = exports.BinaryNegatedExpression = exports.PathExpression = exports.MapExpression = exports.LogicalAndBinaryExpression = exports.ListExpression = exports.CallExpression = exports.AssignExpression = void 0;
17
+ var assign_1 = require("./expressions/assign");
18
+ Object.defineProperty(exports, "AssignExpression", { enumerable: true, get: function () { return __importDefault(assign_1).default; } });
19
+ var call_1 = require("./expressions/call");
20
+ Object.defineProperty(exports, "CallExpression", { enumerable: true, get: function () { return __importDefault(call_1).default; } });
21
+ var list_1 = require("./expressions/list");
22
+ Object.defineProperty(exports, "ListExpression", { enumerable: true, get: function () { return __importDefault(list_1).default; } });
23
+ var logical_and_binary_1 = require("./expressions/logical-and-binary");
24
+ Object.defineProperty(exports, "LogicalAndBinaryExpression", { enumerable: true, get: function () { return __importDefault(logical_and_binary_1).default; } });
25
+ var map_1 = require("./expressions/map");
26
+ Object.defineProperty(exports, "MapExpression", { enumerable: true, get: function () { return __importDefault(map_1).default; } });
27
+ var path_1 = require("./expressions/path");
28
+ Object.defineProperty(exports, "PathExpression", { enumerable: true, get: function () { return __importDefault(path_1).default; } });
29
+ var binary_negated_expression_1 = require("./expressions/binary-negated-expression");
30
+ Object.defineProperty(exports, "BinaryNegatedExpression", { enumerable: true, get: function () { return __importDefault(binary_negated_expression_1).default; } });
31
+ var argument_1 = require("./operations/argument");
32
+ Object.defineProperty(exports, "ArgumentOperation", { enumerable: true, get: function () { return __importDefault(argument_1).default; } });
33
+ var while_1 = require("./operations/while");
34
+ Object.defineProperty(exports, "WhileOperation", { enumerable: true, get: function () { return __importDefault(while_1).default; } });
35
+ var for_1 = require("./operations/for");
36
+ Object.defineProperty(exports, "ForOperation", { enumerable: true, get: function () { return __importDefault(for_1).default; } });
37
+ var function_1 = require("./operations/function");
38
+ Object.defineProperty(exports, "FunctionOperation", { enumerable: true, get: function () { return __importDefault(function_1).default; } });
39
+ var return_1 = require("./operations/return");
40
+ Object.defineProperty(exports, "ReturnOperation", { enumerable: true, get: function () { return __importDefault(return_1).default; } });
41
+ var new_1 = require("./operations/new");
42
+ Object.defineProperty(exports, "NewOperation", { enumerable: true, get: function () { return __importDefault(new_1).default; } });
43
+ var not_1 = require("./operations/not");
44
+ Object.defineProperty(exports, "NotOperation", { enumerable: true, get: function () { return __importDefault(not_1).default; } });
45
+ var if_statement_1 = require("./operations/if-statement");
46
+ Object.defineProperty(exports, "IfStatementOperation", { enumerable: true, get: function () { return __importDefault(if_statement_1).default; } });
47
+ var if_1 = require("./operations/if");
48
+ Object.defineProperty(exports, "IfOperation", { enumerable: true, get: function () { return __importDefault(if_1).default; } });
49
+ var else_if_1 = require("./operations/else-if");
50
+ Object.defineProperty(exports, "ElseIfOperation", { enumerable: true, get: function () { return __importDefault(else_if_1).default; } });
51
+ var else_1 = require("./operations/else");
52
+ Object.defineProperty(exports, "ElseOperation", { enumerable: true, get: function () { return __importDefault(else_1).default; } });
53
+ var continue_1 = require("./operations/continue");
54
+ Object.defineProperty(exports, "ContinueOperation", { enumerable: true, get: function () { return __importDefault(continue_1).default; } });
55
+ var break_1 = require("./operations/break");
56
+ Object.defineProperty(exports, "BreakOperation", { enumerable: true, get: function () { return __importDefault(break_1).default; } });
57
+ var body_1 = require("./operations/body");
58
+ Object.defineProperty(exports, "BodyOperation", { enumerable: true, get: function () { return __importDefault(body_1).default; } });
59
+ var top_1 = require("./operations/top");
60
+ Object.defineProperty(exports, "TopOperation", { enumerable: true, get: function () { return __importDefault(top_1).default; } });
61
+ var debugger_1 = require("./operations/debugger");
62
+ Object.defineProperty(exports, "DebuggerOperation", { enumerable: true, get: function () { return __importDefault(debugger_1).default; } });
63
+ var boolean_1 = require("./custom-types/boolean");
64
+ Object.defineProperty(exports, "CustomBoolean", { enumerable: true, get: function () { return __importDefault(boolean_1).default; } });
65
+ var number_1 = require("./custom-types/number");
66
+ Object.defineProperty(exports, "CustomNumber", { enumerable: true, get: function () { return __importDefault(number_1).default; } });
67
+ var string_1 = require("./custom-types/string");
68
+ Object.defineProperty(exports, "CustomString", { enumerable: true, get: function () { return __importDefault(string_1).default; } });
69
+ var nil_1 = require("./custom-types/nil");
70
+ Object.defineProperty(exports, "CustomNil", { enumerable: true, get: function () { return __importDefault(nil_1).default; } });
71
+ var map_2 = require("./custom-types/map");
72
+ Object.defineProperty(exports, "CustomMap", { enumerable: true, get: function () { return __importDefault(map_2).default; } });
73
+ var list_2 = require("./custom-types/list");
74
+ Object.defineProperty(exports, "CustomList", { enumerable: true, get: function () { return __importDefault(list_2).default; } });
75
+ __exportStar(require("./resource"), exports);
76
+ __exportStar(require("./context"), exports);
77
+ __exportStar(require("./types/operation"), exports);
78
+ __exportStar(require("./types/expression"), exports);
79
+ __exportStar(require("./types/custom-type"), exports);
80
+ var cps_1 = require("./cps");
81
+ Object.defineProperty(exports, "CPS", { enumerable: true, get: function () { return __importDefault(cps_1).default; } });
82
+ Object.defineProperty(exports, "CPSMap", { enumerable: true, get: function () { return cps_1.CPSMap; } });
83
+ var interpreter_1 = require("./interpreter");
84
+ Object.defineProperty(exports, "Interpreter", { enumerable: true, get: function () { return __importDefault(interpreter_1).default; } });
85
+ var typer_1 = require("./typer");
86
+ Object.defineProperty(exports, "isCustomValue", { enumerable: true, get: function () { return typer_1.isCustomValue; } });
87
+ Object.defineProperty(exports, "isCustomMap", { enumerable: true, get: function () { return typer_1.isCustomMap; } });
88
+ Object.defineProperty(exports, "isCustomList", { enumerable: true, get: function () { return typer_1.isCustomList; } });
89
+ Object.defineProperty(exports, "isCustomString", { enumerable: true, get: function () { return typer_1.isCustomString; } });
90
+ Object.defineProperty(exports, "isCustomNumber", { enumerable: true, get: function () { return typer_1.isCustomNumber; } });
91
+ Object.defineProperty(exports, "toCustomValue", { enumerable: true, get: function () { return typer_1.cast; } });
@@ -1,22 +1,22 @@
1
- import { OperationContext, Debugger } from './context';
2
- import { ResourceHandler } from './resource';
3
- export interface InterpreterOptions {
4
- target?: string;
5
- code?: string;
6
- api?: Map<string, any>;
7
- params?: any[];
8
- resourceHandler?: ResourceHandler;
9
- debugger?: Debugger;
10
- }
11
- export default class Interpreter {
12
- target: string;
13
- code: string;
14
- api: Map<string, any>;
15
- params: any[];
16
- resourceHandler: ResourceHandler;
17
- debugger: Debugger;
18
- context: OperationContext | null;
19
- constructor(options: InterpreterOptions);
20
- digest(): Promise<any>;
21
- exit(): void;
22
- }
1
+ import { OperationContext, Debugger } from './context';
2
+ import { ResourceHandler } from './resource';
3
+ export interface InterpreterOptions {
4
+ target?: string;
5
+ code?: string;
6
+ api?: Map<string, any>;
7
+ params?: any[];
8
+ resourceHandler?: ResourceHandler;
9
+ debugger?: Debugger;
10
+ }
11
+ export default class Interpreter {
12
+ target: string;
13
+ code: string | null;
14
+ api: Map<string, any>;
15
+ params: any[];
16
+ resourceHandler: ResourceHandler;
17
+ debugger: Debugger;
18
+ context: OperationContext | null;
19
+ constructor(options: InterpreterOptions);
20
+ digest(): Promise<any>;
21
+ exit(): void;
22
+ }
@@ -1,64 +1,122 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- var cps_1 = __importDefault(require("./cps"));
7
- var context_1 = require("./context");
8
- var greybel_core_1 = require("greybel-core");
9
- var resource_1 = require("./resource");
10
- var top_1 = __importDefault(require("./operations/top"));
11
- var typer_1 = require("./typer");
12
- ;
13
- var Interpreter = /** @class */ (function () {
14
- function Interpreter(options) {
15
- var me = this;
16
- me.resourceHandler = options.resourceHandler || new resource_1.ResourceProvider().getHandler();
17
- me.debugger = options.debugger || new context_1.Debugger();
18
- me.api = options.api || new Map();
19
- me.params = options.params || [];
20
- me.context = null;
21
- if (options.target) {
22
- me.target = options.target;
23
- me.code = me.resourceHandler.get(options.target);
24
- }
25
- else {
26
- me.target = 'unknown';
27
- me.code = options.code;
28
- }
29
- }
30
- Interpreter.prototype.digest = function () {
31
- var me = this;
32
- var parser = new greybel_core_1.Parser(me.code);
33
- var chunk = parser.parseChunk();
34
- var cps = new cps_1.default({
35
- target: me.target,
36
- resourceHandler: me.resourceHandler
37
- });
38
- var mainContext = new context_1.OperationContext({
39
- isProtected: true,
40
- debugger: me.debugger,
41
- cps: cps
42
- });
43
- var topOperation = new top_1.default(null, {
44
- body: cps.visit(chunk)
45
- });
46
- mainContext.extend(me.api);
47
- mainContext.scope.refs.set('params', (0, typer_1.cast)(me.params));
48
- me.context = mainContext;
49
- return topOperation.run(mainContext)
50
- .catch(function (err) {
51
- console.error(err);
52
- throw err;
53
- });
54
- };
55
- Interpreter.prototype.exit = function () {
56
- var me = this;
57
- if (me.context == null) {
58
- throw new Error('Unexpected exit signal.');
59
- }
60
- me.context.processState.exit = true;
61
- };
62
- return Interpreter;
63
- }());
64
- exports.default = Interpreter;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var cps_1 = __importDefault(require("./cps"));
43
+ var context_1 = require("./context");
44
+ var greybel_core_1 = require("greybel-core");
45
+ var resource_1 = require("./resource");
46
+ var top_1 = __importDefault(require("./operations/top"));
47
+ var typer_1 = require("./typer");
48
+ ;
49
+ var Interpreter = /** @class */ (function () {
50
+ function Interpreter(options) {
51
+ var me = this;
52
+ me.resourceHandler = options.resourceHandler || new resource_1.ResourceProvider().getHandler();
53
+ me.debugger = options.debugger || new context_1.Debugger();
54
+ me.api = options.api || new Map();
55
+ me.params = options.params || [];
56
+ me.context = null;
57
+ if (options.target) {
58
+ me.target = options.target;
59
+ me.code = null;
60
+ }
61
+ else {
62
+ me.target = 'unknown';
63
+ me.code = options.code;
64
+ }
65
+ }
66
+ Interpreter.prototype.digest = function () {
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ var me, code, _a, parser, chunk, cps, mainContext, topOperation, _b, _c;
69
+ var _d;
70
+ return __generator(this, function (_e) {
71
+ switch (_e.label) {
72
+ case 0:
73
+ me = this;
74
+ _a = me.code;
75
+ if (_a) return [3 /*break*/, 2];
76
+ return [4 /*yield*/, me.resourceHandler.get(me.target)];
77
+ case 1:
78
+ _a = (_e.sent());
79
+ _e.label = 2;
80
+ case 2:
81
+ code = _a;
82
+ parser = new greybel_core_1.Parser(code);
83
+ chunk = parser.parseChunk();
84
+ cps = new cps_1.default({
85
+ target: me.target,
86
+ resourceHandler: me.resourceHandler
87
+ });
88
+ mainContext = new context_1.OperationContext({
89
+ target: me.target,
90
+ isProtected: true,
91
+ debugger: me.debugger,
92
+ cps: cps
93
+ });
94
+ _b = top_1.default.bind;
95
+ _c = [void 0, null];
96
+ _d = {};
97
+ return [4 /*yield*/, cps.visit(chunk)];
98
+ case 3:
99
+ topOperation = new (_b.apply(top_1.default, _c.concat([(_d.body = _e.sent(),
100
+ _d)])))();
101
+ mainContext.extend(me.api);
102
+ mainContext.scope.refs.set('params', (0, typer_1.cast)(me.params));
103
+ me.context = mainContext;
104
+ return [2 /*return*/, topOperation.run(mainContext)
105
+ .catch(function (err) {
106
+ console.error(err);
107
+ throw err;
108
+ })];
109
+ }
110
+ });
111
+ });
112
+ };
113
+ Interpreter.prototype.exit = function () {
114
+ var me = this;
115
+ if (me.context == null) {
116
+ throw new Error('Unexpected exit signal.');
117
+ }
118
+ me.context.processState.exit = true;
119
+ };
120
+ return Interpreter;
121
+ }());
122
+ exports.default = Interpreter;
@@ -1,8 +1,8 @@
1
- import { Operation } from '../types/operation';
2
- import { ASTBase } from 'greybel-core';
3
- import { OperationContext } from '../context';
4
- export default class ArgumentOperation extends Operation {
5
- stack: any[];
6
- constructor(ast: ASTBase[]);
7
- get(operationContext: OperationContext): Promise<any[]>;
8
- }
1
+ import { Operation } from '../types/operation';
2
+ import { ASTBase } from 'greybel-core';
3
+ import { OperationContext } from '../context';
4
+ export default class ArgumentOperation extends Operation {
5
+ stack: any[];
6
+ constructor(ast: ASTBase[]);
7
+ get(operationContext: OperationContext): Promise<any[]>;
8
+ }