'Parses the detected alternative
:return:
An Asn1Value object of the chosen alternative'

def parse(self):

    if (self._parsed is not None):
        return self._parsed
    try:
        (_, spec, params) = self._alternatives[self._choice]
        (self._parsed, _) = _parse_build(self.contents, spec=spec, spec_params=params)
    except (ValueError, TypeError) as e:
        args = e.args[1:]
        e.args = (((e.args[0] + (u'\n                while    parsing    %s' % type_name(self))),) + args)
        raise e
