'Return the parser to its state before the most recent
match or expand operation.  Calling ``undo`` repeatedly return
the parser to successively earlier states.  If no match or
expand operations have been performed, ``undo`` will make no
changes.
:return: true if an operation was successfully undone.
:rtype: bool'

def backtrack(self):

    if (len(self._history) == 0):
        return False
    (self._rtext, self._tree, self._frontier) = self._history.pop()
    return True
