module Regexp::Parser
def self.open_group(token)
def self.open_group(token) case token.token when :passive exp = Group::Passive.new(token) when :atomic exp = Group::Atomic.new(token) when :named exp = Group::Named.new(token) when :capture exp = Group::Capture.new(token) when :lookahead exp = Assertion::Lookahead.new(token) when :nlookahead exp = Assertion::NegativeLookahead.new(token) when :lookbehind exp = Assertion::Lookbehind.new(token) when :nlookbehind exp = Assertion::NegativeLookbehind.new(token) else raise UnknownTokenError.new('Group type open', token) end self.nest exp end