Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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