MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / print_il_expr

Function print_il_expr

rust/examples/high_level_il.rs:63–123  ·  view source on GitHub ↗
(instr: &HighLevelILLiftedInstruction, mut indent: usize)

Source from the content-addressed store, hash-verified

61 }
62
63 pub(crate) fn print_il_expr(instr: &HighLevelILLiftedInstruction, mut indent: usize) {
64 print_indent(indent);
65 print_operation(instr);
66 println!();
67
68 indent += 1;
69
70 for (_name, operand) in instr.operands() {
71 match operand {
72 Int(int) => {
73 print_indent(indent);
74 println!("int 0x{:x}", int);
75 }
76 Float(float) => {
77 print_indent(indent);
78 println!("int {:e}", float);
79 }
80 Expr(expr) => print_il_expr(&expr, indent),
81 Var(var) => {
82 print_indent(indent);
83 print!("var ");
84 print_variable(&instr.function, &var);
85 println!();
86 }
87 VarSsa(var) => {
88 print_indent(indent);
89 print!("ssa var ");
90 print_variable(&instr.function, &var.variable);
91 println!("#{}", var.version);
92 }
93 IntList(list) => {
94 print_indent(indent);
95 print!("index list ");
96 for i in list {
97 print!("{i} ");
98 }
99 println!();
100 }
101 VarSsaList(list) => {
102 print_indent(indent);
103 print!("ssa var list ");
104 for i in list {
105 print_variable(&instr.function, &i.variable);
106 print!("#{} ", i.version);
107 }
108 println!();
109 }
110 ExprList(list) => {
111 print_indent(indent);
112 println!("expr list");
113 for i in list {
114 print_il_expr(&i, indent + 1);
115 }
116 }
117 Label(label) => println!("label {}", label.name()),
118 MemberIndex(mem_idx) => println!("member_index {:?}", mem_idx),
119 ConstantData(_) => println!("constant_data TODO"),
120 Intrinsic(_) => println!("intrinsic TODO"),

Callers 1

mainFunction · 0.70

Calls 4

print_indentFunction · 0.70
print_operationFunction · 0.70
print_variableFunction · 0.70
operandsMethod · 0.45

Tested by

no test coverage detected