DataQL指令助记符

助记符指令代码含义
(构造指令)
LDC_D11将数字压入栈(例:LDC_D 12345)
LDC_B12将布尔数据压入栈(例:INSN_B true)
LDC_S13将字符串数据压入栈(例:LDC_S “ssssss”)
LDC_N14将null压入栈(例:INSN_N)
NEW_O15构造一个键值对对象并压入栈
NEW_A16构造一个集合对象并压入栈
(存储指令)
STORE21栈顶数据存储到堆(例:STORE,2)
LOAD22从指定深度的堆中加载n号元素到栈(例:LOAD 1 ,1 )
GET23获取栈顶对象元素的属性(例:GET,”xxxx”)
PUT24将栈顶对象元素放入对象元素中(例:GET,”xxxx”)
PULL25获取集合的指定索引元素。(例:PULL 123)
PUSH26将栈顶元素压入集合(例:PUSH)
(结束指令)
EXIT31结束所有指令序列的执行并返回数据和状态
RETURN32结束当前指令序列的执行,并返回数据和状态给上一个指令序列。
THROW33结束所有指令序列的执行,并抛出异常
(运算指令)
UO41一元运算
DO42二元运算,堆栈结构:【第一个操作数,第二个操作数】
TYPEOF43计算值的类(string、number、boolean、object、list、udf、null)
(控制指令)
IF51如果条件判断失败那么 GOTO 到指定位置,否则继续往下执行
GOTO52执行跳转
CAST_I53将栈顶元素转换为迭代器
CAST_O54将栈顶元素转换为一个对象,如果是集合那么取第一条记录
E_PUSH55取出当前栈顶数据,并压入环境栈
E_POP56丢弃环境栈顶的元素
E_LOAD57加载环境栈顶的数据到数据栈
LOAD_C58加载自定义路由
POP59丢弃栈顶数据
(函数指令)
CALL61发起服务调用(例:CALL,2)
M_DEF62函数定义,将栈顶元素转换为 UDF
M_REF63引用另一处的指令序列地址,并将其作为 UDF 形态存放到栈顶
M_TYP64加载一个类型对象到栈顶,该类型是一个有效的 UDF。
M_FRAG65引用外部片段执行器,并将其作为 UDF 形态存放到栈顶
LOCAL66将入参存入堆,也用于标记变量名称
(辅助指令)
HINT71设置 Hint,影响执行引擎的参数选项。
LABEL72协助GOTO定位用,无实际作用
LINE73行号,无实际作用