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