[pygccxml-commit] SF.net SVN: pygccxml: [1178] pyplusplus_dev/pyplusplus
Brought to you by:
mbaas,
roman_yakovenko
From: <rom...@us...> - 2007-11-27 20:00:31
|
Revision: 1178 http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1178&view=rev Author: roman_yakovenko Date: 2007-11-27 12:00:35 -0800 (Tue, 27 Nov 2007) Log Message: ----------- adding support for class partial name - name without default template arguments STL containers will be generated using partial name Modified Paths: -------------- pyplusplus_dev/pyplusplus/code_creators/calldef.py pyplusplus_dev/pyplusplus/code_creators/calldef_utils.py pyplusplus_dev/pyplusplus/code_creators/class_declaration.py pyplusplus_dev/pyplusplus/code_creators/declaration_based.py pyplusplus_dev/pyplusplus/code_creators/global_variable.py pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py pyplusplus_dev/pyplusplus/code_creators/member_variable.py pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py Modified: pyplusplus_dev/pyplusplus/code_creators/calldef.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -126,7 +126,7 @@ if not self.works_on_instance: #indenting and adding scope code = ''.join( result ) - result = [ '{ //%s' % declarations.full_name( self.declaration ) ] + result = [ '{ //%s' % self.decl_identifier ] result.append( os.linesep * 2 ) result.append( self.indent( code ) ) result.append( os.linesep * 2 ) @@ -158,7 +158,7 @@ return arg_utils.args_declaration() def wrapped_class_identifier( self ): - return algorithm.create_identifier( self, declarations.full_name( self.declaration.parent ) ) + return algorithm.create_identifier( self, self.declaration.parent.partial_decl_string ) def unoverriden_function_body( self ): return 'throw std::logic_error("%s");' % self.declaration.non_overridable_reason @@ -168,7 +168,7 @@ if not self.declaration.exceptions: return '' else: - exceptions = map( lambda exception: algorithm.create_identifier( self, exception.decl_string ) + exceptions = map( lambda exception: algorithm.create_identifier( self, exception.partial_decl_string ) , self.declaration.exceptions ) return ' throw( ' + self.PARAM_SEPARATOR.join( exceptions ) + ' )' else: @@ -192,7 +192,8 @@ return self.def_identifier() def create_function_type_alias_code( self, exported_class_alias=None ): - return 'typedef ' + self.declaration.function_type().create_typedef( self.function_type_alias ) + ';' + f_type = self.declaration.function_type() + return 'typedef ' + f_type.create_typedef( self.function_type_alias, with_defaults=False ) + ';' def create_function_ref_code(self, use_function_alias=False): if use_function_alias: @@ -200,7 +201,7 @@ % ( self.function_type_alias, declarations.full_name( self.declaration ) ) elif self.declaration.create_with_signature: return '(%s)( &%s )' \ - % ( self.declaration.function_type().decl_string + % ( self.declaration.function_type().partial_decl_string , declarations.full_name( self.declaration ) ) else: return '&%s' % declarations.full_name( self.declaration ) @@ -212,7 +213,7 @@ def create_function_type_alias_code( self, exported_class_alias=None ): ftype = self.declaration.function_type() - return 'typedef %s;' % ftype.create_typedef( self.function_type_alias, exported_class_alias ) + return 'typedef %s;' % ftype.create_typedef( self.function_type_alias, exported_class_alias, with_defaults=False ) def create_function_ref_code(self, use_function_alias=False): if use_function_alias: Modified: pyplusplus_dev/pyplusplus/code_creators/calldef_utils.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/calldef_utils.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/calldef_utils.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -57,7 +57,8 @@ if declarations.is_fundamental( arg_type_no_alias ) \ and declarations.is_integral( arg_type_no_alias ) \ and not arg.default_value.startswith( arg_type_no_alias.decl_string ): - result.append( '=(%s)(%s)' % ( arg_type_no_alias.decl_string, arg.default_value ) ) + result.append( '=(%s)(%s)' % ( arg_type_no_alias.partial_decl_string + , arg.default_value ) ) elif self.__should_use_enum_wa( arg ): #Work around for bug/missing functionality in boost.python. #registration order @@ -79,7 +80,7 @@ def args_declaration( self ): args = [] for index, arg in enumerate( self.__args ): - result = arg.type.decl_string + ' ' + self.argument_name(index) + result = arg.type.partial_decl_string + ' ' + self.argument_name(index) if arg.default_value: result += '=%s' % arg.default_value args.append( result ) Modified: pyplusplus_dev/pyplusplus/code_creators/class_declaration.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/class_declaration.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/class_declaration.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -159,9 +159,9 @@ if base_desc.access != declarations.ACCESS_TYPES.PUBLIC: continue if base_creators.has_key( id(base_desc.related_class) ): - bases.append( algorithm.create_identifier( self, base_desc.related_class.decl_string ) ) + bases.append( algorithm.create_identifier( self, base_desc.related_class.partial_decl_string ) ) elif base_desc.related_class.already_exposed: - bases.append( base_desc.related_class.decl_string ) + bases.append( base_desc.related_class.partial_decl_string ) if not bases: return None bases_identifier = algorithm.create_identifier( self, '::boost::python::bases' ) @@ -186,14 +186,14 @@ else: if not self.target_configuration.boost_python_has_wrapper_held_type \ or self.declaration.require_self_reference: - args.append( algorithm.create_identifier( self, self.declaration.decl_string ) ) + args.append( self.decl_identifier ) if self.declaration.require_self_reference: if not held_type: args.append( self.wrapper.full_name ) else: args.append( self.wrapper.full_name ) else: - args.append( algorithm.create_identifier( self, self.declaration.decl_string ) ) + args.append( self.decl_identifier ) bases = self._generate_bases(base_creators) if bases: @@ -308,7 +308,7 @@ code = os.linesep.join( result ) - result = [ '{ //%s' % declarations.full_name( self.declaration ) ] + result = [ '{ //%s' % declarations.full_name( self.declaration, with_defaults=False ) ] result.append( self.indent( code ) ) result.append( '}' ) Modified: pyplusplus_dev/pyplusplus/code_creators/declaration_based.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/declaration_based.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/declaration_based.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -43,7 +43,7 @@ @property def decl_identifier( self ): - return algorithm.create_identifier( self, self.declaration.decl_string ) + return algorithm.create_identifier( self, self.declaration.partial_decl_string ) @property def documentation( self ): Modified: pyplusplus_dev/pyplusplus/code_creators/global_variable.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/global_variable.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/global_variable.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -112,7 +112,8 @@ def _get_wrapper_creator_type(self): return declarations.free_function_type_t.create_decl_string( return_type=self.wrapper_type - , arguments_types=[] ) + , arguments_types=[] + , with_defaults=False) wrapper_creator_type = property( _get_wrapper_creator_type ) def _get_wrapper_creator_name(self): Modified: pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/indexing_suites.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -33,7 +33,7 @@ def _create_suite_declaration( self ): suite_identifier = algorithm.create_identifier( self, self.guess_suite_name() ) - args = [ self.container.decl_string ] + args = [ self.container.partial_decl_string ] try: no_proxy = str( self.configuration.no_proxy ).lower() except: Modified: pyplusplus_dev/pyplusplus/code_creators/member_variable.py =================================================================== --- pyplusplus_dev/pyplusplus/code_creators/member_variable.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/code_creators/member_variable.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -222,7 +222,8 @@ return declarations.free_function_type_t.create_decl_string( return_type=self.declaration.type - , arguments_types=arguments_types ) + , arguments_types=arguments_types + , with_defaults=False) getter_type = property( _get_getter_type ) def _get_setter_full_name(self): @@ -237,7 +238,8 @@ return declarations.free_function_type_t.create_decl_string( return_type=declarations.void_t() - , arguments_types=arguments_types ) + , arguments_types=arguments_types + , with_defaults=False) setter_type = property( _get_setter_type ) def _get_has_setter( self ): @@ -344,7 +346,8 @@ return_type=self.declaration.type , class_decl_string=self.parent.full_name , arguments_types=[] - , has_const=True ) + , has_const=True + , with_defaults=False) getter_type = property( _get_getter_type ) def _get_setter_full_name(self): @@ -356,7 +359,8 @@ return_type=declarations.void_t() , class_decl_string=self.parent.full_name , arguments_types=[self.declaration.type] - , has_const=False ) + , has_const=False + , with_defaults=False) setter_type = property( _get_setter_type ) def _get_has_setter( self ): Modified: pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py =================================================================== --- pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py 2007-11-27 19:57:39 UTC (rev 1177) +++ pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py 2007-11-27 20:00:35 UTC (rev 1178) @@ -78,9 +78,9 @@ and self.aliases[0].name not in container_aliases: self._alias = self.aliases[0].name else: - self._alias = self._generate_valid_name() + self._alias = algorithm.create_valid_name( self.partial_name ) else: - self._alias = self.name + self._alias = self.partial_name return self._alias def _set_alias(self, alias): self._alias = alias This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |