code: func (s *Scanner) scanEscape() rune {
  	// http://en.cppreference.com/w/cpp/language/escape
  	ch := s.next() // read character after '/'
  	switch ch {
  	case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"':
  		// nothing to do
  	case '0', '1', '2', '3', '4', '5', '6', '7':
  		// octal notation
  		ch = s.scanDigits(ch, 8, 3)
  	case 'x':
  		// hexademical notation
  		ch = s.scanDigits(s.next(), 16, 2)
  	case 'u':
  		// universal character name
  		ch = s.scanDigits(s.next(), 16, 4)
  	case 'U':
  		// universal character name
  		ch = s.scanDigits(s.next(), 16, 8)
  	default:
  		s.err("illegal char escape")
  	}
  	return ch
  }
docs: // scanEscape scans an escape sequence