code: function nodePrecedence(node, subNode, right) {
      var nodeType = node.type,
          nodePrecedence = expressionTypePrecedence[nodeType] || -1,
          subNodePrecedence = expressionTypePrecedence[subNode.type] || -1,
          nodeOperatorPrecedence,
          subNodeOperatorPrecedence;
      return nodePrecedence < subNodePrecedence || (nodePrecedence === subNodePrecedence && isLogicalBinary(nodeType) && ((nodeOperatorPrecedence = operatorPrecedence[node.operator]) < (subNodeOperatorPrecedence = operatorPrecedence[subNode.operator]) || (right && nodeOperatorPrecedence === subNodeOperatorPrecedence)));
  }
docs: Returns true if subNode has higher precedence the the root node. If the subNode is the right (as in left/right) subNode