summaryrefslogtreecommitdiff
path: root/src/compiler/parser.h
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-08 10:58:07 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-02-08 10:58:07 +0330
commitcb26dd0fc9c1e33be1c32eb85b04434526004e6a (patch)
tree8a467633398b2384216c5ac652a2ff86a2b5d3f3 /src/compiler/parser.h
parentf362a9a64004ba61e326e223d0d28997762afe71 (diff)
add bool
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r--src/compiler/parser.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/compiler/parser.h b/src/compiler/parser.h
index 004f14f..29a303c 100644
--- a/src/compiler/parser.h
+++ b/src/compiler/parser.h
@@ -10,11 +10,13 @@ typedef enum ParserToken {
PARSER_TOKEN_IDENTIFIER,
PARSER_TOKEN_VALUE_U64,
+ PARSER_TOKEN_VALUE_BOOL,
PARSER_TOKEN_TYPE_TYPE,
PARSER_TOKEN_TYPE_FUNCTION,
PARSER_TOKEN_TYPE_VOID,
PARSER_TOKEN_TYPE_U64,
+ PARSER_TOKEN_TYPE_BOOL,
PARSER_TOKEN_KEYWORD_PRINT_U64,
PARSER_TOKEN_KEYWORD_RETURN,
@@ -42,7 +44,7 @@ extern const char *PARSER_TOKEN_STRINGS[];
typedef struct ParserOrder {
bool ltr;
size_t size;
- LexerToken data[8];
+ LexerToken data[15];
} ParserOrder;
typedef struct ParserNode {
@@ -93,6 +95,8 @@ typedef struct ParserNodeReturnMetadata {
ParserNode *value;
} ParserNodeReturnMetadata;
+typedef bool ParserNodeBoolMetadata;
+
void parserNodePrint(const ParserNode *node, int indent);
void parserNodeDelete(ParserNode *node);
@@ -111,9 +115,11 @@ ParserNode *parserIdentifier(LexerNode *node, ParserNode *parent);
ParserNode *parserType(LexerNode *node, ParserNode *parent);
ParserNode *parserVoid(LexerNode *node, ParserNode *parent);
ParserNode *parserU64(LexerNode *node, ParserNode *parent);
+ParserNode *parserBool(LexerNode *node, ParserNode *parent);
ParserNode *parserPrintU64(LexerNode *node, LexerNode *end, ParserNode *parent);
ParserNode *parserReturn(LexerNode *node, LexerNode *end, ParserNode *parent);
ParserNode *parserNumber(LexerNode *node, ParserNode *parent);
+ParserNode *parserBoolValue(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,