def _should_wrap(self, node, child, is_left):
node_precedence = node.op_precedence()<EOL>child_precedence = child.op_precedence()<EOL>if node_precedence > child_precedence:<EOL><INDENT>return True<EOL><DEDENT>if (<EOL>node_precedence == child_precedence<EOL>and is_left != node.op_left_associative()<EOL>):<EOL><INDENT>return True<EOL><DEDENT>return False<EOL>
Wrap child if:
            - it has lower precedence
            - same precedence with position opposite to associativity direction