| 250 | } |
| 251 | |
| 252 | Token TokenStream::text_st(std::string value) |
| 253 | { |
| 254 | char ch{}; |
| 255 | while (_istream.get(ch)) |
| 256 | { |
| 257 | advance(_lookahead_pos, ch); |
| 258 | if (is_delim(ch)) |
| 259 | { |
| 260 | break; |
| 261 | } |
| 262 | if (ch == '[' || ch == ']') |
| 263 | { |
| 264 | rewind(_lookahead_pos); |
| 265 | _istream.unget(); |
| 266 | break; |
| 267 | } |
| 268 | value += ch; |
| 269 | } |
| 270 | return Token{TokenType::Text, value, _lookahead_pos}; |
| 271 | } |
| 272 | |
| 273 | bool TokenStream::reached_end() const |
| 274 | { |