diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-14 12:55:08 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-04-14 12:55:08 +0330 |
commit | 038bbfc95cf79e1be48b1926e9893e2a12a3b92a (patch) | |
tree | 7cfcf33b7f431acbb2edb4201dfc30f7e08acf3d /src/compiler/parser.h | |
parent | f6a2a2ed20376f6ba677248b0dcf5d0ddceaeef7 (diff) |
add arrays
Diffstat (limited to 'src/compiler/parser.h')
-rw-r--r-- | src/compiler/parser.h | 11 |
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, |