diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-27 01:25:24 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-27 01:25:24 +0330 |
commit | 64331c144518b8ab1c3cf08473771e0d3f14f67b (patch) | |
tree | c378fccbddcc4e0972a7a426b4bf464efc1129bf /src/compiler/parser.h | |
parent | bb87887ec288f341256d324f271bac6267fc83f4 (diff) |
add print_u64 to be able to print u64 numbers
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r-- | src/compiler/parser.h | 10 |
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, |