aboutsummaryrefslogtreecommitdiff
path: root/compile.c
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2024-05-18 20:53:03 -0400
committerBruce Hill <bruce@bruce-hill.com>2024-05-18 20:53:03 -0400
commite4e3186959ba37402bc7ce21c4e977ead721a93f (patch)
tree0e5587905cb4660120859db8d32c6c9b984ffef9 /compile.c
parent1df26851d73e50407a3b7c79bcdb5b0cc053fe67 (diff)
Minor fixes
Diffstat (limited to 'compile.c')
-rw-r--r--compile.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/compile.c b/compile.c
index 0e73eaa1..cd0c5eea 100644
--- a/compile.c
+++ b/compile.c
@@ -732,7 +732,7 @@ CORD compile_statement(env_t *env, ast_t *ast)
auto decl = Match(if_->condition, Declare);
env_t *true_scope = fresh_scope(env);
const char *name = Match(decl->var, Var)->name;
- CORD var_code = CORD_cat(env->scope_prefix, name);
+ CORD var_code = CORD_cat(env->scope_prefix ? env->scope_prefix : "$", name);
type_t *var_t = get_type(env, decl->value);
if (var_t->tag == PointerType) {
auto ptr = Match(var_t, PointerType);
@@ -2251,11 +2251,12 @@ module_code_t compile_file(ast_t *ast)
"extern ", compile_type(env, t), " ", env->file_prefix, decl_name, " = ",
compile(env, decl->value), ";\n");
}
+ } else if (stmt->ast->tag == InlineCCode) {
+ CORD code = compile_statement(env, stmt->ast);
+ env->code->imports = CORD_all(env->code->imports, code, "\n");
} else {
CORD code = compile_statement(env, stmt->ast);
assert(!code);
- // if (code)
- // env->code->main = CORD_all(env->code->main, code, "\n");
}
}