NODE_TERNARY_OP: l.expr: first arg r.expr: NODE_BINARY_OP NODE_BINARY_OP: v.number: opcode l.expr, r.expr: arguments NODE_UNARY_OP: v.number: opcode r.expr: argument NODE_OPCODE: v.number: opcode NODE_OPCODE_1: v.number: opcode l.number: param NODE_OPCODE_2: v.number: opcode l.number: param1 r.number: param2 NODE_UNARY_OP_1: r.expr: argument v.number: opcode l.number: param NODE_BINARY_OP_1: r.expr, l.expr: args v.number: opcode type: param NODE_TERNARY_OP_1: l.expr: first arg r.expr: NODE_BINARY_OP type: param NODE_RETURN: r.expr: return value (may be zero) NODE_LAND_LOR: l.expr, r.expr: expressions v.number: F_LAND, F_LOR NODE_BRANCH_LINK: l.expr, r.expr: expressions NODE_CALL, NODE_CALL_1: r.expr: expr_list v.number: opcode l.number: param (short) NODE_CALL_2: r.expr: expr_list v.number: opcode l.number: param2 << 16 + param (short) NODE_TWO_VALUES: l.expr, r.expr: two values ;) NODE_CONTROL_JUMP: v.number: (CJ_BREAK, CJ_BREAK_SWITCH, CJ_CONTINUE) NODE_PARAMETER: v.number: index NODE_PARAMETER_LVALUE: v.number: index NODE_IF: v.expr: condition l.expr: statement r.expr: else statement NODE_LOOP: type: if non-zero, do test at top of loop v.expr: block l.expr: inc r.expr: test NODE_FOREACH: l.expr: first var r.expr: second var, or zero v.expr: the expression NODE_LVALUE_EFUN: l.expr: binary/ternary expression with builtin args r.expr: lvalue list NODE_EFUN: r.expr: expr_list v.number: opcode ( + 1024 if void valued efun is used) l.number: num args