summaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorEli Bendersky <eliben@gmail.com>2021-09-13 21:09:29 -0700
committerEli Bendersky <eliben@gmail.com>2021-09-13 21:09:29 -0700
commitbdcc186728124e6a90ed865031f11fba84165c19 (patch)
tree3f53dfa6cc533198f42edbfff62917cf3affb901 /utils
parenta1b5e46cf3015fe83c1f2a9de1a0e6d2fce76c19 (diff)
downloadpycparser-bdcc186728124e6a90ed865031f11fba84165c19.tar.gz
A different, more robust appoach to fix _Atomic specifiers.
Now the ASTs produced are more correct, and more complex cases work like nested _Atomic(...) specifiers.
Diffstat (limited to 'utils')
-rw-r--r--utils/internal/zz_parse.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/utils/internal/zz_parse.py b/utils/internal/zz_parse.py
index 2dce3fb..8f74daf 100644
--- a/utils/internal/zz_parse.py
+++ b/utils/internal/zz_parse.py
@@ -7,15 +7,19 @@ from pycparser import c_parser, c_generator, c_ast, parse_file
if __name__ == "__main__":
parser = c_parser.CParser()
code = r'''
- const int * const p;
+ const int ci;
+ const int* pci;
+ _Atomic(int) ai;
+ _Atomic(int*) pai;
+ _Atomic(_Atomic(int)*) ppai;
'''
print(code)
ast = parser.parse(code)
ast.show(attrnames=True, nodenames=True)
- print(ast.ext[0].__slots__)
- print(dir(ast.ext[0]))
+ #print(ast.ext[0].__slots__)
+ #print(dir(ast.ext[0]))
- print("==== From C generator:")
- generator = c_generator.CGenerator()
- print(generator.visit(ast))
+ #print("==== From C generator:")
+ #generator = c_generator.CGenerator()
+ #print(generator.visit(ast))