summaryrefslogtreecommitdiff
path: root/src/compiler/parser.h
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-14 12:55:08 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-04-14 12:55:08 +0330
commit038bbfc95cf79e1be48b1926e9893e2a12a3b92a (patch)
tree7cfcf33b7f431acbb2edb4201dfc30f7e08acf3d /src/compiler/parser.h
parentf6a2a2ed20376f6ba677248b0dcf5d0ddceaeef7 (diff)
add arrays
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r--src/compiler/parser.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/compiler/parser.h b/src/compiler/parser.h
index 9464ca2..120ae39 100644
--- a/src/compiler/parser.h
+++ b/src/compiler/parser.h
@@ -49,6 +49,8 @@ typedef enum ParserToken {
PARSER_TOKEN_SYMBOL_EOL,
PARSER_TOKEN_SYMBOL_CURLY_BRACKET,
+ PARSER_TOKEN_SYMBOL_BRACKET_LEFT,
+ PARSER_TOKEN_SYMBOL_BRACKET_RIGHT,
PARSER_TOKEN_SYMBOL_PARENTHESIS,
PARSER_TOKEN_SYMBOL_COMMA,
@@ -159,6 +161,11 @@ typedef struct ParserNodeWhileMetadata {
ParserNode *body;
} ParserNodeWhileMetadata;
+typedef struct ParserNodeBracketMetadata {
+ ParserNode *operand;
+ ParserNodeArray *params;
+} ParserNodeBracketMetadata;
+
void parserNodePrint(const ParserNode *node, int indent);
void parserNodeDelete(ParserNode *node);
@@ -192,6 +199,10 @@ ParserNode *parserParenthesis(LexerNode *closing, LexerNode *begin,
ParserNode *parent);
ParserNode *parserCurlyBrackets(LexerNode *closing, LexerNode *begin,
ParserNode *parent);
+ParserNode *parserBracketsRight(LexerNode *closing, LexerNode *begin,
+ ParserNode *parent, bool *conti);
+ParserNode *parserBracketsLeft(LexerNode *closing, LexerNode *begin,
+ LexerNode *end, ParserNode *parent);
ParserNode *parserFunction(LexerNode *node, LexerNode *begin, LexerNode *end,
ParserNode *parent);
ParserNode *parserVariable(LexerNode *node, LexerNode *begin, LexerNode *end,