mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-05 13:28:40 +00:00
allow assembly-style dereferences in eval parser; register/register-alias syntax highlighting
This commit is contained in:
@@ -4179,7 +4179,7 @@ df_eval_from_string(Arena *arena, DBGI_Scope *scope, DF_CtrlCtx *ctrl_ctx, EVAL_
|
|||||||
}
|
}
|
||||||
|
|
||||||
//- rjf: try to resolve basic integral values into symbols
|
//- rjf: try to resolve basic integral values into symbols
|
||||||
if(result.mode == EVAL_EvalMode_Value && parse.expr->kind != EVAL_ExprKind_Cast &&
|
if((result.mode == EVAL_EvalMode_Value || result.mode == EVAL_EvalMode_Reg) && parse.expr->kind != EVAL_ExprKind_Cast &&
|
||||||
(tg_key_match(result.type_key, tg_key_basic(TG_Kind_S64)) ||
|
(tg_key_match(result.type_key, tg_key_basic(TG_Kind_S64)) ||
|
||||||
tg_key_match(result.type_key, tg_key_basic(TG_Kind_U64)) ||
|
tg_key_match(result.type_key, tg_key_basic(TG_Kind_U64)) ||
|
||||||
tg_key_match(result.type_key, tg_key_basic(TG_Kind_S32)) ||
|
tg_key_match(result.type_key, tg_key_basic(TG_Kind_S32)) ||
|
||||||
|
|||||||
+24
-4
@@ -10314,13 +10314,13 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_
|
|||||||
{
|
{
|
||||||
DF_ThemeColor new_color_kind = df_theme_color_from_txt_token_kind(token->kind);
|
DF_ThemeColor new_color_kind = df_theme_color_from_txt_token_kind(token->kind);
|
||||||
F32 mix_t = 1.f;
|
F32 mix_t = 1.f;
|
||||||
if(token->kind == TXT_TokenKind_Identifier)
|
if(token->kind == TXT_TokenKind_Identifier || token->kind == TXT_TokenKind_Keyword)
|
||||||
{
|
{
|
||||||
B32 mapped_special = 0;
|
B32 mapped_special = 0;
|
||||||
for(DF_EntityNode *n = params->relevant_binaries.first; n != 0; n = n->next)
|
for(DF_EntityNode *n = params->relevant_binaries.first; n != 0; n = n->next)
|
||||||
{
|
{
|
||||||
DF_Entity *binary = n->entity;
|
DF_Entity *binary = n->entity;
|
||||||
if(!mapped_special)
|
if(!mapped_special && token->kind == TXT_TokenKind_Identifier)
|
||||||
{
|
{
|
||||||
U64 voff = df_voff_from_binary_symbol_name(binary, token_string);
|
U64 voff = df_voff_from_binary_symbol_name(binary, token_string);
|
||||||
if(voff != 0)
|
if(voff != 0)
|
||||||
@@ -10330,7 +10330,7 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_
|
|||||||
mix_t = selected_thread_module->alive_t;
|
mix_t = selected_thread_module->alive_t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!mapped_special)
|
if(!mapped_special && token->kind == TXT_TokenKind_Identifier)
|
||||||
{
|
{
|
||||||
U64 type_num = df_type_num_from_binary_name(binary, token_string);
|
U64 type_num = df_type_num_from_binary_name(binary, token_string);
|
||||||
if(type_num != 0)
|
if(type_num != 0)
|
||||||
@@ -10340,7 +10340,7 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_
|
|||||||
mix_t = selected_thread_module->alive_t;
|
mix_t = selected_thread_module->alive_t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!mapped_special)
|
if(!mapped_special && token->kind == TXT_TokenKind_Identifier)
|
||||||
{
|
{
|
||||||
U64 local_num = eval_num_from_string(parse_ctx->locals_map, token_string);
|
U64 local_num = eval_num_from_string(parse_ctx->locals_map, token_string);
|
||||||
if(local_num != 0)
|
if(local_num != 0)
|
||||||
@@ -10350,6 +10350,26 @@ df_code_slice(DF_Window *ws, DF_CtrlCtx *ctrl_ctx, EVAL_ParseCtx *parse_ctx, DF_
|
|||||||
mix_t = selected_thread_module->alive_t;
|
mix_t = selected_thread_module->alive_t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if(!mapped_special)
|
||||||
|
{
|
||||||
|
U64 reg_num = eval_num_from_string(parse_ctx->regs_map, token_string);
|
||||||
|
if(reg_num != 0)
|
||||||
|
{
|
||||||
|
mapped_special = 1;
|
||||||
|
new_color_kind = DF_ThemeColor_CodeRegister;
|
||||||
|
mix_t = selected_thread_module->alive_t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!mapped_special)
|
||||||
|
{
|
||||||
|
U64 alias_num = eval_num_from_string(parse_ctx->reg_alias_map, token_string);
|
||||||
|
if(alias_num != 0)
|
||||||
|
{
|
||||||
|
mapped_special = 1;
|
||||||
|
new_color_kind = DF_ThemeColor_CodeRegister;
|
||||||
|
mix_t = selected_thread_module->alive_t;
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -265,6 +265,7 @@ DF_ThemeTable:
|
|||||||
{CodeFunction "Code (Function)" code_function }
|
{CodeFunction "Code (Function)" code_function }
|
||||||
{CodeType "Code (Type)" code_type }
|
{CodeType "Code (Type)" code_type }
|
||||||
{CodeLocal "Code (Local)" code_local }
|
{CodeLocal "Code (Local)" code_local }
|
||||||
|
{CodeRegister "Code (Register)" code_register }
|
||||||
{CodeKeyword "Code (Keyword)" code_keyword }
|
{CodeKeyword "Code (Keyword)" code_keyword }
|
||||||
{CodeSymbol "Code (Symbol)" code_symbol }
|
{CodeSymbol "Code (Symbol)" code_symbol }
|
||||||
{CodeNumeric "Code (Numeric)" code_numeric }
|
{CodeNumeric "Code (Numeric)" code_numeric }
|
||||||
@@ -349,6 +350,7 @@ DF_ThemePresetColorTable:
|
|||||||
(code_function 0x7fcc99ff 0x2a7a45ff 0xdcdcaaff 0x74531fff 0x1c7dd1ff 0xc39d36ff 0xcc5735ff 0x7fcc99ff 0x49b2ffff )
|
(code_function 0x7fcc99ff 0x2a7a45ff 0xdcdcaaff 0x74531fff 0x1c7dd1ff 0xc39d36ff 0xcc5735ff 0x7fcc99ff 0x49b2ffff )
|
||||||
(code_type 0x66b2e5ff 0x2c688fff 0x4ec9b0ff 0x2b91afff 0x1c7dd1ff 0x66b2e5ff 0xd8a51dff 0x66b2e5ff 0x49b2ffff )
|
(code_type 0x66b2e5ff 0x2c688fff 0x4ec9b0ff 0x2b91afff 0x1c7dd1ff 0x66b2e5ff 0xd8a51dff 0x66b2e5ff 0x49b2ffff )
|
||||||
(code_local 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff )
|
(code_local 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff 0xfe9548ff )
|
||||||
|
(code_register 0xd45d90ff 0xd45d90ff 0xd45d90ff 0xd45d90ff 0xd45d90ff 0xd45d90ff 0xd45d90ff 0xd45d90ff 0xd45d90ff )
|
||||||
(code_keyword 0xf7bf5eff 0xa47729ff 0x569cd6ff 0x0000ffff 0x63980fff 0xc39d36ff 0xac7b0bff 0xd08f20ff 0xff0000ff )
|
(code_keyword 0xf7bf5eff 0xa47729ff 0x569cd6ff 0x0000ffff 0x63980fff 0xc39d36ff 0xac7b0bff 0xd08f20ff 0xff0000ff )
|
||||||
(code_symbol 0x994c32ff 0x6c2d18ff 0xb4b4b4ff 0x000000ff 0x839496ff 0x2e5256ff 0x994c32ff 0x994c32ff 0xffffffff )
|
(code_symbol 0x994c32ff 0x6c2d18ff 0xb4b4b4ff 0x000000ff 0x839496ff 0x2e5256ff 0x994c32ff 0x994c32ff 0xffffffff )
|
||||||
(code_numeric 0x4ce54cff 0x2c7d2cff 0xb5cea8ff 0x000000ff 0xcb4b20ff 0x657b83ff 0x6b8e23ff 0x50ff30ff 0x2cff50ff )
|
(code_numeric 0x4ce54cff 0x2c7d2cff 0xb5cea8ff 0x000000ff 0xcb4b20ff 0x657b83ff 0x6b8e23ff 0x50ff30ff 0x2cff50ff )
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ str8_lit_comp("four_coder"),
|
|||||||
str8_lit_comp("far_manager"),
|
str8_lit_comp("far_manager"),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__default_dark[53] =
|
Vec4F32 df_g_theme_preset_colors__default_dark[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0xe5e5e5ff),
|
rgba_from_u32_lit_comp(0xe5e5e5ff),
|
||||||
@@ -41,6 +41,7 @@ rgba_from_u32_lit_comp(0xe5e5e5ff),
|
|||||||
rgba_from_u32_lit_comp(0x7fcc99ff),
|
rgba_from_u32_lit_comp(0x7fcc99ff),
|
||||||
rgba_from_u32_lit_comp(0x66b2e5ff),
|
rgba_from_u32_lit_comp(0x66b2e5ff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0xf7bf5eff),
|
rgba_from_u32_lit_comp(0xf7bf5eff),
|
||||||
rgba_from_u32_lit_comp(0x994c32ff),
|
rgba_from_u32_lit_comp(0x994c32ff),
|
||||||
rgba_from_u32_lit_comp(0x4ce54cff),
|
rgba_from_u32_lit_comp(0x4ce54cff),
|
||||||
@@ -87,7 +88,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
|||||||
rgba_from_u32_lit_comp(0x0000007f),
|
rgba_from_u32_lit_comp(0x0000007f),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__default_light[53] =
|
Vec4F32 df_g_theme_preset_colors__default_light[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0x383838ff),
|
rgba_from_u32_lit_comp(0x383838ff),
|
||||||
@@ -98,6 +99,7 @@ rgba_from_u32_lit_comp(0x282828ff),
|
|||||||
rgba_from_u32_lit_comp(0x2a7a45ff),
|
rgba_from_u32_lit_comp(0x2a7a45ff),
|
||||||
rgba_from_u32_lit_comp(0x2c688fff),
|
rgba_from_u32_lit_comp(0x2c688fff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0xa47729ff),
|
rgba_from_u32_lit_comp(0xa47729ff),
|
||||||
rgba_from_u32_lit_comp(0x6c2d18ff),
|
rgba_from_u32_lit_comp(0x6c2d18ff),
|
||||||
rgba_from_u32_lit_comp(0x2c7d2cff),
|
rgba_from_u32_lit_comp(0x2c7d2cff),
|
||||||
@@ -144,7 +146,7 @@ rgba_from_u32_lit_comp(0x0000000d),
|
|||||||
rgba_from_u32_lit_comp(0x0000003b),
|
rgba_from_u32_lit_comp(0x0000003b),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__vs_dark[53] =
|
Vec4F32 df_g_theme_preset_colors__vs_dark[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0xe5e5e5ff),
|
rgba_from_u32_lit_comp(0xe5e5e5ff),
|
||||||
@@ -155,6 +157,7 @@ rgba_from_u32_lit_comp(0xd4d4d4ff),
|
|||||||
rgba_from_u32_lit_comp(0xdcdcaaff),
|
rgba_from_u32_lit_comp(0xdcdcaaff),
|
||||||
rgba_from_u32_lit_comp(0x4ec9b0ff),
|
rgba_from_u32_lit_comp(0x4ec9b0ff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0x569cd6ff),
|
rgba_from_u32_lit_comp(0x569cd6ff),
|
||||||
rgba_from_u32_lit_comp(0xb4b4b4ff),
|
rgba_from_u32_lit_comp(0xb4b4b4ff),
|
||||||
rgba_from_u32_lit_comp(0xb5cea8ff),
|
rgba_from_u32_lit_comp(0xb5cea8ff),
|
||||||
@@ -201,7 +204,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
|||||||
rgba_from_u32_lit_comp(0x0000007f),
|
rgba_from_u32_lit_comp(0x0000007f),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__vs_light[53] =
|
Vec4F32 df_g_theme_preset_colors__vs_light[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0x1e1e1eff),
|
rgba_from_u32_lit_comp(0x1e1e1eff),
|
||||||
@@ -212,6 +215,7 @@ rgba_from_u32_lit_comp(0x000000ff),
|
|||||||
rgba_from_u32_lit_comp(0x74531fff),
|
rgba_from_u32_lit_comp(0x74531fff),
|
||||||
rgba_from_u32_lit_comp(0x2b91afff),
|
rgba_from_u32_lit_comp(0x2b91afff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0x0000ffff),
|
rgba_from_u32_lit_comp(0x0000ffff),
|
||||||
rgba_from_u32_lit_comp(0x000000ff),
|
rgba_from_u32_lit_comp(0x000000ff),
|
||||||
rgba_from_u32_lit_comp(0x000000ff),
|
rgba_from_u32_lit_comp(0x000000ff),
|
||||||
@@ -258,7 +262,7 @@ rgba_from_u32_lit_comp(0x0000000d),
|
|||||||
rgba_from_u32_lit_comp(0x0000003b),
|
rgba_from_u32_lit_comp(0x0000003b),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__solarized_dark[53] =
|
Vec4F32 df_g_theme_preset_colors__solarized_dark[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0xe5e5e5ff),
|
rgba_from_u32_lit_comp(0xe5e5e5ff),
|
||||||
@@ -269,6 +273,7 @@ rgba_from_u32_lit_comp(0x839496ff),
|
|||||||
rgba_from_u32_lit_comp(0x1c7dd1ff),
|
rgba_from_u32_lit_comp(0x1c7dd1ff),
|
||||||
rgba_from_u32_lit_comp(0x1c7dd1ff),
|
rgba_from_u32_lit_comp(0x1c7dd1ff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0x63980fff),
|
rgba_from_u32_lit_comp(0x63980fff),
|
||||||
rgba_from_u32_lit_comp(0x839496ff),
|
rgba_from_u32_lit_comp(0x839496ff),
|
||||||
rgba_from_u32_lit_comp(0xcb4b20ff),
|
rgba_from_u32_lit_comp(0xcb4b20ff),
|
||||||
@@ -315,7 +320,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
|||||||
rgba_from_u32_lit_comp(0x0000007f),
|
rgba_from_u32_lit_comp(0x0000007f),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__solarized_light[53] =
|
Vec4F32 df_g_theme_preset_colors__solarized_light[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0x1e1e1eff),
|
rgba_from_u32_lit_comp(0x1e1e1eff),
|
||||||
@@ -326,6 +331,7 @@ rgba_from_u32_lit_comp(0x74878cff),
|
|||||||
rgba_from_u32_lit_comp(0xc39d36ff),
|
rgba_from_u32_lit_comp(0xc39d36ff),
|
||||||
rgba_from_u32_lit_comp(0x66b2e5ff),
|
rgba_from_u32_lit_comp(0x66b2e5ff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0xc39d36ff),
|
rgba_from_u32_lit_comp(0xc39d36ff),
|
||||||
rgba_from_u32_lit_comp(0x2e5256ff),
|
rgba_from_u32_lit_comp(0x2e5256ff),
|
||||||
rgba_from_u32_lit_comp(0x657b83ff),
|
rgba_from_u32_lit_comp(0x657b83ff),
|
||||||
@@ -372,7 +378,7 @@ rgba_from_u32_lit_comp(0x0000000d),
|
|||||||
rgba_from_u32_lit_comp(0x0000003b),
|
rgba_from_u32_lit_comp(0x0000003b),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__handmade_hero[53] =
|
Vec4F32 df_g_theme_preset_colors__handmade_hero[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0xa08563ff),
|
rgba_from_u32_lit_comp(0xa08563ff),
|
||||||
@@ -383,6 +389,7 @@ rgba_from_u32_lit_comp(0xa08563ff),
|
|||||||
rgba_from_u32_lit_comp(0xcc5735ff),
|
rgba_from_u32_lit_comp(0xcc5735ff),
|
||||||
rgba_from_u32_lit_comp(0xd8a51dff),
|
rgba_from_u32_lit_comp(0xd8a51dff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0xac7b0bff),
|
rgba_from_u32_lit_comp(0xac7b0bff),
|
||||||
rgba_from_u32_lit_comp(0x994c32ff),
|
rgba_from_u32_lit_comp(0x994c32ff),
|
||||||
rgba_from_u32_lit_comp(0x6b8e23ff),
|
rgba_from_u32_lit_comp(0x6b8e23ff),
|
||||||
@@ -429,7 +436,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
|||||||
rgba_from_u32_lit_comp(0x0000007f),
|
rgba_from_u32_lit_comp(0x0000007f),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__four_coder[53] =
|
Vec4F32 df_g_theme_preset_colors__four_coder[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0x90b080ff),
|
rgba_from_u32_lit_comp(0x90b080ff),
|
||||||
@@ -440,6 +447,7 @@ rgba_from_u32_lit_comp(0x90b080ff),
|
|||||||
rgba_from_u32_lit_comp(0x7fcc99ff),
|
rgba_from_u32_lit_comp(0x7fcc99ff),
|
||||||
rgba_from_u32_lit_comp(0x66b2e5ff),
|
rgba_from_u32_lit_comp(0x66b2e5ff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0xd08f20ff),
|
rgba_from_u32_lit_comp(0xd08f20ff),
|
||||||
rgba_from_u32_lit_comp(0x994c32ff),
|
rgba_from_u32_lit_comp(0x994c32ff),
|
||||||
rgba_from_u32_lit_comp(0x50ff30ff),
|
rgba_from_u32_lit_comp(0x50ff30ff),
|
||||||
@@ -486,7 +494,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
|||||||
rgba_from_u32_lit_comp(0x0000007f),
|
rgba_from_u32_lit_comp(0x0000007f),
|
||||||
};
|
};
|
||||||
|
|
||||||
Vec4F32 df_g_theme_preset_colors__far_manager[53] =
|
Vec4F32 df_g_theme_preset_colors__far_manager[54] =
|
||||||
{
|
{
|
||||||
rgba_from_u32_lit_comp(0xff00ffff),
|
rgba_from_u32_lit_comp(0xff00ffff),
|
||||||
rgba_from_u32_lit_comp(0x00ffffff),
|
rgba_from_u32_lit_comp(0x00ffffff),
|
||||||
@@ -497,6 +505,7 @@ rgba_from_u32_lit_comp(0x00ffffff),
|
|||||||
rgba_from_u32_lit_comp(0x49b2ffff),
|
rgba_from_u32_lit_comp(0x49b2ffff),
|
||||||
rgba_from_u32_lit_comp(0x49b2ffff),
|
rgba_from_u32_lit_comp(0x49b2ffff),
|
||||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||||
|
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||||
rgba_from_u32_lit_comp(0xff0000ff),
|
rgba_from_u32_lit_comp(0xff0000ff),
|
||||||
rgba_from_u32_lit_comp(0xffffffff),
|
rgba_from_u32_lit_comp(0xffffffff),
|
||||||
rgba_from_u32_lit_comp(0x2cff50ff),
|
rgba_from_u32_lit_comp(0x2cff50ff),
|
||||||
@@ -755,7 +764,7 @@ DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[29] =
|
|||||||
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|1*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("theme"), str8_lit_comp("Theme"), DF_NameKind_Null, DF_IconKind_Palette, DF_VIEW_SETUP_FUNCTION_NAME(Theme), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(Theme), DF_VIEW_CMD_FUNCTION_NAME(Theme), DF_VIEW_UI_FUNCTION_NAME(Theme)},
|
{(0|0*DF_ViewSpecFlag_ParameterizedByEntity|1*DF_ViewSpecFlag_CanSerialize|0*DF_ViewSpecFlag_CanSerializeEntityPath|0*DF_ViewSpecFlag_CanFilter|0*DF_ViewSpecFlag_FilterIsCode|0*DF_ViewSpecFlag_TypingAutomaticallyFilters), str8_lit_comp("theme"), str8_lit_comp("Theme"), DF_NameKind_Null, DF_IconKind_Palette, DF_VIEW_SETUP_FUNCTION_NAME(Theme), DF_VIEW_STRING_FROM_STATE_FUNCTION_NAME(Theme), DF_VIEW_CMD_FUNCTION_NAME(Theme), DF_VIEW_UI_FUNCTION_NAME(Theme)},
|
||||||
};
|
};
|
||||||
|
|
||||||
String8 df_g_theme_color_display_string_table[53] =
|
String8 df_g_theme_color_display_string_table[54] =
|
||||||
{
|
{
|
||||||
str8_lit_comp("Null"),
|
str8_lit_comp("Null"),
|
||||||
str8_lit_comp("Plain Text"),
|
str8_lit_comp("Plain Text"),
|
||||||
@@ -766,6 +775,7 @@ str8_lit_comp("Code (Default)"),
|
|||||||
str8_lit_comp("Code (Function)"),
|
str8_lit_comp("Code (Function)"),
|
||||||
str8_lit_comp("Code (Type)"),
|
str8_lit_comp("Code (Type)"),
|
||||||
str8_lit_comp("Code (Local)"),
|
str8_lit_comp("Code (Local)"),
|
||||||
|
str8_lit_comp("Code (Register)"),
|
||||||
str8_lit_comp("Code (Keyword)"),
|
str8_lit_comp("Code (Keyword)"),
|
||||||
str8_lit_comp("Code (Symbol)"),
|
str8_lit_comp("Code (Symbol)"),
|
||||||
str8_lit_comp("Code (Numeric)"),
|
str8_lit_comp("Code (Numeric)"),
|
||||||
@@ -812,7 +822,7 @@ str8_lit_comp("Inactive Panel Overlay"),
|
|||||||
str8_lit_comp("Drop Shadow"),
|
str8_lit_comp("Drop Shadow"),
|
||||||
};
|
};
|
||||||
|
|
||||||
String8 df_g_theme_color_cfg_string_table[53] =
|
String8 df_g_theme_color_cfg_string_table[54] =
|
||||||
{
|
{
|
||||||
str8_lit_comp("null"),
|
str8_lit_comp("null"),
|
||||||
str8_lit_comp("plain_text"),
|
str8_lit_comp("plain_text"),
|
||||||
@@ -823,6 +833,7 @@ str8_lit_comp("code_default"),
|
|||||||
str8_lit_comp("code_function"),
|
str8_lit_comp("code_function"),
|
||||||
str8_lit_comp("code_type"),
|
str8_lit_comp("code_type"),
|
||||||
str8_lit_comp("code_local"),
|
str8_lit_comp("code_local"),
|
||||||
|
str8_lit_comp("code_register"),
|
||||||
str8_lit_comp("code_keyword"),
|
str8_lit_comp("code_keyword"),
|
||||||
str8_lit_comp("code_symbol"),
|
str8_lit_comp("code_symbol"),
|
||||||
str8_lit_comp("code_numeric"),
|
str8_lit_comp("code_numeric"),
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ DF_ThemeColor_CodeDefault,
|
|||||||
DF_ThemeColor_CodeFunction,
|
DF_ThemeColor_CodeFunction,
|
||||||
DF_ThemeColor_CodeType,
|
DF_ThemeColor_CodeType,
|
||||||
DF_ThemeColor_CodeLocal,
|
DF_ThemeColor_CodeLocal,
|
||||||
|
DF_ThemeColor_CodeRegister,
|
||||||
DF_ThemeColor_CodeKeyword,
|
DF_ThemeColor_CodeKeyword,
|
||||||
DF_ThemeColor_CodeSymbol,
|
DF_ThemeColor_CodeSymbol,
|
||||||
DF_ThemeColor_CodeNumeric,
|
DF_ThemeColor_CodeNumeric,
|
||||||
@@ -250,15 +251,15 @@ DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_DEF(geo);
|
|||||||
C_LINKAGE_BEGIN
|
C_LINKAGE_BEGIN
|
||||||
extern String8 df_g_theme_preset_display_string_table[9];
|
extern String8 df_g_theme_preset_display_string_table[9];
|
||||||
extern String8 df_g_theme_preset_code_string_table[9];
|
extern String8 df_g_theme_preset_code_string_table[9];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__default_dark[53];
|
extern Vec4F32 df_g_theme_preset_colors__default_dark[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__default_light[53];
|
extern Vec4F32 df_g_theme_preset_colors__default_light[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__vs_dark[53];
|
extern Vec4F32 df_g_theme_preset_colors__vs_dark[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__vs_light[53];
|
extern Vec4F32 df_g_theme_preset_colors__vs_light[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__solarized_dark[53];
|
extern Vec4F32 df_g_theme_preset_colors__solarized_dark[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__solarized_light[53];
|
extern Vec4F32 df_g_theme_preset_colors__solarized_light[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__handmade_hero[53];
|
extern Vec4F32 df_g_theme_preset_colors__handmade_hero[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__four_coder[53];
|
extern Vec4F32 df_g_theme_preset_colors__four_coder[54];
|
||||||
extern Vec4F32 df_g_theme_preset_colors__far_manager[53];
|
extern Vec4F32 df_g_theme_preset_colors__far_manager[54];
|
||||||
extern Vec4F32* df_g_theme_preset_colors_table[9];
|
extern Vec4F32* df_g_theme_preset_colors_table[9];
|
||||||
extern DF_CmdParamSlot df_g_cmd_param_slot_2_view_spec_src_map[7];
|
extern DF_CmdParamSlot df_g_cmd_param_slot_2_view_spec_src_map[7];
|
||||||
extern String8 df_g_cmd_param_slot_2_view_spec_dst_map[7];
|
extern String8 df_g_cmd_param_slot_2_view_spec_dst_map[7];
|
||||||
@@ -267,8 +268,8 @@ extern DF_StringBindingPair df_g_default_binding_table[97];
|
|||||||
extern String8 df_g_binding_version_remap_old_name_table[3];
|
extern String8 df_g_binding_version_remap_old_name_table[3];
|
||||||
extern String8 df_g_binding_version_remap_new_name_table[3];
|
extern String8 df_g_binding_version_remap_new_name_table[3];
|
||||||
extern DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[29];
|
extern DF_ViewSpecInfo df_g_gfx_view_kind_spec_info_table[29];
|
||||||
extern String8 df_g_theme_color_display_string_table[53];
|
extern String8 df_g_theme_color_display_string_table[54];
|
||||||
extern String8 df_g_theme_color_cfg_string_table[53];
|
extern String8 df_g_theme_color_cfg_string_table[54];
|
||||||
read_only global U8 df_g_icon_font_bytes__data[] =
|
read_only global U8 df_g_icon_font_bytes__data[] =
|
||||||
{
|
{
|
||||||
0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x80,0x00,0x03,0x00,0x70,0x47,0x53,0x55,0x42,0x20,0x8b,0x25,0x7a,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x54,0x4f,0x53,0x2f,0x32,0x56,0x44,0x49,0xa0,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0x2a,0x09,0xe2,0xc2,0x00,0x00,0x01,0xb0,0x00,0x00,0x05,0xec,0x63,0x76,0x74,0x20,
|
0x00,0x01,0x00,0x00,0x00,0x0f,0x00,0x80,0x00,0x03,0x00,0x70,0x47,0x53,0x55,0x42,0x20,0x8b,0x25,0x7a,0x00,0x00,0x00,0xfc,0x00,0x00,0x00,0x54,0x4f,0x53,0x2f,0x32,0x56,0x44,0x49,0xa0,0x00,0x00,0x01,0x50,0x00,0x00,0x00,0x60,0x63,0x6d,0x61,0x70,0x2a,0x09,0xe2,0xc2,0x00,0x00,0x01,0xb0,0x00,0x00,0x05,0xec,0x63,0x76,0x74,0x20,
|
||||||
|
|||||||
@@ -775,6 +775,38 @@ eval_parse_expr_from_text_tokens__prec(Arena *arena, EVAL_ParseCtx *ctx, String8
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- rjf: descent to assembly-style dereference sub-expression
|
||||||
|
else if(token.kind == EVAL_TokenKind_Symbol && str8_match(token_string, str8_lit("["), 0))
|
||||||
|
{
|
||||||
|
// rjf: skip [
|
||||||
|
it += 1;
|
||||||
|
|
||||||
|
// rjf: parse [] contents
|
||||||
|
EVAL_TokenArray nested_parse_tokens = eval_token_array_make_first_opl(it, it_opl);
|
||||||
|
EVAL_ParseResult nested_parse = eval_parse_expr_from_text_tokens__prec(arena, ctx, text, &nested_parse_tokens, eval_g_max_precedence);
|
||||||
|
eval_error_list_concat_in_place(&result.errors, &nested_parse.errors);
|
||||||
|
atom = nested_parse.expr;
|
||||||
|
it = nested_parse.last_token;
|
||||||
|
|
||||||
|
// rjf: build cast-to-U64*, and dereference operators
|
||||||
|
atom = eval_expr(arena, EVAL_ExprKind_Cast, token_string.str, eval_expr_leaf_type(arena, token_string.str, tg_cons_type_make(ctx->type_graph, TG_Kind_Ptr, tg_key_basic(TG_Kind_U64), 0)), atom, 0);
|
||||||
|
atom = eval_expr(arena, EVAL_ExprKind_Deref, token_string.str, atom, 0, 0);
|
||||||
|
|
||||||
|
// rjf: expect ]
|
||||||
|
EVAL_Token close_paren_maybe = eval_token_at_it(it, tokens);
|
||||||
|
String8 close_paren_maybe_string = str8_substr(text, close_paren_maybe.range);
|
||||||
|
if(close_paren_maybe.kind != EVAL_TokenKind_Symbol || !str8_match(close_paren_maybe_string, str8_lit("]"), 0))
|
||||||
|
{
|
||||||
|
eval_errorf(arena, &result.errors, EVAL_ErrorKind_MalformedInput, token_string.str, "Missing ].");
|
||||||
|
}
|
||||||
|
|
||||||
|
// rjf: consume )
|
||||||
|
else
|
||||||
|
{
|
||||||
|
it += 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//- rjf: leaf (identifier, literal)
|
//- rjf: leaf (identifier, literal)
|
||||||
else if(token.kind != EVAL_TokenKind_Symbol)
|
else if(token.kind != EVAL_TokenKind_Symbol)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user