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