struct BST { data : i32; leftIndex : i32; rightIndex : i32; } var tree_1 : array; var gl_FragCoord : vec4; var x_GLF_color : vec4; fn makeTreeNode_struct_BST_i1_i1_i11_i1_(tree : ptr, data : ptr) { let x_169 : i32 = *(data); (*(tree)).data = x_169; (*(tree)).leftIndex = -1; (*(tree)).rightIndex = -1; return; } fn insert_i1_i1_(treeIndex : ptr, data_1 : ptr) { var baseIndex : i32; var param : BST; var param_1 : i32; var param_2 : BST; var param_3 : i32; baseIndex = 0; loop { let x_178 : i32 = baseIndex; let x_179 : i32 = *(treeIndex); if ((x_178 <= x_179)) { } else { break; } let x_182 : i32 = *(data_1); let x_183 : i32 = baseIndex; let x_185 : i32 = tree_1[x_183].data; if ((x_182 <= x_185)) { let x_190 : i32 = baseIndex; let x_192 : i32 = tree_1[x_190].leftIndex; if ((x_192 == -1)) { let x_197 : i32 = baseIndex; let x_198 : i32 = *(treeIndex); tree_1[x_197].leftIndex = x_198; let x_200 : i32 = *(treeIndex); let x_202 : BST = tree_1[x_200]; param = x_202; let x_203 : i32 = *(data_1); param_1 = x_203; makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param), &(param_1)); let x_205 : BST = param; tree_1[x_200] = x_205; return; } else { let x_207 : i32 = baseIndex; let x_209 : i32 = tree_1[x_207].leftIndex; baseIndex = x_209; continue; } } else { let x_210 : i32 = baseIndex; let x_212 : i32 = tree_1[x_210].rightIndex; if ((x_212 == -1)) { let x_217 : i32 = baseIndex; let x_218 : i32 = *(treeIndex); tree_1[x_217].rightIndex = x_218; let x_220 : i32 = *(treeIndex); let x_222 : BST = tree_1[x_220]; param_2 = x_222; let x_223 : i32 = *(data_1); param_3 = x_223; makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_2), &(param_3)); let x_225 : BST = param_2; tree_1[x_220] = x_225; return; } else { let x_227 : i32 = baseIndex; let x_229 : i32 = tree_1[x_227].rightIndex; baseIndex = x_229; continue; } } } return; } fn search_i1_(target : ptr) -> i32 { var index : i32; var currentNode : BST; var x_231 : i32; index = 0; loop { let x_236 : i32 = index; if ((x_236 != -1)) { } else { break; } let x_239 : i32 = index; let x_241 : BST = tree_1[x_239]; currentNode = x_241; let x_243 : i32 = currentNode.data; let x_244 : i32 = *(target); if ((x_243 == x_244)) { let x_248 : i32 = *(target); return x_248; } let x_249 : i32 = *(target); let x_251 : i32 = currentNode.data; if ((x_249 > x_251)) { let x_257 : i32 = currentNode.rightIndex; x_231 = x_257; } else { let x_259 : i32 = currentNode.leftIndex; x_231 = x_259; } let x_260 : i32 = x_231; index = x_260; } return -1; } fn main_1() { var treeIndex_1 : i32; var param_4 : BST; var param_5 : i32; var param_6 : i32; var param_7 : i32; var param_8 : i32; var param_9 : i32; var param_10 : i32; var param_11 : i32; var param_12 : i32; var param_13 : i32; var param_14 : i32; var param_15 : i32; var param_16 : i32; var param_17 : i32; var param_18 : i32; var param_19 : i32; var param_20 : i32; var param_21 : i32; var param_22 : i32; var param_23 : i32; var count : i32; var i : i32; var result : i32; var param_24 : i32; treeIndex_1 = 0; let x_88 : BST = tree_1[0]; param_4 = x_88; param_5 = 9; makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_4), &(param_5)); let x_90 : BST = param_4; tree_1[0] = x_90; let x_92 : i32 = treeIndex_1; treeIndex_1 = (x_92 + 1); let x_94 : i32 = treeIndex_1; param_6 = x_94; param_7 = 5; insert_i1_i1_(&(param_6), &(param_7)); let x_96 : i32 = treeIndex_1; treeIndex_1 = (x_96 + 1); let x_98 : i32 = treeIndex_1; param_8 = x_98; param_9 = 12; insert_i1_i1_(&(param_8), &(param_9)); let x_100 : i32 = treeIndex_1; treeIndex_1 = (x_100 + 1); let x_102 : i32 = treeIndex_1; param_10 = x_102; param_11 = 15; insert_i1_i1_(&(param_10), &(param_11)); let x_104 : i32 = treeIndex_1; treeIndex_1 = (x_104 + 1); let x_106 : i32 = treeIndex_1; param_12 = x_106; param_13 = 7; insert_i1_i1_(&(param_12), &(param_13)); let x_108 : i32 = treeIndex_1; treeIndex_1 = (x_108 + 1); let x_110 : i32 = treeIndex_1; param_14 = x_110; param_15 = 8; insert_i1_i1_(&(param_14), &(param_15)); let x_112 : i32 = treeIndex_1; treeIndex_1 = (x_112 + 1); let x_114 : i32 = treeIndex_1; param_16 = x_114; param_17 = 2; insert_i1_i1_(&(param_16), &(param_17)); let x_116 : i32 = treeIndex_1; treeIndex_1 = (x_116 + 1); let x_118 : i32 = treeIndex_1; param_18 = x_118; param_19 = 6; insert_i1_i1_(&(param_18), &(param_19)); let x_120 : i32 = treeIndex_1; treeIndex_1 = (x_120 + 1); let x_122 : i32 = treeIndex_1; param_20 = x_122; param_21 = 17; insert_i1_i1_(&(param_20), &(param_21)); let x_124 : i32 = treeIndex_1; treeIndex_1 = (x_124 + 1); let x_126 : i32 = treeIndex_1; param_22 = x_126; param_23 = 13; insert_i1_i1_(&(param_22), &(param_23)); count = 0; i = 0; loop { let x_132 : i32 = i; if ((x_132 < 20)) { } else { break; } var x_155 : bool; var x_156_phi : bool; let x_135 : i32 = i; param_24 = x_135; let x_136 : i32 = search_i1_(&(param_24)); result = x_136; let x_137 : i32 = i; switch(x_137) { case 2, 5, 6, 7, 8, 9, 12, 13, 15, 17: { let x_147 : i32 = result; let x_148 : i32 = i; let x_149 : bool = (x_147 == x_148); x_156_phi = x_149; if (!(x_149)) { let x_154 : f32 = gl_FragCoord.x; x_155 = (x_154 < 0.0); x_156_phi = x_155; } let x_156 : bool = x_156_phi; if (x_156) { let x_159 : i32 = count; count = (x_159 + 1); } } default: { let x_141 : i32 = result; if ((x_141 == -1)) { let x_145 : i32 = count; count = (x_145 + 1); } } } continuing { let x_161 : i32 = i; i = (x_161 + 1); } } let x_163 : i32 = count; if ((x_163 == 20)) { x_GLF_color = vec4(1.0, 0.0, 0.0, 1.0); } else { x_GLF_color = vec4(0.0, 0.0, 1.0, 1.0); } return; } struct main_out { @location(0) x_GLF_color_1 : vec4; } @stage(fragment) fn main(@builtin(position) gl_FragCoord_param : vec4) -> main_out { gl_FragCoord = gl_FragCoord_param; main_1(); return main_out(x_GLF_color); }