class Regexp::Scanner::ValidationError

Base for all scanner validation errors

def self.for(type, problem, reason = nil)

Centralizes and unifies the handling of validation related errors.
def self.for(type, problem, reason = nil)
  types.fetch(type).new(problem, reason)
end

def self.types

def self.types
  @types ||= {
    backref:      InvalidBackrefError,
    group:        InvalidGroupError,
    group_option: InvalidGroupOption,
    posix_class:  UnknownPosixClassError,
    property:     UnknownUnicodePropertyError,
    sequence:     InvalidSequenceError,
  }
end