class Regexp::Expression::Backreference::Base

Attributes

referenced_expression[RW]

Public Instance Methods

initialize_copy(orig) click to toggle source
# File lib/regexp_parser/expression/classes/backreference.rb, line 6
def initialize_copy(orig)
  exp_id = [self.class, self.starts_at]

  # prevent infinite recursion for recursive subexp calls
  copied = @@copied ||= {}
  self.referenced_expression =
    if copied[exp_id]
      orig.referenced_expression
    else
      copied[exp_id] = true
      orig.referenced_expression.dup
    end
  copied.clear

  super
end
match_length() click to toggle source
# File lib/regexp_parser/expression/methods/match_length.rb, line 155
def match_length
  if referenced_expression.nil?
    raise ArgumentError, 'Missing referenced_expression - not parsed?'
  end
  referenced_expression.unquantified_clone.match_length
end