import pprint
import re
import sys
data = sys.stdin.read()
exec (data.replace('(', 'dict(')) # use only for input that you control e.g., for unit-testing
pprint.pprint(abc)
def repl_flat(m):
return "\n".join("<{0}>{1}</{0}>".format(*map(str.strip, s.partition('=')[::2]))
for s in m.group(1).split(','))
def eval_nested(expr):
val, n = re.subn(r"\(([^)(]+)\)", repl_flat, expr)
return val if n == 0 else eval_nested(val)
print eval_nested("(%s)" % (data,))
aW1wb3J0IHBwcmludAppbXBvcnQgcmUKaW1wb3J0IHN5cwoKZGF0YSA9IHN5cy5zdGRpbi5yZWFkKCkKCmV4ZWMgKGRhdGEucmVwbGFjZSgnKCcsICdkaWN0KCcpKSAjIHVzZSBvbmx5IGZvciBpbnB1dCB0aGF0IHlvdSBjb250cm9sIGUuZy4sIGZvciB1bml0LXRlc3RpbmcKcHByaW50LnBwcmludChhYmMpCgpkZWYgcmVwbF9mbGF0KG0pOgogICAgcmV0dXJuICJcbiIuam9pbigiPHswfT57MX08L3swfT4iLmZvcm1hdCgqbWFwKHN0ci5zdHJpcCwgcy5wYXJ0aXRpb24oJz0nKVs6OjJdKSkKICAgICAgICAgICAgICAgICAgICAgZm9yIHMgaW4gbS5ncm91cCgxKS5zcGxpdCgnLCcpKQoKZGVmIGV2YWxfbmVzdGVkKGV4cHIpOgogICAgdmFsLCBuID0gcmUuc3VibihyIlwoKFteKShdKylcKSIsIHJlcGxfZmxhdCwgZXhwcikKICAgIHJldHVybiB2YWwgaWYgbiA9PSAwIGVsc2UgZXZhbF9uZXN0ZWQodmFsKQoKcHJpbnQgZXZhbF9uZXN0ZWQoIiglcykiICUgKGRhdGEsKSk=
YWJjID0gKCAgCiAgICAgICAgYmNkID0gKGVmZyA9IDAsIGdociA9IDUsIGxtbiA9IDEwKSwgCiAgICAgICAgZ2hkID0gNSwgCiAgICAgICAgemRlID0gKGRmcyA9IDEwLCBmZ2UgPTIwLCBkZmcgPSAoc2RmID0gMywgZXJ0ID0gNSksIGp1aCA9IDApKQo=
abc = (
bcd = (efg = 0, ghr = 5, lmn = 10),
ghd = 5,
zde = (dfs = 10, fge =20, dfg = (sdf = 3, ert = 5), juh = 0))
{'bcd': {'efg': 0, 'ghr': 5, 'lmn': 10},
'ghd': 5,
'zde': {'dfg': {'ert': 5, 'sdf': 3}, 'dfs': 10, 'fge': 20, 'juh': 0}}
<abc><bcd><efg>0</efg>
<ghr>5</ghr>
<lmn>10</lmn></bcd>
<ghd>5</ghd>
<zde><dfs>10</dfs>
<fge>20</fge>
<dfg><sdf>3</sdf>
<ert>5</ert></dfg>
<juh>0</juh></zde></abc>