code: def add_parameterized_validator(param_validator, base_tag, tag_prefix=None):
      
      # pylint: disable-msg=C0111,W0621
      if not tag_prefix:
          tag_prefix = u'!~%s(' % param_validator.__name__
      def multi_constructor(loader, tag_suffix, node):
          def temp_validator(node, schema):
              return param_validator(node, schema, *_split_params(tag_prefix, tag_suffix))
          temp_validator.__name__ = str(tag_prefix + tag_suffix)
          return ContructorValidatorNode(base_tag,
                                         base_tag,
                                         temp_validator)(loader, node)
  
      yaml.add_multi_constructor(tag_prefix, multi_constructor)
docs: Add a parameterized validator for the given tag prefix.
      If tag_prefix is None, it is automatically constructed as
      u'!~%s(' % param_validator.__name__
      A parametrized validator is a function that accepts a document node
      (in the form of a Python object), a schema node (also a Python
      object), and other parameters (integer or string) that directly come
      from its complete YAML name in the schema.  It returns True if the
      document node is valid according to the schema node.  Note that the
      validator function does not have to recurse in sub-nodes, because
      XYS already does that.