aboutsummaryrefslogtreecommitdiff
path: root/src/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler')
-rw-r--r--src/compiler/ast-tree.c10
-rw-r--r--src/compiler/lexer.h5
-rw-r--r--src/compiler/parser.c9
3 files changed, 13 insertions, 11 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index f010067..8cea6f7 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -3750,6 +3750,11 @@ AstTree *astTreeParseBracket(const ParserNode *parserNode, AstTreeToken token) {
metadata->operand = astTreeParse(node_metadata->operand);
+ if (metadata->operand == NULL) {
+ free(metadata);
+ return NULL;
+ }
+
metadata->parameters.size = node_metadata->params->size;
metadata->parameters.data = a404m_malloc(sizeof(*metadata->parameters.data) *
metadata->parameters.size);
@@ -3762,6 +3767,11 @@ AstTree *astTreeParseBracket(const ParserNode *parserNode, AstTreeToken token) {
}
metadata->parameters.data[i] = astTreeParse(node_param);
+
+ if (metadata->parameters.data[i] == NULL) {
+ free(metadata);
+ return NULL;
+ }
}
return newAstTree(token, metadata, NULL, parserNode->str_begin,
diff --git a/src/compiler/lexer.h b/src/compiler/lexer.h
index 1802e41..568fabc 100644
--- a/src/compiler/lexer.h
+++ b/src/compiler/lexer.h
@@ -136,18 +136,15 @@ typedef enum LexerToken {
LEXER_TOKEN_KEYWORD_BREAK,
LEXER_TOKEN_KEYWORD_CONTINUE,
LEXER_TOKEN_KEYWORD_COMPTIME,
-
LEXER_TOKEN_SYMBOL_EOL,
- LEXER_TOKEN_ORDER14 = LEXER_TOKEN_SYMBOL_EOL,
LEXER_TOKEN_SYMBOL_COMMA,
LEXER_TOKEN_KEYWORD_IF,
- LEXER_TOKEN_ORDER15 = LEXER_TOKEN_KEYWORD_IF,
+ LEXER_TOKEN_ORDER14 = LEXER_TOKEN_KEYWORD_IF,
LEXER_TOKEN_KEYWORD_WHILE,
LEXER_TOKEN_KEYWORD_ELSE,
LEXER_TOKEN_END_ORDERS = LEXER_TOKEN_KEYWORD_ELSE,
-
LEXER_TOKEN_SYMBOL,
LEXER_TOKEN_SYMBOL_OPEN_PARENTHESIS,
LEXER_TOKEN_SYMBOL_OPEN_BRACKET,
diff --git a/src/compiler/parser.c b/src/compiler/parser.c
index 1becd88..ea54e52 100644
--- a/src/compiler/parser.c
+++ b/src/compiler/parser.c
@@ -201,18 +201,13 @@ static const ParserOrder PARSER_ORDER[] = {
.end = LEXER_TOKEN_ORDER13,
},
{
- .ltr = false,
+ .ltr = true,
.begin = LEXER_TOKEN_ORDER13,
.end = LEXER_TOKEN_ORDER14,
},
{
- .ltr = true,
- .begin = LEXER_TOKEN_ORDER14,
- .end = LEXER_TOKEN_ORDER15,
- },
- {
.ltr = false,
- .begin = LEXER_TOKEN_ORDER15,
+ .begin = LEXER_TOKEN_ORDER14,
.end = LEXER_TOKEN_END_ORDERS,
},
};