From: Wolfgang Bumiller Date: Thu, 19 Jul 2012 09:25:53 +0000 (+0200) Subject: Building the output - global variables for now X-Git-Tag: 0.1-rc1~433 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=5b7dfb7e4b4125352030ff075439d4be1bca4fd3;p=xonotic%2Fgmqcc.git Building the output - global variables for now --- diff --git a/parser.c b/parser.c index 80347df..bc43ea7 100644 --- a/parser.c +++ b/parser.c @@ -125,6 +125,7 @@ bool parser_compile(const char *filename) { size_t i; parser_t *parser; + ir_builder *ir; parser = (parser_t*)mem_a(sizeof(parser_t)); if (!parser) @@ -157,6 +158,22 @@ bool parser_compile(const char *filename) } lex_close(parser->lex); + + ir = ir_builder_new("gmqcc_out"); + if (!ir) { + printf("failed to allocate builder\n"); + goto cleanup; + } + + for (i = 0; i < parser->globals_count; ++i) { + if (!ast_global_codegen(parser->globals[i], ir)) { + printf("failed to generate global %s\n", parser->globals[i]->name); + } + } + + ir_builder_dump(ir, printf); + +cleanup: for (i = 0; i < parser->globals_count; ++i) { ast_value_delete(parser->globals[i]); }