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};")