来源:Hasor
浏览 491
扫码
分享
2020-02-23 10:22:33
DataQL指令助记符
助记符 | 指令代码 | 含义 |
(构造指令) |
LDC_D | 11 | 将数字压入栈(例:LDC_D 12345) |
LDC_B | 12 | 将布尔数据压入栈(例:INSN_B true) |
LDC_S | 13 | 将字符串数据压入栈(例:LDC_S “ssssss”) |
LDC_N | 14 | 将null压入栈(例:INSN_N) |
NEW_O | 15 | 构造一个键值对对象并压入栈 |
NEW_A | 16 | 构造一个集合对象并压入栈 |
(存储指令) |
STORE | 21 | 栈顶数据存储到堆(例:STORE,2) |
LOAD | 22 | 从指定深度的堆中加载n号元素到栈(例:LOAD 1 ,1 ) |
GET | 23 | 获取栈顶对象元素的属性(例:GET,”xxxx”) |
PUT | 24 | 将栈顶对象元素放入对象元素中(例:GET,”xxxx”) |
PULL | 25 | 获取集合的指定索引元素。(例:PULL 123) |
PUSH | 26 | 将栈顶元素压入集合(例:PUSH) |
(结束指令) |
EXIT | 31 | 结束所有指令序列的执行并返回数据和状态 |
RETURN | 32 | 结束当前指令序列的执行,并返回数据和状态给上一个指令序列。 |
THROW | 33 | 结束所有指令序列的执行,并抛出异常 |
(运算指令) |
UO | 41 | 一元运算 |
DO | 42 | 二元运算,堆栈结构:【第一个操作数,第二个操作数】 |
TYPEOF | 43 | 计算值的类(string、number、boolean、object、list、udf、null) |
(控制指令) |
IF | 51 | 如果条件判断失败那么 GOTO 到指定位置,否则继续往下执行 |
GOTO | 52 | 执行跳转 |
CAST_I | 53 | 将栈顶元素转换为迭代器 |
CAST_O | 54 | 将栈顶元素转换为一个对象,如果是集合那么取第一条记录 |
E_PUSH | 55 | 取出当前栈顶数据,并压入环境栈 |
E_POP | 56 | 丢弃环境栈顶的元素 |
E_LOAD | 57 | 加载环境栈顶的数据到数据栈 |
LOAD_C | 58 | 加载自定义路由 |
POP | 59 | 丢弃栈顶数据 |
(函数指令) |
CALL | 61 | 发起服务调用(例:CALL,2) |
M_DEF | 62 | 函数定义,将栈顶元素转换为 UDF |
M_REF | 63 | 引用另一处的指令序列地址,并将其作为 UDF 形态存放到栈顶 |
M_TYP | 64 | 加载一个类型对象到栈顶,该类型是一个有效的 UDF。 |
M_FRAG | 65 | 引用外部片段执行器,并将其作为 UDF 形态存放到栈顶 |
LOCAL | 66 | 将入参存入堆,也用于标记变量名称 |
(辅助指令) |
HINT | 71 | 设置 Hint,影响执行引擎的参数选项。 |
LABEL | 72 | 协助GOTO定位用,无实际作用 |
LINE | 73 | 行号,无实际作用 |
当前内容版权归
Hasor 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问
Hasor .