|
|
@ -174,12 +174,20 @@ def _extract_typedef_decl(ast, name): |
|
|
|
res = utils.recursive_query(ast, filter) |
|
|
|
if res: |
|
|
|
ress = res.pop() |
|
|
|
if ress["utypekind"] == "Typedef" or ress["utypekind"] == "Elaborated": |
|
|
|
ret = _extract_enum_decl(ast, ress["utype"]) |
|
|
|
if (ress["utypekind"] == "Typedef" |
|
|
|
or ress["utypekind"] == "Elaborated" |
|
|
|
or ress["utypekind"] == "ConstantArray" |
|
|
|
or ress["utypekind"] == "Pointer"): |
|
|
|
|
|
|
|
type = ress["utype"] |
|
|
|
if (ress["utypekind"] == "ConstantArray" or ress["utypekind"] == "Pointer"): |
|
|
|
type = ress["utype"].split(' ')[0] |
|
|
|
|
|
|
|
ret = _extract_enum_decl(ast, type) |
|
|
|
if not ret: |
|
|
|
ret = _extract_struct_decl(ast, ress["utype"]) |
|
|
|
ret = _extract_struct_decl(ast, type) |
|
|
|
if not ret: |
|
|
|
ret = _extract_typedef_decl(ast, ress["utype"]) |
|
|
|
ret = _extract_typedef_decl(ast, type) |
|
|
|
else: |
|
|
|
ret = ress |
|
|
|
|
|
|
|