# Runtime API

本文档主要是列举了OpenEX运行时实现的一些基础运行库和函数,其包含了

  • OpenEX Runtime Library OpenEX运行库实现
  • StamonVM Native Library StamonVM本地库实现

StamonVM Native Library 主要用于兼容StamonVM,其库主要是相对于面向对象的语法实现的
请谨慎使用这些库函数(或库方法)


# Sys OpenEX Basic Library

System系统库,实现了OpenEX的标准输入输出和线程创建、系统信息获取等函数
是OpenEX基础库之一,也是第一个被开发的运行库

// 运行库ID 'system'
include "system";
1
2

# 函数列表

返回值为NULL代表可能没有返回值或返回结果可能为NULL

# print

system.print(_INFO_);
    /* 
    * OpenEX标准输出
    * _INFO_ : 输入的信息(不限类型)
    * 返回值: 无
    */
1
2
3
4
5
6

# input

system.input();
    /* 
    * OpenEX标准输入
    * 无需形参
    * 返回值: STRING(返回获取到的输入结果)
    */
1
2
3
4
5
6

# sleep

system.sleep(_TIME_);
    /* 
    * 线程休眠指定时间
    * _TIME_ : 休眠的时间(INTEGER)
    * 返回值: 无
    */
1
2
3
4
5
6

# stop

system.stop(_CODE_);
    /* 
    * 终止OpenEX运行时
    * _CODE_ : 退出代码(INTEGER)
    * 返回值: 无
    */
1
2
3
4
5
6

# memory

system.memory();
    /* 
    * 获取OpenEX内存占用率
    * 无需形参
    * 返回值: DOUBLE(占用大小(MB))
    */
1
2
3
4
5
6

# sysinfo

system.sysinfo(_ID_);
    /* 
    * 获取系统信息
    * _ID_ : 信息代号(STRING)
        - os : 获取操作系统名称
        - version : 获取OpenEX更新号
        - svm : 获取脚本是否运行在StamonVM环境上
        - edition : 获取OpenEX版本号
    * 返回值: STRING(获取到的信息)
    */
1
2
3
4
5
6
7
8
9
10

# thread

system.thread(_NAME_,_FUNCTION_);
    /* 
    * OpenEX标准输出
    * _NAME_ : 线程名称(STRING)
    * _FUNCTION_ : 该脚本定义的函数名
    * 返回值: 无
    */
1
2
3
4
5
6
7

# Array OpenEX Basic Library

Array数组操作库,其实现了各种对数组指定索引取值和重赋值的接口
某些数组操作表达式也是直接被转译成Array库的调用

// 运行库ID `array`
include "array";
1
2

# 函数列表

返回值为NULL代表可能没有返回值或返回结果可能为NULL

# get_object

array.get_object(_ARRAY_,_INDEX_);
    /* 
    * 获取指定索引上的元素
    * _ARRAY_ : 数组(ARRAY)
    * _INDEX_ : 索引(INTEGER)
    * 返回值: 获取到的元素(不限类型)
    */
1
2
3
4
5
6
7

# set_object

array.set_object(_ARRAY_,_INDEX_,_OBJECT_);
    /* 
    * 设置指定索引上的元素
    * _ARRAY_ : 数组(ARRAY)
    * _INDEX_ : 索引(INTEGER)
    * _OBJECT_ : 元素(不限类型)
    * 返回值: NULL
    */
1
2
3
4
5
6
7
8

# length

array.length(_ARRAY_);
    /* 
    * 获取数组的长度
    * _ARRAY_ : 数组(ARRAY)
    * 返回值: 长度(INTEGER)
    */
1
2
3
4
5
6

# to_string

array.to_string(_ARRAY_);
    /* 
    * 返回数组所有元素的信息
    * _ARRAY_ : 数组(ARRAY)
    * 返回值: 元素信息(STRING)
    */
1
2
3
4
5
6

# StringLib OpenEX Util Library

StringLib 字符串操作库,实现了各种对字符串的查询,分割等功能

// 运行库ID `string`
include "string";
1
2

# 函数列表

返回值为NULL代表可能没有返回值或返回结果可能为NULL

# split

string.split(_STR_,_SSTR_);
    /* 
    * 分割字符串
    * _STR_ : 被分割的字符串(STRING)
    * _SSTR_ : 分割依据(STRING)
    * 返回值: 分割后的数组(ARRAY)
    */
1
2
3
4
5
6
7

# indexof

string.split(_STR_,_SSTR_);
    /* 
    * 查询一个子串在父串中第一次出现的位置
    * _STR_ : 父串(STRING)
    * _SSTR_ : 子串(STRING)
    * 返回值: 查询到的索引位置(INTEGER)
    */
1
2
3
4
5
6
7

# contains

string.split(_STR_,_SSTR_);
    /* 
    * 比较父串是否包含子串
    * _STR_ : 父串(STRING)
    * _SSTR_ : 子串(STRING)
    * 返回值: 如果包含返回true(BOOL)
    */
1
2
3
4
5
6
7