10 parts = oursum.split()
15 for index,c in enumerate(part):
19 new_parts.extend(parse_sum(part[index:]))
23 for index,c in enumerate(part):
26 new_parts.extend(parse_sum(part[0:index]))
29 elif part in ['+','*']:
30 new_parts.append(part)
32 new_parts.append(int(part))
42 # first do all bracketed parts
44 if in_brackets > 0 and part != ")" and part != "(":
45 bracketed.append(part)
47 if in_brackets > 0 and part == ")":
49 bracketed.append(part)
51 part=do_sum(bracketed[1:-1])
57 bracketed.append(part)
59 new_parts.append(part)
61 while "+" in new_parts:
62 plus_index = new_parts.index("+")
63 left=new_parts[plus_index-1]
64 right=new_parts[plus_index+1]
65 new_new_parts=new_parts[:plus_index-1]
66 new_new_parts.append(left+right)
67 new_new_parts.extend(new_parts[plus_index+2:])
68 new_parts=new_new_parts
70 cur_total=new_parts[0]
72 # now we should just be able to go through new_parts left to right
73 for part in new_parts[1:]:
83 for line in [line.rstrip() for line in open(filename, "r")]:
84 answer=do_sum(parse_sum(line))
87 print("Part 2 Total:", total)