if isinstance(node.rvalue, (pc_ast.GPR, pc_ast.FPR)):
             self.__regfetch[str(node.rvalue)].append(node.rvalue)
 
+        rvalue = str(self[node.rvalue])
+        if isinstance(node.rvalue, pc_ast.IfExpr):
+            rvalue = " ".join([
+                str(self[node.rvalue.test]),
+                "?",
+                str(self[node.rvalue.body[0]]),
+                ":",
+                str(self[node.rvalue.orelse[0]]),
+            ])
+
         if isinstance(node.lvalue, pc_ast.SubscriptExpr):
             index = str(self[node.lvalue.index])
             subject = str(self[node.lvalue.subject])
             args = ", ".join([
                 f"&{subject}",
                 index,
-                str(self[node.rvalue]),
+                rvalue,
             ])
             self[node].emit(f"oppc_subscript_assign({args});")
         elif isinstance(node.lvalue, pc_ast.RangeSubscriptExpr):
                 f"&{subject}",
                 start,
                 end,
-                str(self[node.rvalue]),
+                rvalue,
             ])
             self[node].emit(f"oppc_range_subscript_assign({args});")
         else:
             stmt = " ".join([
                 str(self[node.lvalue]),
                 "=",
-                str(self[node.rvalue]),
+                rvalue,
             ])
             self[node].emit(stmt=f"{stmt};")