diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2024-10-08 04:16:27 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2024-10-08 04:17:08 +0330 |
commit | addd54dc31603dc204773d3108dba4e000cd7657 (patch) | |
tree | 621620c4ca5634680d7655e3474cf0b0bcec8e01 /src/compiler/code_generator/code_generator.c | |
parent | bf84010e01bb11874689ce53ea4df853b2e41c2b (diff) |
added fasm support
added compiler options
tried to compile to fasm first
Diffstat (limited to 'src/compiler/code_generator/code_generator.c')
-rw-r--r-- | src/compiler/code_generator/code_generator.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/compiler/code_generator/code_generator.c b/src/compiler/code_generator/code_generator.c index 75b89c6..bf77419 100644 --- a/src/compiler/code_generator/code_generator.c +++ b/src/compiler/code_generator/code_generator.c @@ -76,6 +76,24 @@ Instructions codeGenerator(SourceCode *code) { return error; } +Instructions codeGeneratorWithPrint(SourceCode *code) { + ParsedTree *root = treeParserWithPrint(code); + if (root != NULL) { + printf("----tree parsed:\n"); + printParsedTreeNode(root); + Instructions instructions = _codeGenerator(root, code); + + deleteParsedTree(root); + return instructions; + } + fprintf(stderr, "error in tree parser\n"); + const Instructions error = { + .instructions = NULL, + .size = ERROR_SIZE, + }; + return error; +} + Instructions _codeGenerator(ParsedTree *root, SourceCode *code) { const TreeScopeMetadata *metadata = root->metadata; @@ -112,6 +130,7 @@ RETURN_ERROR: bool nodeToInstruction(ParsedTree *tree, Instruction **instructions, size_t *instructions_size, size_t *instructions_inserted, SourceCode *code) { + /*printf("Parsing token = %s\n", TREE_TOKEN_STRINGS[tree->token]);*/ switch (tree->token) { case TREE_TOKEN_FUNCTION_CALL: { const TreeFunctionCallMetadata *tree_metadata = tree->metadata; |