def __merge_user_code(self): for code in self.module_code_tail: self.code_creator.adopt_creator(code_creators.custom_text_t(code)) for code in self.module_code_head: self.code_creator.adopt_creator(code_creators.custom_text_t(code), 0)
def __merge_user_code(self): for code in self.__declarations_code_tail: self.code_creator.add_declaration_code(code, -1) for code in self.__declarations_code_head: self.code_creator.add_declaration_code(code, 0) body = self.code_creator.body for code in self.__registrations_code_tail: body.adopt_creator(code_creators.custom_text_t(code), -1) for code in self.__registrations_code_head: body.adopt_creator(code_creators.custom_text_t(code), 0)
def __merge_user_code( self ): for code in self.__declarations_code_tail: self.code_creator.add_declaration_code( code, -1 ) for code in self.__declarations_code_head: self.code_creator.add_declaration_code( code, 0 ) body = self.code_creator.body for code in self.__registrations_code_tail: body.adopt_creator( code_creators.custom_text_t( code ), -1 ) for code in self.__registrations_code_head: body.adopt_creator( code_creators.custom_text_t( code ), 0 )
def split_creators( self, creators, pattern, function_name, registrator_pos ): """Write non-class creators into a particular .h/.cpp file. :param creators: The code creators that should be written :type creators: list of :class:`code_creators.code_creator_t` :param pattern: Name pattern that is used for constructing the final output file name :type pattern: str :param function_name: "register" function name :type function_name: str :param registrator_pos: The position of the code creator that creates the code to invoke the "register" function. :type registrator_pos: int """ if not creators: return file_pattern = self.extmodule.body.name + pattern file_path = os.path.join( self.directory_path, file_pattern ) header_name = file_path + self.HEADER_EXT self.write_file( header_name , self.create_header( file_pattern, self.create_function_code( function_name ) ) ) self.write_file( file_path + self.SOURCE_EXT , self.create_source( file_pattern, function_name, creators )) for creator in creators: creator.create = lambda: '' self.extmodule.body.adopt_creator( code_creators.custom_text_t( function_name + '();' ) , registrator_pos) self.include_creators.append( code_creators.include_t( header_name ) ) self.split_header_names.append(header_name) self.split_method_names.append(function_name)
def split_creators(self, creators, pattern, function_name, registrator_pos): """Write non-class creators into a particular .h/.cpp file. :param creators: The code creators that should be written :type creators: list of :class:`code_creators.code_creator_t` :param pattern: Name pattern that is used for constructing the final output file name :type pattern: str :param function_name: "register" function name :type function_name: str :param registrator_pos: The position of the code creator that creates the code to invoke the "register" function. :type registrator_pos: int """ if not creators: return file_pattern = self.extmodule.body.name + pattern file_path = os.path.join(self.directory_path, file_pattern) header_name = file_path + self.HEADER_EXT self.write_file( header_name, self.create_header(file_pattern, self.create_function_code(function_name))) self.write_file( file_path + self.SOURCE_EXT, self.create_source(file_pattern, function_name, creators)) for creator in creators: creator.create = lambda: '' self.extmodule.body.adopt_creator( code_creators.custom_text_t(function_name + '();'), registrator_pos) self.include_creators.append(code_creators.include_t(header_name)) self.split_header_names.append(header_name) self.split_method_names.append(function_name)
def create_explanation(cls): msg = '//WARNING: the next line of code will not compile, because "%s" does not have operator== !' msg = msg % cls.indexing_suite.element_type.decl_string return code_creators.custom_text_t(msg, False)
def create_explanation(cls): msg = '//WARNING: the next line of code will not compile, because "%s" does not have operator== !' msg = msg % cls.indexing_suite.element_type.decl_string return code_creators.custom_text_t( msg, False )
def __merge_user_code( self ): for code in self.module_code_tail: self.code_creator.adopt_creator( code_creators.custom_text_t( code ) ) for code in self.module_code_head: self.code_creator.adopt_creator( code_creators.custom_text_t( code ), 0 )