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