def check_match(self, step): result = self.parser.parse(step) if not result: return None args = [] for index, arg in enumerate(result.fixed): start, end = result.spans[index] args.append(model.Argument(start, end, step[start:end], arg)) for name, arg in result.named.items(): start, end = result.spans[name] args.append(model.Argument(start, end, step[start:end], arg, name)) args.sort(key=lambda x: x.start) return args
def check_match(self, step): m = self.regex.match(step) if not m: return None groupindex = dict((y, x) for x, y in self.regex.groupindex.items()) args = [] for index, group in enumerate(m.groups()): index += 1 name = groupindex.get(index, None) args.append(model.Argument(m.start(index), m.end(index), group, group, name)) return args