code: def parse(self, tokens):
          
          try:
              (tree, _) = self.run(tokens, State())
              return tree
          except NoParseError, e:
              max = e.state.max
              if len(tokens) > max:
                  tok = tokens[max]
              else:
                  tok = u'<EOF>'
              raise NoParseError(u'%s: %s' % (e.msg, tok), e.state)
docs: Sequence(a) -> b
  
          Applies the parser to a sequence of tokens producing a parsing result.
  
          It provides a way to invoke a parser hiding details related to the
          parser state. Also it makes error messages more readable by specifying
          the position of the rightmost token that has been reached.