diff options
Diffstat (limited to 'examples/cairo_snippets/c_to_python.py')
-rwxr-xr-x | examples/cairo_snippets/c_to_python.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/examples/cairo_snippets/c_to_python.py b/examples/cairo_snippets/c_to_python.py new file mode 100755 index 0000000..c01ebe5 --- /dev/null +++ b/examples/cairo_snippets/c_to_python.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +""" +translate C <snippet>.cairo to Python <snippet>.py + +; -> '' +cairo_ -> cr. +'(cr, ' -> ( but not snippet_normalize (cr, width, height) +(cr) -> () +/* -> #/* +CAIRO_ -> cairo. +""" + +import sys + + +if len(sys.argv) != 2 or not sys.argv[1].endswith('.cairo'): + raise SystemExit('usage: c_to_python.py <file>.cairo') + +filename_in = sys.argv[1] +filename_out = filename_in.replace('.cairo', '.py') + +file_in = file(filename_in) +file_out = file(filename_out, 'w') + +for line in file_in: + line = line.replace(';', '') # should be ';' and whitespace to EOL only -> \n + if not line.startswith('snippet_'): + line = line.replace('cairo_', 'cr.') + line = line.replace('(cr, ', '(') + line = line.replace('(cr)', '()') + line = line.replace('/*', '#/*') + line = line.replace(' ', '') + line = line.replace('CAIRO_', 'cairo.') + + file_out.write (line) |