This was built to track decompiler and CFG progress.
Unexpected AstNode sub-type on stack. Expected Assignable.
{
"frames": [
{
"line": 282,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::pop_assignable"
},
{
"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": 16435,
"block_type": "Normal"
},
"current_ast_node_stack": [
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"MemberAccess": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"rhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "value"
},
"node_id": 228585
}
},
"lhs": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": null,
"id": "temp"
},
"node_id": 228584
}
},
"ssa_version": 4
},
"node_id": 228586
}
}
}
}
}
],
"current_instruction": {
"opcode": "AccessMember",
"operand": null,
"address": 16443
}
}
function onSaveAttributes(temp.obj)
{
temp.account = temp.obj.parent.acc;
lit#7 = 0;
temp.i = lit#7;
builtin_fn_call#10 = this.textattributes.size();
while (temp.i < builtin_fn_call#10)
{
lit#11 = "ScriptedRCAttributeBox";
lit#13 = 0;
// RegionId(2)
// RegionId(3)
if ((lit#11 @ temp.i).text == lit#13)
{
lit#14 = "ScriptedRCAttributeBox";
}
// RegionId(4)
else
{
lit#16 = "ScriptedRCAttributeBox";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#18 = 1;
lit#19 = "%s=%s";
builtin_fn_call#20 = format(lit#19, this.textattributes[temp.i][lit#18], temp.value);
builtin_fn_call#21 = temp.final.add(builtin_fn_call#20);
temp.i++;
}
lit#22 = 0;
temp.i = lit#22;
builtin_fn_call#24 = this.lookattributes.size();
while (temp.i < builtin_fn_call#24)
{
lit#25 = "ScriptedRCLookAttributeBox";
lit#26 = 0;
// RegionId(8)
// RegionId(9)
if ((lit#25 @ temp.i).text == lit#26)
{
lit#27 = "ScriptedRCLookAttributeBox";
}
// RegionId(10)
else
{
lit#28 = "ScriptedRCLookAttributeBox";
}
phi<idx=1, regions=()> = phi<idx=0, regions=()>;
lit#29 = 1;
lit#30 = "%s=%s";
builtin_fn_call#31 = format(lit#30, this.lookattributes[temp.i][lit#29], temp.value);
builtin_fn_call#32 = temp.final.add(builtin_fn_call#31);
temp.i++;
}
lit#33 = "playerattributes";
fn_call#35 = sendtext#34(lit#33, temp.account, temp.final);
fn_call#38 = ScriptedRCAttributeWindow.destroy();
lit#39 = 0;
return lit#39;
}
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 21