This was built to track decompiler and CFG progress.
Unexpected AstNode sub-type on stack. Expected Assignable.
{
"frames": [
{
"line": 282,
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::pop_assignable",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs"
},
{
"line": 33,
"function": "gbf_core::decompiler::handlers::special_two_operand::impl$0::handle_instruction",
"file": ".\\gbf_core\\src\\decompiler\\handlers\\special_two_operand.rs"
},
{
"line": 171,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::process_instruction"
},
{
"line": 467,
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::process_regions",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs"
},
{
"line": 286,
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::decompile",
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs"
}
]
}
{
"current_block_id": {
"index": 2,
"address": 10545,
"block_type": "Normal"
},
"current_ast_node_stack": [
{
"BuildingArray": []
}
],
"current_instruction": {
"opcode": "AccessMember",
"operand": null,
"address": 10554
}
}
function onGuiRCDeleteScriptDeleteButtonPressed(obj#0)
{
lit#4 = "_";
builtin_fn_call#5 = obj.name.pos(lit#4);
lit#6 = 1;
lit#7 = -1;
builtin_fn_call#8 = obj.name.substring(builtin_fn_call#5 + lit#6, lit#7);
temp.identity = builtin_fn_call#8;
lit#10 = 0;
lit#11 = "_";
builtin_fn_call#12 = temp.identity.pos(lit#11);
builtin_fn_call#13 = temp.identity.substring(lit#10, builtin_fn_call#12);
temp.texttype = builtin_fn_call#13;
lit#15 = "_";
builtin_fn_call#16 = temp.identity.pos(lit#15);
lit#17 = 1;
lit#18 = -1;
builtin_fn_call#19 = temp.identity.substring(builtin_fn_call#16 + lit#17, lit#18);
temp.textoptions = builtin_fn_call#19;
lit#20 = "";
lit#21 = "delete";
fn_call#24 = this.queueText(lit#21 @ temp.texttype, temp.textoptions, lit#20);
lit#25 = "GuiRC";
fn_call#27 = getTitleByTextType#26(temp.texttype);
lit#28 = "List";
fn_call#30 = isobject#29((lit#25 @ fn_call#27) @ lit#28);
// RegionId(0)
// RegionId(1)
if (fn_call#30)
{
lit#31 = "";
lit#32 = "list";
fn_call#34 = this.queueRequest(temp.texttype @ lit#32, lit#31);
}
lit#35 = "GuiRCDeleteScript_";
fn_call#37 = lit#35 @ temp.identity.destroy();
lit#38 = 0;
return lit#38;
}
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Step 1 of 5