From 9228c72911b3e68fc1f63f2c4a7115d1962ac252 Mon Sep 17 00:00:00 2001 From: khuxkm fbexl Date: Wed, 14 Nov 2018 18:32:28 -0500 Subject: [PATCH] Add utility library for line scanning --- util.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 util.py diff --git a/util.py b/util.py new file mode 100644 index 0000000..9d8f679 --- /dev/null +++ b/util.py @@ -0,0 +1,26 @@ +def raiseerror(cls,*args): + raise cls(*args) + +import re + +def matchinglines(lines,regex): + ret = [] + for i in range(len(lines)): + match = re.match(regex,lines[i]) + if match is not None: + ret.append(i) + return ret + +def walkback(lines,start,regex): + possible_lines = matchinglines(lines,regex) + possible_lines = [x for x in possible_lines if x<=start] + possible_lines.sort() + if len(possible_lines)>=1: + return possible_lines[-1] + +def walkup(lines,start,regex): + possible_lines = matchinglines(lines,regex) + possible_lines = [x for x in possible_lines if x>=start] + possible_lines.sort() + if len(possible_lines)>=1: + return possible_lines[0]