From fb439f1b706f21e94bdfe2195af9d0f3c9bc4246 Mon Sep 17 00:00:00 2001 From: kugwa <kugwa2000@gmail.com> Date: Wed, 30 Dec 2015 15:45:47 +0800 Subject: Add 3 static code-generation functions --- src/code-generation.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/code-generation.c') diff --git a/src/code-generation.c b/src/code-generation.c index 294389f..445d03b 100644 --- a/src/code-generation.c +++ b/src/code-generation.c @@ -8,6 +8,34 @@ #include <stdio.h> #include <stdlib.h> +static void generate_global_variable(CcmmcAst *global, CcmmcState *state) +{ +} + +static void generate_function(CcmmcAst *funcion, CcmmcState *state) +{ +} + +static void generate_program(CcmmcState *state) +{ + for (CcmmcAst *global_decl = state->ast->child; global_decl != NULL; + global_decl = global_decl->right_sibling) { + switch (global_decl->value_decl.kind) { + case CCMMC_KIND_DECL_VARIABLE: + generate_global_variable(global_decl, state); + break; + case CCMMC_KIND_DECL_FUNCTION: + generate_function(global_decl, state); + break; + case CCMMC_KIND_DECL_FUNCTION_PARAMETER: + case CCMMC_KIND_DECL_TYPE: + default: + assert(false); + } + } +} + void ccmmc_code_generation(CcmmcState *state) { + generate_program(state); } -- cgit