def get_interpretation(self, words):
        rulename = self.__class__.__name__
        logger.debug("Trying to match with regex: {}".format(rulename))

        match = refo.match(self.regex + Literal(_EOL), words + [_EOL])

        if not match:
            logger.debug("No match")
            return None, None

        try:
            match = Match(match, words)
            result = self.interpret(match)
        except BadSemantic as error:
            logger.debug(str(error))
            return None, None
        try:
            expression, userdata = result
        except __HOLE__:
            expression, userdata = result, None

        expression.rule_used = rulename
        return expression, userdata
dataset/ETHPy150Open machinalis/quepy/quepy/parsing.py/QuestionTemplate.get_interpretation