From 12c925ebcde72a378b3ae30c736366641f8050dd Mon Sep 17 00:00:00 2001 From: uan Date: Wed, 4 Feb 2026 22:42:39 +0100 Subject: [PATCH] better types in C --- generator.v | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/generator.v b/generator.v index e50d8d6..4ace1b0 100644 --- a/generator.v +++ b/generator.v @@ -13,8 +13,11 @@ fn mangle_var(name string) string { } fn (mut g Generator) get_c_type(typ string) string { - c_type := if typ == 'real' { 'double' } else { typ } - return c_type + return match typ { + 'real' {'float'} + 'int' {'int32_t'} + else {typ} + } } fn (mut g Generator) gen_stmt(stmt Stmt) { @@ -100,8 +103,9 @@ fn (mut g Generator) gen_expr(expr Expr) { } TypeCast { c_type := g.get_c_type(expr.type) - g.out.write_string('(${c_type})') + g.out.write_string('((${c_type})') g.gen_expr(expr.expr) + g.out.write_string(')') } ParenExpr { g.out.write_string('(') @@ -125,6 +129,7 @@ fn (mut g Generator) gen_expr(expr Expr) { fn (mut g Generator) gen_c(program []Stmt) string { g.out.writeln('#include ') g.out.writeln('#include ') + g.out.writeln('#include ') for stmt in program { g.gen_stmt(stmt) }