()
| 158 | } |
| 159 | |
| 160 | func (l *Lexer) readString() Token { |
| 161 | var escape bool |
| 162 | for { |
| 163 | c, err := l.br.ReadByte() |
| 164 | if err != nil { |
| 165 | l.err = err |
| 166 | if err == io.EOF { |
| 167 | l.err = io.ErrUnexpectedEOF |
| 168 | } |
| 169 | return TokenErr |
| 170 | } |
| 171 | l.buf = append(l.buf, c) |
| 172 | if c == '"' && !escape { |
| 173 | return TokenString |
| 174 | } |
| 175 | escape = c == '\\' && !escape |
| 176 | } |
| 177 | } |