diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-24 04:22:47 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-01-24 04:22:47 +0330 |
commit | 6a2b633d6fdc10ffb496f90912f57ec72daf25f6 (patch) | |
tree | 0aff0ac51f69ed0ce89f5671cf524bc1c8800d01 | |
parent | 5d46c19b25a05a289ccecfa38bc0be849af87877 (diff) |
some clean up
-rw-r--r-- | src/compiler/ast-tree.c | 22 | ||||
-rw-r--r-- | src/compiler/code-generator.c | 4 | ||||
-rw-r--r-- | test/main.felan | 2 |
3 files changed, 23 insertions, 5 deletions
diff --git a/src/compiler/ast-tree.c b/src/compiler/ast-tree.c index 76ee706..0a8811c 100644 --- a/src/compiler/ast-tree.c +++ b/src/compiler/ast-tree.c @@ -23,8 +23,20 @@ void astTreePrint(const AstTree *tree, int indent) { printf(" "); printf("arguments=[\n"); for (size_t i = 0; i < metadata->arguments_size; ++i) { - // astTreePrint(metadata->arguments[i], indent + 1); // TODO: do it - printf(",\n"); + for (int i = 0; i < indent + 1; ++i) + printf(" "); + printf("{name=%.*s,\n", + (int)(metadata->arguments[i].name_end - + metadata->arguments[i].name_begin), + metadata->arguments[i].name_begin); + for (int i = 0; i < indent + 1; ++i) + printf(" "); + printf("type=\n"); + astTreePrint(metadata->arguments[i].type, indent + 2); + printf("\n"); + for (int i = 0; i < indent + 1; ++i) + printf(" "); + printf("},\n"); } for (int i = 0; i < indent; ++i) printf(" "); @@ -281,8 +293,10 @@ AstTree *astTreeParseFunction(ParserNode *parserNode, function->arguments[function->arguments_size].value = NULL; function->arguments[function->arguments_size].type = type; - function->arguments[function->arguments_size].name_begin = arg_metadata->name->str_begin; - function->arguments[function->arguments_size].name_end = arg_metadata->name->str_end; + function->arguments[function->arguments_size].name_begin = + arg_metadata->name->str_begin; + function->arguments[function->arguments_size].name_end = + arg_metadata->name->str_end; function->arguments_size += 1; } diff --git a/src/compiler/code-generator.c b/src/compiler/code-generator.c index 932202a..035a471 100644 --- a/src/compiler/code-generator.c +++ b/src/compiler/code-generator.c @@ -63,6 +63,8 @@ CodeGeneratorCodes *codeGenerator(AstTreeRoot *astTreeRoot) { codes, createGenerateCode(NULL, NULL, CODE_GENERATOR_INSTRUCTION_PRINT)); continue; + case AST_TREE_TOKEN_TYPE_FUNCTION: + case AST_TREE_TOKEN_TYPE_VOID: case AST_TREE_TOKEN_NONE: } printLog("Bad token %d", variable->value->token); @@ -85,6 +87,8 @@ bool codeGeneratorAstTreeFunction(char *label_begin, char *label_end, CODE_GENERATOR_INSTRUCTION_PRINT)); goto OK; case AST_TREE_TOKEN_FUNCTION: + case AST_TREE_TOKEN_TYPE_FUNCTION: + case AST_TREE_TOKEN_TYPE_VOID: case AST_TREE_TOKEN_NONE: } printLog("Bad token %d", tree.token); diff --git a/test/main.felan b/test/main.felan index 92881c9..626bd50 100644 --- a/test/main.felan +++ b/test/main.felan @@ -1,3 +1,3 @@ -main : ()->void : () -> void { +main : (a:void)->void : (a:void) -> void { print; }; |