mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-13 07:32:23 -07: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
|
||||
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_U64)) ||
|
||||
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);
|
||||
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;
|
||||
for(DF_EntityNode *n = params->relevant_binaries.first; n != 0; n = n->next)
|
||||
{
|
||||
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);
|
||||
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;
|
||||
}
|
||||
}
|
||||
if(!mapped_special)
|
||||
if(!mapped_special && token->kind == TXT_TokenKind_Identifier)
|
||||
{
|
||||
U64 type_num = df_type_num_from_binary_name(binary, token_string);
|
||||
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;
|
||||
}
|
||||
}
|
||||
if(!mapped_special)
|
||||
if(!mapped_special && token->kind == TXT_TokenKind_Identifier)
|
||||
{
|
||||
U64 local_num = eval_num_from_string(parse_ctx->locals_map, token_string);
|
||||
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;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -265,6 +265,7 @@ DF_ThemeTable:
|
||||
{CodeFunction "Code (Function)" code_function }
|
||||
{CodeType "Code (Type)" code_type }
|
||||
{CodeLocal "Code (Local)" code_local }
|
||||
{CodeRegister "Code (Register)" code_register }
|
||||
{CodeKeyword "Code (Keyword)" code_keyword }
|
||||
{CodeSymbol "Code (Symbol)" code_symbol }
|
||||
{CodeNumeric "Code (Numeric)" code_numeric }
|
||||
@@ -349,6 +350,7 @@ DF_ThemePresetColorTable:
|
||||
(code_function 0x7fcc99ff 0x2a7a45ff 0xdcdcaaff 0x74531fff 0x1c7dd1ff 0xc39d36ff 0xcc5735ff 0x7fcc99ff 0x49b2ffff )
|
||||
(code_type 0x66b2e5ff 0x2c688fff 0x4ec9b0ff 0x2b91afff 0x1c7dd1ff 0x66b2e5ff 0xd8a51dff 0x66b2e5ff 0x49b2ffff )
|
||||
(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_symbol 0x994c32ff 0x6c2d18ff 0xb4b4b4ff 0x000000ff 0x839496ff 0x2e5256ff 0x994c32ff 0x994c32ff 0xffffffff )
|
||||
(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"),
|
||||
};
|
||||
|
||||
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(0xe5e5e5ff),
|
||||
@@ -41,6 +41,7 @@ rgba_from_u32_lit_comp(0xe5e5e5ff),
|
||||
rgba_from_u32_lit_comp(0x7fcc99ff),
|
||||
rgba_from_u32_lit_comp(0x66b2e5ff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0xf7bf5eff),
|
||||
rgba_from_u32_lit_comp(0x994c32ff),
|
||||
rgba_from_u32_lit_comp(0x4ce54cff),
|
||||
@@ -87,7 +88,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
||||
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(0x383838ff),
|
||||
@@ -98,6 +99,7 @@ rgba_from_u32_lit_comp(0x282828ff),
|
||||
rgba_from_u32_lit_comp(0x2a7a45ff),
|
||||
rgba_from_u32_lit_comp(0x2c688fff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0xa47729ff),
|
||||
rgba_from_u32_lit_comp(0x6c2d18ff),
|
||||
rgba_from_u32_lit_comp(0x2c7d2cff),
|
||||
@@ -144,7 +146,7 @@ rgba_from_u32_lit_comp(0x0000000d),
|
||||
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(0xe5e5e5ff),
|
||||
@@ -155,6 +157,7 @@ rgba_from_u32_lit_comp(0xd4d4d4ff),
|
||||
rgba_from_u32_lit_comp(0xdcdcaaff),
|
||||
rgba_from_u32_lit_comp(0x4ec9b0ff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0x569cd6ff),
|
||||
rgba_from_u32_lit_comp(0xb4b4b4ff),
|
||||
rgba_from_u32_lit_comp(0xb5cea8ff),
|
||||
@@ -201,7 +204,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
||||
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(0x1e1e1eff),
|
||||
@@ -212,6 +215,7 @@ rgba_from_u32_lit_comp(0x000000ff),
|
||||
rgba_from_u32_lit_comp(0x74531fff),
|
||||
rgba_from_u32_lit_comp(0x2b91afff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0x0000ffff),
|
||||
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),
|
||||
};
|
||||
|
||||
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(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(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0x63980fff),
|
||||
rgba_from_u32_lit_comp(0x839496ff),
|
||||
rgba_from_u32_lit_comp(0xcb4b20ff),
|
||||
@@ -315,7 +320,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
||||
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(0x1e1e1eff),
|
||||
@@ -326,6 +331,7 @@ rgba_from_u32_lit_comp(0x74878cff),
|
||||
rgba_from_u32_lit_comp(0xc39d36ff),
|
||||
rgba_from_u32_lit_comp(0x66b2e5ff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0xc39d36ff),
|
||||
rgba_from_u32_lit_comp(0x2e5256ff),
|
||||
rgba_from_u32_lit_comp(0x657b83ff),
|
||||
@@ -372,7 +378,7 @@ rgba_from_u32_lit_comp(0x0000000d),
|
||||
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(0xa08563ff),
|
||||
@@ -383,6 +389,7 @@ rgba_from_u32_lit_comp(0xa08563ff),
|
||||
rgba_from_u32_lit_comp(0xcc5735ff),
|
||||
rgba_from_u32_lit_comp(0xd8a51dff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0xac7b0bff),
|
||||
rgba_from_u32_lit_comp(0x994c32ff),
|
||||
rgba_from_u32_lit_comp(0x6b8e23ff),
|
||||
@@ -429,7 +436,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
||||
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(0x90b080ff),
|
||||
@@ -440,6 +447,7 @@ rgba_from_u32_lit_comp(0x90b080ff),
|
||||
rgba_from_u32_lit_comp(0x7fcc99ff),
|
||||
rgba_from_u32_lit_comp(0x66b2e5ff),
|
||||
rgba_from_u32_lit_comp(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0xd08f20ff),
|
||||
rgba_from_u32_lit_comp(0x994c32ff),
|
||||
rgba_from_u32_lit_comp(0x50ff30ff),
|
||||
@@ -486,7 +494,7 @@ rgba_from_u32_lit_comp(0x0000003f),
|
||||
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(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(0xfe9548ff),
|
||||
rgba_from_u32_lit_comp(0xd45d90ff),
|
||||
rgba_from_u32_lit_comp(0xff0000ff),
|
||||
rgba_from_u32_lit_comp(0xffffffff),
|
||||
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)},
|
||||
};
|
||||
|
||||
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("Plain Text"),
|
||||
@@ -766,6 +775,7 @@ str8_lit_comp("Code (Default)"),
|
||||
str8_lit_comp("Code (Function)"),
|
||||
str8_lit_comp("Code (Type)"),
|
||||
str8_lit_comp("Code (Local)"),
|
||||
str8_lit_comp("Code (Register)"),
|
||||
str8_lit_comp("Code (Keyword)"),
|
||||
str8_lit_comp("Code (Symbol)"),
|
||||
str8_lit_comp("Code (Numeric)"),
|
||||
@@ -812,7 +822,7 @@ str8_lit_comp("Inactive Panel Overlay"),
|
||||
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("plain_text"),
|
||||
@@ -823,6 +833,7 @@ str8_lit_comp("code_default"),
|
||||
str8_lit_comp("code_function"),
|
||||
str8_lit_comp("code_type"),
|
||||
str8_lit_comp("code_local"),
|
||||
str8_lit_comp("code_register"),
|
||||
str8_lit_comp("code_keyword"),
|
||||
str8_lit_comp("code_symbol"),
|
||||
str8_lit_comp("code_numeric"),
|
||||
|
||||
@@ -51,6 +51,7 @@ DF_ThemeColor_CodeDefault,
|
||||
DF_ThemeColor_CodeFunction,
|
||||
DF_ThemeColor_CodeType,
|
||||
DF_ThemeColor_CodeLocal,
|
||||
DF_ThemeColor_CodeRegister,
|
||||
DF_ThemeColor_CodeKeyword,
|
||||
DF_ThemeColor_CodeSymbol,
|
||||
DF_ThemeColor_CodeNumeric,
|
||||
@@ -250,15 +251,15 @@ DF_GFX_VIEW_RULE_BLOCK_UI_FUNCTION_DEF(geo);
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 df_g_theme_preset_display_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_light[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__vs_dark[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__vs_light[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__solarized_dark[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__solarized_light[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__handmade_hero[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__four_coder[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__far_manager[53];
|
||||
extern Vec4F32 df_g_theme_preset_colors__default_dark[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__default_light[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__vs_dark[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__vs_light[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__solarized_dark[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__solarized_light[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__handmade_hero[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__four_coder[54];
|
||||
extern Vec4F32 df_g_theme_preset_colors__far_manager[54];
|
||||
extern Vec4F32* df_g_theme_preset_colors_table[9];
|
||||
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];
|
||||
@@ -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_new_name_table[3];
|
||||
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_cfg_string_table[53];
|
||||
extern String8 df_g_theme_color_display_string_table[54];
|
||||
extern String8 df_g_theme_color_cfg_string_table[54];
|
||||
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,
|
||||
|
||||
@@ -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)
|
||||
else if(token.kind != EVAL_TokenKind_Symbol)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user