public void restoreException(IRScope s, IRLoop currLoop) { if (currLoop == innermostLoop) s.addInstr(new PutGlobalVarInstr("$!", savedExceptionVariable)); } }
public GlobalVariable getTarget() { return (GlobalVariable) getOperand1(); }
@Override public Instr clone(CloneInfo ii) { return new PutGlobalVarInstr(getTarget().getName(), getValue().cloneForInlining(ii)); }
@Override public boolean computeScopeFlags(IRScope scope) { String name = getTarget().getId(); if (name.equals("$_") || name.equals("$LAST_READ_LINE")) { scope.getFlags().add(IRFlags.REQUIRES_LASTLINE); } else if (name.equals("$~") || name.equals("$`") || name.equals("$'") || name.equals("$+") || name.equals("$LAST_MATCH_INFO") || name.equals("$PREMATCH") || name.equals("$POSTMATCH") || name.equals("$LAST_PAREN_MATCH")) { scope.getFlags().add(IRFlags.REQUIRES_BACKREF); return true; } return false; }
public Operand getValue() { return getOperand2(); }
case PUT_CVAR: return PutClassVariableInstr.decode(this); case PUT_FIELD: return PutFieldInstr.decode(this); case PUT_GLOBAL_VAR: return PutGlobalVarInstr.decode(this); case RAISE_ARGUMENT_ERROR: return RaiseArgumentErrorInstr.decode(this); case RAISE_REQUIRED_KEYWORD_ARGUMENT_ERROR: return RaiseRequiredKeywordArgumentError.decode(this);
@Override public Instr clone(CloneInfo ii) { return new PutGlobalVarInstr(getTarget().getName(), getValue().cloneForInlining(ii)); }
@Override public boolean computeScopeFlags(IRScope scope) { String name = getTarget().getId(); if (name.equals("$_") || name.equals("$LAST_READ_LINE")) { scope.getFlags().add(IRFlags.REQUIRES_LASTLINE); } else if (name.equals("$~") || name.equals("$`") || name.equals("$'") || name.equals("$+") || name.equals("$LAST_MATCH_INFO") || name.equals("$PREMATCH") || name.equals("$POSTMATCH") || name.equals("$LAST_PAREN_MATCH")) { scope.getFlags().add(IRFlags.REQUIRES_BACKREF); return true; } return false; }
public Operand getValue() { return getOperand2(); }
case PUT_CVAR: return PutClassVariableInstr.decode(this); case PUT_FIELD: return PutFieldInstr.decode(this); case PUT_GLOBAL_VAR: return PutGlobalVarInstr.decode(this); case RAISE_ARGUMENT_ERROR: return RaiseArgumentErrorInstr.decode(this); case RAISE_REQUIRED_KEYWORD_ARGUMENT_ERROR: return RaiseRequiredKeywordArgumentError.decode(this);
public void restoreException(IRScope s, IRLoop currLoop) { if (currLoop == innermostLoop) s.addInstr(new PutGlobalVarInstr("$!", savedExceptionVariable)); } }
GlobalVariable gv = (GlobalVariable)((PutGlobalVarInstr)i).getTarget(); String gvName = gv.getName(); if (gvName.equals("$_") || gvName.equals("$~")) usesBackrefOrLastline = true;
public GlobalVariable getTarget() { return (GlobalVariable) getOperand1(); }
public static PutGlobalVarInstr decode(IRReaderDecoder d) { return new PutGlobalVarInstr((GlobalVariable) d.decodeOperand(), d.decodeOperand()); }
GlobalVariable gv = (GlobalVariable)((PutGlobalVarInstr)i).getTarget(); String gvName = gv.getName(); if (gvName.equals("$_") || gvName.equals("$~")) usesBackrefOrLastline = true;
@Override public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) { GlobalVariable target = getTarget(); IRubyObject value = (IRubyObject) getValue().retrieve(context, self, currScope, currDynScope, temp); context.runtime.getGlobalVariables().set(target.getId(), value); return null; }
public static PutGlobalVarInstr decode(IRReaderDecoder d) { return new PutGlobalVarInstr((GlobalVariable) d.decodeOperand(), d.decodeOperand()); }