337 if isinstance(e, m2_expr.ExprId)
or isinstance(e, m2_expr.ExprInt):
339 elif isinstance(e, m2_expr.ExprOp)
and e.op
in shift_expr:
340 op_str = shift_str[shift_expr.index(e.op)]
341 return "%s %s %s" % (e.args[0], op_str, e.args[1])
342 elif isinstance(e, m2_expr.ExprOp)
and e.op ==
"slice_at":
343 return "%s LSL %s" % (e.args[0], e.args[1])
344 elif isinstance(e, m2_expr.ExprOp)
and e.op
in extend_lst:
346 return "%s %s %s" % (e.args[0], op_str, e.args[1])
347 elif isinstance(e, m2_expr.ExprOp)
and e.op ==
"postinc":
348 if e.args[1].arg != 0:
349 return "[%s], %s" % (e.args[0], e.args[1])
351 return "[%s]" % (e.args[0])
352 elif isinstance(e, m2_expr.ExprOp)
and e.op ==
"preinc_wb":
353 if e.args[1].arg != 0:
354 return "[%s, %s]!" % (e.args[0], e.args[1])
356 return "[%s]" % (e.args[0])
357 elif isinstance(e, m2_expr.ExprOp)
and e.op ==
"preinc":
359 return "[%s]" % (e.args[0])
360 elif not isinstance(e.args[1], m2_expr.ExprInt)
or e.args[1].arg != 0:
361 return "[%s, %s]" % (e.args[0], e.args[1])
363 return "[%s]" % (e.args[0])
364 elif isinstance(e, m2_expr.ExprOp)
and e.op ==
'segm':
366 if isinstance(arg, m2_expr.ExprId):
368 elif arg.op ==
'LSL' and arg.args[1].arg == 0:
369 arg = str(arg.args[0])
371 arg =
"%s %s %s" % (arg.args[0], arg.op, arg.args[1])
372 return '[%s, %s]' % (e.args[0], arg)
375 raise NotImplementedError(
"bad op")