code: def _parse_children(self, recurse=False):
          
  
          try:
              self.children = []
              if self._contents is None:
                  return
              contents_length = len(self._contents)
              child_pointer = 0
              while child_pointer < contents_length:
                  parts, child_pointer = _parse(self._contents, contents_length, pointer=child_pointer)
                  if self._child_spec:
                      child = parts + (self._child_spec,)
                  else:
                      child = parts
                  if recurse:
                      child = _build(*child)
                      if isinstance(child, (Sequence, SequenceOf)):
                          child._parse_children(recurse=True)
                  self.children.append(child)
          except (ValueError, TypeError) as e:
              self.children = None
              args = e.args[1:]
              e.args = (e.args[0] + '\n    while parsing %s' % type_name(self),) + args
              raise e
docs: Parses the contents and generates Asn1Value objects based on the
          definitions from _child_spec.
  
          :param recurse:
              If child objects that are Sequence or SequenceOf objects should
              be recursively parsed
  
          :raises:
              ValueError - when an error occurs parsing child objects