def get_detail_file_impl(data, scope, interface_scope): for entry in interface_scope.content: if cpp.is_namespace(entry): scope.add( cpp.Namespace(entry.name) ) get_detail_file_impl(data,scope,entry) scope.close() elif cpp.is_class(entry) or cpp.is_struct(entry): scope.add(cpp.Namespace(entry.name + data.detail_extension)) add_details(data, scope, entry) scope.close()
def get_interface_file_impl(data, scope, interface_scope): for entry in interface_scope.content: if cpp.is_namespace(entry): scope.add(cpp.Namespace(entry.name)) get_interface_file_impl(data, scope, entry) scope.close() elif (cpp.is_class(entry) or cpp.is_struct(entry)) and not cpp.is_forward_declaration(entry): add_interface(data, scope, entry, entry.name + data.detail_extension) else: scope.add(entry)
def add_interface(data, scope, class_scope, detail_namespace): if cpp.is_class(class_scope): scope.add(cpp.Class(class_scope.get_name(), class_scope.get_tokens())) else: scope.add(cpp.Struct(class_scope.get_name(), class_scope.get_tokens())) add_default_interface(data, scope, class_scope, detail_namespace) class_scope.visit(HandleFunctionExtractor(data, scope)) add_casts(data, scope, class_scope.get_name(), detail_namespace) add_private_section(data, scope, detail_namespace, class_scope.get_name()) scope.close()
def add_interface(data, scope, class_scope, detail_namespace): if cpp.is_class(class_scope): scope.add(cpp.Class(class_scope.get_name(), class_scope.get_tokens())) else: scope.add(cpp.Struct(class_scope.get_name(), class_scope.get_tokens())) add_default_interface(data, scope, class_scope, detail_namespace) class_scope.visit(WrapperFunctionExtractor(data, class_scope.get_name(), scope)) add_casts(data, scope, class_scope.get_name(), detail_namespace) add_private_section(data, scope, detail_namespace, class_scope.get_name()) scope.close()
def add_comments(scope, comments): new_content = [] for entry in scope.content: if cpp.is_namespace(entry): add_comment(new_content, 'namespace ' + entry.name, comments) add_comments(entry, comments) elif cpp.is_class(entry) or cpp.is_struct(entry): add_comment(new_content, entry.type + ' ' + entry.name, comments) add_comments(entry, comments) elif entry.type in [cpp.FUNCTION, cpp.CONSTRUCTOR, cpp.DESTRUCTOR, cpp.FUNCTION_TEMPLATE, cpp.ASSIGNMENT_OPERATOR]: add_comment(new_content, entry.get_declaration(), comments) elif entry.type == cpp.ALIAS: add_comment(new_content, util.concat(entry.tokens, ' '), comments) new_content.append(entry) scope.content = new_content