diff options
Diffstat (limited to 'python/lvalue_cast_post_process.py')
-rwxr-xr-x | python/lvalue_cast_post_process.py | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/python/lvalue_cast_post_process.py b/python/lvalue_cast_post_process.py deleted file mode 100755 index 66129004..00000000 --- a/python/lvalue_cast_post_process.py +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/env python - -import re -import sys - -exp_pattern = re.compile('(.*)=(.*);') -lval_pyobject_pattern = re.compile('\s*\(\((PyObject[ ]?\*)\)([A-Za-z0-9_ ]+)\)') -lval_structcast_pattern = re.compile('\s*\((struct [A-Za-z0-9_]+ \*)\)([A-Za-z0-9_]+)\-\>([A-Za-z0-9_]+)') - -def parse_expression(exp): - exp_match = exp_pattern.match(exp) - if exp_match: - lvalue = exp_match.group(1) - rvalue = exp_match.group(2) - - lval_match = lval_pyobject_pattern.match(lvalue) - - if lval_match: - cast = lval_match.group(1) - lvar = lval_match.group(2) - - return "%s = (%s)(%s);" % (lvar, cast, rvalue) - else: - lval_match = lval_structcast_pattern.match(lvalue) - if lval_match: - cast = lval_match.group(1) - casted_var = lval_match.group(2) - member_var = lval_match.group(3) - - result = "%s->%s = ((%s)%s);" % ( - casted_var, - member_var, - cast, - rvalue) - - return result - - return None - -def main(): - if len(sys.argv) != 2: - print "USAGE: " + sys.argv[0] + " <file name>" - return(-1) - - file = sys.argv[1] - f = open(file) - gcc4fix_filename = file + ".gcc4fix" - outputf = open(gcc4fix_filename, 'w') - - lines = f.readlines() - f.close() - for line in lines: - c = line.count(";") - if c == 0: - outputf.write(line) - continue - - exprs = line.split(';') - line = "" - last = exprs.pop() - for expr in exprs: - expr = expr + ";" - - result = parse_expression(expr) - if result: - line = line + result - else: - line = line + expr - - if (last.strip()!=''): - line = line + last - else: - line = line + "\n" - - outputf.write(line) - - outputf.close() - -if __name__ == "__main__": - sys.exit(main()) |