From dd57095332053e2ee9f42e53256978017db94a6f Mon Sep 17 00:00:00 2001 From: heck Date: Tue, 22 Dec 2020 01:51:17 +0100 Subject: [PATCH] no forward decls returned by extract_enum / extract_struct --- gen/gen_cid/generate_cid.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/gen/gen_cid/generate_cid.py b/gen/gen_cid/generate_cid.py index e1004bf..2aa1fdc 100755 --- a/gen/gen_cid/generate_cid.py +++ b/gen/gen_cid/generate_cid.py @@ -149,6 +149,7 @@ def extract_enum_decl(ast, name): def filter(data): if (data["kind"] == "CursorKind.ENUM_DECL" + and data["is_definition"] == True # no forward decl and data["type"] == name ): return True @@ -167,6 +168,7 @@ def extract_struct_decl(ast, name): def filter(data): if (data["kind"] == "CursorKind.STRUCT_DECL" + and data["is_definition"] == True # no forward decl and data["type"] == name ): return True @@ -236,11 +238,13 @@ def remove_typedefs_of_primitive(types): return types_struct_enum -def parse(libclang_path, header_filename, function_names, var_names): +def parse(libclang_path, header_filename, function_names, var_names, debug_ast=False): astp = ast_parser.ASTParser(libclang_path) # header = create_header("/Users/heck/local-default/include/pEp/pEpEngine.h", out_dir="./") header = create_header(header_filename) header["ast"] = astp.parse(header["path"], follow_includes=True) + if debug_ast: + utils.write_json(header["ast"], header["out_dir"] + "/" + header["filename"] + ".ast.json") # CDL cid = {"functions": "", "vars": "",