docs: def parse(self, string, lexer=None):
          """
          Interpret a string.
          
          :param string: The input to lex and parse.
          :param lexer: The lexer to use. A new one will be created if not
                        provided.
          :return: An object representation of the input.
          """
          if not lexer:
              lexer = Lexer().lexer
  
          return self.parser.parse(string, lexer=lexer)