MCPcopy
hub / github.com/rocky/python-uncompyle6 / n_expr

Method n_expr

uncompyle6/semantics/fragments.py:407–437  ·  view source on GitHub ↗
(self, node)

Source from the content-addressed store, hash-verified

405 self.prune() # stop recursing
406
407 def n_expr(self, node):
408 start = len(self.f.getvalue())
409 p = self.prec
410 if node[0].kind.startswith("bin_op"):
411 n = node[0][-1][0]
412 else:
413 n = node[0]
414 self.prec = PRECEDENCE.get(n.kind, -2)
415 if n == "LOAD_CONST" and repr(n.pattr)[0] == "-":
416 n.parent = node
417 self.set_pos_info(n, start, len(self.f.getvalue()))
418 self.prec = 6
419 if p < self.prec:
420 self.write("(")
421 node[0].parent = node
422 self.last_finish = len(self.f.getvalue())
423 self.preorder(node[0])
424 finish = len(self.f.getvalue())
425 if hasattr(node[0], "offset"):
426 self.set_pos_info(node[0], start, len(self.f.getvalue()))
427 self.write(")")
428 self.last_finish = finish + 1
429 else:
430 node[0].parent = node
431 start = len(self.f.getvalue())
432 self.preorder(node[0])
433 if hasattr(node[0], "offset"):
434 self.set_pos_info(node[0], start, len(self.f.getvalue()))
435 self.prec = p
436 self.set_pos_info(node, start, len(self.f.getvalue()))
437 self.prune()
438
439 def n_return_expr(self, node):
440 start = len(self.f.getvalue())

Callers

nothing calls this directly

Calls 4

set_pos_infoMethod · 0.95
preorderMethod · 0.95
getMethod · 0.45
writeMethod · 0.45

Tested by

no test coverage detected