跳转至

system 标准系统库

OpenEX系统库为核心库之一,是当初开发OpenEX最先创造的本地库,其包含了标准控制台输入输出, 内存监测, 线程管理, OpenEX版本号获取等一些基础的本地函数
include "system";语句导入

print 控制台标准输出

以下是如何在OpenEX使用print函数,当然,您也可以参考Usage/helloworld目录的内容

include "system";

value local array_1:"数组" = [1,3.14,true];

system.print("Hello! OpenEX!");
system.print(12);
system.print(3.14);
system.print(null);
system.print(true);
system.print(array_1);
1
2
3
4
5
6
Hello! OpenEX!
12
3.14
null
true
[[INT]:1,[DOUBLE]:3.14,[BOOL]true]

从以上代码可以看出print函数可以接受任何形式的参数

input 控制台标准输入

input函数用于在控制台获取用户的单行输入, 其返回值为STRING类型,没有形参

1
2
3
4
5
include "system";

value local in:"INPUT" = system.input();

system.print(in);
$ 你好! OpenEX!
你好! OpenEX!

memory 获取内存使用

该函数返回的是整个程序所使用的内存大小,以MB为单位的双精浮点型值,但是不同的解释器实现方法会略有不同,换算精度也有差异

1
2
3
4
5
include "system";

value local mem:"内存" = system.memory();

system.print(mem);
6.46
注意

以上举出的控制台输出例子是作者某一次的测试结果,根据实际情况以及运行时间,会输出不同的值,请以实际为准

stop 结束程序

该函数以一个INT值作为参数,传入时候记得用typeof检查一下,防止出现解释器中断异常

1
2
3
4
5
include "system";

system.stop(-1);

system.print("AAAA");

sleep 线程休眠

该函数以一个INT值作为参数,标准为2000/秒

注意

不同解释器的休眠单位可能不同,文档里作者以AST版的2000/秒为主

  • 没啥好举例的,实际运行一下你就知道了

thread 创建新线程

该函数是OpenEX的多线程核心,其中参数详见以下说明

value
1
2
3
value_1 : STRING //线程名
value_2 : STRING //方法名 必须是本地脚本声明的
return : STRING //返回STRING类型的线程名

1
2
3
4
5
6
7
include "system";

function run(){
    system.print("BBB");
}

system.print("AAAA");
AAA
BBB
你知道的太多了

线程创建很慢,所以你可能看到线程1的语句已经执行10-20个了,新线程才开始执行

OpenEX版本号

complier_version 代表编译器的版本,每次编译器更新代表语法有更改或者支持更高级的语法
runtime_version 代表解释器版本,每次解释器更新代表本地函数更新或架构优化
它们的返回值都为STRING类型,返回格式详见Development\Java\入口\ex.openex\Main文档路径说明

1
2
3
4
include "system";

system.print(system.compiler_version());
system.print(system.runtime_version());
OpenEX_ScriptCompile_AbstractSyntaxTree_v0.1.3
OpenEX_ScriptRuntime_AbstractSyntaxTree_v0.1.2