()
| 316 | } |
| 317 | |
| 318 | func (s *scanner) readHexEscape() (r rune) { |
| 319 | s.advance() |
| 320 | for i, c, b := 1, s.current, [3]rune{'x'}; i < len(b); i, c, r = i+1, s.current, r<<4+c { |
| 321 | switch b[i] = c; { |
| 322 | case '0' <= c && c <= '9': |
| 323 | c = c - '0' |
| 324 | case 'a' <= c && c <= 'f': |
| 325 | c = c - 'a' + 10 |
| 326 | case 'A' <= c && c <= 'F': |
| 327 | c = c - 'A' + 10 |
| 328 | default: |
| 329 | s.escapeError(b[:i+1], "hexadecimal digit expected") |
| 330 | } |
| 331 | s.advance() |
| 332 | } |
| 333 | return |
| 334 | } |
| 335 | |
| 336 | func (s *scanner) readDecimalEscape() (r rune) { |
| 337 | b := [3]rune{} |
no test coverage detected