| import argparse |
| import subprocess |
| import os |
| import re |
| |
| if __name__== '__main__': |
| parser = argparse.ArgumentParser() |
| parser.add_argument('input') |
| parser.add_argument('output') |
| |
| args = parser.parse_known_args() |
| print (args[0].output) |
| |
| cpp = args[1] |
| ret = subprocess.run(cpp + [args[0].input], stdout=subprocess.PIPE) |
| |
| stdout = ret.stdout.decode('utf8') |
| |
| with open(args[0].output, 'w') as out: |
| write = True |
| for l in stdout.split('\n'): |
| l = l.strip('\r') |
| if l.startswith('CUT_OUT_BEGIN'): |
| write = False |
| |
| if write and l: |
| stripped = re.sub('^\s+', '', l) |
| stripped = re.sub('\s*,\s*', ',', stripped) |
| if not stripped.isspace() and stripped: |
| out.write('%s\n' % stripped) |
| |
| if l.startswith('CUT_OUT_END'): |
| write = True |