D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
proc
/
self
/
root
/
usr
/
share
/
doc
/
python3-pycparser
/
examples
/
Filename :
c-to-c.py
back
Copy
#------------------------------------------------------------------------------ # pycparser: c-to-c.py # # Example of using pycparser.c_generator, serving as a simplistic translator # from C to AST and back to C. # # Copyright (C) 2008-2015, Eli Bendersky # License: BSD #------------------------------------------------------------------------------ from __future__ import print_function import sys from pycparser import parse_file, c_parser, 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)) def _zz_test_translate(): # internal use src = r''' void f(char * restrict joe){} int main(void) { unsigned int long k = 4; int p = - - k; return 0; } ''' parser = c_parser.CParser() ast = parser.parse(src) ast.show() generator = c_generator.CGenerator() print(generator.visit(ast)) # tracing the generator for debugging #~ import trace #~ tr = trace.Trace(countcallers=1) #~ tr.runfunc(generator.visit, ast) #~ tr.results().write_results() #------------------------------------------------------------------------------ if __name__ == "__main__": #_zz_test_translate() if len(sys.argv) > 1: translate_to_c(sys.argv[1]) else: print("Please provide a filename as argument")
Name
Size
Last Modified
Owner
Permissions
Actions
c_files
Dir
July 28 2023 2:56:41
root
0755
c-to-c.py
1.419
KB
November 13 2019 2:57:05
root
0644
cdecl.py
3.048
KB
November 13 2019 2:57:05
root
0644
explore_ast.py
5.27
KB
November 13 2019 2:57:05
root
0644
func_calls.py
1.084
KB
November 13 2019 2:57:05
root
0644
func_defs.py
1.081
KB
November 13 2019 2:57:05
root
0644
rewrite_ast.py
0.585
KB
June 10 2015 3:00:55
root
0644
using_cpp_libc.py
0.727
KB
November 13 2019 2:57:05
root
0644
using_gcc_E_libc.py
0.778
KB
November 13 2019 2:57:05
root
0644
2017 © D7net | D704T team