swh:1:snp:f06d4d1f1c56d17a2f00ca108b0c7636a874db0d
Tip revision: 2075873964476cccac0722f071bfaf1252c3c2ac authored by François Dupressoir on 10 May 2022, 11:31:18 UTC
Birthday refinements
Birthday refinements
Tip revision: 2075873
strip-comments
#! /usr/bin/env python3
# --------------------------------------------------------------------
import sys, os, re, StringIO as sio
# --------------------------------------------------------------------
def _main():
contents = sys.stdin.read()
output = sio.StringIO()
depth = 0
while contents:
m = re.search(r'^(.*?)(\(\*|\*\))', contents, re.S)
if m is None: break
if depth == 0:
output.write(m.group(1))
if m.group(2) == '(*':
depth += 1
else:
if depth > 0:
depth -= 1
else:
output.write(m.group(2))
contents = contents[len(m.group(0)):]
if depth == 0:
output.write(contents)
output = [x.rstrip() for x in output.getvalue().splitlines()]
while output and not output[0]:
output.pop(0)
while output and not output[-1]:
output.pop()
i = 0
while i < len(output):
if not output[i]:
while i+1 < len(output) and not output[i+1]:
output.pop(i+1)
i += 1
print('\n'.join(output) + '\n')
# --------------------------------------------------------------------
if __name__ == '__main__':
_main()