From c34b2c57219aa496a202c2be1e12332b4eeea440 Mon Sep 17 00:00:00 2001
From: Ferenc Szontágh <szf@fsociety.hu>
Date: Mon, 14 Apr 2025 15:43:20 +0000
Subject: [PATCH] add function parameter handling and contextes

---
 src/Token.hpp |   20 +++++++++++++-------
 1 files changed, 13 insertions(+), 7 deletions(-)

diff --git a/src/Token.hpp b/src/Token.hpp
index 1391349..201d84b 100644
--- a/src/Token.hpp
+++ b/src/Token.hpp
@@ -1,6 +1,7 @@
 #ifndef TOKEN_HPP
 #define TOKEN_HPP
 #include <cstdint>
+#include <iostream>
 #include <string>
 #include <unordered_map>
 
@@ -26,7 +27,9 @@
     IntDeclaration,       // int $variable
     DoubleDeclaration,    // double $variable
     BooleanDeclaration,   // bool $variable
-    FunctionDeclaration,  // function $variable
+    FunctionDeclaration,  // function fn_name
+    FunctionCall,         // fn_name(args)
+    Return,               // return
     Equals,               // =
     Plus,                 // +
     Minus,                // -
@@ -73,6 +76,8 @@
     { TokenType::DoubleDeclaration,   "DoubleDeclaration"   },
     { TokenType::BooleanDeclaration,  "BooleanDeclaration"  },
     { TokenType::FunctionDeclaration, "FunctionDeclaration" },
+    { TokenType::FunctionCall,        "FunctionCall"        },
+    { TokenType::Return,              "Return"              },
     { TokenType::Equals,              "Equals"              },
     { TokenType::Plus,                "Plus"                },
     { TokenType::Minus,               "Minus"               },
@@ -155,9 +160,10 @@
     if (declaration == Variables::Type::VT_BOOLEAN) {
         return TokenType::BooleanDeclaration;
     }
-    if (declaration == Variables::Type::VT_FUNCTION) {
-        return TokenType::FunctionDeclaration;
-    }
+    // if (declaration == Variables::Type::VT_FUNCTION) {
+    //     return TokenType::FunctionDeclaration;
+    // }
+    std::cout << "Unknown variable type: " << Variables::TypeToString(declaration) << "\n";
     return TokenType::Unknown;
 }
 
@@ -174,9 +180,9 @@
     if (type == TokenType::BooleanDeclaration) {
         return Variables::Type::VT_BOOLEAN;
     }
-    if (type == TokenType::FunctionDeclaration) {
-        return Variables::Type::VT_FUNCTION;
-    }
+    //if (type == TokenType::FunctionDeclaration) {
+    //    return Variables::Type::VT_FUNCTION;
+    //}
     return Variables::Type::VT_NULL;
 };
 

--
Gitblit v1.9.3