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