module Regexp::Parser

def self.meta(token)

def self.meta(token)
  case token.token
  when :dot
    @node << CharacterType::Any.new(token)
  when :alternation
    unless @node.token == :alternation
      alt = Alternation.new(token)
      seq = Sequence.new
      while @node.expressions.last
        seq.insert @node.expressions.pop
      end
      alt.alternative(seq)
      @node << alt
      @node = alt
      @node.alternative
    else
      @node.alternative
    end
  else
    raise UnknownTokenError.new('Meta', token)
  end
end