From a76181288ae27b85521838ee87352727c3cba2f8 Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Fri, 18 Apr 2025 10:15:12 +0000
Subject: [PATCH] call function when variable defined

---
 src/Interpreter/ExpressionBuilder.hpp |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/src/Interpreter/ExpressionBuilder.hpp b/src/Interpreter/ExpressionBuilder.hpp
index 5ee96d7..602f603 100644
--- a/src/Interpreter/ExpressionBuilder.hpp
+++ b/src/Interpreter/ExpressionBuilder.hpp
@@ -9,6 +9,7 @@
 #include "Interpreter/IdentifierExpressionNode.hpp"
 #include "Interpreter/LiteralExpressionNode.hpp"
 #include "Interpreter/UnaryExpressionNode.hpp"  // <-- új include
+#include "Interpreter/CallExpressionNode.hpp"
 #include "Parser/ParsedExpression.hpp"
 
 namespace Parser {
@@ -35,6 +36,16 @@
                 auto operand = buildExpressionFromParsed(expr->rhs);  // rhs az operandus
                 return std::make_unique<Interpreter::UnaryExpressionNode>(expr->op, std::move(operand));
             }
+        case Kind::Call:
+            {
+                // Build argument expressions
+                std::vector<std::unique_ptr<Interpreter::ExpressionNode>> callArgs;
+                callArgs.reserve(expr->args.size());
+                for (const auto &arg : expr->args) {
+                    callArgs.push_back(buildExpressionFromParsed(arg));
+                }
+                return std::make_unique<Interpreter::CallExpressionNode>(expr->name, std::move(callArgs));
+            }
     }
 
     throw std::runtime_error("Unknown ParsedExpression kind");

--
Gitblit v1.9.3