| 13 | // ── Instruction dispatch ────────────────────────────────────────────────────── |
| 14 | |
| 15 | std::vector<WasmInstr> ParseContext::parse_instr() { |
| 16 | if (tok_.peek().type == TokenType::LParen) |
| 17 | return parse_foldedinstr(); |
| 18 | if (tok_.peek().type == TokenType::Keyword) { |
| 19 | std::string kw = tok_.peek().text; |
| 20 | if (kw == "block" || kw == "loop" || kw == "if" || kw == "try_table") |
| 21 | return parse_blockinstr(kw); |
| 22 | } |
| 23 | return {parse_plaininstr()}; |
| 24 | } |
| 25 | |
| 26 | WasmInstr ParseContext::parse_plaininstr() { |
| 27 | Token kw = tok_.expect(TokenType::Keyword, "instruction"); |