Author: Armin Rigo <ar...@tunes.org> Branch: unicode-utf8-re Changeset: r93351:363f54e90b19 Date: 2017-12-10 08:49 +0100 http://bitbucket.org/pypy/pypy/changeset/363f54e90b19/
Log: More diff --git a/rpython/rlib/rsre/rsre_core.py b/rpython/rlib/rsre/rsre_core.py --- a/rpython/rlib/rsre/rsre_core.py +++ b/rpython/rlib/rsre/rsre_core.py @@ -174,6 +174,11 @@ return base_position + index def next_indirect(self, position): return position + 1 # like next(), but can be called indirectly + def prev_indirect(self, position): + position -= 1 # like prev(), but can be called indirectly + if position < 0: + raise EndOfString + return position def get_mark(self, gid): return find_mark(self.match_marks, gid) @@ -217,14 +222,8 @@ these position methods. The Utf8MatchContext subclass doesn't inherit from here.""" - def next(self, position): - return position + 1 - - def prev(self, position): - position -= 1 - if position < 0: - raise EndOfString - return position + next = AbstractMatchContext.next_indirect + prev = AbstractMatchContext.prev_indirect def next_n(self, position, n, end_position): position += n @@ -397,7 +396,7 @@ self=self, ptr=ptr, ctx=ctx, nextppos=nextppos) result = sre_match(ctx, nextppos, ptr, self.start_marks) try: - ptr = ctx.prev(ptr) + ptr = ctx.prev_indirect(ptr) except EndOfString: ptr = -1 if result is not None: diff --git a/rpython/rlib/rsre/rsre_utf8.py b/rpython/rlib/rsre/rsre_utf8.py --- a/rpython/rlib/rsre/rsre_utf8.py +++ b/rpython/rlib/rsre/rsre_utf8.py @@ -41,6 +41,7 @@ position = rutf8.prev_codepoint_pos(self._utf8, position) assert position >= 0 return position + prev_indirect = prev def next_n(self, position, n, end_position): for i in range(n): diff --git a/rpython/rlib/rsre/test/support.py b/rpython/rlib/rsre/test/support.py --- a/rpython/rlib/rsre/test/support.py +++ b/rpython/rlib/rsre/test/support.py @@ -36,6 +36,7 @@ if position._p == 0: raise EndOfString return Position(position._p - 1) + prev_indirect = prev def next_n(self, position, n, end_position): assert isinstance(position, Position) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit