From 6cc2945c1d1e6ca7bad0542c79de423df5e2db8b Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Fri, 18 Apr 2025 18:13:29 +0000
Subject: [PATCH] implements object type
---
src/Interpreter/ExpressionBuilder.hpp | 10 ++++++++++
1 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/Interpreter/ExpressionBuilder.hpp b/src/Interpreter/ExpressionBuilder.hpp
index 602f603..f5f4323 100644
--- a/src/Interpreter/ExpressionBuilder.hpp
+++ b/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");
--
Gitblit v1.9.3