OILS / devtools / types-old / refactor.py View on Github | oilshell.org

47 lines, 26 significant
1#!/usr/bin/env python2
2"""
3refactor.py
4"""
5from __future__ import print_function
6
7import re
8import sys
9
10
11COND_RE = re.compile(r'''
12^
13(?P<begin>.*?)
14(?P<var>\w+)\.tag
15\s*
16==
17\s*
18(?P<sum>[\w_]+)_e\.(?P<variant>[\w_]+)
19(?P<end>.*)
20$
21''', re.VERBOSE)
22
23
24def main(argv):
25 action = argv[1]
26 if action == 'sub':
27 for line in sys.stdin:
28 m = COND_RE.match(line)
29 if m:
30 print('%sisinstance(%s, %s__%s)%s' % (
31 m.group('begin'),
32 m.group('var'),
33 m.group('sum'),
34 m.group('variant'),
35 m.group('end')
36 ))
37 else:
38 sys.stdout.write(line)
39
40
41
42if __name__ == '__main__':
43 try:
44 main(sys.argv)
45 except RuntimeError as e:
46 print('FATAL: %s' % e, file=sys.stderr)
47 sys.exit(1)