def add_typedef(c): json_ref_data.append({ "file": clang_utils.filenameFromClangChild(c.cursor), "type": "typedef", "folder": c.data['folder'], "name": c.data['name'], })
def parse_file_child(child, of_root): if child.spelling.startswith("of"): offilename = clang_utils.filenameFromClangChild(child) if clang_utils.is_class(child): i = 0 for c in child.get_children(): if clang_utils.is_variable(c) or clang_utils.is_method(c) or c.kind == CursorKind.CXX_BASE_SPECIFIER: i += 1 if i > 0 and child.spelling not in visited_classes: new_class = DocClass(child, of_root) add_class(new_class.serialize(), offilename, new_class.folder) visited_classes.append(child.spelling) # clang_reference.add_class(new_class) elif clang_utils.is_function(child): if child.spelling not in visited_function and offilename != "ofMain": visited_function.append(child.spelling) new_func = DocFunction(child, None, of_root) add_function(new_func.serialize(), offilename, new_func.folder) # clang_reference.add_function(new_func) elif clang_utils.is_enum(child): if child.spelling not in visited_enums: new_enum = DocEnum(child, of_root) add_enum(new_enum.serialize(), offilename, new_enum.folder) visited_enums.append(child.spelling) elif clang_utils.is_typedef(child): if child.spelling not in visited_typedefs: add_typedef(DocTypedef(child, of_root).serialize(), offilename) visited_typedefs.append(child.spelling)
def add_variable(var): json_ref_data.append({ "file": clang_utils.filenameFromClangChild(var.cursor), "type": "variable", "name": var.data['name'], "folder": var.data['folder'], "class": var.parentclass.data['name'] if var.parentclass else None })
def add_function(func): json_ref_data.append({ "file": clang_utils.filenameFromClangChild(func.cursor), "type": "function", "name": func.data['name'], "folder": func.data['folder'], "class": func.parentclass.data['name'] if func.parentclass else None })
def add_enum(c): file = clang_utils.filenameFromClangChild(c.cursor) json_ref_data.append({ "file": file, "type": "enum", "folder": c.data['folder'], "name": c.data['name'], }) for o in c.data['options']: json_ref_data.append({ "file": file, "type": "enum_option", "folder": c.data['folder'], "name": o['name'], "enum": c.data['name'] })