/src/WasmEdge/lib/loader/ast/expression.cpp
Line | Count | Source |
1 | | // SPDX-License-Identifier: Apache-2.0 |
2 | | // SPDX-FileCopyrightText: 2019-2024 Second State INC |
3 | | |
4 | | #include "loader/loader.h" |
5 | | |
6 | | namespace WasmEdge { |
7 | | namespace Loader { |
8 | | |
9 | | // Load to construct Expression node. See "include/loader/loader.h". |
10 | | Expect<void> Loader::loadExpression(AST::Expression &Expr, |
11 | 34.7k | std::optional<uint64_t> SizeBound) { |
12 | 34.7k | return loadInstrSeq(SizeBound) |
13 | 34.7k | .map_error([](auto E) { |
14 | | // For the section size mismatch case, check in caller. |
15 | 3.74k | spdlog::error(ErrInfo::InfoAST(ASTNodeAttr::Expression)); |
16 | 3.74k | return E; |
17 | 3.74k | }) |
18 | 34.7k | .and_then([&](auto Instrs) { |
19 | 31.0k | Expr.getInstrs() = Instrs; |
20 | 31.0k | return Expect<void>{}; |
21 | 31.0k | }); |
22 | 34.7k | } |
23 | | |
24 | | } // namespace Loader |
25 | | } // namespace WasmEdge |