Add bool values to parser, and bool nodes to ast

This commit is contained in:
Krzosa Karol
2022-06-02 23:48:03 +02:00
parent 2909214ee0
commit e2e684294e
5 changed files with 38 additions and 46 deletions

View File

@@ -20,11 +20,6 @@ gen_indent(){
function void
gen_simple_decl_prefix(Ast_Resolved_Type *ast){
switch(ast->kind){
case TYPE_INT: gen("Int "); break;
case TYPE_BOOL: gen("bool "); break;
case TYPE_UINT: gen("UInt "); break;
case TYPE_STRING: gen("String "); break;
case TYPE_VOID: gen("void "); break;
case TYPE_POINTER:{gen_simple_decl_prefix(ast->base); gen("*");} break;
case TYPE_ARRAY: gen_simple_decl_prefix(ast->base); break;
case TYPE_LAMBDA:break;
@@ -34,23 +29,18 @@ gen_simple_decl_prefix(Ast_Resolved_Type *ast){
auto name = constant->name;
gen("%s ", name.str);
}break;
invalid_default_case;
default: gen("%s ", name(ast));
}
}
function void
gen_simple_decl_postfix(Ast_Resolved_Type *ast){
switch(ast->kind){
case TYPE_INT: break;
case TYPE_BOOL: break;
case TYPE_UINT: break;
case TYPE_STRING: break;
case TYPE_VOID: break;
case TYPE_POINTER: gen_simple_decl_postfix(ast->base); break;
case TYPE_ARRAY: gen("[%d]", (int)ast->arr.size); gen_simple_decl_postfix(ast->arr.base); break;
case TYPE_LAMBDA:break;
case TYPE_ENUM: case TYPE_STRUCT:break;
invalid_default_case;
default: name(ast);
}
}
@@ -321,13 +311,16 @@ gen_ast(Ast *ast){
}
}
else if(sym->type == type_f64){
gen("// constant int %s = %f;", node->name.str, sym->f64_val);
gen("// constant F64 %s = %f;", node->name.str, sym->f64_val);
}
else if(sym->type == type_int){
gen("// constant int %s = %lld;", node->name.str, sym->int_val);
gen("// constant Int %s = %lld;", node->name.str, sym->int_val);
}
else if(sym->type == type_string){
gen("// String %s = LIT(\"%s\");", node->name.str, sym->intern_val.str);
gen("// const String %s = LIT(\"%s\");", node->name.str, sym->intern_val.str);
}
else if(sym->type == type_bool){
gen("// const Bool %s = %d;", node->name.str, sym->bool_val);
}
else if(sym->type == type_type){
if(sym->type_val->kind == TYPE_STRUCT){