diff --git a/project.4coder b/project.4coder index f08ca89e..0b003cbf 100644 --- a/project.4coder +++ b/project.4coder @@ -52,8 +52,8 @@ commands = // .f1 = { .win = "raddbg_stable --ipc kill_all && build no_meta eval_scratch && raddbg_stable --ipc bring_to_front && raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: running target - // .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, - .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + .f3 = { .win = "raddbg_stable --ipc run", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, + // .f3 = { .win = "C:/devel/raddebugger/build/raddbg.exe --capture --user:C:/devel/raddebugger/build/local_dev.raddbg_user --project:C:/devel/raddebugger/build/local_dev.raddbg_project", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, //- rjf: local target builds .build_raddbg = { .win = "build raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, }, diff --git a/src/eval/eval.mdesk b/src/eval/eval.mdesk index ec41dfa9..b9a1d33c 100644 --- a/src/eval/eval.mdesk +++ b/src/eval/eval.mdesk @@ -26,32 +26,32 @@ E_TypeKindTable: {UChar8 "uchar8" 1 } {UChar16 "uchar16" 2 } {UChar32 "uchar32" 4 } - {U8 "U8" 1 } - {U16 "U16" 2 } - {U32 "U32" 4 } - {U64 "U64" 8 } - {U128 "U128" 16 } - {U256 "U256" 32 } - {U512 "U512" 64 } - {S8 "S8" 1 } - {S16 "S16" 2 } - {S32 "S32" 4 } - {S64 "S64" 8 } - {S128 "S128" 16 } - {S256 "S256" 32 } - {S512 "S512" 64 } + {U8 "uint8" 1 } + {U16 "uint16" 2 } + {U32 "uint32" 4 } + {U64 "uint64" 8 } + {U128 "uint128" 16 } + {U256 "uint256" 32 } + {U512 "uint512" 64 } + {S8 "int8" 1 } + {S16 "int16" 2 } + {S32 "int32" 4 } + {S64 "int64" 8 } + {S128 "int128" 16 } + {S256 "int256" 32 } + {S512 "int512" 64 } {Bool "bool" 1 } - {F16 "F16" 2 } - {F32 "F32" 4 } - {F32PP "F32PP" 4 } - {F48 "F48" 6 } - {F64 "F64" 8 } - {F80 "F80" 10 } - {F128 "F128" 16 } - {ComplexF32 "ComplexF32" 8 } - {ComplexF64 "ComplexF64" 16 } - {ComplexF80 "ComplexF80" 20 } - {ComplexF128 "ComplexF128" 32 } + {F16 "float16" 2 } + {F32 "float32" 4 } + {F32PP "float32PP" 4 } + {F48 "float48" 6 } + {F64 "float64" 8 } + {F80 "float80" 10 } + {F128 "float128" 16 } + {ComplexF32 "complex_float32" 8 } + {ComplexF64 "complex_float64" 16 } + {ComplexF80 "complex_float80" 20 } + {ComplexF128 "complex_float128" 32 } {Modifier "modifier" 0 } {Ptr "ptr" 0 } {LRef "lref" 0 } diff --git a/src/eval/eval_parse.c b/src/eval/eval_parse.c index 2a4b1b66..7b48f62d 100644 --- a/src/eval/eval_parse.c +++ b/src/eval/eval_parse.c @@ -914,104 +914,125 @@ e_leaf_type_from_name(String8 name) { E_TypeKey key = zero_struct; B32 found = 0; - for(U64 module_idx = 0; module_idx < e_parse_state->ctx->modules_count; module_idx += 1) - { - RDI_Parsed *rdi = e_parse_state->ctx->modules[module_idx].rdi; - RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Types); - RDI_ParsedNameMap parsed_name_map = {0}; - rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); - RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, name.str, name.size); - if(node != 0) - { - U32 match_count = 0; - U32 *matches = rdi_matches_from_map_node(rdi, node, &match_count); - if(match_count != 0) - { - RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, matches[0]); - found = (type_node->kind != RDI_TypeKind_NULL); - key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), matches[0], module_idx); - break; - } - } - } if(!found) { #define Case(str) (str8_match(name, str8_lit(str), 0)) if(0){} else if(Case("u8") || Case("uint8") || Case("uint8_t") || Case("U8")) { + found = 1; key = e_type_key_basic(E_TypeKind_U8); } else if(Case("uchar8") || Case("uchar")) { + found = 1; key = e_type_key_basic(E_TypeKind_UChar8); } else if(Case("u16") || Case("uint16") || Case("uint16_t") || Case("U16")) { + found = 1; key = e_type_key_basic(E_TypeKind_U16); } else if(Case("uchar16")) { + found = 1; key = e_type_key_basic(E_TypeKind_UChar16); } else if(Case("u32") || Case("uint32") || Case("uint32_t") || Case("U32") || Case("uint")) { + found = 1; key = e_type_key_basic(E_TypeKind_U32); } else if(Case("uchar32")) { + found = 1; key = e_type_key_basic(E_TypeKind_UChar32); } else if(Case("u64") || Case("uint64") || Case("uint64_t") || Case("U64") || Case("size_t")) { + found = 1; key = e_type_key_basic(E_TypeKind_U64); } else if(Case("s8") || Case("b8") || Case("B8") || Case("i8") || Case("int8") || Case("int8_t") || Case("S8")) { + found = 1; key = e_type_key_basic(E_TypeKind_S8); } else if(Case("char8") || Case("char")) { + found = 1; key = e_type_key_basic(E_TypeKind_Char8); } else if(Case("s16") || Case("b16") || Case("B16") || Case("i16") || Case("int16") || Case("int16_t") || Case("S16")) { + found = 1; key = e_type_key_basic(E_TypeKind_S16); } else if(Case("char16")) { + found = 1; key = e_type_key_basic(E_TypeKind_Char16); } else if(Case("s32") || Case("b32") || Case("B32") || Case("i32") || Case("int32") || Case("int32_t") || Case("char32") || Case("S32") || Case("int")) { + found = 1; key = e_type_key_basic(E_TypeKind_S32); } else if(Case("char32")) { + found = 1; key = e_type_key_basic(E_TypeKind_Char32); } else if(Case("s64") || Case("b64") || Case("B64") || Case("i64") || Case("int64") || Case("int64_t") || Case("S64") || Case("ssize_t")) { + found = 1; key = e_type_key_basic(E_TypeKind_S64); } else if(Case("void")) { + found = 1; key = e_type_key_basic(E_TypeKind_Void); } else if(Case("bool")) { + found = 1; key = e_type_key_basic(E_TypeKind_Bool); } else if(Case("float") || Case("f32") || Case("F32") || Case("r32") || Case("R32")) { + found = 1; key = e_type_key_basic(E_TypeKind_F32); } else if(Case("double") || Case("f64") || Case("F64") || Case("r64") || Case("R64")) { + found = 1; key = e_type_key_basic(E_TypeKind_F64); } #undef Case } + if(!found) + { + for(U64 module_idx = 0; module_idx < e_parse_state->ctx->modules_count; module_idx += 1) + { + RDI_Parsed *rdi = e_parse_state->ctx->modules[module_idx].rdi; + RDI_NameMap *name_map = rdi_element_from_name_idx(rdi, NameMaps, RDI_NameMapKind_Types); + RDI_ParsedNameMap parsed_name_map = {0}; + rdi_parsed_from_name_map(rdi, name_map, &parsed_name_map); + RDI_NameMapNode *node = rdi_name_map_lookup(rdi, &parsed_name_map, name.str, name.size); + if(node != 0) + { + U32 match_count = 0; + U32 *matches = rdi_matches_from_map_node(rdi, node, &match_count); + if(match_count != 0) + { + RDI_TypeNode *type_node = rdi_element_from_name_idx(rdi, TypeNodes, matches[0]); + found = (type_node->kind != RDI_TypeKind_NULL); + key = e_type_key_ext(e_type_kind_from_rdi(type_node->kind), matches[0], module_idx); + break; + } + } + } + } return key; } diff --git a/src/eval/generated/eval.meta.c b/src/eval/generated/eval.meta.c index 50b115ba..cb7cdfea 100644 --- a/src/eval/generated/eval.meta.c +++ b/src/eval/generated/eval.meta.c @@ -26,32 +26,32 @@ str8_lit_comp("char32"), str8_lit_comp("uchar8"), str8_lit_comp("uchar16"), str8_lit_comp("uchar32"), -str8_lit_comp("U8"), -str8_lit_comp("U16"), -str8_lit_comp("U32"), -str8_lit_comp("U64"), -str8_lit_comp("U128"), -str8_lit_comp("U256"), -str8_lit_comp("U512"), -str8_lit_comp("S8"), -str8_lit_comp("S16"), -str8_lit_comp("S32"), -str8_lit_comp("S64"), -str8_lit_comp("S128"), -str8_lit_comp("S256"), -str8_lit_comp("S512"), +str8_lit_comp("uint8"), +str8_lit_comp("uint16"), +str8_lit_comp("uint32"), +str8_lit_comp("uint64"), +str8_lit_comp("uint128"), +str8_lit_comp("uint256"), +str8_lit_comp("uint512"), +str8_lit_comp("int8"), +str8_lit_comp("int16"), +str8_lit_comp("int32"), +str8_lit_comp("int64"), +str8_lit_comp("int128"), +str8_lit_comp("int256"), +str8_lit_comp("int512"), str8_lit_comp("bool"), -str8_lit_comp("F16"), -str8_lit_comp("F32"), -str8_lit_comp("F32PP"), -str8_lit_comp("F48"), -str8_lit_comp("F64"), -str8_lit_comp("F80"), -str8_lit_comp("F128"), -str8_lit_comp("ComplexF32"), -str8_lit_comp("ComplexF64"), -str8_lit_comp("ComplexF80"), -str8_lit_comp("ComplexF128"), +str8_lit_comp("float16"), +str8_lit_comp("float32"), +str8_lit_comp("float32PP"), +str8_lit_comp("float48"), +str8_lit_comp("float64"), +str8_lit_comp("float80"), +str8_lit_comp("float128"), +str8_lit_comp("complex_float32"), +str8_lit_comp("complex_float64"), +str8_lit_comp("complex_float80"), +str8_lit_comp("complex_float128"), str8_lit_comp("modifier"), str8_lit_comp("ptr"), str8_lit_comp("lref"),