def _parse_tokens(self, tokens, i, actions=True):
    furthest_i = (- 1)
    furthest_exception = None
    for e in self.exprs:
        try:
            (result, result_i) = e.parse(tokens, i, actions=True)
            if self.name:
                for e in result:
                    e.tag = self.name
            return (result, result_i)
        except ParseException as err:
            if (err.i > furthest_i):
                furthest_exception = err
                furthest_i = err.i
    else:
        if (furthest_exception is not None):
            raise furthest_exception
        else:
            raise ParseException(tokens, i, 'No alternatives match', self)
def _parse_tokens(self, tokens, i, actions=True):
    furthest_i = (- 1)
    furthest_exception = None
    for e in self.exprs:
        try:
            (result, result_i) = e.parse(tokens, i, actions=True)
            if self.name:
                for e in result:
                    e.tag = self.name
            return (result, result_i)
        except ParseException as err:
            if (err.i > furthest_i):
                furthest_exception = err
                furthest_i = err.i
    else:
        if (furthest_exception is not None):
            raise furthest_exception
        else:
            raise ParseException(tokens, i, 'No alternatives match', self)