| 104 | } |
| 105 | |
| 106 | std::unique_ptr<Record> MIParser::parseStreamRecord() |
| 107 | { |
| 108 | StreamRecord::Subkind subkind; |
| 109 | |
| 110 | switch (m_lex->lookAhead()) { |
| 111 | case '~': subkind = StreamRecord::Console; break; |
| 112 | case '@': subkind = StreamRecord::Target; break; |
| 113 | case '&': subkind = StreamRecord::Log; break; |
| 114 | default: |
| 115 | Q_ASSERT(false); |
| 116 | return {}; |
| 117 | } |
| 118 | |
| 119 | std::unique_ptr<StreamRecord> stream(new StreamRecord(subkind)); |
| 120 | |
| 121 | m_lex->nextToken(); |
| 122 | MATCH_PTR(Token_string_literal); |
| 123 | stream->message = parseStringLiteral(); |
| 124 | return stream; |
| 125 | } |
| 126 | |
| 127 | std::unique_ptr<Record> MIParser::parseResultOrAsyncRecord() |
| 128 | { |