blob: 39978d1e77017febd5341e0d3fb03e31521c6752 [file] [log] [blame]
Eli Bendersky0f8e2312017-02-05 09:37:29 -08001from __future__ import print_function
Eli Bendersky8333e6c2015-04-20 05:41:32 -07002
Eli Bendersky0f8e2312017-02-05 09:37:29 -08003import sys
4from pycparser import c_parser, c_generator, c_ast, parse_file
Eli Bendersky8333e6c2015-04-20 05:41:32 -07005
6
7if __name__ == "__main__":
Eli Bendersky8333e6c2015-04-20 05:41:32 -07008 parser = c_parser.CParser()
Eli Bendersky43375bf2015-04-20 07:19:09 -07009 code = r'''
Eli Bendersky0f8e2312017-02-05 09:37:29 -080010 void* ptr = (int[ ]){0};
Eli Bendersky43375bf2015-04-20 07:19:09 -070011 '''
Eli Bendersky8333e6c2015-04-20 05:41:32 -070012
Eli Bendersky43375bf2015-04-20 07:19:09 -070013 print(code)
Eli Bendersky8333e6c2015-04-20 05:41:32 -070014 ast = parser.parse(code)
15 ast.show(attrnames=True, nodenames=True)
Eli Benderskyc36e7fb2017-01-31 07:01:16 -080016 print(ast.ext[0].__slots__)
17 print(dir(ast.ext[0]))
Eli Bendersky0f8e2312017-02-05 09:37:29 -080018
19 print("==== From C generator:")
20 generator = c_generator.CGenerator()
21 print(generator.visit(ast))