A simple scripting language in C++
Ferenc Szontágh
2025-04-18 6cc2945c1d1e6ca7bad0542c79de423df5e2db8b
src/Interpreter/ExpressionBuilder.hpp
@@ -10,6 +10,7 @@
#include "Interpreter/LiteralExpressionNode.hpp"
#include "Interpreter/UnaryExpressionNode.hpp"  // <-- új include
#include "Interpreter/CallExpressionNode.hpp"
#include "Interpreter/ObjectExpressionNode.hpp"
#include "Parser/ParsedExpression.hpp"
namespace Parser {
@@ -46,6 +47,15 @@
                }
                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");