Skip to content

MiniPanda 类

主入口类,提供脚本执行的所有功能。

命名空间: Azathrix.MiniPanda

属性

属性类型说明
IsStartedbool是否已启动
VMVirtualMachine内部虚拟机实例
CacheEnabledbool是否启用字节码缓存
CustomLoaderFileLoader自定义文件加载器

生命周期方法

csharp
// 创建实例
var vm = new MiniPanda();

// 启动引擎
vm.Start();

// 重置状态
vm.Reset();

// 关闭引擎
vm.Shutdown();

执行方法

Run

csharp
// 执行脚本代码
Value Run(string code, string scopeName = "main", bool clearScope = true)

// 执行字节码
Value Run(byte[] data, string scopeName = "main", bool clearScope = true)

// 执行并转换返回值
T Run<T>(string code, string scopeName = "main", bool clearScope = true)

Eval

csharp
// 求值表达式
Value Eval(string expression, string scopeName = "main", bool clearScope = true)

// 带环境变量
Value Eval(string expression, Dictionary<string, object> env, ...)
Value Eval(string expression, Environment env, ...)

// 转换返回值
T Eval<T>(string expression, ...)

编译方法

csharp
CompiledScript Compile(string code)

文件操作

csharp
Value RunFile(string path)
(byte[] data, string fullPath) LoadFile(string path)
void LoadModule(byte[] data, string moduleName, string sourcePath = null)

全局变量

csharp
void SetGlobal(string name, Value value)
void SetGlobal(string name, double value)
void SetGlobal(string name, bool value)
void SetGlobal(string name, string value)
void SetGlobal(string name, NativeFunction func)
Value GetGlobal(string name)

函数调用

csharp
Value Call(string funcName, params object[] args)
Value Call(Environment scope, string funcName, params object[] args)
Value Call(Dictionary<string, object> scope, string funcName, params object[] args)

作用域管理

csharp
Environment GetScope(string name)
void ClearScope(string name)

缓存管理

csharp
void ClearCache()

静态方法

csharp
static bool IsBytecode(byte[] data)
static string ConvertPath(string path)

Released under the MIT License.