diff options
| author | Andrew Kelley <superjoe30@gmail.com> | 2017-04-23 13:22:36 -0400 |
|---|---|---|
| committer | Andrew Kelley <superjoe30@gmail.com> | 2017-04-23 14:34:40 -0400 |
| commit | 6de33ded81981554ccffc3ecbfcd5b0f628cf502 (patch) | |
| tree | 520cfac3890b90d5357866a6c4b6e7e9509ee735 /src/ast_render.cpp | |
| parent | 2ed47070efa5933365da724e79f6ed87d603ee27 (diff) | |
| download | zig-6de33ded81981554ccffc3ecbfcd5b0f628cf502.tar.gz zig-6de33ded81981554ccffc3ecbfcd5b0f628cf502.zip | |
make undefined as a constant value lazy
closes #268
Diffstat (limited to 'src/ast_render.cpp')
| -rw-r--r-- | src/ast_render.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/ast_render.cpp b/src/ast_render.cpp index 3e939c43e5..37fb067067 100644 --- a/src/ast_render.cpp +++ b/src/ast_render.cpp @@ -273,6 +273,7 @@ void ast_print(FILE *f, AstNode *node, int indent) { struct AstRender { + CodeGen *codegen; int indent; int indent_size; FILE *f; @@ -924,8 +925,9 @@ static void render_node_extra(AstRender *ar, AstNode *node, bool grouped) { } -void ast_render(FILE *f, AstNode *node, int indent_size) { +void ast_render(CodeGen *codegen, FILE *f, AstNode *node, int indent_size) { AstRender ar = {0}; + ar.codegen = codegen; ar.f = f; ar.indent_size = indent_size; ar.indent = 0; @@ -1030,15 +1032,16 @@ static void ast_render_tld_var(AstRender *ar, Buf *name, TldVar *tld_var) { } else { Buf buf = BUF_INIT; buf_resize(&buf, 0); - render_const_value(&buf, var->value); + render_const_value(ar->codegen, &buf, var->value); fprintf(ar->f, "%s", buf_ptr(&buf)); } fprintf(ar->f, ";\n"); } -void ast_render_decls(FILE *f, int indent_size, ImportTableEntry *import) { +void ast_render_decls(CodeGen *codegen, FILE *f, int indent_size, ImportTableEntry *import) { AstRender ar = {0}; + ar.codegen = codegen; ar.f = f; ar.indent_size = indent_size; ar.indent = 0; |
