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.

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)