public Object traverse(PatternNodeVisitor visitor, Object data) { Object ret = accept(visitor, data); left.traverse(visitor, ret); right.traverse(visitor, ret); return ret; }