module Regexp::Parser
def self.conditional(token)
def self.conditional(token) case token.token when :open nest_conditional(Conditional::Expression.new(token)) when :condition @conditional_nesting.last.condition(Conditional::Condition.new(token)) @conditional_nesting.last.branch when :separator @conditional_nesting.last.branch @node = @conditional_nesting.last.branches.last when :close @conditional_nesting.pop @node = if @conditional_nesting.empty? @nesting.last else @conditional_nesting.last end else raise UnknownTokenError.new('Conditional', token) end end