aboutsummaryrefslogtreecommitdiff
path: root/utils/internal/zz_parse.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils/internal/zz_parse.py')
-rw-r--r--utils/internal/zz_parse.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/utils/internal/zz_parse.py b/utils/internal/zz_parse.py
new file mode 100644
index 0000000..39978d1
--- /dev/null
+++ b/utils/internal/zz_parse.py
@@ -0,0 +1,21 @@
+from __future__ import print_function
+
+import sys
+from pycparser import c_parser, c_generator, c_ast, parse_file
+
+
+if __name__ == "__main__":
+ parser = c_parser.CParser()
+ code = r'''
+ void* ptr = (int[ ]){0};
+ '''
+
+ print(code)
+ ast = parser.parse(code)
+ ast.show(attrnames=True, nodenames=True)
+ print(ast.ext[0].__slots__)
+ print(dir(ast.ext[0]))
+
+ print("==== From C generator:")
+ generator = c_generator.CGenerator()
+ print(generator.visit(ast))