| | |
| | | #include "Interpreter/LiteralExpressionNode.hpp" |
| | | #include "Interpreter/UnaryExpressionNode.hpp" // <-- új include |
| | | #include "Interpreter/CallExpressionNode.hpp" |
| | | #include "Interpreter/ObjectExpressionNode.hpp" |
| | | #include "Parser/ParsedExpression.hpp" |
| | | |
| | | namespace Parser { |
| | |
| | | } |
| | | return std::make_unique<Interpreter::CallExpressionNode>(expr->name, std::move(callArgs)); |
| | | } |
| | | case Kind::Object: |
| | | { |
| | | std::vector<std::pair<std::string, std::unique_ptr<Interpreter::ExpressionNode>>> members; |
| | | members.reserve(expr->objectMembers.size()); |
| | | for (const auto &p : expr->objectMembers) { |
| | | members.emplace_back(p.first, buildExpressionFromParsed(p.second)); |
| | | } |
| | | return std::make_unique<Interpreter::ObjectExpressionNode>(std::move(members)); |
| | | } |
| | | } |
| | | |
| | | throw std::runtime_error("Unknown ParsedExpression kind"); |