module Parser::Lexer::Explanation

def decorate(range, token, info)

def decorate(range, token, info)
  from, to = range.begin.column, range.end.column
  line = range.source_line + '   '
  line[from...to] = Color.underline(line[from...to])
  tail_len   = to - from - 1
  tail       = '~' * (tail_len >= 0 ? tail_len : 0)
  decoration =  "#{" " * from}#{Color.red("^#{tail}", bold: true)} #{token} ".
                    ljust(68) + info
  [ line, decoration ]
end