@Override public Instr cloneForInlining(InlinerInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), ((GlobalVariable)getSource()).getName()); }
public GlobalVariable getTarget() { return (GlobalVariable) getOperand1(); }
@Override public Instr clone(CloneInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), getTarget().getName()); }
public static GetGlobalVariableInstr decode(IRReaderDecoder d) { return new GetGlobalVariableInstr(d.decodeVariable(), (GlobalVariable) d.decodeOperand()); }
@Override public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) { return getTarget().retrieve(context, self, currScope, currDynScope, temp); }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { return getSource().retrieve(context, self, currDynScope, temp); }
case GET_ERROR_INFO: return GetErrorInfoInstr.decode(this); case GET_FIELD: return GetFieldInstr.decode(this); case GET_GLOBAL_VAR: return GetGlobalVariableInstr.decode(this); case GVAR_ALIAS: return GVarAliasInstr.decode(this); case INHERITANCE_SEARCH_CONST: return InheritanceSearchConstInstr.decode(this);
public static GetGlobalVariableInstr decode(IRReaderDecoder d) { return new GetGlobalVariableInstr(d.decodeVariable(), (GlobalVariable) d.decodeOperand()); }
@Override public Object interpret(ThreadContext context, StaticScope currScope, DynamicScope currDynScope, IRubyObject self, Object[] temp) { return getTarget().retrieve(context, self, currScope, currDynScope, temp); }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { return getSource().retrieve(context, self, currDynScope, temp); }
case GET_ERROR_INFO: return GetErrorInfoInstr.decode(this); case GET_FIELD: return GetFieldInstr.decode(this); case GET_GLOBAL_VAR: return GetGlobalVariableInstr.decode(this); case GVAR_ALIAS: return GVarAliasInstr.decode(this); case INHERITANCE_SEARCH_CONST: return InheritanceSearchConstInstr.decode(this);
@Override public Instr cloneForInlining(InlinerInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), ((GlobalVariable)getSource()).getName()); }
@Override public Instr clone(CloneInfo ii) { return new GetGlobalVariableInstr(ii.getRenamedVariable(getResult()), getTarget().getName()); }
public Operand buildGlobalVar(GlobalVarNode node, IRScope s) { Variable rv = s.getNewTemporaryVariable(); s.addInstr(new GetGlobalVariableInstr(rv, node.getName())); return rv; }
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; }
GlobalVariable gv = (GlobalVariable)((GetGlobalVariableInstr)i).getSource(); String gvName = gv.getName(); if (gvName.equals("$_") ||
public GlobalVariable getTarget() { return (GlobalVariable) getOperand1(); }
public Operand buildGlobalVar(GlobalVarNode node, IRScope s) { Variable rv = s.getNewTemporaryVariable(); s.addInstr(new GetGlobalVariableInstr(rv, node.getName())); return rv; }