From 45b328c442e516ef78b38957d8c0d72c2d2c6d72 Mon Sep 17 00:00:00 2001 From: vijaygopalchilkuri Date: Tue, 9 Jul 2013 18:06:16 +0200 Subject: [PATCH] Bug in touch of multiple variables --- src/parsed_text.py | 6 +++--- src/preprocessed_text.py | 15 ++++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/parsed_text.py b/src/parsed_text.py index 6338061..2c07ad1 100644 --- a/src/parsed_text.py +++ b/src/parsed_text.py @@ -81,9 +81,9 @@ def check_touch(line,vars,main_vars): return [main_var]+x.others all_others = make_single(flatten( map(fun,main_vars) )) all_others.sort() - if len(all_others) == len(vars): - vars.sort() - for x,y in zip(vars,all_others): + vars.sort() + print vars + for x,y in zip(vars,all_others): if x != y: message = "The following entities should be touched:\n" message = "\n".join([message]+map(lambda x: "- %s"%(x,),all_others)) diff --git a/src/preprocessed_text.py b/src/preprocessed_text.py index 7e7ae4a..5d47938 100644 --- a/src/preprocessed_text.py +++ b/src/preprocessed_text.py @@ -355,15 +355,24 @@ def add_operators(text): for line in text: buffer = line.text if "+=" in buffer: - if buffer.lstrip().startswith("if "): + if "if" in buffer: re_incr = re.compile(r"(.*)(\))(\s*)(.*)(\+=)(.*$)",re.S) line.text = re.sub(re_incr,r'\1\2\4=\4+(\6)', buffer) else: line.text = re.sub(re_incr,r'\1\2=\2+(\4)', buffer) elif "-=" in buffer: - line.text = re.sub(re_decr,r'\1\2=\2-(\4)', buffer) + if "if" in buffer: + re_decr = re.compile(r"(.*)(\))(\s*)(.*)(\-=)(.*$)",re.S) + line.text = re.sub(re_decr,r'\1\2\4=\4-(\6)', buffer) + else: + line.text = re.sub(re_decr,r'\1\2=\2-(\4)', buffer) +# line.text = re.sub(re_decr,r'\1\2=\2-(\4)', buffer) elif "*=" in buffer: - line.text = re.sub(re_mult,r'\1\2=\2*(\4)', buffer) + if "if" in buffer: + re_mult = re.compile(r"(.*)(\))(\s*)(.*)(\*=)(.*$)",re.S) + line.text = re.sub(re_mult,r'\1\2\4=\4*(\6)', buffer) + else: + line.text = re.sub(re_mult,r'\1\2=\2*(\4)', buffer) result.append(line) return result