KCC - Kayte C Compiler 1.10.0
A C compiler implementation with preprocessor, lexer, parser, and code generator
Loading...
Searching...
No Matches
codegen.h
1#ifndef CODEGEN_H
2#define CODEGEN_H
3
4#include "types.h"
5#include <stdio.h>
6#include <stdbool.h>
7
8// Code generator lifecycle functions
9CodeGenerator *codegen_create(const char *output_filename);
10void codegen_destroy(CodeGenerator *codegen);
11
12// Main code generation functions
13bool codegen_generate(CodeGenerator *codegen, ASTNode *ast);
14void codegen_emit(CodeGenerator *codegen, const char *format, ...);
15char *codegen_new_label(CodeGenerator *codegen);
16char *codegen_new_temp(CodeGenerator *codegen);
17
18// Code generation for different AST nodes
19void codegen_program(CodeGenerator *codegen, ASTNode *node);
20void codegen_function_declaration(CodeGenerator *codegen, ASTNode *node);
21void codegen_variable_declaration(CodeGenerator *codegen, ASTNode *node);
22void codegen_statement(CodeGenerator *codegen, ASTNode *node);
23void codegen_compound_statement(CodeGenerator *codegen, ASTNode *node);
24void codegen_expression_statement(CodeGenerator *codegen, ASTNode *node);
25void codegen_return_statement(CodeGenerator *codegen, ASTNode *node);
26void codegen_if_statement(CodeGenerator *codegen, ASTNode *node);
27void codegen_while_statement(CodeGenerator *codegen, ASTNode *node);
28void codegen_for_statement(CodeGenerator *codegen, ASTNode *node);
29void codegen_expression(CodeGenerator *codegen, ASTNode *node);
30void codegen_binary_expression(CodeGenerator *codegen, ASTNode *node);
31void codegen_unary_expression(CodeGenerator *codegen, ASTNode *node);
32void codegen_call_expression(CodeGenerator *codegen, ASTNode *node);
33void codegen_identifier(CodeGenerator *codegen, ASTNode *node);
34void codegen_number(CodeGenerator *codegen, ASTNode *node);
35void codegen_string(CodeGenerator *codegen, ASTNode *node);
36void codegen_assignment(CodeGenerator *codegen, ASTNode *node);
37
38#endif // CODEGEN_H
AST Node structure.
Definition types.h:333
CodeGenerator structure.
Definition types.h:528
Type definitions for KCC compiler with Objective-C support.