A simple scripting language in C++
Ferenc Szontágh
2025-04-18 a76181288ae27b85521838ee87352727c3cba2f8
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");