greybel-interpreter 4.6.0 → 4.6.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.
- package/dist/bytecode-generator/context.d.ts +5 -5
- package/dist/bytecode-generator/expression.d.ts +3 -3
- package/dist/bytecode-generator/module.d.ts +2 -2
- package/dist/bytecode-generator/statement.d.ts +4 -4
- package/dist/bytecode-generator.d.ts +1 -1
- package/dist/bytecode-generator.js +4 -4
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/package.json +1 -1
|
@@ -8,11 +8,11 @@ export interface ContextOptions {
|
|
|
8
8
|
debugMode?: boolean;
|
|
9
9
|
}
|
|
10
10
|
export declare class Context {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
protected _target: Stack<string>;
|
|
12
|
+
protected _handler: HandlerContainer;
|
|
13
|
+
protected _module: Stack<Module>;
|
|
14
|
+
protected _debugMode: boolean;
|
|
15
|
+
protected _imports: Map<string, Instruction[]>;
|
|
16
16
|
constructor(options: ContextOptions);
|
|
17
17
|
get target(): Stack<string>;
|
|
18
18
|
get module(): Stack<Module>;
|
|
@@ -4,9 +4,9 @@ import { Context } from './context';
|
|
|
4
4
|
import { LineCallableContext, LineContext, LineIdentifierContext } from './line';
|
|
5
5
|
import { IBytecodeExpressionGenerator, IBytecodeStatementGenerator, ParseCodeFunction } from './models';
|
|
6
6
|
export declare class BytecodeExpressionGenerator implements IBytecodeExpressionGenerator {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
protected context: Context;
|
|
8
|
+
protected stmtGenerator: IBytecodeStatementGenerator;
|
|
9
|
+
protected parseCode: ParseCodeFunction;
|
|
10
10
|
constructor(context: Context, parseCodeFunction: ParseCodeFunction, stmtGenerator: IBytecodeStatementGenerator);
|
|
11
11
|
process(node: ASTBase, context?: LineContext): Promise<void>;
|
|
12
12
|
processMemberExpression(node: ASTMemberExpression, context?: LineCallableContext): Promise<void>;
|
|
@@ -6,8 +6,8 @@ export interface BytecodeGeneratorContext {
|
|
|
6
6
|
jumpPoints: [Instruction, Instruction][];
|
|
7
7
|
}
|
|
8
8
|
export declare class Module {
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
protected _target: string;
|
|
10
|
+
protected _context: Stack<BytecodeGeneratorContext>;
|
|
11
11
|
constructor(target: string);
|
|
12
12
|
get target(): string;
|
|
13
13
|
get context(): Stack<BytecodeGeneratorContext>;
|
|
@@ -2,11 +2,11 @@ import { ASTFeatureImportExpression, ASTFeatureIncludeExpression } from 'greybel
|
|
|
2
2
|
import { ASTAssignmentStatement, ASTBase, ASTCallExpression, ASTEvaluationExpression, ASTForGenericStatement, ASTIdentifier, ASTIfStatement, ASTIndexExpression, ASTListConstructorExpression, ASTMapConstructorExpression, ASTMemberExpression, ASTReturnStatement, ASTUnaryExpression, ASTWhileStatement } from 'miniscript-core';
|
|
3
3
|
import { Context } from './context';
|
|
4
4
|
import { LineCallableContext, LineIdentifierContext } from './line';
|
|
5
|
-
import { IBytecodeStatementGenerator, ParseCodeFunction } from './models';
|
|
5
|
+
import { IBytecodeExpressionGenerator, IBytecodeStatementGenerator, ParseCodeFunction } from './models';
|
|
6
6
|
export declare class BytecodeStatementGenerator implements IBytecodeStatementGenerator {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
protected context: Context;
|
|
8
|
+
protected exprGenerator: IBytecodeExpressionGenerator;
|
|
9
|
+
protected parseCode: ParseCodeFunction;
|
|
10
10
|
constructor(context: Context, parseCodeFunction: ParseCodeFunction);
|
|
11
11
|
process(node: ASTBase): Promise<void>;
|
|
12
12
|
processMemberExpression(node: ASTMemberExpression, context?: LineCallableContext): Promise<void>;
|
|
@@ -9,9 +9,9 @@ export interface BytecodeConverterOptions {
|
|
|
9
9
|
target: string;
|
|
10
10
|
handler: HandlerContainer;
|
|
11
11
|
debugMode?: boolean;
|
|
12
|
+
context?: Context;
|
|
12
13
|
}
|
|
13
14
|
export declare class BytecodeGenerator {
|
|
14
|
-
protected handler: HandlerContainer;
|
|
15
15
|
protected context: Context;
|
|
16
16
|
constructor(options: BytecodeConverterOptions);
|
|
17
17
|
compile(code: string): Promise<BytecodeCompileResult>;
|
|
@@ -22,10 +22,10 @@ const parse = function (code) {
|
|
|
22
22
|
}
|
|
23
23
|
catch (err) {
|
|
24
24
|
if (err instanceof error_1.PrepareError) {
|
|
25
|
-
this.handler.errorHandler.raise(err);
|
|
25
|
+
this.context.handler.errorHandler.raise(err);
|
|
26
26
|
}
|
|
27
27
|
else {
|
|
28
|
-
this.handler.errorHandler.raise(new error_1.PrepareError(err.message, {
|
|
28
|
+
this.context.handler.errorHandler.raise(new error_1.PrepareError(err.message, {
|
|
29
29
|
range: err.range,
|
|
30
30
|
target: this.context.target.peek()
|
|
31
31
|
}));
|
|
@@ -34,8 +34,8 @@ const parse = function (code) {
|
|
|
34
34
|
};
|
|
35
35
|
class BytecodeGenerator {
|
|
36
36
|
constructor(options) {
|
|
37
|
-
|
|
38
|
-
this.context = new context_1.Context({
|
|
37
|
+
var _a;
|
|
38
|
+
this.context = (_a = options.context) !== null && _a !== void 0 ? _a : new context_1.Context({
|
|
39
39
|
target: options.target,
|
|
40
40
|
handler: options.handler,
|
|
41
41
|
debugMode: options.debugMode
|
package/dist/index.d.ts
CHANGED
|
@@ -18,10 +18,12 @@ export { PrepareError, RuntimeError } from './utils/error';
|
|
|
18
18
|
export { ObjectValue } from './utils/object-value';
|
|
19
19
|
export { deepEqual } from './utils/deep-equal';
|
|
20
20
|
export { deepHash } from './utils/deep-hash';
|
|
21
|
+
export { valueHash } from './utils/value-hash';
|
|
21
22
|
export { Debugger, VM, VMOptions } from './vm';
|
|
23
|
+
export { ParseCodeFunction, IBytecodeStatementGenerator, IBytecodeExpressionGenerator } from './bytecode-generator/models';
|
|
22
24
|
export { Instruction, OpCode } from './bytecode-generator/instruction';
|
|
23
25
|
export { Module as BytecodeGeneratorModule } from './bytecode-generator/module';
|
|
24
|
-
export { Context as BytecodeGeneratorContext } from './bytecode-generator/context';
|
|
26
|
+
export { Context as BytecodeGeneratorContext, ContextOptions as BytecodeGeneratorContextOptions } from './bytecode-generator/context';
|
|
25
27
|
export { BytecodeStatementGenerator } from './bytecode-generator/statement';
|
|
26
28
|
export { BytecodeExpressionGenerator } from './bytecode-generator/expression';
|
|
27
29
|
export { BytecodeGenerator, BytecodeCompileResult, BytecodeConverterOptions } from './bytecode-generator';
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Stack = exports.BytecodeGenerator = exports.BytecodeExpressionGenerator = exports.BytecodeStatementGenerator = exports.BytecodeGeneratorContext = exports.BytecodeGeneratorModule = exports.OpCode = exports.VM = exports.Debugger = exports.deepHash = exports.deepEqual = exports.ObjectValue = exports.RuntimeError = exports.PrepareError = exports.CustomValueWithIntrinsics = exports.CustomObject = exports.CustomStringIterator = exports.CustomString = exports.CustomNumber = exports.CustomNil = exports.CustomMapIterator = exports.CustomMap = exports.CustomListIterator = exports.CustomList = exports.CustomFunction = exports.DefaultType = exports.CustomBoolean = exports.CustomValue = exports.Interpreter = exports.HandlerContainer = exports.ResourceHandler = exports.DefaultResourceHandler = exports.OutputHandler = exports.DefaultOutputHandler = exports.ErrorHandler = exports.DefaultErrorHandler = exports.Scope = exports.OperationContext = exports.ContextType = void 0;
|
|
3
|
+
exports.Stack = exports.BytecodeGenerator = exports.BytecodeExpressionGenerator = exports.BytecodeStatementGenerator = exports.BytecodeGeneratorContext = exports.BytecodeGeneratorModule = exports.OpCode = exports.VM = exports.Debugger = exports.valueHash = exports.deepHash = exports.deepEqual = exports.ObjectValue = exports.RuntimeError = exports.PrepareError = exports.CustomValueWithIntrinsics = exports.CustomObject = exports.CustomStringIterator = exports.CustomString = exports.CustomNumber = exports.CustomNil = exports.CustomMapIterator = exports.CustomMap = exports.CustomListIterator = exports.CustomList = exports.CustomFunction = exports.DefaultType = exports.CustomBoolean = exports.CustomValue = exports.Interpreter = exports.HandlerContainer = exports.ResourceHandler = exports.DefaultResourceHandler = exports.OutputHandler = exports.DefaultOutputHandler = exports.ErrorHandler = exports.DefaultErrorHandler = exports.Scope = exports.OperationContext = exports.ContextType = void 0;
|
|
4
4
|
var context_1 = require("./context");
|
|
5
5
|
Object.defineProperty(exports, "ContextType", { enumerable: true, get: function () { return context_1.ContextType; } });
|
|
6
6
|
Object.defineProperty(exports, "OperationContext", { enumerable: true, get: function () { return context_1.OperationContext; } });
|
|
@@ -51,6 +51,8 @@ var deep_equal_1 = require("./utils/deep-equal");
|
|
|
51
51
|
Object.defineProperty(exports, "deepEqual", { enumerable: true, get: function () { return deep_equal_1.deepEqual; } });
|
|
52
52
|
var deep_hash_1 = require("./utils/deep-hash");
|
|
53
53
|
Object.defineProperty(exports, "deepHash", { enumerable: true, get: function () { return deep_hash_1.deepHash; } });
|
|
54
|
+
var value_hash_1 = require("./utils/value-hash");
|
|
55
|
+
Object.defineProperty(exports, "valueHash", { enumerable: true, get: function () { return value_hash_1.valueHash; } });
|
|
54
56
|
var vm_1 = require("./vm");
|
|
55
57
|
Object.defineProperty(exports, "Debugger", { enumerable: true, get: function () { return vm_1.Debugger; } });
|
|
56
58
|
Object.defineProperty(exports, "VM", { enumerable: true, get: function () { return vm_1.VM; } });
|