def match(self, text, name): for sub_pattern in self.options: try: match, rest = sub_pattern(text) result = [name] if utils.deep_bool(match): _add_match_to_result(result, match) else: result.append("") return (result, rest) except NoPatternFound: continue raise NoPatternFound
def match(self, text, name): result = [name] rest = text match_made = False while rest: for sub_pattern in self.options: try: match, rest = sub_pattern(rest) match_made = True if utils.deep_bool(match): _add_match_to_result(result, match) break except NoPatternFound: continue else: break if not match_made: raise NoPatternFound else: if result == [name]: result.append("") return (result, rest)