Compiling with new untyped system

This commit is contained in:
Krzosa Karol
2022-06-06 08:56:03 +02:00
parent e12e0ee561
commit 6157325d8f
8 changed files with 2423 additions and 281 deletions

View File

@@ -73,10 +73,9 @@ gen_expr(Ast_Expr *ast){
}
CASE(VALUE, Atom){
if(is_int(node->type)) gen("%lld", node->int_val);
if(is_int(node->type)) gen("%lld", bigint_as_signed(&node->big_int_val));
else if(is_string(node->type)) gen("LIT(\"%s\")", node->intern_val.str);
else if(is_bool(node->type)) node->bool_val ? gen("true"):gen("false");
else if(is_f32(node->type)) gen("%f", node->f32_val);
else if(is_float(node->type)) gen("%f", node->f64_val);
else invalid_codepath;
BREAK();
@@ -315,7 +314,7 @@ gen_ast(Ast *ast){
gen("// constant F64 %s = %f;", node->name.str, sym->f64_val);
}
else if(sym->type == untyped_int){
gen("// constant int %s = %lld;", node->name.str, sym->int_val);
gen("// constant int %s = %lld;", node->name.str, bigint_as_signed(&sym->big_int_val));
}
else if(sym->type == untyped_string){
gen("// const String %s = LIT(\"%s\");", node->name.str, sym->intern_val.str);
@@ -356,7 +355,7 @@ gen_ast(Ast *ast){
genln("%s", it->name.str);
gen(" = ");
Sym *value_sym = resolved_get(it);
gen("%d", value_sym->int_val);
gen("%d", bigint_as_signed(&value_sym->big_int_val));
gen(",");
}
global_indent--;