#+1+a = 2
OPS = ["+", "-"]
def invertOP(sign):
if sign == "+":
return "-"
elif sign == "-":
return "+"
def solve(equa):
equa = equa.split("=")
if len(equa) != 2:
print "Please enter a valid equation"
return 0
#"1 + a" and " 2"
LS = equa[0].split() #"1","+","a"
RS = equa[1].split() #"2"
if LS[0] not in OPS:
LS.insert(0, "+")
if RS[0] not in OPS:
RS.insert(0, "+")
newLS = []
newRS = []
i = 0
while i < len(LS) :
if LS[i] in OPS:
try:
int(LS[i+1])
newLS.append(LS[i])
newLS.append(LS[i+1])
except:
RS.append(invertOP(LS[i]))
RS.append(LS[i+1])
i += 1
i = 0
while i < len(RS):
if RS[i] in OPS:
try:
int(RS[i+1])
newLS.append(invertOP(RS[i]))
newLS.append(RS[i+1])
except:
newRS.append(RS[i])
newRS.append(RS[i+1])
i += 1
LSeq = ""
RSeq = ""
for i in newLS:
LSeq += i + " "
for i in newRS:
RSeq += i
exec("LSeq = " + LSeq)
print str(LSeq) + "=" + RSeq
while 1:
inp = raw_input("Please enter equation to solve. To quit type q then enter\n")
if inp == "q":
break
else:
solve(inp)