| #------------------------------------------------------------------------------ |
| # pycparser: c-to-c.py |
| # |
| # Example of using pycparser.c_generator, serving as a simplistic translator |
| # from C to AST and back to C. |
| # |
| # Eli Bendersky [https://eli.thegreenplace.net/] |
| # License: BSD |
| #------------------------------------------------------------------------------ |
| from __future__ import print_function |
| import sys |
| |
| # This is not required if you've installed pycparser into |
| # your site-packages/ with setup.py |
| sys.path.extend(['.', '..']) |
| |
| from pycparser import parse_file, c_generator |
| |
| |
| def translate_to_c(filename): |
| """ Simply use the c_generator module to emit a parsed AST. |
| """ |
| ast = parse_file(filename, use_cpp=True) |
| generator = c_generator.CGenerator() |
| print(generator.visit(ast)) |
| |
| |
| if __name__ == "__main__": |
| if len(sys.argv) > 1: |
| translate_to_c(sys.argv[1]) |
| else: |
| print("Please provide a filename as argument") |