def parse(self, tokens, i, actions=True):
    '\n        Parse given tokens and return results\n\n        :param tokens: A tokenized representation of the text to scan. The first string in the tuple is the content, typically a word, and the second string is the part of speech tag.\n        :type tokens: list(tuple(string, string))\n        :param int i: The index at which to start scanning from\n        :param bool actions: Whether the actions attached to this element will be executed. Default True.\n        :returns: A tuple where the first element is a list of elements found (can be None if no results were found), and the last index investigated.\n        :rtype: tuple(list(Element) or None, int)\n        '
    start = i
    try:
        (result, i) = self._parse_tokens(tokens, i, actions)
    except IndexError:
        raise ParseException(tokens, i, 'IndexError', self)
    if actions:
        for action in self.actions:
            action_result = action(tokens, start, result)
            if (action_result is not None):
                result = action_result
    if (self.condition is not None):
        if (not self.condition(result)):
            raise ParseException(tokens, i, 'Did not satisfy condition', self)
    return (result, i)
Parse given tokens and return results

:param tokens: A tokenized representation of the text to scan. The first string in the tuple is the content, typically a word, and the second string is the part of speech tag.
:type tokens: list(tuple(string, string))
:param int i: The index at which to start scanning from
:param bool actions: Whether the actions attached to this element will be executed. Default True.
:returns: A tuple where the first element is a list of elements found (can be None if no results were found), and the last index investigated.
:rtype: tuple(list(Element) or None, int)
def parse(self, tokens, i, actions=True):
    '\n        Parse given tokens and return results\n\n        :param tokens: A tokenized representation of the text to scan. The first string in the tuple is the content, typically a word, and the second string is the part of speech tag.\n        :type tokens: list(tuple(string, string))\n        :param int i: The index at which to start scanning from\n        :param bool actions: Whether the actions attached to this element will be executed. Default True.\n        :returns: A tuple where the first element is a list of elements found (can be None if no results were found), and the last index investigated.\n        :rtype: tuple(list(Element) or None, int)\n        '
    start = i
    try:
        (result, i) = self._parse_tokens(tokens, i, actions)
    except IndexError:
        raise ParseException(tokens, i, 'IndexError', self)
    if actions:
        for action in self.actions:
            action_result = action(tokens, start, result)
            if (action_result is not None):
                result = action_result
    if (self.condition is not None):
        if (not self.condition(result)):
            raise ParseException(tokens, i, 'Did not satisfy condition', self)
    return (result, i)