module Regexp::Parser

def self.parse_token(token)

def self.parse_token(token)
  case token.type
  when :meta;         self.meta(token)
  when :quantifier;   self.quantifier(token)
  when :anchor;       self.anchor(token)
  when :escape;       self.escape(token)
  when :group;        self.group(token)
  when :assertion;    self.group(token)
  when :set, :subset; self.set(token)
  when :type;         self.type(token)
  when :backref;      self.backref(token)
  when :property, :nonproperty
    self.property(token)
  when :literal
    @node << Literal.new(token)
  else
    raise UnknownTokenTypeError.new(token.type, token)
  end
end