From d2ab53c625d386a4fbc6a9d5a5eb29faab1b3f0c Mon Sep 17 00:00:00 2001 From: A404M Date: Thu, 19 Sep 2024 15:53:13 +0330 Subject: removing print command and keyword added function call support cleaned up keyword and operator checking and speed it up a little bit cleaning includes added builtin functions --- src/compiler/parser/parser.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/compiler/parser/parser.h') diff --git a/src/compiler/parser/parser.h b/src/compiler/parser/parser.h index 4a39e17..520c5d1 100644 --- a/src/compiler/parser/parser.h +++ b/src/compiler/parser/parser.h @@ -5,8 +5,8 @@ typedef enum ParsedToken { PARSED_TOKEN_NONE = 0, PARSED_TOKEN_ROOT, - PARSED_TOKEN_PRINT, PARSED_TOKEN_PARENTHESIS, + PARSED_TOKEN_FUNCTION_CALL, PARSED_TOKEN_VALUE_STRING, PARSED_TOKEN_EOL, } ParsedToken; @@ -31,6 +31,11 @@ typedef struct ScopeMetadata { struct ParsedNode **operands; size_t operands_size; } ScopeMetadata; +typedef struct FunctionCallMetadata { + char const *functionNameBegin; + char const *functionNameEnd; + ScopeMetadata *scope; +} FunctionCallMetadata ; typedef ParsedNode PrintMetadata; typedef ParsedNode EOLMetadata; @@ -56,8 +61,6 @@ extern ScopeMetadata *parserScopeParenthesis(Node *nodesBegin, Node *nodesEnd, extern ParsedNode *parseNode(Node *nodesBegin, Node *nodesEnd, Node *node, ParsedNode *parent); -extern ParsedNode *parserPrint(Node *nodesBegin, Node *nodesEnd, Node *node, - ParsedNode *parent); extern ParsedNode *parseParenthesis(Node *nodesBegin, Node *nodesEnd, Node *node, ParsedNode *parent); extern ParsedNode *parseString(Node *node, ParsedNode *parent); -- cgit v1.2.3