def _trace_print_function(self, existing_node): values = existing_node.args message_format = 'print(' + ', '.join(['%r'] * len(values)) + ') ' return self._create_bare_context_call('add_message', [ BinOp(left=Str(message_format), op=Mod(), right=Tuple(elts=values, ctx=Load())), Num(existing_node.lineno) ])
def visit_Print(self, node): existing_node = self.generic_visit(node) values = existing_node.values message_format = 'print' + ','.join([' %r']*len(values)) + ' ' return self._create_context_call('add_message', [BinOp(left=Str(message_format), op=Mod(), right=Tuple(elts=values, ctx=Load())), Num(existing_node.lineno)])
def expression(p): left = p[0] right = p[2] operator = p[1] if operator.gettokentype() == 'SUM': return Sum(left, right) elif operator.gettokentype() == 'SUB': return Sub(left, right) elif operator.gettokentype() == 'MUL': return Mul(left, right) elif operator.gettokentype() == 'DIV': return Div(left, right) elif operator.gettokentype() == 'POW': return Pow(left, right) elif operator.gettokentype() == 'MOD': return Mod(left, right)
def _trace_print_function(self, existing_node): values = list(existing_node.args) formats = ['%r'] * len(values) if existing_node.starargs is not None: values.append(existing_node.starargs) formats.append('*%r') for keyword in existing_node.keywords: values.append(keyword.value) formats.append('{}=%r'.format(keyword.arg)) message_format = 'print(' + ', '.join(formats) + ') ' return self._create_bare_context_call('add_message', [BinOp(left=Str(message_format), op=Mod(), right=Tuple(elts=values, ctx=Load())), Num(existing_node.lineno)])
def arith_expr(self, a): a, op, b = a op = { '+': Add(), '-': Sub(), '*': Mult(), '@': MatMult(), '/': Div(), '//': FloorDiv(), '%': Mod(), '&': BitAnd(), '|': BitOr(), '^': BitXor(), '<<': LShift(), '>>': RShift(), }.get(op, None) return BinOp(left=a, op=op, right=b)
def _trace_print_function(self, existing_node): starargs = getattr(existing_node, 'starargs', None) values = [] formats = [] for a in existing_node.args: if Starred is not None and isinstance(a, Starred): starargs = a.value else: values.append(a) formats.append('%r') if starargs is not None: values.append(starargs) formats.append('*%r') for keyword in existing_node.keywords: values.append(keyword.value) formats.append('{}=%r'.format(keyword.arg)) message_format = 'print(' + ', '.join(formats) + ') ' return self._create_bare_context_call('add_message', [BinOp(left=Str(message_format), op=Mod(), right=Tuple(elts=values, ctx=Load())), Num(existing_node.lineno)])