Remove int uint, all programs compiling
This commit is contained in:
30
ccodegen.cpp
30
ccodegen.cpp
@@ -64,6 +64,18 @@ gen_simple_decl(Ast_Resolved_Type *ast, Intern_String name){
|
||||
}
|
||||
}
|
||||
|
||||
function void
|
||||
gen_value(Value a){
|
||||
gen("%s", docname(a.type));
|
||||
switch(a.type->kind){
|
||||
CASE_INT: gen("%lld", bigint_as_signed(&a.big_int_val)); break;
|
||||
CASE_STRING: gen("LIT(\"%s\")", a.intern_val.str); break;
|
||||
CASE_BOOL: a.bool_val ? gen("true"):gen("false"); break;
|
||||
CASE_FLOAT: gen("%f", a.f64_val); break;
|
||||
invalid_default_case;
|
||||
}
|
||||
}
|
||||
|
||||
function void
|
||||
gen_expr(Ast_Expr *ast){
|
||||
switch(ast->kind){
|
||||
@@ -73,11 +85,7 @@ gen_expr(Ast_Expr *ast){
|
||||
}
|
||||
|
||||
CASE(VALUE, Atom){
|
||||
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_float(node->type)) gen("%f", node->f64_val);
|
||||
else invalid_codepath;
|
||||
gen_value(node->value);
|
||||
BREAK();
|
||||
}
|
||||
|
||||
@@ -311,16 +319,20 @@ gen_ast(Ast *ast){
|
||||
}
|
||||
}
|
||||
else if(sym->type == untyped_float){
|
||||
gen("// constant F64 %s = %f;", node->name.str, sym->f64_val);
|
||||
gen("// F64 %s = ", node->name.str);
|
||||
gen_value(sym->value);
|
||||
}
|
||||
else if(sym->type == untyped_int){
|
||||
gen("// constant int %s = %lld;", node->name.str, bigint_as_signed(&sym->big_int_val));
|
||||
gen("// constant int %s = ", node->name.str);
|
||||
gen_value(sym->value);
|
||||
}
|
||||
else if(sym->type == untyped_string){
|
||||
gen("// const String %s = LIT(\"%s\");", node->name.str, sym->intern_val.str);
|
||||
gen("// const String %s = ", node->name.str);
|
||||
gen_value(sym->value);
|
||||
}
|
||||
else if(sym->type == untyped_bool){
|
||||
gen("// const Bool %s = %d;", node->name.str, sym->bool_val);
|
||||
gen("// const Bool %s = ", node->name.str);
|
||||
gen_value(sym->value);
|
||||
}
|
||||
else if(sym->type == type_type){
|
||||
if(sym->type_val->kind == TYPE_STRUCT){
|
||||
|
||||
Reference in New Issue
Block a user