From 64331c144518b8ab1c3cf08473771e0d3f14f67b Mon Sep 17 00:00:00 2001 From: A404M Date: Mon, 27 Jan 2025 01:25:24 +0330 Subject: add print_u64 to be able to print u64 numbers --- src/compiler/parser.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/compiler/parser.h') 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 +#include 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, -- cgit v1.2.3