Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 package org.jruby.ir.operands;
 
 
 // Represents a backref node in Ruby code
//
// NOTE: This operand is only used in the initial stages of optimization
// Further down the line, it could get converted to calls
public class Backref extends Reference {
    final public char type
    public Backref(char t) {
        super("$" + t);
         = t;
    }
    public Object retrieve(ThreadContext contextIRubyObject selfDynamicScope currDynScopeObject[] temp) {
        IRubyObject backref = currDynScope.getBackRef(context.runtime);
        
        switch () {
        case '&':
            return RubyRegexp.last_match(backref);
        case '`':
            return RubyRegexp.match_pre(backref);
        case '\'':
            return RubyRegexp.match_post(backref);
        case '+':
            return RubyRegexp.match_last(backref);
        default:
            assert false"backref with invalid type";
            return null;
        } 
    }
    @Override
    public void visit(IRVisitor visitor) {
        visitor.Backref(this);
    }
    
    @Override
    public String toString() {
        return "$" + "'" +  + "'";
    }
New to GrepCode? Check out our FAQ X