public Operand buildMultipleAsgn19(MultipleAsgn19Node multipleAsgnNode, IRScope s) { Operand values = build(multipleAsgnNode.getValueNode(), s); Variable ret = getValueInTemporaryVariable(s, values); s.addInstr(new ToAryInstr(ret, ret, manager.getFalse())); buildMultipleAsgn19Assignment(multipleAsgnNode, s, null, ret); return ret; }
public Operand buildMultipleAsgn19(MultipleAsgn19Node multipleAsgnNode, IRScope s) { Operand values = build(multipleAsgnNode.getValueNode(), s); Variable ret = getValueInTemporaryVariable(s, values); s.addInstr(new ToAryInstr(ret, ret, manager.getFalse())); buildMultipleAsgn19Assignment(multipleAsgnNode, s, null, ret); return ret; }
@Override public Operand buildYield(YieldNode node, IRScope s) { boolean unwrap = true; Node argNode = node.getArgsNode(); // Get rid of one level of array wrapping if (argNode != null && (argNode instanceof ArrayNode) && ((ArrayNode)argNode).size() == 1) { argNode = ((ArrayNode)argNode).getLast(); unwrap = false; } Variable ret = s.getNewTemporaryVariable(); s.addInstr(new YieldInstr(ret, s.getImplicitBlockArg(), build(argNode, s), unwrap)); return ret; }
@Override public Operand buildYield(YieldNode node, IRScope s) { boolean unwrap = true; Node argNode = node.getArgsNode(); // Get rid of one level of array wrapping if (argNode != null && (argNode instanceof ArrayNode) && ((ArrayNode)argNode).size() == 1) { argNode = ((ArrayNode)argNode).getLast(); unwrap = false; } Variable ret = s.getNewTemporaryVariable(); s.addInstr(new YieldInstr(ret, s.getImplicitBlockArg(), build(argNode, s), unwrap)); return ret; }
build(n.getValue(), s); s.addInstr(new LabelInstr(l));
build(n.getValue(), s); s.addInstr(new LabelInstr(l));