summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorA404M <ahmadmahmoudiprogrammer@gmail.com>2025-03-22 21:08:34 +0330
committerA404M <ahmadmahmoudiprogrammer@gmail.com>2025-03-22 21:08:34 +0330
commit8d56cd69d565ad32467281dd36fd33ec48f32f61 (patch)
tree738242c562bf3bd60ae349e40e4a92507d17c336
parent62cd39836fd1237c5f432a629542eb511e5f9cb7 (diff)
some reordering
-rw-r--r--code/main.felan16
-rw-r--r--src/compiler/ast-tree.c10
-rw-r--r--src/compiler/parser.c2
3 files changed, 19 insertions, 9 deletions
diff --git a/code/main.felan b/code/main.felan
index b059d04..e2eaaa3 100644
--- a/code/main.felan
+++ b/code/main.felan
@@ -1,7 +1,17 @@
main :: () -> void {
- f(3);
+ a := f(b = 4,2);
+ if a == 0
+ print_u64 10;
+ else if a == 1
+ print_u64 11;
+ else if a == 2
+ print_u64 12;
+ else if a == 3
+ print_u64 13;
+ else
+ print_u64 14;
};
-f :(u64)->void: (a:u64)->void{
- print_u64 a;
+f :: (a:u64,b:u64)->u64{
+ return b-a;
};
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c
index 890d159..111265f 100644
--- a/src/compiler/ast-tree.c
+++ b/src/compiler/ast-tree.c
@@ -1176,11 +1176,6 @@ AstTree *astTreeParseFunction(ParserNode *parserNode, AstTreeHelper *p_helper) {
.globalDeps = p_helper->globalDeps,
};
- if ((function->returnType =
- astTreeParse(node_metadata->returnType, &helper)) == NULL) {
- goto RETURN_ERROR;
- }
-
for (size_t i = 0; i < node_arguments->size; ++i) {
ParserNode *arg = node_arguments->data[i];
if (arg->token == PARSER_TOKEN_SYMBOL_COMMA) {
@@ -1212,6 +1207,11 @@ AstTree *astTreeParseFunction(ParserNode *parserNode, AstTreeHelper *p_helper) {
}
}
+ if ((function->returnType =
+ astTreeParse(node_metadata->returnType, &helper)) == NULL) {
+ goto RETURN_ERROR;
+ }
+
for (size_t i = 0; i < body->size; ++i) {
ParserNode *node = body->data[i];
switch (node->token) {
diff --git a/src/compiler/parser.c b/src/compiler/parser.c
index 08f262c..9d77462 100644
--- a/src/compiler/parser.c
+++ b/src/compiler/parser.c
@@ -146,7 +146,7 @@ static constexpr ParserOrder PARSER_ORDER[] = {
},
{
.ltr = false,
- ORDER_ARRAY(LEXER_TOKEN_KEYWORD_IF,LEXER_TOKEN_KEYWORD_WHILE, ),
+ ORDER_ARRAY(LEXER_TOKEN_KEYWORD_IF, LEXER_TOKEN_KEYWORD_WHILE, ),
},
};