class Regexp::Parser

def conditional(token)

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