diff options
author | Eli Bendersky <eliben@gmail.com> | 2021-09-13 21:09:29 -0700 |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2021-09-13 21:09:29 -0700 |
commit | bdcc186728124e6a90ed865031f11fba84165c19 (patch) | |
tree | 3f53dfa6cc533198f42edbfff62917cf3affb901 /utils | |
parent | a1b5e46cf3015fe83c1f2a9de1a0e6d2fce76c19 (diff) | |
download | pycparser-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.py | 16 |
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)) |