summaryrefslogtreecommitdiff
path: root/utils/internal/zz_parse.py
blob: 2dce3fbdfcfee35f0c9b8949ca54fa5b63f071a8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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'''
    const int * const p;
    '''

    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))