summaryrefslogtreecommitdiff
path: root/src/compiler/parser.h
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-01-27 01:25:24 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-01-27 01:25:24 +0330
commit64331c144518b8ab1c3cf08473771e0d3f14f67b (patch)
treec378fccbddcc4e0972a7a426b4bf464efc1129bf /src/compiler/parser.h
parentbb87887ec288f341256d324f271bac6267fc83f4 (diff)
add print_u64 to be able to print u64 numbers
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r--src/compiler/parser.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/compiler/parser.h b/src/compiler/parser.h
index fb65358..974fdd5 100644
--- a/src/compiler/parser.h
+++ b/src/compiler/parser.h
@@ -2,16 +2,20 @@
#include "compiler/lexer.h"
#include <stddef.h>
+#include <stdint.h>
typedef enum ParserToken {
PARSER_TOKEN_ROOT,
PARSER_TOKEN_IDENTIFIER,
+ PARSER_TOKEN_VALUE_U64,
+
PARSER_TOKEN_TYPE_FUNCTION,
PARSER_TOKEN_TYPE_VOID,
PARSER_TOKEN_KEYWORD_PRINT,
+ PARSER_TOKEN_KEYWORD_PRINT_U64,
PARSER_TOKEN_CONSTANT,
@@ -70,7 +74,9 @@ typedef struct ParserNodeFunctionCall {
ParserNodeArray *params;
} ParserNodeFunctionCall;
-typedef ParserNode ParserNodeEOLMetadata;
+typedef ParserNode ParserNodeSingleChildMetadata;
+
+typedef uint64_t ParserNodeU64Metadata;
void parserNodePrint(const ParserNode *node, int indent);
void parserNodeDelete(ParserNode *node);
@@ -89,6 +95,8 @@ ParserNode *getUntilCommonParent(ParserNode *node, ParserNode *parent);
ParserNode *parserIdentifier(LexerNode *node, ParserNode *parent);
ParserNode *parserVoid(LexerNode *node, ParserNode *parent);
ParserNode *parserPrint(LexerNode *node, ParserNode *parent);
+ParserNode *parserPrintU64(LexerNode *node, LexerNode *end, ParserNode *parent);
+ParserNode *parserNumber(LexerNode *node, ParserNode *parent);
ParserNode *parserEol(LexerNode *node, LexerNode *begin, ParserNode *parent);
ParserNode *parserComma(LexerNode *node, LexerNode *begin, ParserNode *parent);
ParserNode *parserParenthesis(LexerNode *closing, LexerNode *begin,