parseBareItem parses as defined in https://httpwg.org/specs/rfc9651.html#parse-bare-item.
(s *scanner)
| 85 | // parseBareItem parses as defined in |
| 86 | // https://httpwg.org/specs/rfc9651.html#parse-bare-item. |
| 87 | func parseBareItem(s *scanner) (interface{}, error) { |
| 88 | if s.eof() { |
| 89 | return nil, &UnmarshalError{s.off, ErrUnexpectedEndOfString} |
| 90 | } |
| 91 | |
| 92 | c := s.data[s.off] |
| 93 | switch c { |
| 94 | case '"': |
| 95 | return parseString(s) |
| 96 | case '?': |
| 97 | return parseBoolean(s) |
| 98 | case '*': |
| 99 | return parseToken(s) |
| 100 | case ':': |
| 101 | return parseBinary(s) |
| 102 | case '-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9': |
| 103 | return parseNumber(s) |
| 104 | case '@': |
| 105 | return parseDate(s) |
| 106 | case '%': |
| 107 | return parseDisplayString(s) |
| 108 | default: |
| 109 | if isAlpha(c) { |
| 110 | return parseToken(s) |
| 111 | } |
| 112 | |
| 113 | return nil, &UnmarshalError{s.off, ErrUnrecognizedCharacter} |
| 114 | } |
| 115 | } |
searching dependent graphs…