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