class Regexp::Parser

def meta(token)

def meta(token)
  case token.token
  when :dot
    node << CharacterType::Any.new(token, active_opts)
  when :alternation
    if node.token == :alternation
    elsif node.last.is_a?(Alternation)
      self.node = node.last
    else
      alt = Alternation.new(token, active_opts)
      seq = Alternative.new(alt.level, alt.set_level, alt.conditional_level)
      node.expressions.count.times { seq.insert(node.expressions.pop) }
      alt.alternative(seq)
      node << alt
      self.node = alt
    end
    node.alternative
  else
    raise UnknownTokenError.new('Meta', token)
  end
end