summaryrefslogtreecommitdiff
path: root/src/compiler/ast-tree.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/ast-tree.c')
-rw-r--r--src/compiler/ast-tree.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index d50d0f6..b201c57 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -889,8 +889,9 @@ AstTree *astTreeParse(ParserNode *parserNode, AstTreeHelper *helper) {
helper);
case PARSER_TOKEN_SYMBOL_CURLY_BRACKET:
return astTreeParseCurlyBracket(parserNode, helper);
- case PARSER_TOKEN_CONSTANT:
case PARSER_TOKEN_SYMBOL_PARENTHESIS:
+ return astTreeParseParenthesis(parserNode, helper);
+ case PARSER_TOKEN_CONSTANT:
case PARSER_TOKEN_SYMBOL_COMMA:
case PARSER_TOKEN_NONE:
case PARSER_TOKEN_ROOT:
@@ -1454,6 +1455,18 @@ RETURN_ERROR:
return NULL;
}
+AstTree *astTreeParseParenthesis(ParserNode *parserNode,
+ AstTreeHelper *helper) {
+ ParserNodeArray *metadata = parserNode->metadata;
+
+ if (metadata->size != 1) {
+ printError(parserNode->str_begin, parserNode->str_end, "Bad parenthesis");
+ return NULL;
+ } else {
+ return astTreeParse(metadata->data[0], helper);
+ }
+}
+
AstTreeFunction *getFunction(AstTree *value) {
switch (value->token) {
case AST_TREE_TOKEN_FUNCTION: