@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; }
@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; }
GlobalVariable gv = (GlobalVariable)((PutGlobalVarInstr)i).getTarget(); String gvName = gv.getName(); if (gvName.equals("$_") || gvName.equals("$~")) usesBackrefOrLastline = true;
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(getTarget()); e.encode(getValue()); }
GlobalVariable gv = (GlobalVariable)((PutGlobalVarInstr)i).getTarget(); String gvName = gv.getName(); if (gvName.equals("$_") || gvName.equals("$~")) usesBackrefOrLastline = true;
@Override public void encode(IRWriterEncoder e) { super.encode(e); e.encode(getTarget()); e.encode(getValue()); }
@Override public Instr clone(CloneInfo ii) { return new PutGlobalVarInstr(getTarget().getName(), getValue().cloneForInlining(ii)); }
@Override public Instr clone(CloneInfo ii) { return new PutGlobalVarInstr(getTarget().getName(), getValue().cloneForInlining(ii)); }
@Override public void PutGlobalVarInstr(PutGlobalVarInstr putglobalvarinstr) { visit(putglobalvarinstr.getValue()); jvmMethod().setGlobalVariable(putglobalvarinstr.getTarget().getId(), file, lastLine); }
@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; }
@Override public void PutGlobalVarInstr(PutGlobalVarInstr putglobalvarinstr) { visit(putglobalvarinstr.getValue()); jvmMethod().setGlobalVariable(putglobalvarinstr.getTarget().getId(), file, lastLine); }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { GlobalVariable target = (GlobalVariable)getTarget(); IRubyObject value = (IRubyObject) getValue().retrieve(context, self, currDynScope, temp); context.runtime.getGlobalVariables().set(target.getName(), value); return null; }
@Override public Object interpret(ThreadContext context, DynamicScope currDynScope, IRubyObject self, Object[] temp, Block block) { GlobalVariable target = (GlobalVariable)getTarget(); IRubyObject value = (IRubyObject) getValue().retrieve(context, self, currDynScope, temp); context.runtime.getGlobalVariables().set(target.getName(), value); return null; }
@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; }