lib/regexp_parser/token.rb
class Regexp TOKEN_KEYS = [:type, :token, :text, :ts, :te, :level, :set_level].freeze Token = Struct.new(*TOKEN_KEYS) do def offset [self.ts, self.te] end def length self.te - self.ts end def to_h hash = {} members.each do |member| hash[member.to_sym] = self.send(member.to_sym) end; hash end def next(exp = nil) if exp @next = exp else @next end end def previous(exp = nil) if exp @previous = exp else @previous end end end end