[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.
|