greybel-interpreter 1.0.3 → 1.1.1
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/cps.d.ts +2 -3
- package/dist/cps.js +130 -137
- package/dist/operations/for.js +9 -3
- package/dist/operations/return.js +1 -1
- package/dist/operations/while.js +11 -4
- package/package.json +3 -3
package/dist/cps.d.ts
CHANGED
|
@@ -4,12 +4,11 @@ import Operation from './operations/operation';
|
|
|
4
4
|
export declare class CPSContext {
|
|
5
5
|
readonly target: string;
|
|
6
6
|
readonly handler: HandlerContainer;
|
|
7
|
-
|
|
8
|
-
constructor(target: string, handler: HandlerContainer, currentTarget?: string);
|
|
9
|
-
getCurrentTarget(): string;
|
|
7
|
+
constructor(target: string, handler: HandlerContainer);
|
|
10
8
|
}
|
|
11
9
|
export default class CPS {
|
|
12
10
|
private readonly context;
|
|
11
|
+
private __visit;
|
|
13
12
|
constructor(context: CPSContext);
|
|
14
13
|
visit(item: ASTBase): Promise<Operation>;
|
|
15
14
|
}
|
package/dist/cps.js
CHANGED
|
@@ -66,154 +66,147 @@ var resolve_1 = __importDefault(require("./operations/resolve"));
|
|
|
66
66
|
var return_1 = __importDefault(require("./operations/return"));
|
|
67
67
|
var while_1 = __importDefault(require("./operations/while"));
|
|
68
68
|
var CPSContext = /** @class */ (function () {
|
|
69
|
-
function CPSContext(target, handler
|
|
70
|
-
if (currentTarget === void 0) { currentTarget = null; }
|
|
69
|
+
function CPSContext(target, handler) {
|
|
71
70
|
this.target = target;
|
|
72
71
|
this.handler = handler;
|
|
73
|
-
this.currentTarget = currentTarget;
|
|
74
72
|
}
|
|
75
|
-
CPSContext.prototype.getCurrentTarget = function () {
|
|
76
|
-
return this.currentTarget;
|
|
77
|
-
};
|
|
78
73
|
return CPSContext;
|
|
79
74
|
}());
|
|
80
75
|
exports.CPSContext = CPSContext;
|
|
76
|
+
var visit = function (context, currentTarget, item) { return __awaiter(void 0, void 0, void 0, function () {
|
|
77
|
+
var defaultVisit, _a, importExpr, target, code, subVisit, importStatement, includeExpr, target, code, subVisit, importStatement, importExpr, target, code, subVisit, importStatement, unaryExpr;
|
|
78
|
+
return __generator(this, function (_b) {
|
|
79
|
+
switch (_b.label) {
|
|
80
|
+
case 0:
|
|
81
|
+
defaultVisit = visit.bind(null, context, currentTarget);
|
|
82
|
+
_a = item.type;
|
|
83
|
+
switch (_a) {
|
|
84
|
+
case greyscript_core_1.ASTType.MapConstructorExpression: return [3 /*break*/, 1];
|
|
85
|
+
case greyscript_core_1.ASTType.ListConstructorExpression: return [3 /*break*/, 2];
|
|
86
|
+
case greyscript_core_1.ASTType.AssignmentStatement: return [3 /*break*/, 3];
|
|
87
|
+
case greyscript_core_1.ASTType.MemberExpression: return [3 /*break*/, 4];
|
|
88
|
+
case greyscript_core_1.ASTType.Identifier: return [3 /*break*/, 4];
|
|
89
|
+
case greyscript_core_1.ASTType.IndexExpression: return [3 /*break*/, 4];
|
|
90
|
+
case greyscript_core_1.ASTType.FunctionDeclaration: return [3 /*break*/, 5];
|
|
91
|
+
case greyscript_core_1.ASTType.InvalidCodeExpression: return [3 /*break*/, 6];
|
|
92
|
+
case greyscript_core_1.ASTType.WhileStatement: return [3 /*break*/, 7];
|
|
93
|
+
case greyscript_core_1.ASTType.ForGenericStatement: return [3 /*break*/, 8];
|
|
94
|
+
case greyscript_core_1.ASTType.IfStatement: return [3 /*break*/, 9];
|
|
95
|
+
case greyscript_core_1.ASTType.IfShortcutStatement: return [3 /*break*/, 9];
|
|
96
|
+
case greyscript_core_1.ASTType.ReturnStatement: return [3 /*break*/, 10];
|
|
97
|
+
case greyscript_core_1.ASTType.BreakStatement: return [3 /*break*/, 11];
|
|
98
|
+
case greyscript_core_1.ASTType.ContinueStatement: return [3 /*break*/, 12];
|
|
99
|
+
case greyscript_core_1.ASTType.CallExpression: return [3 /*break*/, 13];
|
|
100
|
+
case greyscript_core_1.ASTType.CallStatement: return [3 /*break*/, 14];
|
|
101
|
+
case greybel_core_1.ASTType.FeatureImportExpression: return [3 /*break*/, 15];
|
|
102
|
+
case greybel_core_1.ASTType.FeatureIncludeExpression: return [3 /*break*/, 19];
|
|
103
|
+
case greyscript_core_1.ASTType.ImportCodeExpression: return [3 /*break*/, 23];
|
|
104
|
+
case greybel_core_1.ASTType.FeatureDebuggerExpression: return [3 /*break*/, 27];
|
|
105
|
+
case greyscript_core_1.ASTType.BooleanLiteral: return [3 /*break*/, 28];
|
|
106
|
+
case greyscript_core_1.ASTType.StringLiteral: return [3 /*break*/, 28];
|
|
107
|
+
case greyscript_core_1.ASTType.NumericLiteral: return [3 /*break*/, 28];
|
|
108
|
+
case greyscript_core_1.ASTType.NilLiteral: return [3 /*break*/, 28];
|
|
109
|
+
case greyscript_core_1.ASTType.EmptyExpression: return [3 /*break*/, 29];
|
|
110
|
+
case greyscript_core_1.ASTType.BinaryExpression: return [3 /*break*/, 30];
|
|
111
|
+
case greyscript_core_1.ASTType.LogicalExpression: return [3 /*break*/, 30];
|
|
112
|
+
case greyscript_core_1.ASTType.NegationExpression: return [3 /*break*/, 31];
|
|
113
|
+
case greyscript_core_1.ASTType.BinaryNegatedExpression: return [3 /*break*/, 32];
|
|
114
|
+
case greyscript_core_1.ASTType.UnaryExpression: return [3 /*break*/, 33];
|
|
115
|
+
case greyscript_core_1.ASTType.Chunk: return [3 /*break*/, 34];
|
|
116
|
+
}
|
|
117
|
+
return [3 /*break*/, 35];
|
|
118
|
+
case 1: return [2 /*return*/, new map_1.default(item, currentTarget).build(defaultVisit)];
|
|
119
|
+
case 2: return [2 /*return*/, new list_1.default(item, currentTarget).build(defaultVisit)];
|
|
120
|
+
case 3: return [2 /*return*/, new assign_1.default(item, currentTarget).build(defaultVisit)];
|
|
121
|
+
case 4: return [2 /*return*/, new resolve_1.default(item, currentTarget).build(defaultVisit)];
|
|
122
|
+
case 5: return [2 /*return*/, new function_1.default(item, currentTarget).build(defaultVisit)];
|
|
123
|
+
case 6: return [2 /*return*/, new noop_1.default(item).build(defaultVisit)];
|
|
124
|
+
case 7: return [2 /*return*/, new while_1.default(item, currentTarget).build(defaultVisit)];
|
|
125
|
+
case 8: return [2 /*return*/, new for_1.default(item, currentTarget).build(defaultVisit)];
|
|
126
|
+
case 9: return [2 /*return*/, new if_statement_1.default(item, currentTarget).build(defaultVisit)];
|
|
127
|
+
case 10: return [2 /*return*/, new return_1.default(item, currentTarget).build(defaultVisit)];
|
|
128
|
+
case 11: return [2 /*return*/, new break_1.default(item, currentTarget).build(defaultVisit)];
|
|
129
|
+
case 12: return [2 /*return*/, new continue_1.default(item, currentTarget).build(defaultVisit)];
|
|
130
|
+
case 13: return [2 /*return*/, new call_1.default(item, currentTarget).build(defaultVisit)];
|
|
131
|
+
case 14: return [2 /*return*/, defaultVisit(item.expression)];
|
|
132
|
+
case 15:
|
|
133
|
+
importExpr = item;
|
|
134
|
+
return [4 /*yield*/, context.handler.resourceHandler.getTargetRelativeTo(currentTarget, importExpr.path)];
|
|
135
|
+
case 16:
|
|
136
|
+
target = _b.sent();
|
|
137
|
+
return [4 /*yield*/, context.handler.resourceHandler.get(target)];
|
|
138
|
+
case 17:
|
|
139
|
+
code = _b.sent();
|
|
140
|
+
if (code == null) {
|
|
141
|
+
throw new Error("Cannot find import ".concat(currentTarget, "."));
|
|
142
|
+
}
|
|
143
|
+
subVisit = visit.bind(null, context, target);
|
|
144
|
+
return [4 /*yield*/, new import_1.default(importExpr, target, code).build(subVisit)];
|
|
145
|
+
case 18:
|
|
146
|
+
importStatement = _b.sent();
|
|
147
|
+
return [2 /*return*/, importStatement];
|
|
148
|
+
case 19:
|
|
149
|
+
includeExpr = item;
|
|
150
|
+
return [4 /*yield*/, context.handler.resourceHandler.getTargetRelativeTo(currentTarget, includeExpr.path)];
|
|
151
|
+
case 20:
|
|
152
|
+
target = _b.sent();
|
|
153
|
+
return [4 /*yield*/, context.handler.resourceHandler.get(target)];
|
|
154
|
+
case 21:
|
|
155
|
+
code = _b.sent();
|
|
156
|
+
if (code == null) {
|
|
157
|
+
throw new Error("Cannot find include ".concat(currentTarget, "."));
|
|
158
|
+
}
|
|
159
|
+
subVisit = visit.bind(null, context, target);
|
|
160
|
+
return [4 /*yield*/, new include_1.default(includeExpr, target, code).build(subVisit)];
|
|
161
|
+
case 22:
|
|
162
|
+
importStatement = _b.sent();
|
|
163
|
+
return [2 /*return*/, importStatement];
|
|
164
|
+
case 23:
|
|
165
|
+
importExpr = item;
|
|
166
|
+
return [4 /*yield*/, context.handler.resourceHandler.getTargetRelativeTo(currentTarget, importExpr.fileSystemDirectory)];
|
|
167
|
+
case 24:
|
|
168
|
+
target = _b.sent();
|
|
169
|
+
return [4 /*yield*/, context.handler.resourceHandler.get(target)];
|
|
170
|
+
case 25:
|
|
171
|
+
code = _b.sent();
|
|
172
|
+
if (code == null) {
|
|
173
|
+
throw new Error("Cannot find native import ".concat(currentTarget, "."));
|
|
174
|
+
}
|
|
175
|
+
subVisit = visit.bind(null, context, target);
|
|
176
|
+
return [4 /*yield*/, new include_1.default(importExpr, target, code).build(subVisit)];
|
|
177
|
+
case 26:
|
|
178
|
+
importStatement = _b.sent();
|
|
179
|
+
return [2 /*return*/, importStatement];
|
|
180
|
+
case 27: return [2 /*return*/, new debugger_statement_1.default(item, currentTarget)];
|
|
181
|
+
case 28: return [2 /*return*/, new literal_1.default(item, currentTarget).build(defaultVisit)];
|
|
182
|
+
case 29: return [2 /*return*/, new noop_1.default(item, currentTarget).build(defaultVisit)];
|
|
183
|
+
case 30: return [2 /*return*/, new evaluate_1.default(item, currentTarget).build(defaultVisit)];
|
|
184
|
+
case 31: return [2 /*return*/, new not_1.default(item, currentTarget).build(defaultVisit)];
|
|
185
|
+
case 32: return [2 /*return*/, new negated_binary_1.default(item, currentTarget).build(defaultVisit)];
|
|
186
|
+
case 33:
|
|
187
|
+
{
|
|
188
|
+
unaryExpr = item;
|
|
189
|
+
if (unaryExpr.operator === 'new') {
|
|
190
|
+
return [2 /*return*/, new new_instance_1.default(unaryExpr).build(defaultVisit)];
|
|
191
|
+
}
|
|
192
|
+
else if (unaryExpr.operator === '@') {
|
|
193
|
+
return [2 /*return*/, new function_reference_1.default(unaryExpr).build(defaultVisit)];
|
|
194
|
+
}
|
|
195
|
+
throw new Error('Unknown unary expression.');
|
|
196
|
+
}
|
|
197
|
+
_b.label = 34;
|
|
198
|
+
case 34: return [2 /*return*/, new chunk_1.default(item, currentTarget).build(defaultVisit)];
|
|
199
|
+
case 35: throw new Error("Unexpected AST type ".concat(item.type, "."));
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
}); };
|
|
81
203
|
var CPS = /** @class */ (function () {
|
|
82
204
|
function CPS(context) {
|
|
83
205
|
this.context = context;
|
|
206
|
+
this.__visit = visit.bind(null, context, context.target);
|
|
84
207
|
}
|
|
85
208
|
CPS.prototype.visit = function (item) {
|
|
86
|
-
return
|
|
87
|
-
var context, visit, _a, importExpr, target, code, importStatement, includeExpr, target, code, importStatement, importExpr, target, code, importStatement, unaryExpr;
|
|
88
|
-
return __generator(this, function (_b) {
|
|
89
|
-
switch (_b.label) {
|
|
90
|
-
case 0:
|
|
91
|
-
context = this.context;
|
|
92
|
-
visit = this.visit.bind(this);
|
|
93
|
-
_a = item.type;
|
|
94
|
-
switch (_a) {
|
|
95
|
-
case greyscript_core_1.ASTType.MapConstructorExpression: return [3 /*break*/, 1];
|
|
96
|
-
case greyscript_core_1.ASTType.ListConstructorExpression: return [3 /*break*/, 2];
|
|
97
|
-
case greyscript_core_1.ASTType.AssignmentStatement: return [3 /*break*/, 3];
|
|
98
|
-
case greyscript_core_1.ASTType.MemberExpression: return [3 /*break*/, 4];
|
|
99
|
-
case greyscript_core_1.ASTType.Identifier: return [3 /*break*/, 4];
|
|
100
|
-
case greyscript_core_1.ASTType.IndexExpression: return [3 /*break*/, 4];
|
|
101
|
-
case greyscript_core_1.ASTType.FunctionDeclaration: return [3 /*break*/, 5];
|
|
102
|
-
case greyscript_core_1.ASTType.InvalidCodeExpression: return [3 /*break*/, 6];
|
|
103
|
-
case greyscript_core_1.ASTType.WhileStatement: return [3 /*break*/, 7];
|
|
104
|
-
case greyscript_core_1.ASTType.ForGenericStatement: return [3 /*break*/, 8];
|
|
105
|
-
case greyscript_core_1.ASTType.IfStatement: return [3 /*break*/, 9];
|
|
106
|
-
case greyscript_core_1.ASTType.IfShortcutStatement: return [3 /*break*/, 9];
|
|
107
|
-
case greyscript_core_1.ASTType.ReturnStatement: return [3 /*break*/, 10];
|
|
108
|
-
case greyscript_core_1.ASTType.BreakStatement: return [3 /*break*/, 11];
|
|
109
|
-
case greyscript_core_1.ASTType.ContinueStatement: return [3 /*break*/, 12];
|
|
110
|
-
case greyscript_core_1.ASTType.CallExpression: return [3 /*break*/, 13];
|
|
111
|
-
case greyscript_core_1.ASTType.CallStatement: return [3 /*break*/, 14];
|
|
112
|
-
case greybel_core_1.ASTType.FeatureImportExpression: return [3 /*break*/, 15];
|
|
113
|
-
case greybel_core_1.ASTType.FeatureIncludeExpression: return [3 /*break*/, 19];
|
|
114
|
-
case greyscript_core_1.ASTType.ImportCodeExpression: return [3 /*break*/, 23];
|
|
115
|
-
case greybel_core_1.ASTType.FeatureDebuggerExpression: return [3 /*break*/, 27];
|
|
116
|
-
case greyscript_core_1.ASTType.BooleanLiteral: return [3 /*break*/, 28];
|
|
117
|
-
case greyscript_core_1.ASTType.StringLiteral: return [3 /*break*/, 28];
|
|
118
|
-
case greyscript_core_1.ASTType.NumericLiteral: return [3 /*break*/, 28];
|
|
119
|
-
case greyscript_core_1.ASTType.NilLiteral: return [3 /*break*/, 28];
|
|
120
|
-
case greyscript_core_1.ASTType.EmptyExpression: return [3 /*break*/, 29];
|
|
121
|
-
case greyscript_core_1.ASTType.BinaryExpression: return [3 /*break*/, 30];
|
|
122
|
-
case greyscript_core_1.ASTType.LogicalExpression: return [3 /*break*/, 30];
|
|
123
|
-
case greyscript_core_1.ASTType.NegationExpression: return [3 /*break*/, 31];
|
|
124
|
-
case greyscript_core_1.ASTType.BinaryNegatedExpression: return [3 /*break*/, 32];
|
|
125
|
-
case greyscript_core_1.ASTType.UnaryExpression: return [3 /*break*/, 33];
|
|
126
|
-
case greyscript_core_1.ASTType.Chunk: return [3 /*break*/, 34];
|
|
127
|
-
}
|
|
128
|
-
return [3 /*break*/, 35];
|
|
129
|
-
case 1: return [2 /*return*/, new map_1.default(item, context.target).build(visit)];
|
|
130
|
-
case 2: return [2 /*return*/, new list_1.default(item, context.target).build(visit)];
|
|
131
|
-
case 3: return [2 /*return*/, new assign_1.default(item, context.target).build(visit)];
|
|
132
|
-
case 4: return [2 /*return*/, new resolve_1.default(item, context.target).build(visit)];
|
|
133
|
-
case 5: return [2 /*return*/, new function_1.default(item, context.target).build(visit)];
|
|
134
|
-
case 6: return [2 /*return*/, new noop_1.default(item).build(visit)];
|
|
135
|
-
case 7: return [2 /*return*/, new while_1.default(item, context.target).build(visit)];
|
|
136
|
-
case 8: return [2 /*return*/, new for_1.default(item, context.target).build(visit)];
|
|
137
|
-
case 9: return [2 /*return*/, new if_statement_1.default(item, context.target).build(visit)];
|
|
138
|
-
case 10: return [2 /*return*/, new return_1.default(item, context.target).build(visit)];
|
|
139
|
-
case 11: return [2 /*return*/, new break_1.default(item, context.target).build(visit)];
|
|
140
|
-
case 12: return [2 /*return*/, new continue_1.default(item, context.target).build(visit)];
|
|
141
|
-
case 13: return [2 /*return*/, new call_1.default(item, context.target).build(visit)];
|
|
142
|
-
case 14: return [2 /*return*/, visit(item.expression)];
|
|
143
|
-
case 15:
|
|
144
|
-
importExpr = item;
|
|
145
|
-
return [4 /*yield*/, context.handler.resourceHandler.getTargetRelativeTo(context.target, importExpr.path)];
|
|
146
|
-
case 16:
|
|
147
|
-
target = _b.sent();
|
|
148
|
-
return [4 /*yield*/, context.handler.resourceHandler.get(target)];
|
|
149
|
-
case 17:
|
|
150
|
-
code = _b.sent();
|
|
151
|
-
if (code == null) {
|
|
152
|
-
throw new Error("Cannot find import ".concat(context.target, "."));
|
|
153
|
-
}
|
|
154
|
-
context.currentTarget = target;
|
|
155
|
-
return [4 /*yield*/, new import_1.default(importExpr, target, code).build(visit)];
|
|
156
|
-
case 18:
|
|
157
|
-
importStatement = _b.sent();
|
|
158
|
-
context.currentTarget = context.target;
|
|
159
|
-
return [2 /*return*/, importStatement];
|
|
160
|
-
case 19:
|
|
161
|
-
includeExpr = item;
|
|
162
|
-
return [4 /*yield*/, context.handler.resourceHandler.getTargetRelativeTo(context.target, includeExpr.path)];
|
|
163
|
-
case 20:
|
|
164
|
-
target = _b.sent();
|
|
165
|
-
return [4 /*yield*/, context.handler.resourceHandler.get(target)];
|
|
166
|
-
case 21:
|
|
167
|
-
code = _b.sent();
|
|
168
|
-
if (code == null) {
|
|
169
|
-
throw new Error("Cannot find include ".concat(context.target, "."));
|
|
170
|
-
}
|
|
171
|
-
context.currentTarget = target;
|
|
172
|
-
return [4 /*yield*/, new include_1.default(includeExpr, target, code).build(visit)];
|
|
173
|
-
case 22:
|
|
174
|
-
importStatement = _b.sent();
|
|
175
|
-
context.currentTarget = context.target;
|
|
176
|
-
return [2 /*return*/, importStatement];
|
|
177
|
-
case 23:
|
|
178
|
-
importExpr = item;
|
|
179
|
-
return [4 /*yield*/, context.handler.resourceHandler.getTargetRelativeTo(context.target, importExpr.fileSystemDirectory)];
|
|
180
|
-
case 24:
|
|
181
|
-
target = _b.sent();
|
|
182
|
-
return [4 /*yield*/, context.handler.resourceHandler.get(target)];
|
|
183
|
-
case 25:
|
|
184
|
-
code = _b.sent();
|
|
185
|
-
if (code == null) {
|
|
186
|
-
throw new Error("Cannot find native import ".concat(context.target, "."));
|
|
187
|
-
}
|
|
188
|
-
context.currentTarget = target;
|
|
189
|
-
return [4 /*yield*/, new include_1.default(importExpr, target, code).build(visit)];
|
|
190
|
-
case 26:
|
|
191
|
-
importStatement = _b.sent();
|
|
192
|
-
context.currentTarget = context.target;
|
|
193
|
-
return [2 /*return*/, importStatement];
|
|
194
|
-
case 27: return [2 /*return*/, new debugger_statement_1.default(item, context.target)];
|
|
195
|
-
case 28: return [2 /*return*/, new literal_1.default(item, context.target).build(visit)];
|
|
196
|
-
case 29: return [2 /*return*/, new noop_1.default(item, context.target).build(visit)];
|
|
197
|
-
case 30: return [2 /*return*/, new evaluate_1.default(item, context.target).build(visit)];
|
|
198
|
-
case 31: return [2 /*return*/, new not_1.default(item, context.target).build(visit)];
|
|
199
|
-
case 32: return [2 /*return*/, new negated_binary_1.default(item, context.target).build(visit)];
|
|
200
|
-
case 33:
|
|
201
|
-
{
|
|
202
|
-
unaryExpr = item;
|
|
203
|
-
if (unaryExpr.operator === 'new') {
|
|
204
|
-
return [2 /*return*/, new new_instance_1.default(unaryExpr).build(visit)];
|
|
205
|
-
}
|
|
206
|
-
else if (unaryExpr.operator === '@') {
|
|
207
|
-
return [2 /*return*/, new function_reference_1.default(unaryExpr).build(visit)];
|
|
208
|
-
}
|
|
209
|
-
throw new Error('Unknown unary expression.');
|
|
210
|
-
}
|
|
211
|
-
_b.label = 34;
|
|
212
|
-
case 34: return [2 /*return*/, new chunk_1.default(item, context.target).build(visit)];
|
|
213
|
-
case 35: throw new Error("Unexpected AST type ".concat(item.type, "."));
|
|
214
|
-
}
|
|
215
|
-
});
|
|
216
|
-
});
|
|
209
|
+
return this.__visit(item);
|
|
217
210
|
};
|
|
218
211
|
return CPS;
|
|
219
212
|
}());
|
package/dist/operations/for.js
CHANGED
|
@@ -107,14 +107,15 @@ var For = /** @class */ (function (_super) {
|
|
|
107
107
|
iteratorValue = (_a.sent());
|
|
108
108
|
loopState = new context_1.LoopState();
|
|
109
109
|
forCtx.loopState = loopState;
|
|
110
|
-
return [2 /*return*/, new Promise(function (resolve,
|
|
110
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
111
111
|
var iterator = iteratorValue[Symbol.iterator]();
|
|
112
112
|
var iteratorResult = iterator.next();
|
|
113
113
|
var iteration = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
114
|
-
var current;
|
|
114
|
+
var current, err_1;
|
|
115
115
|
return __generator(this, function (_a) {
|
|
116
116
|
switch (_a.label) {
|
|
117
117
|
case 0:
|
|
118
|
+
_a.trys.push([0, 2, , 3]);
|
|
118
119
|
if (iteratorResult.done) {
|
|
119
120
|
resolve(default_1.default.Void);
|
|
120
121
|
return [2 /*return*/];
|
|
@@ -131,7 +132,12 @@ var For = /** @class */ (function (_super) {
|
|
|
131
132
|
}
|
|
132
133
|
iteratorResult = iterator.next();
|
|
133
134
|
process.nextTick(iteration);
|
|
134
|
-
return [
|
|
135
|
+
return [3 /*break*/, 3];
|
|
136
|
+
case 2:
|
|
137
|
+
err_1 = _a.sent();
|
|
138
|
+
reject(err_1);
|
|
139
|
+
return [3 /*break*/, 3];
|
|
140
|
+
case 3: return [2 /*return*/];
|
|
135
141
|
}
|
|
136
142
|
});
|
|
137
143
|
}); };
|
|
@@ -90,7 +90,7 @@ var Return = /** @class */ (function (_super) {
|
|
|
90
90
|
return __generator(this, function (_b) {
|
|
91
91
|
switch (_b.label) {
|
|
92
92
|
case 0:
|
|
93
|
-
if (!(ctx.functionState
|
|
93
|
+
if (!(ctx.functionState != null)) return [3 /*break*/, 2];
|
|
94
94
|
_a = ctx.functionState;
|
|
95
95
|
return [4 /*yield*/, this.arg.handle(ctx)];
|
|
96
96
|
case 1:
|
package/dist/operations/while.js
CHANGED
|
@@ -94,12 +94,14 @@ var While = /** @class */ (function (_super) {
|
|
|
94
94
|
});
|
|
95
95
|
loopState = new context_1.LoopState();
|
|
96
96
|
whileCtx.loopState = loopState;
|
|
97
|
-
return [2 /*return*/, new Promise(function (resolve,
|
|
97
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
98
98
|
var iteration = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
99
|
-
var conditionResult;
|
|
99
|
+
var conditionResult, err_1;
|
|
100
100
|
return __generator(this, function (_a) {
|
|
101
101
|
switch (_a.label) {
|
|
102
|
-
case 0:
|
|
102
|
+
case 0:
|
|
103
|
+
_a.trys.push([0, 3, , 4]);
|
|
104
|
+
return [4 /*yield*/, this.condition.handle(whileCtx)];
|
|
103
105
|
case 1:
|
|
104
106
|
conditionResult = _a.sent();
|
|
105
107
|
if (!conditionResult.toTruthy()) {
|
|
@@ -115,7 +117,12 @@ var While = /** @class */ (function (_super) {
|
|
|
115
117
|
return [2 /*return*/];
|
|
116
118
|
}
|
|
117
119
|
process.nextTick(iteration);
|
|
118
|
-
return [
|
|
120
|
+
return [3 /*break*/, 4];
|
|
121
|
+
case 3:
|
|
122
|
+
err_1 = _a.sent();
|
|
123
|
+
reject(err_1);
|
|
124
|
+
return [3 /*break*/, 4];
|
|
125
|
+
case 4: return [2 /*return*/];
|
|
119
126
|
}
|
|
120
127
|
});
|
|
121
128
|
}); };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "greybel-interpreter",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Interpreter",
|
|
5
5
|
"main": "dist/index",
|
|
6
6
|
"typings": "dist/index",
|
|
@@ -48,8 +48,8 @@
|
|
|
48
48
|
"typescript": "^4.5.4"
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
|
-
"greybel-core": "^0.3.
|
|
52
|
-
"greyscript-core": "^0.2.
|
|
51
|
+
"greybel-core": "^0.3.1",
|
|
52
|
+
"greyscript-core": "^0.2.9"
|
|
53
53
|
},
|
|
54
54
|
"keywords": [
|
|
55
55
|
"greyscript",
|