pygccxml-commit Mailing List for C++ Python language bindings (Page 27)
Brought to you by:
mbaas,
roman_yakovenko
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
(190) |
Apr
(166) |
May
(170) |
Jun
(75) |
Jul
(105) |
Aug
(131) |
Sep
(99) |
Oct
(84) |
Nov
(67) |
Dec
(54) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(66) |
Feb
(49) |
Mar
(25) |
Apr
(62) |
May
(21) |
Jun
(34) |
Jul
(9) |
Aug
(21) |
Sep
(5) |
Oct
|
Nov
(63) |
Dec
(34) |
| 2008 |
Jan
(10) |
Feb
(42) |
Mar
(26) |
Apr
(25) |
May
(6) |
Jun
(40) |
Jul
(18) |
Aug
(29) |
Sep
(6) |
Oct
(32) |
Nov
(14) |
Dec
(56) |
| 2009 |
Jan
(127) |
Feb
(52) |
Mar
(2) |
Apr
(10) |
May
(29) |
Jun
(3) |
Jul
|
Aug
(16) |
Sep
(4) |
Oct
(11) |
Nov
(8) |
Dec
(14) |
| 2010 |
Jan
(31) |
Feb
(1) |
Mar
(7) |
Apr
(9) |
May
(1) |
Jun
|
Jul
(2) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
(8) |
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <rom...@us...> - 2007-12-24 19:19:40
|
Revision: 1209
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1209&view=rev
Author: roman_yakovenko
Date: 2007-12-24 11:17:09 -0800 (Mon, 24 Dec 2007)
Log Message:
-----------
switching from "name" to "partial_name" for better code generation
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/code_creators/calldef.py
pyplusplus_dev/pyplusplus/code_creators/class_declaration.py
pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py
pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py
pyplusplus_dev/unittests/ogre_generate_tester.py
Modified: pyplusplus_dev/pyplusplus/code_creators/calldef.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-12-24 15:34:46 UTC (rev 1208)
+++ pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-12-24 19:17:09 UTC (rev 1209)
@@ -300,11 +300,16 @@
result = []
ftype = self.declaration.function_type()
- result.append( 'typedef %s;' % ftype.create_typedef( self.function_type_alias, exported_class_alias ) )
+ result.append( 'typedef %s;'
+ % ftype.create_typedef( self.function_type_alias
+ , exported_class_alias
+ , with_defaults=False) )
if self.wrapper:
result.append( os.linesep )
ftype = self.wrapper.function_type()
- result.append( 'typedef %s;' % ftype.create_typedef( self.default_function_type_alias ) )
+ result.append( 'typedef %s;'
+ % ftype.create_typedef( self.default_function_type_alias
+ , with_defaults=False) )
return ''.join( result )
def create_doc(self):
@@ -362,7 +367,7 @@
return template % {
'virtual' : virtual
- , 'return_type' : self.declaration.return_type.decl_string
+ , 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : name
, 'args' : self.args_declaration()
, 'constness' : constness
@@ -386,7 +391,7 @@
return template % {
'override' : self.override_identifier()
- , 'name' : self.declaration.name
+ , 'name' : self.declaration.partial_name
, 'alias' : self.declaration.alias
, 'return_' : return_
, 'args' : self.function_call_args()
@@ -394,7 +399,7 @@
}
def create_default_body(self):
- function_call = declarations.call_invocation.join( self.declaration.name
+ function_call = declarations.call_invocation.join( self.declaration.partial_name
, [ self.function_call_args() ] )
body = self.wrapped_class_identifier() + '::' + function_call + ';'
if not declarations.is_void( self.declaration.return_type ):
@@ -406,7 +411,7 @@
def create_function(self):
- answer = [ self.create_declaration(self.declaration.name) + '{' ]
+ answer = [ self.create_declaration(self.declaration.partial_name) + '{' ]
answer.append( self.indent( self.create_virtual_body() ) )
answer.append( '}' )
return os.linesep.join( answer )
@@ -430,7 +435,7 @@
def create_function_type_alias_code( self, exported_class_alias=None ):
ftype = self.wrapper.function_type()
- return 'typedef ' + ftype.create_typedef( self.function_type_alias ) + ';'
+ return 'typedef ' + ftype.create_typedef( self.function_type_alias, with_defaults=False ) + ';'
def create_function_ref_code(self, use_function_alias=False):
if use_function_alias:
@@ -447,7 +452,7 @@
calldef_wrapper_t.__init__( self, function=function )
def full_name(self):
- return '::'.join( [self.parent.full_name, self.declaration.name] )
+ return '::'.join( [self.parent.full_name, self.declaration.partial_name] )
def function_type(self):
return declarations.member_function_type_t(
@@ -464,7 +469,7 @@
constness = ' const '
return template % {
- 'return_type' : self.declaration.return_type.decl_string
+ 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : name
, 'args' : self.args_declaration()
, 'constness' : constness
@@ -479,14 +484,14 @@
return_ = 'return '
return tmpl % {
- 'name' : self.declaration.name
+ 'name' : self.declaration.partial_name
, 'return_' : return_
, 'args' : self.function_call_args()
, 'wrapped_class' : self.wrapped_class_identifier()
}
def create_function(self):
- answer = [ self.create_declaration(self.declaration.name) + '{' ]
+ answer = [ self.create_declaration(self.declaration.partial_name) + '{' ]
answer.append( self.indent( self.create_body() ) )
answer.append( '}' )
return os.linesep.join( answer )
@@ -502,7 +507,7 @@
def create_function_type_alias_code( self, exported_class_alias=None ):
ftype = self.wrapper.function_type()
- return 'typedef %s;' % ftype.create_typedef( self.function_type_alias )
+ return 'typedef %s;' % ftype.create_typedef( self.function_type_alias, with_defaults=False )
def create_function_ref_code(self, use_function_alias=False):
if use_function_alias:
@@ -510,7 +515,7 @@
% ( self.function_type_alias, self.wrapper.full_name() )
elif self.declaration.create_with_signature:
return '(%s)(&%s)' \
- % ( self.wrapper.function_type().decl_string, self.wrapper.full_name() )
+ % ( self.wrapper.function_type().partial_decl_string, self.wrapper.full_name() )
else:
return '&%s' % self.wrapper.full_name()
@@ -530,7 +535,7 @@
template = 'static %(return_type)s %(name)s( %(args)s )%(throw)s'
return template % {
- 'return_type' : self.declaration.return_type.decl_string
+ 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : name
, 'args' : self.args_declaration()
, 'throw' : self.throw_specifier_code()
@@ -565,7 +570,7 @@
def create_function_type_alias_code( self, exported_class_alias=None ):
ftype = self.wrapper.function_type()
- return 'typedef %s;' % ftype.create_typedef( self.function_type_alias )
+ return 'typedef %s;' % ftype.create_typedef( self.function_type_alias, with_defaults=False )
def create_function_ref_code(self, use_function_alias=False):
if use_function_alias:
@@ -573,7 +578,7 @@
% ( self.function_type_alias, self.wrapper.full_name() )
elif self.declaration.create_with_signature:
return '(%s)(&%s)' \
- % ( self.wrapper.function_type().decl_string, self.wrapper.full_name() )
+ % ( self.wrapper.function_type().partial_decl_string, self.wrapper.full_name() )
else:
return '&%s' % self.wrapper.full_name()
@@ -599,7 +604,7 @@
constness = ' const '
return template % {
- 'return_type' : self.declaration.return_type.decl_string
+ 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : name
, 'args' : self.args_declaration()
, 'constness' : constness
@@ -625,7 +630,7 @@
return template % {
'override' : self.override_identifier()
- , 'name' : self.declaration.name
+ , 'name' : self.declaration.partial_name
, 'alias' : self.declaration.alias
, 'return_' : return_
, 'args' : self.function_call_args()
@@ -633,7 +638,7 @@
}
def create_function(self):
- answer = [ self.create_declaration(self.declaration.name) + '{' ]
+ answer = [ self.create_declaration(self.declaration.partial_name) + '{' ]
answer.append( self.indent( self.create_virtual_body() ) )
answer.append( '}' )
return os.linesep.join( answer )
@@ -647,7 +652,7 @@
def create_function_type_alias_code( self, exported_class_alias=None ):
ftype = self.wrapper.function_type()
- return 'typedef %s;' % ftype.create_typedef( self.function_type_alias )
+ return 'typedef %s;' % ftype.create_typedef( self.function_type_alias, with_defaults=False )
def create_function_ref_code(self, use_function_alias=False):
if use_function_alias:
@@ -655,7 +660,7 @@
% ( self.function_type_alias, self.wrapper.full_name() )
elif self.declaration.create_with_signature:
return '(%s)(&%s)' \
- % ( self.wrapper.function_type().decl_string, self.wrapper.full_name() )
+ % ( self.wrapper.function_type().partial_decl_string, self.wrapper.full_name() )
else:
return '&%s' % self.wrapper.full_name()
@@ -664,7 +669,7 @@
calldef_wrapper_t.__init__( self, function=function )
def full_name(self):
- return self.parent.full_name + '::' + self.declaration.name
+ return self.parent.full_name + '::' + self.declaration.partial_name
def function_type(self):
return declarations.member_function_type_t(
@@ -681,7 +686,7 @@
constness = ' const '
return template % {
- 'return_type' : self.declaration.return_type.decl_string
+ 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : self.declaration.name
, 'args' : self.args_declaration()
, 'constness' : constness
@@ -724,7 +729,7 @@
calldef_wrapper_t.__init__( self, function=function )
def full_name(self):
- return self.parent.full_name + '::' + self.declaration.name
+ return self.parent.full_name + '::' + self.declaration.partial_name
def function_type(self):
return declarations.member_function_type_t(
@@ -741,7 +746,7 @@
constness = ' const '
return template % {
- 'return_type' : self.declaration.return_type.decl_string
+ 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : self.declaration.name
, 'args' : self.args_declaration()
, 'constness' : constness
@@ -1001,7 +1006,7 @@
x = declarations.remove_reference( type )
x = declarations.remove_cv( x )
other = algorithm.create_identifier( self, '::boost::python::other' )
- type_ = algorithm.create_identifier( self, x.decl_string )
+ type_ = algorithm.create_identifier( self, x.partial_decl_string )
return declarations.templates.join( other, [ type_ ] ) + '()'
def _findout_self_position(self):
@@ -1077,11 +1082,11 @@
def _create_impl(self):
#TODO add comment in case of non const operator
implicitly_convertible = algorithm.create_identifier( self, '::boost::python::implicitly_convertible' )
- from_arg = algorithm.create_identifier( self
- , declarations.full_name( self.declaration.parent ) )
+ from_name = declarations.full_name( self.declaration.parent, with_defaults=False )
+ from_arg = algorithm.create_identifier( self, from_name )
to_arg = algorithm.create_identifier( self
- , self.declaration.return_type.decl_string )
+ , self.declaration.return_type.partial_decl_string )
return declarations.templates.join(implicitly_convertible
, [ from_arg , to_arg ] ) \
+ '();'
@@ -1102,10 +1107,9 @@
def _create_impl(self):
template = 'def( "%(function_name)s", &%(class_name)s::operator %(destination_type)s %(call_policies)s%(doc)s )'
+ p_name = declarations.full_name( self.declaration.parent, with_defaults=False )
+ class_name = algorithm.create_identifier( self, p_name )
- class_name = algorithm.create_identifier( self
- , declarations.full_name( self.declaration.parent ) )
-
policies = ''
if self.declaration.call_policies:
if not self.declaration.call_policies.is_default():
@@ -1119,7 +1123,7 @@
return template % { 'function_name' : self.declaration.alias
, 'class_name' : class_name
- , 'destination_type' : self.declaration.return_type.decl_string
+ , 'destination_type' : self.declaration.return_type.partial_decl_string
, 'call_policies' : policies
, 'doc' : doc
}
@@ -1141,12 +1145,11 @@
def _create_impl(self):
implicitly_convertible = algorithm.create_identifier( self, '::boost::python::implicitly_convertible' )
from_arg = algorithm.create_identifier( self
- , self.declaration.arguments[0].type.decl_string)
+ , self.declaration.arguments[0].type.partial_decl_string)
- to_arg = algorithm.create_identifier( self
- , declarations.full_name( self.declaration.parent ) )
- return declarations.templates.join(implicitly_convertible
- , [ from_arg , to_arg ] ) \
+ to_name = declarations.full_name( self.declaration.parent, with_defaults=False )
+ to_arg = algorithm.create_identifier( self, to_name )
+ return declarations.templates.join(implicitly_convertible, [from_arg, to_arg ]) \
+ '();'
def _get_system_headers_impl( self ):
Modified: pyplusplus_dev/pyplusplus/code_creators/class_declaration.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/class_declaration.py 2007-12-24 15:34:46 UTC (rev 1208)
+++ pyplusplus_dev/pyplusplus/code_creators/class_declaration.py 2007-12-24 19:17:09 UTC (rev 1209)
@@ -347,7 +347,8 @@
self.declaration.wrapper_alias = walias
wrapper_alias = property( _get_wrapper_alias, _set_wrapper_alias )
- def _get_base_wrappers( self ):
+ @property
+ def base_wrappers( self ):
if self.declaration.is_abstract and not self._base_wrappers:
bases = [ hi.related_class for hi in self.declaration.bases ]
creators_before_me = algorithm.creators_affect_on_me( self )
@@ -356,17 +357,17 @@
and creator.declaration in bases
, creators_before_me )
return self._base_wrappers
- base_wrappers = property( _get_base_wrappers )
- def _get_exposed_identifier(self):
- return algorithm.create_identifier( self, self.declaration.decl_string )
- exposed_identifier = property( _get_exposed_identifier )
+ @property
+ def exposed_identifier(self):
+ return algorithm.create_identifier( self, self.declaration.partial_decl_string )
- def _get_class_creator(self):
+ @property
+ def class_creator(self):
return self._class_creator
- class_creator = property( _get_class_creator )
- def _get_full_name( self ):
+ @property
+ def full_name( self ):
if not isinstance( self.parent, class_wrapper_t ):
return self.declaration.wrapper_alias
else:
@@ -378,16 +379,15 @@
parent = parent.parent
full_name.reverse()
return '::'.join( full_name )
- full_name = property( _get_full_name )
- def _get_held_type(self):
+ @property
+ def held_type(self):
return self._class_creator.held_type
- held_type = property( _get_held_type )
- def _get_boost_wrapper_identifier(self):
+ @property
+ def boost_wrapper_identifier(self):
boost_wrapper = algorithm.create_identifier( self, '::boost::python::wrapper' )
return declarations.templates.join( boost_wrapper, [self.exposed_identifier] )
- boost_wrapper_identifier = property( _get_boost_wrapper_identifier )
def _create_bases(self):
return ', '.join( [self.exposed_identifier, self.boost_wrapper_identifier] )
Modified: pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py 2007-12-24 15:34:46 UTC (rev 1208)
+++ pyplusplus_dev/pyplusplus/code_creators/smart_pointers.py 2007-12-24 19:17:09 UTC (rev 1209)
@@ -106,7 +106,7 @@
smart_ptr = property( _get_smart_ptr, _set_smart_ptr )
def _instantiate_smart_ptr( self, decl ):
- identifier = algorithm.create_identifier( self, decl.decl_string )
+ identifier = algorithm.create_identifier( self, decl.partial_decl_string )
return templates.join( self.smart_ptr, [identifier] )
def _create_impl(self):
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2007-12-24 15:34:46 UTC (rev 1208)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2007-12-24 19:17:09 UTC (rev 1209)
@@ -177,7 +177,7 @@
self._redefine_operators = False
self._held_type = None
self._noncopyable = None
- self._wrapper_alias = self._generate_valid_name() + "_wrapper"
+ self._wrapper_alias = self._generate_valid_name(self.partial_name) + "_wrapper"
self._registration_code = []
self._declaration_code = []
self._wrapper_code = []
Modified: pyplusplus_dev/unittests/ogre_generate_tester.py
===================================================================
--- pyplusplus_dev/unittests/ogre_generate_tester.py 2007-12-24 15:34:46 UTC (rev 1208)
+++ pyplusplus_dev/unittests/ogre_generate_tester.py 2007-12-24 19:17:09 UTC (rev 1209)
@@ -41,9 +41,9 @@
print declarations.full_name( y, with_defaults=False )
target_dir = os.path.join( autoconfig.build_directory, 'ogre' )
- if os.path.exists( target_dir ):
- shutil.rmtree( target_dir )
- os.mkdir( target_dir )
+ #~ if os.path.exists( target_dir ):
+ #~ shutil.rmtree( target_dir )
+ #~ os.mkdir( target_dir )
mb.build_code_creator( 'Ogre3d' )
mb.split_module( target_dir )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-24 15:34:42
|
Revision: 1208
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1208&view=rev
Author: roman_yakovenko
Date: 2007-12-24 07:34:46 -0800 (Mon, 24 Dec 2007)
Log Message:
-----------
Added Paths:
-----------
pygccxml_dev/docs/upgrade_issues.rest
Added: pygccxml_dev/docs/upgrade_issues.rest
===================================================================
--- pygccxml_dev/docs/upgrade_issues.rest (rev 0)
+++ pygccxml_dev/docs/upgrade_issues.rest 2007-12-24 15:34:46 UTC (rev 1208)
@@ -0,0 +1,224 @@
+=================================
+GCC-XML 0.7 -> 0.9 upgrade issues
+=================================
+
+.. contents:: Table of contents
+
+------------
+Introduction
+------------
+
+Recently, GCC-XML internal parser was updated to GCC 4.2. The internal representation
+of source code, provided by GCC's parser, has changed a lot and few backward
+compatibility issues were introduced. In this document, I will try to cover all
+problems you may encounter.
+
+
+-------------------
+Default constructor
+-------------------
+
+GCC-XML 0.9 doesn't report compiler generated default and copy constructors as
+an implicit ones.
+
+If you rely havily on their existence in the generated XML, I suggest you to swith
+to `type_traits.has_trivial_constructor`_/`type_traits.has_trivial_copy`_ functions.
+
+.. _`type_traits.has_trivial_constructor` : ./apidocs/pygccxml.declarations.type_traits-pysrc.html#has_trivial_constructor
+.. _`type_traits.has_trivial_copy` : ./apidocs/pygccxml.declarations.type_traits-pysrc.html#has_trivial_copy
+
+
+--------------------------
+Pointer to member variable
+--------------------------
+
+Previous version of GCC-XML reported pointer to member variable as a "PointerType"
+with reference to "OffsetType". The new version removes "PointerType" from this sequence.
+
+C++ code:
+
+.. code-block:: C++
+
+ struct xyz_t{
+ int do_smth( double );
+ int m_some_member;
+ };
+
+ typedef int (xyz_t::*mfun_ptr_t)( double );
+
+ typedef int (xyz_t::*mvar_ptr_t);
+
+GCC-XML 0.7:
+
+.. code-block:: XML
+
+ <Typedef id="_6" name="mfun_ptr_t" type="_5" />
+ <PointerType id="_5" type="_128" size="32" align="32"/>
+ <MethodType id="_128" basetype="_7" returns="_136">
+ <Argument type="_140"/>
+ </MethodType>
+
+ <Typedef id="_4" name="mvar_ptr_t" type="_3" />
+ <PointerType id="_3" type="_127" size="32" align="32"/>
+ <OffsetType id="_127" basetype="_7" type="_136" size="32" align="32"/>
+
+GCC-XML 0.9:
+
+.. code-block:: XML
+
+ <Typedef id="_97" name="mfun_ptr_t" type="_96" />
+ <PointerType id="_96" type="_147" size="32" align="32"/>
+ <MethodType id="_147" basetype="_92" returns="_131">
+ <Argument type="_127"/>
+ </MethodType>
+
+ <Typedef id="_52" name="mvar_ptr_t" type="_139" />
+ <OffsetType id="_139" basetype="_92" type="_131" size="32" align="32"/>
+
+`pygccxml`_ handles this problem automatically, you don't have to change your code.
+
+-----------------------
+Constant variable value
+-----------------------
+
+GCC-XML 0.9 uses suffix to report the constant variable value
+
+For example:
+
+.. code-block:: C++
+
+ const long unsigned int initialized = 10122004;
+
+GCC-XML 0.9 will report the ``initialized`` value as ``10122004ul``, while GCC-XML
+0.7 as ``10122004``.
+
+`pygccxml`_ handles this problem automatically, you don't have to change your code.
+
+------------------------------------------
+Free and member function default arguments
+------------------------------------------
+
+Both versions of GCC-XML have a few issues, related to default arguments. GCC-XML 0.9
+fixes some issues, but introduces another ones. Take a look on next examples:
+
+*
+ .. code-block:: C++
+
+ void fix_numeric( ull arg=(ull)-1 );
+
+ GCC-XML 0.7
+
+ .. code-block:: XML
+
+ <Argument name="arg" type="_7" default="0xffffffffffffffff"/>
+
+
+ GCC-XML 0.9
+
+ .. code-block:: XML
+
+ <Argument name="arg" type="_103" default="0xffffffffffffffffu"/>
+
+*
+ .. code-block:: C++
+
+ void fix_function_call( int i=calc( 1,2,3) );
+
+ GCC-XML 0.7
+
+ .. code-block:: XML
+
+ <Argument name="i" type="_9" default="function_call::calc(int, int, int)(1, 2, 3)"/>
+
+
+ GCC-XML 0.9
+
+ .. code-block:: XML
+
+ <Argument name="i" type="_34" default="function_call::calc(1, 2, 3)"/>
+
+*
+ .. code-block:: C++
+
+ void typedef__func( const typedef_::alias& position = typedef_::alias() );
+
+ GCC-XML 0.7
+
+ .. code-block:: XML
+
+ <Argument name="position" type="_1458" default="alias()"/>
+
+
+ GCC-XML 0.9
+
+ .. code-block:: XML
+
+ <Argument name="position" type="_1703" default="typedef_::original_name()"/>
+
+*
+ .. code-block:: C++
+
+ void typedef__func2( const typedef_::alias& position = alias() );
+
+ GCC-XML 0.7
+
+ .. code-block:: XML
+
+ <Argument name="position" type="_1458" default="alias()"/>
+
+
+ GCC-XML 0.9
+
+ .. code-block:: XML
+
+ <Argument name="position" type="_1703" default="typedef_::original_name()"/>
+
+
+*
+ .. code-block:: C++
+
+ node* clone_tree( const std::vector<std::string> &types=std::vector<std::string>() );
+
+ GCC-XML 0.7
+
+ .. code-block:: XML
+
+ <Argument name="types" type="_3336" default="vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >,std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >((&allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >()))"/>
+
+
+ GCC-XML 0.9
+
+ .. code-block:: XML
+
+ <Argument name="types" type="_3096" default="std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >(((const std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >&)((const std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >*)(& std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >()))))"/>
+
+
+-------------
+Name mangling
+-------------
+
+GCC-XML 0.9 manlges names different than the previous one.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+.. _`pygccxml`: ./pygccxml.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-24 13:20:14
|
Revision: 1207
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1207&view=rev
Author: roman_yakovenko
Date: 2007-12-24 05:20:19 -0800 (Mon, 24 Dec 2007)
Log Message:
-----------
removing "diff", cause it was fixed in recent GCC-XML version
Removed Paths:
-------------
pygccxml_dev/gccxml-0.9-upgrade/types.7.xml
pygccxml_dev/gccxml-0.9-upgrade/types.9.xml
pygccxml_dev/gccxml-0.9-upgrade/types.h
pygccxml_dev/gccxml-0.9-upgrade/types.h.diff
Deleted: pygccxml_dev/gccxml-0.9-upgrade/types.7.xml
===================================================================
--- pygccxml_dev/gccxml-0.9-upgrade/types.7.xml 2007-12-24 11:47:09 UTC (rev 1206)
+++ pygccxml_dev/gccxml-0.9-upgrade/types.7.xml 2007-12-24 13:20:19 UTC (rev 1207)
@@ -1,8086 +0,0 @@
-<?xml version="1.0"?>
-<GCC_XML cvs_revision="1.114">
- <Namespace id="_1" name="::" members="_3 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _20 _22 _24 _25 _26 _27 _29 _30 _31 _32 _34 _35 _36 _38 _39 _40 _41 _43 _44 _45 _46 _47 _48 _49 _50 _51 _52 _53 _54 _55 _56 _57 _58 _59 _60 _61 _62 _63 _64 _65 _66 _67 _68 _69 _70 _71 _72 _73 _74 _75 _76 _77 _78 _79 _80 _81 _82 _83 _84 _85 _86 _87 _88 _89 _90 _91 _92 _93 _94 _95 _96 _97 _98 _99 _100 _101 _102 _103 _104 _105 _106 _107 _108 _109 _110 _111 _112 _113 _114 _115 _116 _117 _118 _119 _120 _121 _122 _123 _124 _125 _126 _127 _128 _129 _130 _131 _132 _133 _134 _135 _136 _137 _138 _139 _140 _141 _142 _143 _144 _145 _146 _147 _149 _150 _151 _152 _153 _154 _155 _156 _157 _158 _159 _160 _161 _162 _163 _164 _165 _166 _167 _168 _169 _170 _171 _172 _173 _174 _175 _176 _177 _178 _179 _180 _181 _182 _183 _184 _185 _186 _187 _188 _189 _190 _191 _192 _193 _194 _195 _196 _197 _198 _199 _200 _201 _202 _203 _204 _205 _206 _207 _208 _209 _210 _211 _212 _213 _214 _216 _217 _218 _219 _220 _221 _222 _223 _224 _225 _226 _227 _228 _229 _230 _231 _232 _233 _234 _235 _236 _237 _238 _239 _240 _241 _242 _243 _244 _245 _246 _247 _248 _249 _250 _251 _252 _253 _254 _255 _256 _257 _258 _259 _260 _261 _262 _263 _264 _265 _266 _267 _268 _269 _270 _271 _272 _273 _274 _275 _276 _277 _278 _279 _280 _281 _282 _283 _284 _285 _286 _287 _288 _289 _290 _291 _292 _293 _294 _295 _296 _297 _298 _299 _300 _301 _302 _303 _304 _305 _306 _307 _308 _309 _310 _311 _312 _313 _314 _315 _316 _317 _318 _319 _320 _321 _322 _323 _324 _325 _326 _327 _328 _329 _330 _331 _332 _333 _334 _335 _336 _337 _338 _339 _340 _341 _342 _343 _344 _345 _346 _347 _348 _349 _350 _351 _352 _353 _354 _355 _356 _357 _358 _359 _360 _361 _362 _363 _364 _365 _366 _367 _368 _369 _370 _371 _372 _373 _374 _375 _376 _377 _378 _379 _380 _381 _382 _383 _384 _385 _386 _387 _388 _389 _390 _391 _392 _393 _394 _395 _396 _397 _398 _399 _400 _401 _402 _403 _404 _405 _406 _407 _408 _409 _410 _411 _412 _413 _414 _415 _416 _417 _418 _419 _420 _421 _423 _422 _424 _425 _426 _427 _428 _429 _430 _431 _432 _433 _434 _435 _436 _437 _438 _439 _440 _441 _442 _443 _444 _445 _446 _447 _448 _449 _450 _451 _452 _453 _454 _455 _456 _457 _458 _459 _460 _461 _462 _463 _464 _465 _466 _467 _468 _469 _470 _471 _472 _473 _474 _475 _476 _477 _478 _480 _481 _482 _483 _484 _485 _486 _487 _488 _489 _490 _491 _492 _493 _494 _495 _496 _497 _498 _499 _500 _501 _502 _503 _504 _505 _506 _507 _508 _509 _510 _511 _512 _513 _514 _515 _516 _517 _518 _519 _520 _521 _522 _523 _524 _525 _526 _527 _528 _529 _530 _531 _532 _533 _534 _535 _536 _538 _539 _540 _541 _542 _543 _544 _545 _546 _547 _548 _549 _550 _551 _552 _553 _554 _555 _556 _557 _559 _560 _561 _562 _563 _564 _565 _566 _567 _568 _569 _570 _571 _572 _573 _574 _575 _576 _577 _578 _579 _580 _581 _582 _583 _584 _585 _586 _587 _588 _589 _590 _591 _592 _593 _594 _595 _596 _597 _598 _599 _600 _601 _602 _603 _604 _605 _606 _607 _608 _609 _610 _611 _612 _613 _614 _615 _616 _617 _618 _619 _620 _621 _622 _623 _624 _625 _626 _627 _628 _629 _630 _631 _632 _633 _634 _635 _636 _637 _638 _639 _640 _641 _642 _643 _644 _645 _646 _647 _648 _649 _650 _651 _652 _653 _654 _655 _656 _657 _658 _659 _660 _662 _664 _666 _667 _668 _669 _670 _671 _672 _673 _674 _675 _676 _677 _678 _679 _680 _681 _682 _683 _684 _685 _686 _687 _688 _689 _691 _690 _693 _695 _697 _699 _700 _701 _702 _703 _704 _705 _706 _707 _708 _709 _711 _712 _713 _714 _715 _716 _717 _718 _720 _721 _723 _725 _727 _729 _731 _733 _735 _737 _739 _740 _741 _742 _743 _744 _745 _661 _663 _148 _746 _748 _749 _747 _750 _751 _752 _753 _755 _756 _757 _758 _759 _760 _761 _762 _763 _764 _765 _766 _767 _768 _769 _770 _771 _772 _773 _774 _775 _776 _777 _778 _779 _780 _781 _782 _783 _784 _785 _786 _787 _788 _789 _791 _792 _793 _794 _795 _796 _797 _798 _799 _800 _801 _802 _803 _804 _805 _806 _807 _808 _809 _810 _811 _812 _813 _814 _815 _816 _817 _818 _819 _820 _821 _822 _823 _824 _825 _826 _827 _828 _829 _830 _831 _832 _833 _834 _835 _836 _837 _838 _839 _840 _841 _842 _843 _844 _845 _846 _847 _848 _849 _850 _851 _852 _853 _854 _855 _215 _857 _856 _858 _859 _860 _861 _862 _863 _864 _866 _867 _868 _869 _870 _871 _872 _873 _874 _875 _876 _877 _879 _878 _880 _881 _882 _883 _884 _885 _886 _887 _888 _889 _890 _891 _892 _893 _894 _895 _896 _897 _898 _899 _900 _901 _902 _903 _904 _905 _906 _907 _908 _909 _910 _911 _912 _913 _914 _916 _917 _918 _919 _920 _921 _922 _923 _924 _925 _927 _928 _929 _930 _931 _932 _933 _934 _935 _936 _937 _938 _939 _940 _941 _942 _943 _944 _945 _946 _947 _948 _915 _949 _950 _951 _952 _953 _954 _955 _956 _957 _958 _959 _960 _961 _962 _963 _964 _965 _966 _967 _968 _969 _970 _971 _972 _973 _974 _975 _976 _977 _978 _979 _980 _981 _982 _983 _984 _985 _986 _987 _988 _989 _990 _991 _992 _993 _994 _995 _996 _997 _998 _999 _1000 _1001 _1002 _1003 _1004 _1005 _1006 _1007 _1008 _1009 _1010 _1011 _1012 _1013 _1014 _1015 _1016 _1017 _1018 _1019 _1020 _1021 _1022 _1023 _1024 _1025 _1026 _1027 _1028 _1029 _1030 _1031 _1032 _1033 _1034 _1035 _1036 _1037 _1038 _1039 _1040 _1041 _1042 _1043 _1044 _1045 _1046 _1047 _1048 _1049 _1050 _1051 _1052 _1053 _1054 _1055 _1056 _1057 _1058 _1059 _1060 _1061 _1062 _1063 _1064 _1065 _1066 _1067 _1068 _1069 _1070 _1071 _1072 _1073 _1074 _1075 _1076 _1077 _1078 _1079 _1080 _1081 _1082 _1083 _1084 _1085 _1086 _1087 _1088 _1089 _1090 _1091 _1092 _1093 _1094 _1095 _1096 _1097 _1098 _1099 _1100 _1101 _1102 _1103 _1104 _1105 _1106 _1107 _1108 _1109 _1110 _1111 _1112 _1113 _1114 _1115 _1116 _1117 _1118 _1119 _1120 _1121 _1122 _1123 _1124 _1125 _1126 _1127 _1128 _1129 _1130 _1131 _1132 _1133 _1134 _1135 _1136 _1137 _1138 _1139 _1140 _1141 _1142 _1143 _1144 _1145 _1146 _1147 _1148 _1149 _1150 _1151 _1152 _1153 _1154 _1155 _1156 _1157 _1158 _1159 _1160 _1161 _1162 _1163 _1164 _1165 _1166 _1167 _1168 _1169 _1170 _1171 _1172 _1173 _1174 _1175 _1176 _1177 _1178 _1179 _1180 _1181 _1182 _1183 _1184 _1185 _1186 _1187 _1188 _1189 _1190 _1191 _1192 _1193 _1194 _1195 _1196 _1197 _1198 _1199 _1200 _1201 _1202 _1203 _1204 _1205 _1206 _1207 _1208 _1209 _1210 _1211 _1212 _1213 _1214 _1215 _1216 _1217 _1218 _1219 _1220 _1221 _1222 _1223 " mangled="_Z2::" demangled="::"/>
- <Namespace id="_2" name="std" context="_1" members="_1224 _1225 _1250 _1251 _1252 _1253 _1254 _1255 _1257 _1258 _1259 _1260 _1261 _1262 _1263 _1264 _1265 _1266 _1267 _1268 _1269 _1270 _1273 _1274 _1275 _1293 _1294 _1295 _1296 _1297 _1317 _1319 _1321 _1323 _1325 _1327 _1329 _1331 _1333 _1335 _1337 _1339 _1341 _1343 _1345 _1347 _1349 _1351 _1353 _1355 _1357 _1359 _1361 _1363 _1365 _1367 _1368 _1369 _1370 _1371 _1372 _1373 _1374 _1375 _1376 _1377 _1378 _1379 _1380 _1381 _1382 _1384 _1385 _1386 _1387 _1388 _1389 _1390 _1391 _1392 _1393 _1394 _1395 _1396 _1397 _1398 _1399 _1400 _1401 _1402 _1404 _1406 _1414 " mangled="_Z3std" demangled="std"/>
- <Struct id="_3" name="mem_var_str_t" context="_1" mangled="13mem_var_str_t" demangled="mem_var_str_t" location="f0:8" file="f0" line="8" artificial="1" size="8" align="8" members="_1415 _1416 _1417 _1418 " bases=""/>
- <FundamentalType id="_4" name="int" size="32" align="32"/>
- <Typedef id="_5" name="_Atomic_word" type="_4" context="_1" location="f1:33" file="f1" line="33"/>
- <OperatorFunction id="_6" name="delete []" returns="_710" throw="" context="_1" mangled="_ZdaPvS_" demangled="operator delete[](void*, void*)" location="f2:99" file="f2" line="99" endline="99" inline="1">
- <Argument type="_558" location="f2:99" file="f2" line="99"/>
- <Argument type="_558" location="f2:99" file="f2" line="99"/>
- </OperatorFunction>
- <OperatorFunction id="_7" name="delete" returns="_710" throw="" context="_1" mangled="_ZdlPvS_" demangled="operator delete(void*, void*)" location="f2:98" file="f2" line="98" endline="98" inline="1">
- <Argument type="_558" location="f2:98" file="f2" line="98"/>
- <Argument type="_558" location="f2:98" file="f2" line="98"/>
- </OperatorFunction>
- <OperatorFunction id="_8" name="new []" returns="_558" throw="" context="_1" mangled="_ZnajPv" demangled="operator new[](unsigned, void*)" location="f2:95" file="f2" line="95" endline="95" inline="1">
- <Argument type="_1051" location="f2:95" file="f2" line="95"/>
- <Argument name="__p" type="_558" location="f2:95" file="f2" line="95"/>
- </OperatorFunction>
- <OperatorFunction id="_9" name="new" returns="_558" throw="" context="_1" mangled="_ZnwjPv" demangled="operator new(unsigned, void*)" location="f2:94" file="f2" line="94" endline="94" inline="1">
- <Argument type="_1051" location="f2:94" file="f2" line="94"/>
- <Argument name="__p" type="_558" location="f2:94" file="f2" line="94"/>
- </OperatorFunction>
- <OperatorFunction id="_10" name="delete []" returns="_710" throw="" context="_1" mangled="_ZdaPvRKSt9nothrow_t" demangled="operator delete[](void*, std::nothrow_t const&)" location="f2:91" file="f2" line="91" extern="1">
- <Argument type="_558" location="f2:91" file="f2" line="91"/>
- <Argument type="_1419" location="f2:91" file="f2" line="91"/>
- </OperatorFunction>
- <OperatorFunction id="_11" name="delete" returns="_710" throw="" context="_1" mangled="_ZdlPvRKSt9nothrow_t" demangled="operator delete(void*, std::nothrow_t const&)" location="f2:90" file="f2" line="90" extern="1">
- <Argument type="_558" location="f2:90" file="f2" line="90"/>
- <Argument type="_1419" location="f2:90" file="f2" line="90"/>
- </OperatorFunction>
- <OperatorFunction id="_12" name="new []" returns="_558" throw="" context="_1" mangled="_ZnajRKSt9nothrow_t" demangled="operator new[](unsigned, std::nothrow_t const&)" location="f2:89" file="f2" line="89" extern="1">
- <Argument type="_1051" location="f2:89" file="f2" line="89"/>
- <Argument type="_1419" location="f2:89" file="f2" line="89"/>
- </OperatorFunction>
- <OperatorFunction id="_13" name="new" returns="_558" throw="" context="_1" mangled="_ZnwjRKSt9nothrow_t" demangled="operator new(unsigned, std::nothrow_t const&)" location="f2:88" file="f2" line="88" extern="1">
- <Argument type="_1051" location="f2:88" file="f2" line="88"/>
- <Argument type="_1419" location="f2:88" file="f2" line="88"/>
- </OperatorFunction>
- <Variable id="_14" name="_ZTISt9bad_alloc" type="_1420c" context="_1" location="f2:56" file="f2" line="56" extern="1" artificial="1"/>
- <Variable id="_15" name="_ZTISt13bad_exception" type="_1420c" context="_1" location="f3:67" file="f3" line="67" extern="1" artificial="1"/>
- <Variable id="_16" name="_ZTISt9exception" type="_1422c" context="_1" location="f3:55" file="f3" line="55" extern="1" artificial="1"/>
- <Struct id="_17" name="__false_type" context="_1" mangled="12__false_type" demangled="__false_type" location="f4:94" file="f4" line="94" artificial="1" size="8" align="8" members="_1424 _1425 " bases=""/>
- <Struct id="_18" name="__true_type" context="_1" mangled="11__true_type" demangled="__true_type" location="f4:93" file="f4" line="93" artificial="1" size="8" align="8" members="_1426 _1427 " bases=""/>
- <FundamentalType id="_19" name="long long unsigned int" size="64" align="64"/>
- <Typedef id="_20" name="uintmax_t" type="_19" context="_1" location="f5:141" file="f5" line="141"/>
- <FundamentalType id="_21" name="long long int" size="64" align="64"/>
- <Typedef id="_22" name="intmax_t" type="_21" context="_1" location="f5:139" file="f5" line="139"/>
- <FundamentalType id="_23" name="unsigned int" size="32" align="32"/>
- <Typedef id="_24" name="uintptr_t" type="_23" context="_1" location="f5:129" file="f5" line="129"/>
- <Typedef id="_25" name="uint_fast64_t" type="_19" context="_1" location="f5:113" file="f5" line="113"/>
- <Typedef id="_26" name="uint_fast32_t" type="_23" context="_1" location="f5:111" file="f5" line="111"/>
- <Typedef id="_27" name="uint_fast16_t" type="_23" context="_1" location="f5:110" file="f5" line="110"/>
- <FundamentalType id="_28" name="unsigned char" size="8" align="8"/>
- <Typedef id="_29" name="uint_fast8_t" type="_28" context="_1" location="f5:104" file="f5" line="104"/>
- <Typedef id="_30" name="int_fast64_t" type="_21" context="_1" location="f5:100" file="f5" line="100"/>
- <Typedef id="_31" name="int_fast32_t" type="_4" context="_1" location="f5:98" file="f5" line="98"/>
- <Typedef id="_32" name="int_fast16_t" type="_4" context="_1" location="f5:97" file="f5" line="97"/>
- <FundamentalType id="_33" name="signed char" size="8" align="8"/>
- <Typedef id="_34" name="int_fast8_t" type="_33" context="_1" location="f5:91" file="f5" line="91"/>
- <Typedef id="_35" name="uint_least64_t" type="_19" context="_1" location="f5:84" file="f5" line="84"/>
- <Typedef id="_36" name="uint_least32_t" type="_23" context="_1" location="f5:79" file="f5" line="79"/>
- <FundamentalType id="_37" name="short unsigned int" size="16" align="16"/>
- <Typedef id="_38" name="uint_least16_t" type="_37" context="_1" location="f5:78" file="f5" line="78"/>
- <Typedef id="_39" name="uint_least8_t" type="_28" context="_1" location="f5:77" file="f5" line="77"/>
- <Typedef id="_40" name="int_least64_t" type="_21" context="_1" location="f5:73" file="f5" line="73"/>
- <Typedef id="_41" name="int_least32_t" type="_4" context="_1" location="f5:68" file="f5" line="68"/>
- <FundamentalType id="_42" name="short int" size="16" align="16"/>
- <Typedef id="_43" name="int_least16_t" type="_42" context="_1" location="f5:67" file="f5" line="67"/>
- <Typedef id="_44" name="int_least8_t" type="_33" context="_1" location="f5:66" file="f5" line="66"/>
- <Typedef id="_45" name="uint64_t" type="_19" context="_1" location="f5:59" file="f5" line="59"/>
- <Typedef id="_46" name="uint32_t" type="_23" context="_1" location="f5:52" file="f5" line="52"/>
- <Typedef id="_47" name="uint16_t" type="_37" context="_1" location="f5:50" file="f5" line="50"/>
- <Typedef id="_48" name="uint8_t" type="_28" context="_1" location="f5:49" file="f5" line="49"/>
- <Function id="_49" name="wcsftime_l" returns="_1051" throw="" context="_1" location="f6:835" file="f6" line="835" extern="1">
- <Argument name="__s" type="_1428r" location="f6:835" file="f6" line="835"/>
- <Argument name="__maxsize" type="_1051" location="f6:835" file="f6" line="835"/>
- <Argument name="__format" type="_1430r" location="f6:835" file="f6" line="835"/>
- <Argument name="__tp" type="_1432r" location="f6:835" file="f6" line="835"/>
- <Argument name="__loc" type="_1041" location="f6:835" file="f6" line="835"/>
- </Function>
- <Function id="_50" name="wcsftime" returns="_1051" throw="" context="_1" location="f6:824" file="f6" line="824" extern="1">
- <Argument name="__s" type="_1428r" location="f6:824" file="f6" line="824"/>
- <Argument name="__maxsize" type="_1051" location="f6:824" file="f6" line="824"/>
- <Argument name="__format" type="_1430r" location="f6:824" file="f6" line="824"/>
- <Argument name="__tp" type="_1432r" location="f6:824" file="f6" line="824"/>
- </Function>
- <Function id="_51" name="fputws_unlocked" returns="_4" context="_1" location="f6:814" file="f6" line="814" extern="1">
- <Argument name="__ws" type="_1430r" location="f6:814" file="f6" line="814"/>
- <Argument name="__stream" type="_1434r" location="f6:814" file="f6" line="814"/>
- </Function>
- <Function id="_52" name="fgetws_unlocked" returns="_1428" context="_1" location="f6:805" file="f6" line="805" extern="1">
- <Argument name="__ws" type="_1428r" location="f6:805" file="f6" line="805"/>
- <Argument name="__n" type="_4" location="f6:805" file="f6" line="805"/>
- <Argument name="__stream" type="_1434r" location="f6:805" file="f6" line="805"/>
- </Function>
- <Function id="_53" name="putwchar_unlocked" returns="_746" context="_1" location="f6:795" file="f6" line="795" extern="1">
- <Argument name="__wc" type="_1436" location="f6:795" file="f6" line="795"/>
- </Function>
- <Function id="_54" name="putwc_unlocked" returns="_746" context="_1" location="f6:794" file="f6" line="794" extern="1">
- <Argument name="__wc" type="_1436" location="f6:794" file="f6" line="794"/>
- <Argument name="__stream" type="_1434" location="f6:794" file="f6" line="794"/>
- </Function>
- <Function id="_55" name="fputwc_unlocked" returns="_746" context="_1" location="f6:785" file="f6" line="785" extern="1">
- <Argument name="__wc" type="_1436" location="f6:785" file="f6" line="785"/>
- <Argument name="__stream" type="_1434" location="f6:785" file="f6" line="785"/>
- </Function>
- <Function id="_56" name="fgetwc_unlocked" returns="_746" context="_1" location="f6:777" file="f6" line="777" extern="1">
- <Argument name="__stream" type="_1434" location="f6:777" file="f6" line="777"/>
- </Function>
- <Function id="_57" name="getwchar_unlocked" returns="_746" context="_1" location="f6:769" file="f6" line="769" extern="1"/>
- <Function id="_58" name="getwc_unlocked" returns="_746" context="_1" location="f6:768" file="f6" line="768" extern="1">
- <Argument name="__stream" type="_1434" location="f6:768" file="f6" line="768"/>
- </Function>
- <Function id="_59" name="ungetwc" returns="_746" context="_1" location="f6:756" file="f6" line="756" extern="1">
- <Argument name="__wc" type="_746" location="f6:756" file="f6" line="756"/>
- <Argument name="__stream" type="_1434" location="f6:756" file="f6" line="756"/>
- </Function>
- <Function id="_60" name="fputws" returns="_4" context="_1" location="f6:749" file="f6" line="749" extern="1">
- <Argument name="__ws" type="_1430r" location="f6:749" file="f6" line="749"/>
- <Argument name="__stream" type="_1434r" location="f6:749" file="f6" line="749"/>
- </Function>
- <Function id="_61" name="fgetws" returns="_1428" context="_1" location="f6:742" file="f6" line="742" extern="1">
- <Argument name="__ws" type="_1428r" location="f6:742" file="f6" line="742"/>
- <Argument name="__n" type="_4" location="f6:742" file="f6" line="742"/>
- <Argument name="__stream" type="_1434r" location="f6:742" file="f6" line="742"/>
- </Function>
- <Function id="_62" name="putwchar" returns="_746" context="_1" location="f6:733" file="f6" line="733" extern="1">
- <Argument name="__wc" type="_1436" location="f6:733" file="f6" line="733"/>
- </Function>
- <Function id="_63" name="putwc" returns="_746" context="_1" location="f6:727" file="f6" line="727" extern="1">
- <Argument name="__wc" type="_1436" location="f6:727" file="f6" line="727"/>
- <Argument name="__stream" type="_1434" location="f6:727" file="f6" line="727"/>
- </Function>
- <Function id="_64" name="fputwc" returns="_746" context="_1" location="f6:726" file="f6" line="726" extern="1">
- <Argument name="__wc" type="_1436" location="f6:726" file="f6" line="726"/>
- <Argument name="__stream" type="_1434" location="f6:726" file="f6" line="726"/>
- </Function>
- <Function id="_65" name="getwchar" returns="_746" context="_1" location="f6:719" file="f6" line="719" extern="1"/>
- <Function id="_66" name="getwc" returns="_746" context="_1" location="f6:713" file="f6" line="713" extern="1">
- <Argument name="__stream" type="_1434" location="f6:713" file="f6" line="713"/>
- </Function>
- <Function id="_67" name="fgetwc" returns="_746" context="_1" location="f6:712" file="f6" line="712" extern="1">
- <Argument name="__stream" type="_1434" location="f6:712" file="f6" line="712"/>
- </Function>
- <Function id="_68" name="vswscanf" returns="_4" throw="" context="_1" location="f6:701" file="f6" line="701" extern="1">
- <Argument name="__s" type="_1430r" location="f6:701" file="f6" line="701"/>
- <Argument name="__format" type="_1430r" location="f6:701" file="f6" line="701"/>
- <Argument name="__arg" type="_713" location="f6:701" file="f6" line="701"/>
- </Function>
- <Function id="_69" name="vwscanf" returns="_4" context="_1" location="f6:696" file="f6" line="696" extern="1">
- <Argument name="__format" type="_1430r" location="f6:696" file="f6" line="696"/>
- <Argument name="__arg" type="_713" location="f6:696" file="f6" line="696"/>
- </Function>
- <Function id="_70" name="vfwscanf" returns="_4" context="_1" location="f6:689" file="f6" line="689" extern="1">
- <Argument name="__s" type="_1434r" location="f6:689" file="f6" line="689"/>
- <Argument name="__format" type="_1430r" location="f6:689" file="f6" line="689"/>
- <Argument name="__arg" type="_713" location="f6:689" file="f6" line="689"/>
- </Function>
- <Function id="_71" name="swscanf" returns="_4" throw="" context="_1" location="f6:674" file="f6" line="674" extern="1">
- <Argument name="__s" type="_1430r" location="f6:674" file="f6" line="674"/>
- <Argument name="__format" type="_1430r" location="f6:674" file="f6" line="674"/>
- <Ellipsis/>
- </Function>
- <Function id="_72" name="wscanf" returns="_4" context="_1" location="f6:670" file="f6" line="670" extern="1">
- <Argument name="__format" type="_1430r" location="f6:670" file="f6" line="670"/>
- <Ellipsis/>
- </Function>
- <Function id="_73" name="fwscanf" returns="_4" context="_1" location="f6:664" file="f6" line="664" extern="1">
- <Argument name="__stream" type="_1434r" location="f6:664" file="f6" line="664"/>
- <Argument name="__format" type="_1430r" location="f6:664" file="f6" line="664"/>
- <Ellipsis/>
- </Function>
- <Function id="_74" name="vswprintf" returns="_4" throw="" context="_1" location="f6:655" file="f6" line="655" extern="1">
- <Argument name="__s" type="_1428r" location="f6:655" file="f6" line="655"/>
- <Argument name="__n" type="_1051" location="f6:655" file="f6" line="655"/>
- <Argument name="__format" type="_1430r" location="f6:655" file="f6" line="655"/>
- <Argument name="__arg" type="_713" location="f6:655" file="f6" line="655"/>
- </Function>
- <Function id="_75" name="vwprintf" returns="_4" context="_1" location="f6:649" file="f6" line="649" extern="1">
- <Argument name="__format" type="_1430r" location="f6:649" file="f6" line="649"/>
- <Argument name="__arg" type="_713" location="f6:649" file="f6" line="649"/>
- </Function>
- <Function id="_76" name="vfwprintf" returns="_4" context="_1" location="f6:642" file="f6" line="642" extern="1">
- <Argument name="__s" type="_1434r" location="f6:642" file="f6" line="642"/>
- <Argument name="__format" type="_1430r" location="f6:642" file="f6" line="642"/>
- <Argument name="__arg" type="_713" location="f6:642" file="f6" line="642"/>
- </Function>
- <Function id="_77" name="swprintf" returns="_4" throw="" context="_1" location="f6:633" file="f6" line="633" extern="1">
- <Argument name="__s" type="_1428r" location="f6:633" file="f6" line="633"/>
- <Argument name="__n" type="_1051" location="f6:633" file="f6" line="633"/>
- <Argument name="__format" type="_1430r" location="f6:633" file="f6" line="633"/>
- <Ellipsis/>
- </Function>
- <Function id="_78" name="wprintf" returns="_4" context="_1" location="f6:629" file="f6" line="629" extern="1">
- <Argument name="__format" type="_1430r" location="f6:629" file="f6" line="629"/>
- <Ellipsis/>
- </Function>
- <Function id="_79" name="fwprintf" returns="_4" context="_1" location="f6:623" file="f6" line="623" extern="1">
- <Argument name="__stream" type="_1434r" location="f6:623" file="f6" line="623"/>
- <Argument name="__format" type="_1430r" location="f6:623" file="f6" line="623"/>
- <Ellipsis/>
- </Function>
- <Function id="_80" name="fwide" returns="_4" throw="" context="_1" location="f6:614" file="f6" line="614" extern="1">
- <Argument name="__fp" type="_1434" location="f6:614" file="f6" line="614"/>
- <Argument name="__mode" type="_4" location="f6:614" file="f6" line="614"/>
- </Function>
- <Function id="_81" name="open_wmemstream" returns="_1434" throw="" context="_1" location="f6:607" file="f6" line="607" extern="1">
- <Argument name="__bufloc" type="_1437" location="f6:607" file="f6" line="607"/>
- <Argument name="__sizeloc" type="_1438" location="f6:607" file="f6" line="607"/>
- </Function>
- <Function id="_82" name="wcpncpy" returns="_1428" throw="" context="_1" location="f6:598" file="f6" line="598" extern="1">
- <Argument name="__dest" type="_1428" location="f6:598" file="f6" line="598"/>
- <Argument name="__src" type="_1430" location="f6:598" file="f6" line="598"/>
- <Argument name="__n" type="_1051" location="f6:598" file="f6" line="598"/>
- </Function>
- <Function id="_83" name="wcpcpy" returns="_1428" throw="" context="_1" location="f6:593" file="f6" line="593" extern="1">
- <Argument name="__dest" type="_1428" location="f6:593" file="f6" line="593"/>
- <Argument name="__src" type="_1430" location="f6:593" file="f6" line="593"/>
- </Function>
- <Function id="_84" name="__wcstold_internal" returns="_1439" throw="" context="_1" location="f6:510" file="f6" line="510" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:510" file="f6" line="510"/>
- <Argument name="__endptr" type="_1437r" location="f6:510" file="f6" line="510"/>
- <Argument name="__group" type="_4" location="f6:510" file="f6" line="510"/>
- </Function>
- <Function id="_85" name="__wcstof_internal" returns="_1441" throw="" context="_1" location="f6:507" file="f6" line="507" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:507" file="f6" line="507"/>
- <Argument name="__endptr" type="_1437r" location="f6:507" file="f6" line="507"/>
- <Argument name="__group" type="_4" location="f6:507" file="f6" line="507"/>
- </Function>
- <Function id="_86" name="__wcstod_internal" returns="_1442" throw="" context="_1" location="f6:504" file="f6" line="504" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:504" file="f6" line="504"/>
- <Argument name="__endptr" type="_1437r" location="f6:504" file="f6" line="504"/>
- <Argument name="__group" type="_4" location="f6:504" file="f6" line="504"/>
- </Function>
- <Function id="_87" name="wcstold_l" returns="_1439" throw="" context="_1" location="f6:496" file="f6" line="496" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:496" file="f6" line="496"/>
- <Argument name="__endptr" type="_1437r" location="f6:496" file="f6" line="496"/>
- <Argument name="__loc" type="_1041" location="f6:496" file="f6" line="496"/>
- </Function>
- <Function id="_88" name="wcstof_l" returns="_1441" throw="" context="_1" location="f6:492" file="f6" line="492" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:492" file="f6" line="492"/>
- <Argument name="__endptr" type="_1437r" location="f6:492" file="f6" line="492"/>
- <Argument name="__loc" type="_1041" location="f6:492" file="f6" line="492"/>
- </Function>
- <Function id="_89" name="wcstod_l" returns="_1442" throw="" context="_1" location="f6:488" file="f6" line="488" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:488" file="f6" line="488"/>
- <Argument name="__endptr" type="_1437r" location="f6:488" file="f6" line="488"/>
- <Argument name="__loc" type="_1041" location="f6:488" file="f6" line="488"/>
- </Function>
- <Function id="_90" name="wcstoull_l" returns="_19" throw="" context="_1" location="f6:484" file="f6" line="484" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:484" file="f6" line="484"/>
- <Argument name="__endptr" type="_1437r" location="f6:484" file="f6" line="484"/>
- <Argument name="__base" type="_4" location="f6:484" file="f6" line="484"/>
- <Argument name="__loc" type="_1041" location="f6:484" file="f6" line="484"/>
- </Function>
- <Function id="_91" name="wcstoll_l" returns="_21" throw="" context="_1" location="f6:478" file="f6" line="478" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:478" file="f6" line="478"/>
- <Argument name="__endptr" type="_1437r" location="f6:478" file="f6" line="478"/>
- <Argument name="__base" type="_4" location="f6:478" file="f6" line="478"/>
- <Argument name="__loc" type="_1041" location="f6:478" file="f6" line="478"/>
- </Function>
- <Function id="_92" name="wcstoul_l" returns="_537" throw="" context="_1" location="f6:473" file="f6" line="473" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:473" file="f6" line="473"/>
- <Argument name="__endptr" type="_1437r" location="f6:473" file="f6" line="473"/>
- <Argument name="__base" type="_4" location="f6:473" file="f6" line="473"/>
- <Argument name="__loc" type="_1041" location="f6:473" file="f6" line="473"/>
- </Function>
- <Function id="_93" name="wcstol_l" returns="_865" throw="" context="_1" location="f6:469" file="f6" line="469" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:469" file="f6" line="469"/>
- <Argument name="__endptr" type="_1437r" location="f6:469" file="f6" line="469"/>
- <Argument name="__base" type="_4" location="f6:469" file="f6" line="469"/>
- <Argument name="__loc" type="_1041" location="f6:469" file="f6" line="469"/>
- </Function>
- <Function id="_94" name="wcstouq" returns="_19" throw="" context="_1" location="f6:446" file="f6" line="446" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:446" file="f6" line="446"/>
- <Argument name="__endptr" type="_1437r" location="f6:446" file="f6" line="446"/>
- <Argument name="__base" type="_4" location="f6:446" file="f6" line="446"/>
- </Function>
- <Function id="_95" name="wcstoq" returns="_21" throw="" context="_1" location="f6:439" file="f6" line="439" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:439" file="f6" line="439"/>
- <Argument name="__endptr" type="_1437r" location="f6:439" file="f6" line="439"/>
- <Argument name="__base" type="_4" location="f6:439" file="f6" line="439"/>
- </Function>
- <Function id="_96" name="wcstoull" returns="_19" throw="" context="_1" location="f6:429" file="f6" line="429" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:429" file="f6" line="429"/>
- <Argument name="__endptr" type="_1437r" location="f6:429" file="f6" line="429"/>
- <Argument name="__base" type="_4" location="f6:429" file="f6" line="429"/>
- </Function>
- <Function id="_97" name="wcstoll" returns="_21" throw="" context="_1" location="f6:422" file="f6" line="422" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:422" file="f6" line="422"/>
- <Argument name="__endptr" type="_1437r" location="f6:422" file="f6" line="422"/>
- <Argument name="__base" type="_4" location="f6:422" file="f6" line="422"/>
- </Function>
- <Function id="_98" name="wcstoul" returns="_537" throw="" context="_1" location="f6:414" file="f6" line="414" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:414" file="f6" line="414"/>
- <Argument name="__endptr" type="_1437r" location="f6:414" file="f6" line="414"/>
- <Argument name="__base" type="_4" location="f6:414" file="f6" line="414"/>
- </Function>
- <Function id="_99" name="wcstol" returns="_865" throw="" context="_1" location="f6:408" file="f6" line="408" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:408" file="f6" line="408"/>
- <Argument name="__endptr" type="_1437r" location="f6:408" file="f6" line="408"/>
- <Argument name="__base" type="_4" location="f6:408" file="f6" line="408"/>
- </Function>
- <Function id="_100" name="wcstold" returns="_1439" throw="" context="_1" location="f6:401" file="f6" line="401" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:401" file="f6" line="401"/>
- <Argument name="__endptr" type="_1437r" location="f6:401" file="f6" line="401"/>
- </Function>
- <Function id="_101" name="wcstof" returns="_1441" throw="" context="_1" location="f6:399" file="f6" line="399" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:399" file="f6" line="399"/>
- <Argument name="__endptr" type="_1437r" location="f6:399" file="f6" line="399"/>
- </Function>
- <Function id="_102" name="wcstod" returns="_1442" throw="" context="_1" location="f6:394" file="f6" line="394" extern="1">
- <Argument name="__nptr" type="_1430r" location="f6:394" file="f6" line="394"/>
- <Argument name="__endptr" type="_1437r" location="f6:394" file="f6" line="394"/>
- </Function>
- <Function id="_103" name="wcswidth" returns="_4" throw="" context="_1" location="f6:386" file="f6" line="386" extern="1">
- <Argument name="__s" type="_1430" location="f6:386" file="f6" line="386"/>
- <Argument name="__n" type="_1051" location="f6:386" file="f6" line="386"/>
- </Function>
- <Function id="_104" name="wcwidth" returns="_4" throw="" context="_1" location="f6:382" file="f6" line="382" extern="1">
- <Argument name="__c" type="_1436" location="f6:382" file="f6" line="382"/>
- </Function>
- <Function id="_105" name="wcsnrtombs" returns="_1051" throw="" context="_1" location="f6:375" file="f6" line="375" extern="1">
- <Argument name="__dst" type="_665r" location="f6:375" file="f6" line="375"/>
- <Argument name="__src" type="_1444r" location="f6:375" file="f6" line="375"/>
- <Argument name="__nwc" type="_1051" location="f6:375" file="f6" line="375"/>
- <Argument name="__len" type="_1051" location="f6:375" file="f6" line="375"/>
- <Argument name="__ps" type="_1446r" location="f6:375" file="f6" line="375"/>
- </Function>
- <Function id="_106" name="mbsnrtowcs" returns="_1051" throw="" context="_1" location="f6:368" file="f6" line="368" extern="1">
- <Argument name="__dst" type="_1428r" location="f6:368" file="f6" line="368"/>
- <Argument name="__src" type="_1448r" location="f6:368" file="f6" line="368"/>
- <Argument name="__nmc" type="_1051" location="f6:368" file="f6" line="368"/>
- <Argument name="__len" type="_1051" location="f6:368" file="f6" line="368"/>
- <Argument name="__ps" type="_1446r" location="f6:368" file="f6" line="368"/>
- </Function>
- <Function id="_107" name="wcsrtombs" returns="_1051" throw="" context="_1" location="f6:359" file="f6" line="359" extern="1">
- <Argument name="__dst" type="_665r" location="f6:359" file="f6" line="359"/>
- <Argument name="__src" type="_1444r" location="f6:359" file="f6" line="359"/>
- <Argument name="__len" type="_1051" location="f6:359" file="f6" line="359"/>
- <Argument name="__ps" type="_1446r" location="f6:359" file="f6" line="359"/>
- </Function>
- <Function id="_108" name="mbsrtowcs" returns="_1051" throw="" context="_1" location="f6:353" file="f6" line="353" extern="1">
- <Argument name="__dst" type="_1428r" location="f6:353" file="f6" line="353"/>
- <Argument name="__src" type="_1448r" location="f6:353" file="f6" line="353"/>
- <Argument name="__len" type="_1051" location="f6:353" file="f6" line="353"/>
- <Argument name="__ps" type="_1446r" location="f6:353" file="f6" line="353"/>
- </Function>
- <Function id="_109" name="mbrlen" returns="_1051" throw="" context="_1" location="f6:318" file="f6" line="318" extern="1">
- <Argument name="__s" type="_1450r" location="f6:318" file="f6" line="318"/>
- <Argument name="__n" type="_1051" location="f6:318" file="f6" line="318"/>
- <Argument name="__ps" type="_1446r" location="f6:318" file="f6" line="318"/>
- </Function>
- <Function id="_110" name="__mbrlen" returns="_1051" throw="" context="_1" location="f6:316" file="f6" line="316" extern="1">
- <Argument name="__s" type="_1450r" location="f6:316" file="f6" line="316"/>
- <Argument name="__n" type="_1051" location="f6:316" file="f6" line="316"/>
- <Argument name="__ps" type="_1446r" location="f6:316" file="f6" line="316"/>
- </Function>
- <Function id="_111" name="wcrtomb" returns="_1051" throw="" context="_1" location="f6:312" file="f6" line="312" extern="1">
- <Argument name="__s" type="_665r" location="f6:312" file="f6" line="312"/>
- <Argument name="__wc" type="_1436" location="f6:312" file="f6" line="312"/>
- <Argument name="__ps" type="_1446r" location="f6:312" file="f6" line="312"/>
- </Function>
- <Function id="_112" name="mbrtowc" returns="_1051" throw="" context="_1" location="f6:308" file="f6" line="308" extern="1">
- <Argument name="__pwc" type="_1428r" location="f6:308" file="f6" line="308"/>
- <Argument name="__s" type="_1450r" location="f6:308" file="f6" line="308"/>
- <Argument name="__n" type="_1051" location="f6:308" file="f6" line="308"/>
- <Argument name="__p" type="_1446" location="f6:308" file="f6" line="308"/>
- </Function>
- <Function id="_113" name="mbsinit" returns="_4" throw="" context="_1" location="f6:302" file="f6" line="302" extern="1" attributes="__pure__">
- <Argument name="__ps" type="_1452" location="f6:302" file="f6" line="302"/>
- </Function>
- <Function id="_114" name="wctob" returns="_4" throw="" context="_1" location="f6:298" file="f6" line="298" extern="1">
- <Argument name="__c" type="_746" location="f6:298" file="f6" line="298"/>
- </Function>
- <Function id="_115" name="btowc" returns="_746" throw="" context="_1" location="f6:294" file="f6" line="294" extern="1">
- <Argument name="__c" type="_4" location="f6:294" file="f6" line="294"/>
- </Function>
- <Function id="_116" name="wmempcpy" returns="_1428" throw="" context="_1" location="f6:287" file="f6" line="287" extern="1">
- <Argument name="__s1" type="_1428r" location="f6:287" file="f6" line="287"/>
- <Argument name="__s2" type="_1430r" location="f6:287" file="f6" line="287"/>
- <Argument name="__n" type="_1051" location="f6:287" file="f6" line="287"/>
- </Function>
- <Function id="_117" name="wmemset" returns="_1428" throw="" context="_1" location="f6:279" file="f6" line="279" extern="1">
- <Argument name="__s" type="_1428" location="f6:279" file="f6" line="279"/>
- <Argument name="__c" type="_1436" location="f6:279" file="f6" line="279"/>
- <Argument name="__n" type="_1051" location="f6:279" file="f6" line="279"/>
- </Function>
- <Function id="_118" name="wmemmove" returns="_1428" throw="" context="_1" location="f6:276" file="f6" line="276" extern="1">
- <Argument name="__s1" type="_1428" location="f6:276" file="f6" line="276"/>
- <Argument name="__s2" type="_1430" location="f6:276" file="f6" line="276"/>
- <Argument name="__n" type="_1051" location="f6:276" file="f6" line="276"/>
- </Function>
- <Function id="_119" name="wmemcpy" returns="_1428" throw="" context="_1" location="f6:271" file="f6" line="271" extern="1">
- <Argument name="__s1" type="_1428r" location="f6:271" file="f6" line="271"/>
- <Argument name="__s2" type="_1430r" location="f6:271" file="f6" line="271"/>
- <Argument name="__n" type="_1051" location="f6:271" file="f6" line="271"/>
- </Function>
- <Function id="_120" name="wmemcmp" returns="_4" throw="" context="_1" location="f6:267" file="f6" line="267" extern="1" attributes="__pure__">
- <Argument name="__s1" type="_1430r" location="f6:267" file="f6" line="267"/>
- <Argument name="__s2" type="_1430r" location="f6:267" file="f6" line="267"/>
- <Argument name="__n" type="_1051" location="f6:267" file="f6" line="267"/>
- </Function>
- <Function id="_121" name="wmemchr" returns="_1428" throw="" context="_1" location="f6:262" file="f6" line="262" extern="1" attributes="__pure__">
- <Argument name="__s" type="_1430" location="f6:262" file="f6" line="262"/>
- <Argument name="__c" type="_1436" location="f6:262" file="f6" line="262"/>
- <Argument name="__n" type="_1051" location="f6:262" file="f6" line="262"/>
- </Function>
- <Function id="_122" name="wcsnlen" returns="_1051" throw="" context="_1" location="f6:255" file="f6" line="255" extern="1" attributes="__pure__">
- <Argument name="__s" type="_1430" location="f6:255" file="f6" line="255"/>
- <Argument name="__maxlen" type="_1051" location="f6:255" file="f6" line="255"/>
- </Function>
- <Function id="_123" name="wcswcs" returns="_1428" throw="" context="_1" location="f6:249" file="f6" line="249" extern="1" attributes="__pure__">
- <Argument name="__haystack" type="_1430" location="f6:249" file="f6" line="249"/>
- <Argument name="__needle" type="_1430" location="f6:249" file="f6" line="249"/>
- </Function>
- <Function id="_124" name="wcslen" returns="_1051" throw="" context="_1" location="f6:243" file="f6" line="243" extern="1" attributes="__pure__">
- <Argument name="__s" type="_1430" location="f6:243" file="f6" line="243"/>
- </Function>
- <Function id="_125" name="wcstok" returns="_1428" throw="" context="_1" location="f6:240" file="f6" line="240" extern="1">
- <Argument name="__s" type="_1428r" location="f6:240" file="f6" line="240"/>
- <Argument name="__delim" type="_1430r" location="f6:240" file="f6" line="240"/>
- <Argument name="__ptr" type="_1437r" location="f6:240" file="f6" line="240"/>
- </Function>
- <Function id="_126" name="wcsstr" returns="_1428" throw="" context="_1" location="f6:235" file="f6" line="235" extern="1" attributes="__pure__">
- <Argument name="__haystack" type="_1430" location="f6:235" file="f6" line="235"/>
- <Argument name="__needle" type="_1430" location="f6:235" file="f6" line="235"/>
- </Function>
- <Function id="_127" name="wcspbrk" returns="_1428" throw="" context="_1" location="f6:232" file="f6" line="232" extern="1" attributes="__pure__">
- <Argument name="__wcs" type="_1430" location="f6:232" file="f6" line="232"/>
- <Argument name="__accept" type="_1430" location="f6:232" file="f6" line="232"/>
- </Function>
- <Function id="_128" name="wcsspn" returns="_1051" throw="" context="_1" location="f6:229" file="f6" line="229" extern="1" attributes="__pure__">
- <Argument name="__wcs" type="_1430" location="f6:229" file="f6" line="229"/>
- <Argument name="__accept" type="_1430" location="f6:229" file="f6" line="229"/>
- </Function>
- <Function id="_129" name="wcscspn" returns="_1051" throw="" context="_1" location="f6:225" file="f6" line="225" extern="1" attributes="__pure__">
- <Argument name="__wcs" type="_1430" location="f6:225" file="f6" line="225"/>
- <Argument name="__reject" type="_1430" location="f6:225" file="f6" line="225"/>
- </Function>
- <Function id="_130" name="wcschrnul" returns="_1428" throw="" context="_1" location="f6:218" file="f6" line="218" extern="1" attributes="__pure__">
- <Argument name="__s" type="_1430" location="f6:218" file="f6" line="218"/>
- <Argument name="__wc" type="_1436" location="f6:218" file="f6" line="218"/>
- </Function>
- <Function id="_131" name="wcsrchr" returns="_1428" throw="" context="_1" location="f6:211" file="f6" line="211" extern="1" attributes="__pure__">
- <Argument name="__wcs" type="_1430" location="f6:211" file="f6" line="211"/>
- <Argument name="__wc" type="_1436" location="f6:211" file="f6" line="211"/>
- </Function>
- <Function id="_132" name="wcschr" returns="_1428" throw="" context="_1" location="f6:208" file="f6" line="208" extern="1" attributes="__pure__">
- <Argument name="__wcs" type="_1430" location="f6:208" file="f6" line="208"/>
- <Argument name="__wc" type="_1436" location="f6:208" file="f6" line="208"/>
- </Function>
- <Function id="_133" name="wcsdup" returns="_1428" throw="" context="_1" location="f6:202" file="f6" line="202" extern="1" attributes="__malloc__">
- <Argument name="__s" type="_1430" location="f6:202" file="f6" line="202"/>
- </Function>
- <Function id="_134" name="wcsxfrm_l" returns="_1051" throw="" context="_1" location="f6:199" file="f6" line="199" extern="1">
- <Argument name="__s1" type="_1428" location="f6:199" file="f6" line="199"/>
- <Argument name="__s2" type="_1430" location="f6:199" file="f6" line="199"/>
- <Argument name="__n" type="_1051" location="f6:199" file="f6" line="199"/>
- <Argument name="__loc" type="_1041" location="f6:199" file="f6" line="199"/>
- </Function>
- <Function id="_135" name="wcscoll_l" returns="_4" throw="" context="_1" location="f6:193" file="f6" line="193" extern="1">
- <Argument name="__s1" type="_1430" location="f6:193" file="f6" line="193"/>
- <Argument name="__s2" type="_1430" location="f6:193" file="f6" line="193"/>
- <Argument name="__loc" type="_1041" location="f6:193" file="f6" line="193"/>
- </Function>
- <Function id="_136" name="wcsxfrm" returns="_1051" throw="" context="_1" location="f6:183" file="f6" line="183" extern="1">
- <Argument name="__s1" type="_1428r" location="f6:183" file="f6" line="183"/>
- <Argument name="__s2" type="_1430r" location="f6:183" file="f6" line="183"/>
- <Argument name="__n" type="_1051" location="f6:183" file="f6" line="183"/>
- </Function>
- <Function id="_137" name="wcscoll" returns="_4" throw="" context="_1" location="f6:178" file="f6" line="178" extern="1">
- <Argument name="__s1" type="_1430" location="f6:178" file="f6" line="178"/>
- <Argument name="__s2" type="_1430" location="f6:178" file="f6" line="178"/>
- </Function>
- <Function id="_138" name="wcsncasecmp_l" returns="_4" throw="" context="_1" location="f6:172" file="f6" line="172" extern="1">
- <Argument name="__s1" type="_1430" location="f6:172" file="f6" line="172"/>
- <Argument name="__s2" type="_1430" location="f6:172" file="f6" line="172"/>
- <Argument name="__n" type="_1051" location="f6:172" file="f6" line="172"/>
- <Argument name="__loc" type="_1041" location="f6:172" file="f6" line="172"/>
- </Function>
- <Function id="_139" name="wcscasecmp_l" returns="_4" throw="" context="_1" location="f6:169" file="f6" line="169" extern="1">
- <Argument name="__s1" type="_1430" location="f6:169" file="f6" line="169"/>
- <Argument name="__s2" type="_1430" location="f6:169" file="f6" line="169"/>
- <Argument name="__loc" type="_1041" location="f6:169" file="f6" line="169"/>
- </Function>
- <Function id="_140" name="wcsncasecmp" returns="_4" throw="" context="_1" location="f6:162" file="f6" line="162" extern="1">
- <Argument name="__s1" type="_1430" location="f6:162" file="f6" line="162"/>
- <Argument name="__s2" type="_1430" location="f6:162" file="f6" line="162"/>
- <Argument name="__n" type="_1051" location="f6:162" file="f6" line="162"/>
- </Function>
- <Function id="_141" name="wcscasecmp" returns="_4" throw="" context="_1" location="f6:158" file="f6" line="158" extern="1">
- <Argument name="__s1" type="_1430" location="f6:158" file="f6" line="158"/>
- <Argument name="__s2" type="_1430" location="f6:158" file="f6" line="158"/>
- </Function>
- <Function id="_142" name="wcsncmp" returns="_4" throw="" context="_1" location="f6:153" file="f6" line="153" extern="1" attributes="__pure__">
- <Argument name="__s1" type="_1430" location="f6:153" file="f6" line="153"/>
- <Argument name="__s2" type="_1430" location="f6:153" file="f6" line="153"/>
- <Argument name="__n" type="_1051" location="f6:153" file="f6" line="153"/>
- </Function>
- <Function id="_143" name="wcscmp" returns="_4" throw="" context="_1" location="f6:150" file="f6" line="150" extern="1" attributes="__pure__">
- <Argument name="__s1" type="_1430" location="f6:150" file="f6" line="150"/>
- <Argument name="__s2" type="_1430" location="f6:150" file="f6" line="150"/>
- </Function>
- <Function id="_144" name="wcsncat" returns="_1428" throw="" context="_1" location="f6:146" file="f6" line="146" extern="1">
- <Argument name="__dest" type="_1428r" location="f6:146" file="f6" line="146"/>
- <Argument name="__src" type="_1430r" location="f6:146" file="f6" line="146"/>
- <Argument name="__n" type="_1051" location="f6:146" file="f6" line="146"/>
- </Function>
- <Function id="_145" name="wcscat" returns="_1428" throw="" context="_1" location="f6:142" file="f6" line="142" extern="1">
- <Argument name="__dest" type="_1428r" location="f6:142" file="f6" line="142"/>
- <Argument name="__src" type="_1430r" location="f6:142" file="f6" line="142"/>
- </Function>
- <Function id="_146" name="wcsncpy" returns="_1428" throw="" context="_1" location="f6:138" file="f6" line="138" extern="1">
- <Argument name="__dest" type="_1428r" location="f6:138" file="f6" line="138"/>
- <Argument name="__src" type="_1430r" location="f6:138" file="f6" line="138"/>
- <Argument name="__n" type="_1051" location="f6:138" file="f6" line="138"/>
- </Function>
- <Function id="_147" name="wcscpy" returns="_1428" throw="" context="_1" location="f6:134" file="f6" line="134" extern="1">
- <Argument name="__dest" type="_1428r" location="f6:134" file="f6" line="134"/>
- <Argument name="__src" type="_1430r" location="f6:134" file="f6" line="134"/>
- </Function>
- <Struct id="_148" name="__mbstate_t" context="_1" mangled="11__mbstate_t" demangled="__mbstate_t" location="f6:84" file="f6" line="84" size="64" align="32" members="_1453 _1454 _1455 _1456 _1457 " bases=""/>
- <Typedef id="_149" name="mbstate_t" type="_148" context="_1" location="f6:95" file="f6" line="95"/>
- <Function id="_150" name="toupper_l" returns="_4" throw="" context="_1" location="f7:268" file="f7" line="268" extern="1">
- <Argument name="__c" type="_4" location="f7:268" file="f7" line="268"/>
- <Argument name="__l" type="_1041" location="f7:268" file="f7" line="268"/>
- </Function>
- <Function id="_151" name="__toupper_l" returns="_4" throw="" context="_1" location="f7:267" file="f7" line="267" extern="1">
- <Argument name="__c" type="_4" location="f7:267" file="f7" line="267"/>
- <Argument name="__l" type="_1041" location="f7:267" file="f7" line="267"/>
- </Function>
- <Function id="_152" name="tolower_l" returns="_4" throw="" context="_1" location="f7:264" file="f7" line="264" extern="1">
- <Argument name="__c" type="_4" location="f7:264" file="f7" line="264"/>
- <Argument name="__l" type="_1041" location="f7:264" file="f7" line="264"/>
- </Function>
- <Function id="_153" name="__tolower_l" returns="_4" throw="" context="_1" location="f7:263" file="f7" line="263" extern="1">
- <Argument name="__c" type="_4" location="f7:263" file="f7" line="263"/>
- <Argument name="__l" type="_1041" location="f7:263" file="f7" line="263"/>
- </Function>
- <Function id="_154" name="isblank_l" returns="_4" throw="" context="_1" location="f7:259" file="f7" line="259" extern="1">
- <Argument type="_4" location="f7:259" file="f7" line="259"/>
- <Argument type="_1041" location="f7:259" file="f7" line="259"/>
- </Function>
- <Function id="_155" name="isxdigit_l" returns="_4" throw="" context="_1" location="f7:257" file="f7" line="257" extern="1">
- <Argument type="_4" location="f7:257" file="f7" line="257"/>
- <Argument type="_1041" location="f7:257" file="f7" line="257"/>
- </Function>
- <Function id="_156" name="isupper_l" returns="_4" throw="" context="_1" location="f7:256" file="f7" line="256" extern="1">
- <Argument type="_4" location="f7:256" file="f7" line="256"/>
- <Argument type="_1041" location="f7:256" file="f7" line="256"/>
- </Function>
- <Function id="_157" name="isspace_l" returns="_4" throw="" context="_1" location="f7:255" file="f7" line="255" extern="1">
- <Argument type="_4" location="f7:255" file="f7" line="255"/>
- <Argument type="_1041" location="f7:255" file="f7" line="255"/>
- </Function>
- <Function id="_158" name="ispunct_l" returns="_4" throw="" context="_1" location="f7:254" file="f7" line="254" extern="1">
- <Argument type="_4" location="f7:254" file="f7" line="254"/>
- <Argument type="_1041" location="f7:254" file="f7" line="254"/>
- </Function>
- <Function id="_159" name="isprint_l" returns="_4" throw="" context="_1" location="f7:253" file="f7" line="253" extern="1">
- <Argument type="_4" location="f7:253" file="f7" line="253"/>
- <Argument type="_1041" location="f7:253" file="f7" line="253"/>
- </Function>
- <Function id="_160" name="isgraph_l" returns="_4" throw="" context="_1" location="f7:252" file="f7" line="252" extern="1">
- <Argument type="_4" location="f7:252" file="f7" line="252"/>
- <Argument type="_1041" location="f7:252" file="f7" line="252"/>
- </Function>
- <Function id="_161" name="islower_l" returns="_4" throw="" context="_1" location="f7:251" file="f7" line="251" extern="1">
- <Argument type="_4" location="f7:251" file="f7" line="251"/>
- <Argument type="_1041" location="f7:251" file="f7" line="251"/>
- </Function>
- <Function id="_162" name="isdigit_l" returns="_4" throw="" context="_1" location="f7:250" file="f7" line="250" extern="1">
- <Argument type="_4" location="f7:250" file="f7" line="250"/>
- <Argument type="_1041" location="f7:250" file="f7" line="250"/>
- </Function>
- <Function id="_163" name="iscntrl_l" returns="_4" throw="" context="_1" location="f7:249" file="f7" line="249" extern="1">
- <Argument type="_4" location="f7:249" file="f7" line="249"/>
- <Argument type="_1041" location="f7:249" file="f7" line="249"/>
- </Function>
- <Function id="_164" name="isalpha_l" returns="_4" throw="" context="_1" location="f7:248" file="f7" line="248" extern="1">
- <Argument type="_4" location="f7:248" file="f7" line="248"/>
- <Argument type="_1041" location="f7:248" file="f7" line="248"/>
- </Function>
- <Function id="_165" name="isalnum_l" returns="_4" throw="" context="_1" location="f7:247" file="f7" line="247" extern="1">
- <Argument type="_4" location="f7:247" file="f7" line="247"/>
- <Argument type="_1041" location="f7:247" file="f7" line="247"/>
- </Function>
- <Function id="_166" name="_tolower" returns="_4" throw="" context="_1" location="f7:151" file="f7" line="151" extern="1">
- <Argument type="_4" location="f7:151" file="f7" line="151"/>
- </Function>
- <Function id="_167" name="_toupper" returns="_4" throw="" context="_1" location="f7:150" file="f7" line="150" extern="1">
- <Argument type="_4" location="f7:150" file="f7" line="150"/>
- </Function>
- <Function id="_168" name="toascii" returns="_4" throw="" context="_1" location="f7:146" file="f7" line="146" extern="1">
- <Argument name="__c" type="_4" location="f7:146" file="f7" line="146"/>
- </Function>
- <Function id="_169" name="isascii" returns="_4" throw="" context="_1" location="f7:142" file="f7" line="142" extern="1">
- <Argument name="__c" type="_4" location="f7:142" file="f7" line="142"/>
- </Function>
- <Function id="_170" name="isctype" returns="_4" throw="" context="_1" location="f7:135" file="f7" line="135" extern="1">
- <Argument name="__c" type="_4" location="f7:135" file="f7" line="135"/>
- <Argument name="__mask" type="_4" location="f7:135" file="f7" line="135"/>
- </Function>
- <Function id="_171" name="isblank" returns="_4" throw="" context="_1" location="f7:128" file="f7" line="128" extern="1">
- <Argument type="_4" location="f7:128" file="f7" line="128"/>
- </Function>
- <Function id="_172" name="toupper" returns="_4" throw="" context="_1" location="f7:119" file="f7" line="119" extern="1">
- <Argument name="__c" type="_4" location="f7:119" file="f7" line="119"/>
- </Function>
- <Function id="_173" name="tolower" returns="_4" throw="" context="_1" location="f7:116" file="f7" line="116" extern="1">
- <Argument name="__c" type="_4" location="f7:116" file="f7" line="116"/>
- </Function>
- <Function id="_174" name="isxdigit" returns="_4" throw="" context="_1" location="f7:112" file="f7" line="112" extern="1">
- <Argument type="_4" location="f7:112" file="f7" line="112"/>
- </Function>
- <Function id="_175" name="isupper" returns="_4" throw="" context="_1" location="f7:111" file="f7" line="111" extern="1">
- <Argument type="_4" location="f7:111" file="f7" line="111"/>
- </Function>
- <Function id="_176" name="isspace" returns="_4" throw="" context="_1" location="f7:110" file="f7" line="110" extern="1">
- <Argument type="_4" location="f7:110" file="f7" line="110"/>
- </Function>
- <Function id="_177" name="ispunct" returns="_4" throw="" context="_1" location="f7:109" file="f7" line="109" extern="1">
- <Argument type="_4" location="f7:109" file="f7" line="109"/>
- </Function>
- <Function id="_178" name="isprint" returns="_4" throw="" context="_1" location="f7:108" file="f7" line="108" extern="1">
- <Argument type="_4" location="f7:108" file="f7" line="108"/>
- </Function>
- <Function id="_179" name="isgraph" returns="_4" throw="" context="_1" location="f7:107" file="f7" line="107" extern="1">
- <Argument type="_4" location="f7:107" file="f7" line="107"/>
- </Function>
- <Function id="_180" name="islower" returns="_4" throw="" context="_1" location="f7:106" file="f7" line="106" extern="1">
- <Argument type="_4" location="f7:106" file="f7" line="106"/>
- </Function>
- <Function id="_181" name="isdigit" returns="_4" throw="" context="_1" location="f7:105" file="f7" line="105" extern="1">
- <Argument type="_4" location="f7:105" file="f7" line="105"/>
- </Function>
- <Function id="_182" name="iscntrl" returns="_4" throw="" context="_1" location="f7:104" file="f7" line="104" extern="1">
- <Argument type="_4" location="f7:104" file="f7" line="104"/>
- </Function>
- <Function id="_183" name="isalpha" returns="_4" throw="" context="_1" location="f7:103" file="f7" line="103" extern="1">
- <Argument type="_4" location="f7:103" file="f7" line="103"/>
- </Function>
- <Function id="_184" name="isalnum" returns="_4" throw="" context="_1" location="f7:102" file="f7" line="102" extern="1">
- <Argument type="_4" location="f7:102" file="f7" line="102"/>
- </Function>
- <Function id="_185" name="__ctype_toupper_loc" returns="_1458" context="_1" location="f7:86" file="f7" line="86" extern="1" attributes="const"/>
- <Function id="_186" name="__ctype_tolower_loc" returns="_1458" context="_1" location="f7:84" file="f7" line="84" extern="1" attributes="const"/>
- <Function id="_187" name="__ctype_b_loc" returns="_1459" context="_1" location="f7:82" file="f7" line="82" extern="1" attributes="const"/>
- <Enumeration id="_188" name="._47" context="_1" location="f7:49" file="f7" line="49" artificial="1" size="32" align="32">
- <EnumValue name="_ISupper" init="256"/>
- <EnumValue name="_ISlower" init="512"/>
- <EnumValue name="_ISalpha" init="1024"/>
- <EnumValue name="_ISdigit" init="2048"/>
- <EnumValue name="_ISxdigit" init="4096"/>
- <EnumValue name="_ISspace" init="8192"/>
- <EnumValue name="_ISprint" init="16384"/>
- <EnumValue name="_ISgraph" init="32768"/>
- <EnumValue name="_ISblank" init="1"/>
- <EnumValue name="_IScntrl" init="2"/>
- <EnumValue name="_ISpunct" init="4"/>
- <EnumValue name="_ISalnum" init="8"/>
- </Enumeration>
- <Function id="_189" name="__gthread_recursive_mutex_unlock" returns="_4" context="_1" mangled="_Z32__gthread_recursive_mutex_unlockP15pthread_mutex_t" demangled="__gthread_recursive_mutex_unlock(pthread_mutex_t*)" location="f8:612" file="f8" line="612" endline="614" inline="1">
- <Argument name="mutex" type="_1460" location="f8:612" file="f8" line="612"/>
- </Function>
- <Function id="_190" name="__gthread_recursive_mutex_trylock" returns="_4" context="_1" mangled="_Z33__gthread_recursive_mutex_trylockP15pthread_mutex_t" demangled="__gthread_recursive_mutex_trylock(pthread_mutex_t*)" location="f8:606" file="f8" line="606" endline="608" inline="1">
- <Argument name="mutex" type="_1460" location="f8:606" file="f8" line="606"/>
- </Function>
- <Function id="_191" name="__gthread_recursive_mutex_lock" returns="_4" context="_1" mangled="_Z30__gthread_recursive_mutex_lockP15pthread_mutex_t" demangled="__gthread_recursive_mutex_lock(pthread_mutex_t*)" location="f8:600" file="f8" line="600" endline="602" inline="1">
- <Argument name="mutex" type="_1460" location="f8:600" file="f8" line="600"/>
- </Function>
- <Function id="_192" name="__gthread_mutex_unlock" returns="_4" context="_1" mangled="_Z22__gthread_mutex_unlockP15pthread_mutex_t" demangled="__gthread_mutex_unlock(pthread_mutex_t*)" location="f8:569" file="f8" line="569" endline="574" inline...
[truncated message content] |
|
From: <rom...@us...> - 2007-12-24 11:47:09
|
Revision: 1206
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1206&view=rev
Author: roman_yakovenko
Date: 2007-12-24 03:47:09 -0800 (Mon, 24 Dec 2007)
Log Message:
-----------
*.rest files clean-up
Modified Paths:
--------------
index.rest
pydsc_dev/docs/pydsc.rest
pygccxml_dev/docs/design.rest
pygccxml_dev/docs/download.rest
pygccxml_dev/docs/example/example.rest
pygccxml_dev/docs/history/history.rest
pygccxml_dev/docs/links.rest
pygccxml_dev/docs/pygccxml.rest
pygccxml_dev/docs/query_interface.rest
pygccxml_dev/docs/users.rest
pyplusplus_dev/docs/comparisons/compare_to.rest
pyplusplus_dev/docs/comparisons/pyste.rest
pyplusplus_dev/docs/documentation/architecture.rest
pyplusplus_dev/docs/documentation/best_practices.rest
pyplusplus_dev/docs/documentation/containers.rest
pyplusplus_dev/docs/documentation/doc_string.rest
pyplusplus_dev/docs/documentation/functions/call_policies.rest
pyplusplus_dev/docs/documentation/functions/default_args.rest
pyplusplus_dev/docs/documentation/functions/functions.rest
pyplusplus_dev/docs/documentation/functions/overloading.rest
pyplusplus_dev/docs/documentation/functions/registration_order.rest
pyplusplus_dev/docs/documentation/functions/transformation/inout.rest
pyplusplus_dev/docs/documentation/functions/transformation/input.rest
pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest
pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest
pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest
pyplusplus_dev/docs/documentation/functions/transformation/name_mangling.rest
pyplusplus_dev/docs/documentation/functions/transformation/output.rest
pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest
pyplusplus_dev/docs/documentation/functions/transformation/terminology.rest
pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest
pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest
pyplusplus_dev/docs/documentation/hints.rest
pyplusplus_dev/docs/documentation/how_to.rest
pyplusplus_dev/docs/documentation/index.rest
pyplusplus_dev/docs/documentation/inserting_code.rest
pyplusplus_dev/docs/documentation/multi_module_development.rest
pyplusplus_dev/docs/documentation/properties.rest
pyplusplus_dev/docs/documentation/tutorials/module_builder/module_builder.rest
pyplusplus_dev/docs/documentation/tutorials/tutorials.rest
pyplusplus_dev/docs/documentation/warnings.rest
pyplusplus_dev/docs/download.rest
pyplusplus_dev/docs/examples/boost/boost.rest
pyplusplus_dev/docs/examples/easybmp/easybmp.rest
pyplusplus_dev/docs/examples/examples.rest
pyplusplus_dev/docs/history/history.rest
pyplusplus_dev/docs/links.rest
pyplusplus_dev/docs/osdc2006/presentation-talk.rest
pyplusplus_dev/docs/peps/dsl_challenge.rest
pyplusplus_dev/docs/peps/peps_index.rest
pyplusplus_dev/docs/pyplusplus.rest
pyplusplus_dev/docs/quotes.rest
pyplusplus_dev/docs/troubleshooting_guide/automatic_conversion/automatic_conversion.rest
pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest
pyplusplus_dev/docs/troubleshooting_guide/exceptions/exceptions.rest
pyplusplus_dev/docs/troubleshooting_guide/lessons_learned.rest
pyplusplus_dev/docs/troubleshooting_guide/shared_ptr/shared_ptr.rest
pyplusplus_dev/docs/troubleshooting_guide/smart_ptrs/smart_ptrs.rest
Modified: index.rest
===================================================================
--- index.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ index.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -84,13 +84,3 @@
.. _`EasyBMP`: http://easybmp.sourceforge.net/
.. _`many others` : ./x.html
-
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pydsc_dev/docs/pydsc.rest
===================================================================
--- pydsc_dev/docs/pydsc.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pydsc_dev/docs/pydsc.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -68,12 +68,3 @@
.. _`pydsc`: ./pydsc.html
.. _`PyEnchant`: http://pyenchant.sourceforge.net/
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pygccxml_dev/docs/design.rest
===================================================================
--- pygccxml_dev/docs/design.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/design.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -288,10 +288,3 @@
.. _`parser package UML diagram` : ./parser_uml.png
.. _`ReleaseForge` : http://releaseforge.sourceforge.net
.. _`boost::type_traits` : http://www.boost.org/libs/type_traits/index.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/download.rest
===================================================================
--- pygccxml_dev/docs/download.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/download.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -72,11 +72,3 @@
.. _`pygccxml` : ./../pygccxml/pygccxml.html
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/example/example.rest
===================================================================
--- pygccxml_dev/docs/example/example.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/example/example.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -2,15 +2,17 @@
Example
=======
-This directory contains C++ source file, GCC-XML generated file and Python script
-that uses `pygccxml`_ to extract information from the source file.
+The example consists from few files:
+* `example.hpp`_ - C++ source code, this file was passed to GCC-XML
+* `example.hpp.xml`_ - xml file, generated by GCC-XML from `example.hpp`_ one
+* `example.py`_ - Python script, which uses `pygccxml`_ package to extract the
+ information about classes and functions
+* `output.txt`_ - captured output from executing `example.py`_ file
+
+.. _`example.hpp`: ./example.hpp.html
+.. _`example.hpp.xml`: ./example.hpp.xml.html
+.. _`example.py`: ./example.py.html
+.. _`output.txt`: ./output.txt.html
+
.. _`pygccxml`: ./../pygccxml.html
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/history/history.rest
===================================================================
--- pygccxml_dev/docs/history/history.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/history/history.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -478,10 +478,3 @@
.. _`pygccxml`: ./../pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/links.rest
===================================================================
--- pygccxml_dev/docs/links.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/links.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -20,10 +20,3 @@
.. _`XTI An Extended Type Information Library` : http://lcgapp.cern.ch/project/architecture/XTI_accu.pdf
.. _`pygccxml`: ./pygccxml.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/pygccxml.rest
===================================================================
--- pygccxml_dev/docs/pygccxml.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/pygccxml.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -141,10 +141,3 @@
.. _`Boost Software License`: http://boost.org/more/license_info.html
.. _`Ubuntu`: http://www.ubuntu.com/
.. _`boost::type_traits` : http://www.boost.org/libs/type_traits/index.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/query_interface.rest
===================================================================
--- pygccxml_dev/docs/query_interface.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/query_interface.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -296,10 +296,3 @@
.. _`parser package UML diagram` : ./parser_uml.png
.. _`ReleaseForge` : http://releaseforge.sourceforge.net
.. _`boost::type_traits` : http://www.boost.org/libs/type_traits/index.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pygccxml_dev/docs/users.rest
===================================================================
--- pygccxml_dev/docs/users.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pygccxml_dev/docs/users.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -8,11 +8,3 @@
that binds a C/C++ library for Python.
.. _`PyBindGen` : https://launchpad.net/pybindgen
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/comparisons/compare_to.rest
===================================================================
--- pyplusplus_dev/docs/comparisons/compare_to.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/comparisons/compare_to.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -65,13 +65,3 @@
.. _`Py++` : ./../pyplusplus.html
.. _`Pyste`: http://www.boost.org/libs/python/doc/index.html
-
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/comparisons/pyste.rest
===================================================================
--- pyplusplus_dev/docs/comparisons/pyste.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/comparisons/pyste.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -438,11 +438,3 @@
.. _`ReleaseForge` : http://releaseforge.sourceforge.net
.. _`boost.type_traits` : http://www.boost.org/libs/type_traits/index.html
.. _`elementtree` : http://effbot.org/
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/documentation/architecture.rest
===================================================================
--- pyplusplus_dev/docs/documentation/architecture.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/architecture.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -333,11 +333,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/best_practices.rest
===================================================================
--- pyplusplus_dev/docs/documentation/best_practices.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/best_practices.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -174,11 +174,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/containers.rest
===================================================================
--- pyplusplus_dev/docs/documentation/containers.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/containers.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -197,11 +197,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/documentation/doc_string.rest
===================================================================
--- pyplusplus_dev/docs/documentation/doc_string.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/doc_string.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -66,10 +66,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/call_policies.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/call_policies.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/call_policies.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -553,10 +553,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/default_args.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/default_args.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/default_args.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -147,10 +147,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/functions.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/functions.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/functions.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -17,11 +17,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/overloading.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/overloading.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/overloading.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -171,11 +171,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/registration_order.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/registration_order.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/registration_order.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -148,11 +148,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/inout.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/inout.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/inout.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -66,10 +66,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/input.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/input.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/input.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -59,10 +59,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -73,10 +73,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -76,10 +76,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -70,10 +70,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/name_mangling.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/name_mangling.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/name_mangling.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -84,10 +84,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/output.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/output.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/output.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -64,10 +64,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -76,10 +76,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/terminology.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/terminology.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/terminology.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -36,10 +36,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -69,10 +69,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -124,10 +124,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/hints.rest
===================================================================
--- pyplusplus_dev/docs/documentation/hints.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/hints.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -62,10 +62,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/how_to.rest
===================================================================
--- pyplusplus_dev/docs/documentation/how_to.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/how_to.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -380,11 +380,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/index.rest
===================================================================
--- pyplusplus_dev/docs/documentation/index.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/index.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -100,10 +100,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/inserting_code.rest
===================================================================
--- pyplusplus_dev/docs/documentation/inserting_code.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/inserting_code.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -242,10 +242,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/documentation/multi_module_development.rest
===================================================================
--- pyplusplus_dev/docs/documentation/multi_module_development.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/multi_module_development.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -139,11 +139,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/documentation/properties.rest
===================================================================
--- pyplusplus_dev/docs/documentation/properties.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/properties.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -164,12 +164,3 @@
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/documentation/tutorials/module_builder/module_builder.rest
===================================================================
--- pyplusplus_dev/docs/documentation/tutorials/module_builder/module_builder.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/tutorials/module_builder/module_builder.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -168,11 +168,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/documentation/tutorials/tutorials.rest
===================================================================
--- pyplusplus_dev/docs/documentation/tutorials/tutorials.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/tutorials/tutorials.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -61,11 +61,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/documentation/warnings.rest
===================================================================
--- pyplusplus_dev/docs/documentation/warnings.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/documentation/warnings.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -213,10 +213,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/download.rest
===================================================================
--- pyplusplus_dev/docs/download.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/download.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -63,10 +63,3 @@
.. _`Py++` : ./pyplusplus.html
.. _`pygccxml` : ./../pygccxml/pygccxml.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/examples/boost/boost.rest
===================================================================
--- pyplusplus_dev/docs/examples/boost/boost.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/examples/boost/boost.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -263,11 +263,3 @@
.. _`GCC-XML`: http://www.gccxml.org
.. _`Py++` : ./../../pyplusplus.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/examples/easybmp/easybmp.rest
===================================================================
--- pyplusplus_dev/docs/examples/easybmp/easybmp.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/examples/easybmp/easybmp.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -78,11 +78,3 @@
.. _`EasyBMP`: http://easybmp.sourceforge.net/
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/examples/examples.rest
===================================================================
--- pyplusplus_dev/docs/examples/examples.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/examples/examples.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -54,11 +54,3 @@
.. _`Py++` : ./../pyplusplus.html
.. _`EasyBMP`: http://easybmp.sourceforge.net/
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/history/history.rest
===================================================================
--- pyplusplus_dev/docs/history/history.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/history/history.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -392,11 +392,3 @@
.. _`pygccxml` : http://www.language-binding.net/pygccxml/pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/links.rest
===================================================================
--- pyplusplus_dev/docs/links.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/links.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -118,11 +118,3 @@
http://www.scons.org/wiki/GCCXMLBuilder - Joseph Lisee shows how to integrate
Py++ scripts with Scons.
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/osdc2006/presentation-talk.rest
===================================================================
--- pyplusplus_dev/docs/osdc2006/presentation-talk.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/osdc2006/presentation-talk.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -395,10 +395,3 @@
multi-language development plus code generation are very powerfull tools.
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
\ No newline at end of file
Modified: pyplusplus_dev/docs/peps/dsl_challenge.rest
===================================================================
--- pyplusplus_dev/docs/peps/dsl_challenge.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/peps/dsl_challenge.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -211,11 +211,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/peps/peps_index.rest
===================================================================
--- pyplusplus_dev/docs/peps/peps_index.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/peps/peps_index.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -58,11 +58,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/pyplusplus.rest
===================================================================
--- pyplusplus_dev/docs/pyplusplus.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/pyplusplus.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -143,12 +143,14 @@
* multiple files
+ * fixed set of multiple files
+
* multiple files, where single class code is split to few files
* You have full control over generated code. Your code could be inserted almost
anywhere.
-* Your license is written at the top of every file
+* Your license is written at the top of every generated file
* `Py++`_ will check the "completeness" of the bindings. It will check for you
that the exposed declarations don't have references to unexposed ones.
@@ -173,12 +175,3 @@
.. _`Python`: http://www.python.org
.. _`GCC-XML`: http://www.gccxml.org
.. _`Boost Software License`: http://boost.org/more/license_info.html
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/quotes.rest
===================================================================
--- pyplusplus_dev/docs/quotes.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/quotes.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -127,10 +127,3 @@
.. _`PyOpenSG` : https://realityforge.vrsource.org/trac/pyopensg
.. _`OpenSG` : http://opensg.vrsource.org/trac
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: pyplusplus_dev/docs/troubleshooting_guide/automatic_conversion/automatic_conversion.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/automatic_conversion/automatic_conversion.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/troubleshooting_guide/automatic_conversion/automatic_conversion.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -62,11 +62,3 @@
.. _`pygccxml` : http://www.language-binding.net/pygccxml/pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -1,128 +1,120 @@
-====================
-Easy extending guide
-====================
-
-.. contents:: Table of contents
-
-------------
-Introduction
-------------
-
-"... Boost.Python library is designed to wrap C++ interfaces non-intrusively, so that
-you should not have to change the C++ code at all in order to wrap it."
-
-The previous statement is almost true. There are few use cases that the library
-doesn't support. This guide will list some of them and will offer few possible
-solutions.
-
--------------------
-Pointer to function
--------------------
-
-Boost.Python doesn't handle "pointer to function" functionality. You cannot pass
-it as function argument or keep it, as a member variable.
-
-The simple work-around is to use `command design pattern`_
-
-.. _`command design pattern` : http://en.wikipedia.org/wiki/Command_pattern
-
-------------------------------------
-Problematic function arguments types
-------------------------------------
-
-C arrays
---------
-
-Boost.Python doesn't handle ``C arrays``, the only exception are ``char*`` and
-``wchar_t*``.
-
-Consider next function:
-
-.. code-block:: C++
-
- int write( int* data, size_t size );
-
-The technical reasons are not the only one that prevent Boost.Python to expose such
-functions, there is a mental one: such interface is not intuitive for Python
-developers. They expect to pass single argument. For example, built-in ``file.write``
-method takes a single argument - sequence of characters.
-
-Work-around:
-
- 1. With small help from the developer, Py++ generates code which feets well into
- Python developer mental model. Pure virtual member functions are a special
- case, which Py++ doesn't handle right now.
-
- 2. Use STL containers, ``std::vector<...>`` and others.
-
-
-Immutable by reference
-----------------------
-
-Python defines few fundamental types as "immutable". The value of an instance of
-the immutable type could not be changed after construction. Try to avoid passing
-the immutable types by reference.
-
-Immutable types:
-
- * ``char``
- * ``signed char``
- * ``unsigned char``
- * ``wchar_t``
- * ``short int``
- * ``short unsigned int``
- * ``bool``
- * ``int``
- * ``unsigned int``
- * ``long int``
- * ``long unsigned int``
- * ``long long int``
- * ``long long unsigned int``
- * ``float``
- * ``double``
- * ``long double``
- * ``complex double``
- * ``complex long double``
- * ``complex float``
- * ``std::string``
- * ``std::wstring``
- * C++ ``enum`` is mapped to Python ``int`` type
- * smart pointers
-
-Work around:
-
- * Just don't pass them by reference :-)
-
- * With small help from the developer, Py++ generates code which work-arounds
- this issue, but the resulting interface is ugly.
-
-``void*``
----------
-
-In most cases, ``void*`` is used when a developer has to deal with a memory block.
-Python provides support for this functionality, but I still didn't find an easy and
-intuitive way to expose it. There is no work-around for this issue.
-
-If you use ``void*`` to pass a reference to some object, than Boost.Python and Py++
-support such use case.
-
-----------------
-Memory managment
-----------------
-
-* Use ``std::auto_ptr`` to transfer ownership and responsibility for an object
- destruction.
-
-* The only well supported smart pointer class is ``boost::shared_ptr``. I suggest
- you to use it all the time, especially in cases where you want to create object
- from Python and pass ownership to C++ code. You don't want the headache associated
- with this task.
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
+====================
+Easy extending guide
+====================
+
+.. contents:: Table of contents
+
+------------
+Introduction
+------------
+
+"... Boost.Python library is designed to wrap C++ interfaces non-intrusively, so that
+you should not have to change the C++ code at all in order to wrap it."
+
+The previous statement is almost true. There are few use cases that the library
+doesn't support. This guide will list some of them and will offer few possible
+solutions.
+
+-------------------
+Pointer to function
+-------------------
+
+Boost.Python doesn't handle "pointer to function" functionality. You cannot pass
+it as function argument or keep it, as a member variable.
+
+The simple work-around is to use `command design pattern`_
+
+.. _`command design pattern` : http://en.wikipedia.org/wiki/Command_pattern
+
+------------------------------------
+Problematic function arguments types
+------------------------------------
+
+C arrays
+--------
+
+Boost.Python doesn't handle ``C arrays``, the only exception are ``char*`` and
+``wchar_t*``.
+
+Consider next function:
+
+.. code-block:: C++
+
+ int write( int* data, size_t size );
+
+The technical reasons are not the only one that prevent Boost.Python to expose such
+functions, there is a mental one: such interface is not intuitive for Python
+developers. They expect to pass single argument. For example, built-in ``file.write``
+method takes a single argument - sequence of characters.
+
+Work-around:
+
+ 1. With small help from the developer, Py++ generates code which feets well into
+ Python developer mental model. Pure virtual member functions are a special
+ case, which Py++ doesn't handle right now.
+
+ 2. Use STL containers, ``std::vector<...>`` and others.
+
+
+Immutable by reference
+----------------------
+
+Python defines few fundamental types as "immutable". The value of an instance of
+the immutable type could not be changed after construction. Try to avoid passing
+the immutable types by reference.
+
+Immutable types:
+
+ * ``char``
+ * ``signed char``
+ * ``unsigned char``
+ * ``wchar_t``
+ * ``short int``
+ * ``short unsigned int``
+ * ``bool``
+ * ``int``
+ * ``unsigned int``
+ * ``long int``
+ * ``long unsigned int``
+ * ``long long int``
+ * ``long long unsigned int``
+ * ``float``
+ * ``double``
+ * ``long double``
+ * ``complex double``
+ * ``complex long double``
+ * ``complex float``
+ * ``std::string``
+ * ``std::wstring``
+ * C++ ``enum`` is mapped to Python ``int`` type
+ * smart pointers
+
+Work around:
+
+ * Just don't pass them by reference :-)
+
+ * With small help from the developer, Py++ generates code which work-arounds
+ this issue, but the resulting interface is ugly.
+
+``void*``
+---------
+
+In most cases, ``void*`` is used when a developer has to deal with a memory block.
+Python provides support for this functionality, but I still didn't find an easy and
+intuitive way to expose it. There is no work-around for this issue.
+
+If you use ``void*`` to pass a reference to some object, than Boost.Python and Py++
+support such use case.
+
+----------------
+Memory managment
+----------------
+
+* Use ``std::auto_ptr`` to transfer ownership and responsibility for an object
+ destruction.
+
+* The only well supported smart pointer class is ``boost::shared_ptr``. I suggest
+ you to use it all the time, especially in cases where you want to create object
+ from Python and pass ownership to C++ code. You don't want the headache associated
+ with this task.
+
Modified: pyplusplus_dev/docs/troubleshooting_guide/exceptions/exceptions.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/exceptions/exceptions.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/troubleshooting_guide/exceptions/exceptions.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -72,11 +72,3 @@
.. _`pygccxml` : http://www.language-binding.net/pygccxml/pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/troubleshooting_guide/lessons_learned.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/lessons_learned.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/troubleshooting_guide/lessons_learned.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -42,11 +42,3 @@
.. _`pygccxml` : http://www.language-binding.net/pygccxml/pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/troubleshooting_guide/shared_ptr/shared_ptr.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/shared_ptr/shared_ptr.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/troubleshooting_guide/shared_ptr/shared_ptr.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -95,11 +95,3 @@
.. _`pygccxml` : http://www.language-binding.net/pygccxml/pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
Modified: pyplusplus_dev/docs/troubleshooting_guide/smart_ptrs/smart_ptrs.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/smart_ptrs/smart_ptrs.rest 2007-12-21 21:29:10 UTC (rev 1205)
+++ pyplusplus_dev/docs/troubleshooting_guide/smart_ptrs/smart_ptrs.rest 2007-12-24 11:47:09 UTC (rev 1206)
@@ -45,11 +45,3 @@
.. _`pygccxml` : http://www.language-binding.net/pygccxml/pygccxml.html
.. _`SourceForge`: http://sourceforge.net/index.php
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-21 21:29:09
|
Revision: 1205
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1205&view=rev
Author: roman_yakovenko
Date: 2007-12-21 13:29:10 -0800 (Fri, 21 Dec 2007)
Log Message:
-----------
has_trivial_constructor - small buf was fixed - only public constructors are taken into account
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/type_traits.py
pygccxml_dev/unittests/data/type_traits.hpp
pygccxml_dev/unittests/find_container_traits_tester.py
pygccxml_dev/unittests/templates_tester.py
Modified: pygccxml_dev/pygccxml/declarations/type_traits.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/type_traits.py 2007-12-14 20:29:44 UTC (rev 1204)
+++ pygccxml_dev/pygccxml/declarations/type_traits.py 2007-12-21 21:29:10 UTC (rev 1205)
@@ -378,9 +378,8 @@
logger.debug( true_header + "class doesn't have any user defined constructor and it is copyable" )
return True
else:
- if None != find_trivial_constructor( type ):
- return True
- return False
+ cons = find_trivial_constructor( type )
+ return cons and cons.access_type == 'public'
"""
Question: Do I have to define a copy constructor and assignment operator?
Modified: pygccxml_dev/unittests/data/type_traits.hpp
===================================================================
--- pygccxml_dev/unittests/data/type_traits.hpp 2007-12-14 20:29:44 UTC (rev 1204)
+++ pygccxml_dev/unittests/data/type_traits.hpp 2007-12-21 21:29:10 UTC (rev 1205)
@@ -538,6 +538,17 @@
struct const_item{ const int values[10]; };
struct const_container{ const const_item items[10]; };
+ class singleton_t
+ {
+ private:
+ static singleton_t *m_instance;
+
+ singleton_t () {}
+ ~singleton_t () {}
+
+ public:
+ static singleton_t* instance();
+ };
} }
namespace has_public_constructor{
Modified: pygccxml_dev/unittests/find_container_traits_tester.py
===================================================================
--- pygccxml_dev/unittests/find_container_traits_tester.py 2007-12-14 20:29:44 UTC (rev 1204)
+++ pygccxml_dev/unittests/find_container_traits_tester.py 2007-12-21 21:29:10 UTC (rev 1205)
@@ -61,6 +61,11 @@
t1 = declarations.class_traits.get_declaration( f1.arguments[0].type )
self.failUnless( 'type< std::set< std::vector< int > > >' == t1.partial_name )
+ def test_from_ogre( self ):
+ x = 'map<std::string, bool (*)(std::string&, Ogre::MaterialScriptContext&), std::less<std::string>, std::allocator<std::pair<std::string const, bool (*)(std::string&, Ogre::MaterialScriptContext&)> > >'
+ ct = declarations.find_container_traits( x )
+ y = ct.remove_defaults( x )
+
def create_suite():
suite = unittest.TestSuite()
suite.addTest( unittest.makeSuite(tester_t))
Modified: pygccxml_dev/unittests/templates_tester.py
===================================================================
--- pygccxml_dev/unittests/templates_tester.py 2007-12-14 20:29:44 UTC (rev 1204)
+++ pygccxml_dev/unittests/templates_tester.py 2007-12-21 21:29:10 UTC (rev 1205)
@@ -59,6 +59,11 @@
def test_bug_is_tmpl_inst(self):
self.failUnless( False == declarations.templates.is_instantiation( "::FX::QMemArray<unsigned char>::setRawData" ) )
+ def test_split_bug_fptr(self):
+ x = 'map<std::string, bool (*)(std::string&, Ogre::MaterialScriptContext&), std::less<std::string>, std::allocator<std::pair<std::string const, bool (*)(std::string&, Ogre::MaterialScriptContext&)> > >'
+ name, args = declarations.templates.split( x )
+ self.failUnless( len(x) == 4 )
+
def create_suite():
suite = unittest.TestSuite()
suite.addTest( unittest.makeSuite(tester_t))
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-14 20:29:42
|
Revision: 1204
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1204&view=rev
Author: roman_yakovenko
Date: 2007-12-14 12:29:44 -0800 (Fri, 14 Dec 2007)
Log Message:
-----------
removing link unit
Modified Paths:
--------------
website/templates/online/page_template.html
Modified: website/templates/online/page_template.html
===================================================================
--- website/templates/online/page_template.html 2007-12-12 09:10:21 UTC (rev 1203)
+++ website/templates/online/page_template.html 2007-12-14 20:29:44 UTC (rev 1204)
@@ -59,28 +59,7 @@
</script>
</div>
<div class="rest_document">
- <div class="middle_ads">
- <script type="text/javascript"><!--
- google_ad_client = "pub-0886572017808006";
- google_ad_width = 468;
- google_ad_height = 15;
- google_ad_format = "468x15_0ads_al";
- //2007-03-01: top-link-unit
- google_ad_channel = "4551309584";
- google_color_border = "FFFFFF";
- google_color_bg = "FFFFFF";
- google_color_link = "0033CC";
- google_color_text = "0033CC";
- google_color_url = "0033CC";
- //--></script>
- <script type="text/javascript"
- src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
- <!-- xml kid bug -->
- </script>
- </div>
- <!-- google_ad_section_start -->
${ XML(page_content) }
- <!-- google_ad_section_end -->
</div>
<div class="bottom">
<script type="text/javascript">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-12 09:10:23
|
Revision: 1203
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1203&view=rev
Author: roman_yakovenko
Date: 2007-12-12 01:10:21 -0800 (Wed, 12 Dec 2007)
Log Message:
-----------
adding new file writer balanced_files.py
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/file_writers/__init__.py
pyplusplus_dev/pyplusplus/file_writers/multiple_files.py
pyplusplus_dev/pyplusplus/module_builder/builder.py
pyplusplus_dev/pyplusplus/utils/__init__.py
pyplusplus_dev/unittests/test_all.py
Added Paths:
-----------
pyplusplus_dev/pyplusplus/file_writers/balanced_files.py
pyplusplus_dev/unittests/balanced_files_tester.py
pyplusplus_dev/unittests/data/balanced_files_to_be_exported.hpp
Modified: pyplusplus_dev/pyplusplus/file_writers/__init__.py
===================================================================
--- pyplusplus_dev/pyplusplus/file_writers/__init__.py 2007-12-11 10:21:11 UTC (rev 1202)
+++ pyplusplus_dev/pyplusplus/file_writers/__init__.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -20,6 +20,7 @@
from writer import writer_t
from single_file import single_file_t
from multiple_files import multiple_files_t
+from balanced_files import balanced_files_t
from class_multiple_files import class_multiple_files_t
from md5sum_repository import repository_t
from md5sum_repository import cached_repository_t
@@ -45,6 +46,12 @@
mfs.write()
return mfs.written_files
+def write_balanced_files( extmodule, dir_path, number_of_buckets, files_sum_repository=None, encoding='ascii' ):
+ """writes extmodule to fixed number of multiple cpp files"""
+ mfs = balanced_files_t( extmodule, dir_path, number_of_buckets, files_sum_repository=files_sum_repository, encoding=encoding )
+ mfs.write()
+ return mfs.written_files
+
def write_class_multiple_files( extmodule, dir_path, huge_classes, files_sum_repository, encoding='ascii' ):
"""writes extmodule to multiple files and splits huge classes to few source files"""
mfs = class_multiple_files_t( extmodule, dir_path, huge_classes, files_sum_repository=files_sum_repository, encoding=encoding )
Added: pyplusplus_dev/pyplusplus/file_writers/balanced_files.py
===================================================================
--- pyplusplus_dev/pyplusplus/file_writers/balanced_files.py (rev 0)
+++ pyplusplus_dev/pyplusplus/file_writers/balanced_files.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -0,0 +1,64 @@
+# Copyright 2004 Giovanni Beltrame
+# Distributed under the Boost Software License, Version 1.0. (See
+# accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+"""defines a class that writes L{code_creators.module_t} to multiple files"""
+
+import os
+import math
+import multiple_files
+from pyplusplus import messages
+from pyplusplus import _logging_
+from pygccxml import declarations
+from pyplusplus import decl_wrappers
+from pyplusplus import code_creators
+from pyplusplus.utils import split_sequence
+
+#TODO: to add namespace_alias_t classes
+class balanced_files_t(multiple_files.multiple_files_t):
+ """
+ This class implements classic strategy of deviding classes to files
+ one class in one header + source files.
+ """
+ HEADER_EXT = '.pypp.hpp'
+ SOURCE_EXT = '.pypp.cpp'
+
+ def __init__( self
+ , extmodule
+ , directory_path
+ , number_of_buckets
+ , write_main=True
+ , files_sum_repository=None
+ , encoding='ascii'):
+ """Constructor.
+
+ @param extmodule: The root of a code creator tree
+ @type extmodule: module_t
+ @param directory_path: The output directory where the source files are written
+ @type directory_path: str
+
+ @param write_main: if it is True, the class will write out a main file
+ that calls all the registration methods.
+ @type write_main: boolean
+ """
+ multiple_files.multiple_files_t.__init__( self, extmodule, directory_path, write_main, files_sum_repository, encoding)
+ self.number_of_buckets = number_of_buckets
+
+ def split_classes( self ):
+ class_creators = filter( lambda x: isinstance(x, ( code_creators.class_t, code_creators.class_declaration_t ) )
+ , self.extmodule.body.creators )
+
+ class_creators = filter( lambda cc: not cc.declaration.already_exposed
+ , class_creators )
+
+ buckets = split_sequence(class_creators, len(class_creators)/self.number_of_buckets )
+ if len(buckets) > self.number_of_buckets:
+ buckets[len(buckets)-2] += buckets[len(buckets)-1]
+ buckets = buckets[:len(buckets)-1]
+
+ for index, bucket in enumerate( buckets ):
+ self.split_creators( bucket
+ , '_classes_%d' % (index+1)
+ , 'register_classes_%d' % (index+1)
+ , -1 )
Modified: pyplusplus_dev/pyplusplus/file_writers/multiple_files.py
===================================================================
--- pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2007-12-11 10:21:11 UTC (rev 1202)
+++ pyplusplus_dev/pyplusplus/file_writers/multiple_files.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -290,6 +290,13 @@
self.logger.error( os.linesep.join( msg ) )
raise
+ def split_classes( self ):
+ # Obtain a list of all class creators...
+ class_creators = filter( lambda x: isinstance(x, ( code_creators.class_t, code_creators.class_declaration_t ) )
+ , self.extmodule.body.creators )
+ # ...and write a .h/.cpp file for each class
+ map( self.split_class, class_creators )
+
def create_value_traits_header_name( self, value_class ):
return "_" + value_class.alias + "__value_traits" + self.HEADER_EXT
@@ -308,6 +315,9 @@
, value_traits.create() ) )
value_traits.create = lambda: ''
+ def split_values_traits( self ):
+ map( self.split_value_traits, self.__value_traits )
+
def split_creators( self, creators, pattern, function_name, registrator_pos ):
"""Write non-class creators into a particular .h/.cpp file.
@@ -379,14 +389,8 @@
self.extmodule.do_include_dirs_optimization()
- map( self.split_value_traits, self.__value_traits )
-
- # Obtain a list of all class creators...
- class_creators = filter( lambda x: isinstance(x, ( code_creators.class_t, code_creators.class_declaration_t ) )
- , self.extmodule.body.creators )
- # ...and write a .h/.cpp file for each class
- map( self.split_class, class_creators )
-
+ self.split_values_traits()
+ self.split_classes()
self.split_enums()
self.split_global_variables()
self.split_free_functions()
Modified: pyplusplus_dev/pyplusplus/module_builder/builder.py
===================================================================
--- pyplusplus_dev/pyplusplus/module_builder/builder.py 2007-12-11 10:21:11 UTC (rev 1202)
+++ pyplusplus_dev/pyplusplus/module_builder/builder.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -317,6 +317,20 @@
self.__merge_user_code()
file_writers.write_file( self.code_creator, file_name, encoding=self.encoding )
+ def __work_on_unused_files( self, dir_name, written_files, on_unused_file_found ):
+ all_files = os.listdir( dir_name )
+ all_files = map( lambda fname: os.path.join( dir_name, fname ), all_files )
+ all_files = filter( file_writers.has_pypp_extenstion, all_files )
+
+ unused_files = set( all_files ).difference( set( written_files ) )
+ for fpath in unused_files:
+ try:
+ if on_unused_file_found is os.remove:
+ self.logger.info( 'removing file "%s"' % fpath )
+ on_unused_file_found( fpath )
+ except Exception, error:
+ self.logger.exception( "Exception was catched, while executing 'on_unused_file_found' function." )
+
def split_module( self
, dir_name
, huge_classes=None
@@ -358,22 +372,49 @@
, huge_classes
, files_sum_repository=files_sum_repository
, encoding=self.encoding)
+ self.__work_on_unused_files( dir_name, written_files, on_unused_file_found )
- all_files = os.listdir( dir_name )
- all_files = map( lambda fname: os.path.join( dir_name, fname ), all_files )
- all_files = filter( file_writers.has_pypp_extenstion, all_files )
+ return written_files
- unused_files = set( all_files ).difference( set( written_files ) )
- for fpath in unused_files:
- try:
- if on_unused_file_found is os.remove:
- self.logger.info( 'removing file "%s"' % fpath )
- on_unused_file_found( fpath )
- except Exception, error:
- self.logger.exception( "Exception was catched, while executing 'on_unused_file_found' function." )
+ def balanced_split_module( self
+ , dir_name
+ , number_of_files
+ , on_unused_file_found=os.remove
+ , use_files_sum_repository=True):
+ """
+ Writes module to fixed number of multiple cpp files
+ @param number_of_files: the desired number of generated cpp files
+ @type number_of_files: int
+
+ @param dir_name: directory name
+ @type dir_name: string
+
+ @param on_unused_file_found: callable object that represents the action that should be taken on
+ file, which is no more in use
+
+ @use_files_sum_repository: Py++ can generate file, which will contain md5 sum of every generated file.
+ Next time you generate code, md5sum will be loaded from the file and compared.
+ This could speed-up code generation process by 10-15%.
+ """
+ self.__merge_user_code()
+
+ files_sum_repository = None
+ if use_files_sum_repository:
+ cache_file = os.path.join( dir_name, self.code_creator.body.name + '.md5.sum' )
+ files_sum_repository = file_writers.cached_repository_t( cache_file )
+
+ written_files = file_writers.write_balanced_files( self.code_creator
+ , dir_name
+ , number_of_buckets=number_of_files
+ , files_sum_repository=files_sum_repository
+ , encoding=self.encoding)
+
+ self.__work_on_unused_files( dir_name, written_files, on_unused_file_found )
+
return written_files
+
#select decl(s) interfaces
def decl( self, name=None, function=None, header_dir=None, header_file=None, recursive=None ):
"""Please see L{decl_wrappers.scopedef_t} class documentation"""
Modified: pyplusplus_dev/pyplusplus/utils/__init__.py
===================================================================
--- pyplusplus_dev/pyplusplus/utils/__init__.py 2007-12-11 10:21:11 UTC (rev 1202)
+++ pyplusplus_dev/pyplusplus/utils/__init__.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -40,7 +40,7 @@
creator.parent.remove_creator( creator )
def split_sequence(seq, bucket_size):
- #split sequence to buclets, where every will contain maximum bucket_size items
+ #split sequence to buckets, where every will contain maximum bucket_size items
seq_len = len( seq )
if seq_len <= bucket_size:
return [ seq ]
Added: pyplusplus_dev/unittests/balanced_files_tester.py
===================================================================
--- pyplusplus_dev/unittests/balanced_files_tester.py (rev 0)
+++ pyplusplus_dev/unittests/balanced_files_tester.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -0,0 +1,88 @@
+# Copyright 2004 Roman Yakovenko.
+# Distributed under the Boost Software License, Version 1.0. (See
+# accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+import os
+import sys
+import unittest
+import autoconfig
+from pyplusplus import utils
+import fundamental_tester_base
+from pygccxml import declarations
+from pyplusplus import module_builder
+from pyplusplus.module_builder import call_policies
+
+class tester_t(fundamental_tester_base.fundamental_tester_base_t):
+ EXTENSION_NAME = 'balanced_files'
+
+ def __init__( self, *args ):
+ fundamental_tester_base.fundamental_tester_base_t.__init__(
+ self
+ , tester_t.EXTENSION_NAME
+ , indexing_suite_version=1
+ , *args )
+ self.files = []
+
+ def customize( self, mb ):
+ mb.global_ns.exclude()
+
+ nm_t = declarations.remove_declarated( mb.global_ns.typedef( 'naive_matrix_t' ).type )
+ nm_t.include()
+
+ exposed_db = utils.exposed_decls_db_t()
+
+ exposed_db.register_decls( mb.global_ns )
+ exposed_db.save( autoconfig.build_dir )
+ mb.register_module_dependency( autoconfig.build_dir )
+
+ sm = mb.global_ns.namespace( name='split_module' )
+ sm.include()
+ sm.class_( 'op_struct' ).exclude()
+
+ mb.free_function( 'check_overload' ).add_declaration_code( '//hello check_overload' )
+ mb.free_function( 'get_opaque' ).add_declaration_code( '//hello get_opaque' )
+
+ mb.calldefs( 'check_overload' ).use_overload_macro = True
+ mb.calldefs( 'get_opaque' ).call_policies \
+ = call_policies.return_value_policy( call_policies.return_opaque_pointer )
+
+ mb.class_( 'op_struct' ).exclude()
+ item = mb.class_( 'item_t' )
+ item.add_declaration_code( '//hello world' )
+ nested = item.class_( 'nested_t' )
+ nested.add_declaration_code( '//hello nested decl' )
+ nested.add_registration_code( '//hello nested reg', False )
+ mb.free_fun( 'create_empty_mapping' ).include()
+
+ def generate_source_files( self, mb ):
+ files = mb.balanced_split_module( autoconfig.build_dir, 2, on_unused_file_found=lambda fpath: fpath )
+ self.files = filter( lambda fname: fname.endswith( 'cpp' ), files )
+
+ def get_source_files( self ):
+ return self.files
+
+ def run_tests(self, module):
+ module.get_opaque()
+ item = module.item_t()
+ item.get_opaque()
+ module.check_overload()
+ item.check_overload()
+ item = module.TestClass1()
+ if item.func() != 1: raise Exception
+ item = module.TestClass2()
+ if item.func() != 2: raise Exception
+ item = module.TestClass3()
+ if item.func() != 3: raise Exception
+
+
+def create_suite():
+ suite = unittest.TestSuite()
+ suite.addTest( unittest.makeSuite(tester_t))
+ return suite
+
+def run_suite():
+ unittest.TextTestRunner(verbosity=2).run( create_suite() )
+
+if __name__ == "__main__":
+ run_suite()
Added: pyplusplus_dev/unittests/data/balanced_files_to_be_exported.hpp
===================================================================
--- pyplusplus_dev/unittests/data/balanced_files_to_be_exported.hpp (rev 0)
+++ pyplusplus_dev/unittests/data/balanced_files_to_be_exported.hpp 2007-12-12 09:10:21 UTC (rev 1203)
@@ -0,0 +1,90 @@
+// Copyright 2004 Roman Yakovenko.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef __split_module_to_be_exported_hpp__
+#define __split_module_to_be_exported_hpp__
+
+#include "boost/shared_ptr.hpp"
+//#include BOOST_HASH_MAP_HEADER
+#include <map>
+#include <vector>
+#include <string>
+
+namespace split_module{
+
+typedef std::vector< std::vector< int > > naive_matrix_t;
+
+class TestClass1 {
+
+public:
+ int func() {
+ return 1;
+ }
+
+};
+
+class TestClass2 {
+
+public:
+ int func() {
+ return 2;
+ }
+
+};
+
+class TestClass3 {
+
+public:
+ int func() {
+ return 3;
+ }
+};
+
+
+inline naive_matrix_t create_zero_matrix( unsigned int x ){
+ return naive_matrix_t();
+};
+
+
+struct op_struct{};
+
+inline op_struct* get_opaque(){
+ return 0;
+}
+
+inline void check_overload( int i=0, int j=1, int k=2 ){
+}
+
+
+struct item_t{
+
+ enum EColor{ red, blue };
+ enum EFruit{ apple, orange };
+
+ item_t(){}
+ item_t( int ){}
+
+ void do_nothing(){}
+ int do_something(){ return 1; }
+
+ op_struct* get_opaque(){ return 0; }
+
+ void check_overload( int i=0, int j=1, int k=2 ){}
+
+ int m_dummy;
+
+ struct nested_t{};
+};
+
+//typedef BOOST_STD_EXTENSION_NAMESPACE::hash_map< std::string, boost::shared_ptr< item_t > > str2item_t;
+typedef std::map< std::string, boost::shared_ptr< item_t > > str2item_t;
+inline str2item_t create_empty_mapping(){
+ return str2item_t();
+}
+
+}
+
+
+#endif//__split_module_to_be_exported_hpp__
Modified: pyplusplus_dev/unittests/test_all.py
===================================================================
--- pyplusplus_dev/unittests/test_all.py 2007-12-11 10:21:11 UTC (rev 1202)
+++ pyplusplus_dev/unittests/test_all.py 2007-12-12 09:10:21 UTC (rev 1203)
@@ -97,6 +97,7 @@
import vector_with_shared_data_tester
import constructors_bug_tester
import precompiled_header_tester
+import balanced_files_tester
testers = [
@@ -182,6 +183,7 @@
, templates_tester
, constructors_bug_tester
, precompiled_header_tester
+ , balanced_files_tester
]
class module_runner_t( object ):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-11 10:21:07
|
Revision: 1202
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1202&view=rev
Author: roman_yakovenko
Date: 2007-12-11 02:21:11 -0800 (Tue, 11 Dec 2007)
Log Message:
-----------
replace name with partial name
Modified Paths:
--------------
pyplusplus_dev/docs/links.rest
pyplusplus_dev/pyplusplus/code_creators/calldef.py
pyplusplus_dev/pyplusplus/messages/warnings_.py
pyplusplus_dev/unittests/ogre_generate_tester.py
Modified: pyplusplus_dev/docs/links.rest
===================================================================
--- pyplusplus_dev/docs/links.rest 2007-12-10 21:29:19 UTC (rev 1201)
+++ pyplusplus_dev/docs/links.rest 2007-12-11 10:21:11 UTC (rev 1202)
@@ -111,7 +111,12 @@
* http://www.shocksolution.com/math_tools/boost.python/index.html - this site
contains few usefull Boost.Python examples and tutorials.
+-------------
+Build systems
+-------------
+http://www.scons.org/wiki/GCCXMLBuilder - Joseph Lisee shows how to integrate
+Py++ scripts with Scons.
..
Local Variables:
Modified: pyplusplus_dev/pyplusplus/code_creators/calldef.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-12-10 21:29:19 UTC (rev 1201)
+++ pyplusplus_dev/pyplusplus/code_creators/calldef.py 2007-12-11 10:21:11 UTC (rev 1202)
@@ -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' % declarations.full_name( self.declaration, with_defaults=False ) ]
result.append( os.linesep * 2 )
result.append( self.indent( code ) )
result.append( os.linesep * 2 )
@@ -196,17 +196,14 @@
return 'typedef ' + f_type.create_typedef( self.function_type_alias, with_defaults=False ) + ';'
def create_function_ref_code(self, use_function_alias=False):
+ fname = declarations.full_name( self.declaration, with_defaults=False )
if use_function_alias:
- return '%s( &%s )' \
- % ( self.function_type_alias, declarations.full_name( self.declaration ) )
+ return '%s( &%s )' % ( self.function_type_alias, fname )
elif self.declaration.create_with_signature:
- return '(%s)( &%s )' \
- % ( self.declaration.function_type().partial_decl_string
- , declarations.full_name( self.declaration ) )
+ return '(%s)( &%s )' % ( self.declaration.function_type().partial_decl_string, fname )
else:
- return '&%s' % declarations.full_name( self.declaration )
+ return '&%s' % fname
-
class mem_fun_t( calldef_t ):
def __init__( self, function ):
calldef_t.__init__( self, function=function )
@@ -216,17 +213,14 @@
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):
+ fname = declarations.full_name( self.declaration, with_defaults=False )
if use_function_alias:
- return '%s( &%s )' \
- % ( self.function_type_alias, declarations.full_name( self.declaration ) )
+ return '%s( &%s )' % ( self.function_type_alias, fname )
elif self.declaration.create_with_signature:
- return '(%s)( &%s )' \
- % ( self.declaration.function_type().decl_string
- , declarations.full_name( self.declaration ) )
+ return '(%s)( &%s )' % ( self.declaration.function_type().partial_decl_string, fname )
else:
- return '&%s' % declarations.full_name( self.declaration )
+ return '&%s' % fname
-
class mem_fun_pv_t( calldef_t ):
def __init__( self, function, wrapper ):
calldef_t.__init__( self, function=function, wrapper=wrapper )
@@ -236,20 +230,19 @@
return 'typedef %s;' % ftype.create_typedef( self.function_type_alias, exported_class_alias )
def create_function_ref_code(self, use_function_alias=False):
+ fname = declarations.full_name( self.declaration, with_defaults=False )
if use_function_alias:
return '%s( %s(&%s) )' \
% ( self.pure_virtual_identifier()
, self.function_type_alias
- , declarations.full_name( self.declaration ) )
+ , fname )
elif self.declaration.create_with_signature:
return '%s( (%s)(&%s) )' \
% ( self.pure_virtual_identifier()
- , self.declaration.function_type().decl_string
- , declarations.full_name( self.declaration ) )
+ , self.declaration.function_type().partial_decl_string
+ , fname )
else:
- return '%s( &%s )' \
- % ( self.pure_virtual_identifier()
- , declarations.full_name( self.declaration ) )
+ return '%s( &%s )' % ( self.pure_virtual_identifier(), fname)
class mem_fun_pv_wrapper_t( calldef_wrapper_t ):
def __init__( self, function ):
@@ -263,7 +256,7 @@
constness = ' const '
return template % {
- 'return_type' : self.declaration.return_type.decl_string
+ 'return_type' : self.declaration.return_type.partial_decl_string
, 'name' : self.declaration.name
, 'args' : self.args_declaration()
, 'constness' : constness
@@ -318,24 +311,25 @@
return None
def create_function_ref_code(self, use_function_alias=False):
+ fname = declarations.full_name( self.declaration, with_defaults=False )
result = []
if use_function_alias:
- result.append( '%s(&%s)'
- % ( self.function_type_alias, declarations.full_name( self.declaration ) ) )
+ result.append( '%s(&%s)' % ( self.function_type_alias, fname) )
if self.wrapper:
result.append( self.param_sep() )
result.append( '%s(&%s)'
% ( self.default_function_type_alias, self.wrapper.default_full_name() ) )
elif self.declaration.create_with_signature:
result.append( '(%s)(&%s)'
- % ( self.declaration.function_type().decl_string
- , declarations.full_name( self.declaration ) ) )
+ % ( self.declaration.function_type().partial_decl_string
+ , fname) )
if self.wrapper:
result.append( self.param_sep() )
result.append( '(%s)(&%s)'
- % ( self.wrapper.function_type().decl_string, self.wrapper.default_full_name() ) )
+ % ( self.wrapper.function_type().partial_decl_string
+ , self.wrapper.default_full_name() ) )
else:
- result.append( '&%s'% declarations.full_name( self.declaration ) )
+ result.append( '&%s'% fname )
if self.wrapper:
result.append( self.param_sep() )
result.append( '&%s' % self.wrapper.default_full_name() )
@@ -801,7 +795,7 @@
#Function parameters declared consts are ignored by C++
#except for the purpose of function definitions
temp = declarations.remove_const( temp )
- return algorithm.create_identifier( self, temp.decl_string )
+ return algorithm.create_identifier( self, temp.partial_decl_string )
def _generate_definition_args(self):
answer = []
Modified: pyplusplus_dev/pyplusplus/messages/warnings_.py
===================================================================
--- pyplusplus_dev/pyplusplus/messages/warnings_.py 2007-12-10 21:29:19 UTC (rev 1201)
+++ pyplusplus_dev/pyplusplus/messages/warnings_.py 2007-12-11 10:21:11 UTC (rev 1202)
@@ -215,6 +215,8 @@
warnings = globals()
+all_warning_msgs = []
+
for identifier, explanation in warnings.items():
if len( identifier ) != 5:
continue
@@ -225,7 +227,10 @@
except:
continue
msg = '%s %s: %s' % ( explanation.__class__.prefix, identifier, str(explanation) )
- globals()[ identifier ] = explanation.__class__( msg, identifier )
+ msg_inst = explanation.__class__( msg, identifier )
+ globals()[ identifier ] = msg_inst
+ all_warning_msgs.append( msg_inst )
+
del warnings
del identifier
Modified: pyplusplus_dev/unittests/ogre_generate_tester.py
===================================================================
--- pyplusplus_dev/unittests/ogre_generate_tester.py 2007-12-10 21:29:19 UTC (rev 1201)
+++ pyplusplus_dev/unittests/ogre_generate_tester.py 2007-12-11 10:21:11 UTC (rev 1202)
@@ -6,10 +6,12 @@
import os
import sys
import shutil
+import logging
import unittest
import autoconfig
from pygccxml import parser
from pygccxml import declarations
+from pyplusplus import messages
from pyplusplus import code_creators
from pyplusplus import module_creator
from pyplusplus import module_builder
@@ -18,6 +20,9 @@
class ogre_generate_tester_t(unittest.TestCase):
def test(self):
+ module_builder.set_logger_level( logging.CRITICAL )
+ messages.disable( *messages.all_warning_msgs )
+
ogre_file = autoconfig.data_directory.replace( 'pyplusplus_dev', 'pygccxml_dev' )
ogre_file = parser.create_gccxml_fc( os.path.join( ogre_file, 'ogre1.4.xml' ) )
@@ -25,9 +30,16 @@
[ ogre_file ]
, gccxml_path=autoconfig.gccxml.executable
, indexing_suite_version=2)
+
mb.global_ns.exclude()
mb.namespace('Ogre').include()
+ x = mb.global_ns.decls( lambda d: 'Animation*' in d.name and 'MapIterator' in d.name )
+ for y in x:
+ print y.name
+ print y.partial_name
+ print declarations.full_name( y, with_defaults=False )
+
target_dir = os.path.join( autoconfig.build_directory, 'ogre' )
if os.path.exists( target_dir ):
shutil.rmtree( target_dir )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-10 21:29:16
|
Revision: 1201
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1201&view=rev
Author: roman_yakovenko
Date: 2007-12-10 13:29:19 -0800 (Mon, 10 Dec 2007)
Log Message:
-----------
improving partial name implementation
Modified Paths:
--------------
pygccxml_dev/docs/pygccxml.rest
pygccxml_dev/pygccxml/declarations/class_declaration.py
pygccxml_dev/pygccxml/declarations/container_traits.py
pygccxml_dev/pygccxml/declarations/enumeration.py
pygccxml_dev/pygccxml/parser/scanner.py
pygccxml_dev/unittests/core_tester.py
pygccxml_dev/unittests/data/core_cache.hpp
pygccxml_dev/unittests/data/remove_template_defaults.hpp
pygccxml_dev/unittests/find_container_traits_tester.py
Modified: pygccxml_dev/docs/pygccxml.rest
===================================================================
--- pygccxml_dev/docs/pygccxml.rest 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/docs/pygccxml.rest 2007-12-10 21:29:19 UTC (rev 1201)
@@ -128,7 +128,7 @@
`pygccxml`_ comes with comprehensive unit tests. It is running on Windows XP and
`Ubuntu`_. I am using `Python`_ 2.4\\2.5 and `GCC-XML`_ CVS. `pygccxml`_ has
-more then 170 tests. They test almost every piece of code. It also has performance
+more then 215 tests. They test almost every piece of code. It also has performance
tests. Most of the time I am using "white box" testing strategy.
.. _`WSDL`: http://www.w3.org/TR/wsdl
Modified: pygccxml_dev/pygccxml/declarations/class_declaration.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/class_declaration.py 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/pygccxml/declarations/class_declaration.py 2007-12-10 21:29:19 UTC (rev 1201)
@@ -40,8 +40,6 @@
elif templates.is_instantiation( name ):
tmpl_name, args = templates.split( name )
for i, arg_name in enumerate( args ):
- print i, ' : ', get_partial_name( arg_name.strip() )
- print
args[i] = get_partial_name( arg_name.strip() )
return templates.join( tmpl_name, args )
else:
@@ -125,10 +123,7 @@
return self._container_traits
def _get_partial_name_impl( self ):
- #~ return get_partial_name( self.name )
- if not self.container_traits:
- return self.name
- return self.container_traits.remove_defaults( self )
+ return get_partial_name( self.name )
class class_t( scopedef.scopedef_t ):
"""describes class definition"""
@@ -447,9 +442,6 @@
return None
def _get_partial_name_impl( self ):
- #~ return get_partial_name( self.name )
- if not self.container_traits:
- return self.name
- return self.container_traits.remove_defaults( self )
+ return get_partial_name( self.name )
class_types = ( class_t, class_declaration_t )
Modified: pygccxml_dev/pygccxml/declarations/container_traits.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/container_traits.py 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/pygccxml/declarations/container_traits.py 2007-12-10 21:29:19 UTC (rev 1201)
@@ -406,6 +406,8 @@
if not templates.is_instantiation( cls_or_string ):
return None
name = templates.name( cls_or_string )
+ if name.startswith( 'std::' ):
+ name = name[ len( 'std::' ): ]
for cls_traits in container_traits:
if cls_traits.name() == name:
return cls_traits
Modified: pygccxml_dev/pygccxml/declarations/enumeration.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/enumeration.py 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/pygccxml/declarations/enumeration.py 2007-12-10 21:29:19 UTC (rev 1201)
@@ -36,6 +36,8 @@
# Initialize values via property access
self.values = values
+ self._byte_size = 0
+ self._byte_align = 0
def __eq__(self, other):
if not declaration.declaration_t.__eq__( self, other ):
@@ -116,3 +118,18 @@
def i_depend_on_them( self, recursive=True ):
return []
+
+ def _get_byte_size(self):
+ return self._byte_size
+ def _set_byte_size( self, new_byte_size ):
+ self._byte_size = new_byte_size
+ byte_size = property( _get_byte_size, _set_byte_size
+ , doc="Size of this class in bytes @type: int")
+
+ def _get_byte_align(self):
+ return self._byte_align
+ def _set_byte_align( self, new_byte_align ):
+ self._byte_align = new_byte_align
+ byte_align = property( _get_byte_align, _set_byte_align
+ , doc="Alignment of this class in bytes @type: int")
+
Modified: pygccxml_dev/pygccxml/parser/scanner.py
===================================================================
--- pygccxml_dev/pygccxml/parser/scanner.py 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/pygccxml/parser/scanner.py 2007-12-10 21:29:19 UTC (rev 1201)
@@ -302,6 +302,8 @@
#it means that this is unnamed enum. in c++ enum{ x };
enum_name = ''
decl = self.__decl_factory.create_enumeration( name=enum_name )
+ self.__read_byte_size(decl, attrs)
+ self.__read_byte_align(decl, attrs)
self.__enums.append( decl )
return decl
Modified: pygccxml_dev/unittests/core_tester.py
===================================================================
--- pygccxml_dev/unittests/core_tester.py 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/unittests/core_tester.py 2007-12-10 21:29:19 UTC (rev 1201)
@@ -282,8 +282,16 @@
% ( 4, len(do_nothings) ) )
for index, do_nothing in enumerate(do_nothings):
others = do_nothings[:index] + do_nothings[index+1:]
+ if set( do_nothing.overloads ) != set( others ):
+ print '\nexisting: '
+ for x in do_nothing.overloads:
+ print str(x)
+ print '\nexpected: '
+ for x in others:
+ print str(x)
+
self.failUnless( set( do_nothing.overloads ) == set( others )
- , "there is a difference between expected function overloads and existing ones." )
+ , "there is a difference between expected function overloads and existing ones." )
def test_abstract_classes(self):
ns = self.global_ns.namespace( 'abstract_classes' )
Modified: pygccxml_dev/unittests/data/core_cache.hpp
===================================================================
--- pygccxml_dev/unittests/data/core_cache.hpp 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/unittests/data/core_cache.hpp 2007-12-10 21:29:19 UTC (rev 1201)
@@ -22,4 +22,4 @@
#endif//__core_cache_hpp__
-//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch
\ No newline at end of file
+//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch
\ No newline at end of file
Modified: pygccxml_dev/unittests/data/remove_template_defaults.hpp
===================================================================
--- pygccxml_dev/unittests/data/remove_template_defaults.hpp 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/unittests/data/remove_template_defaults.hpp 2007-12-10 21:29:19 UTC (rev 1201)
@@ -102,7 +102,7 @@
typedef HASH_XXX_NS::hash_multimap< std::vector< int > const, hmm_wstr2d const > hmm_v_i2mm_wstr2d;
}
-inline void do_nothing1( type< sets::s_v_int > ){
+inline void f1( type< sets::s_v_int > ){
}
}
Modified: pygccxml_dev/unittests/find_container_traits_tester.py
===================================================================
--- pygccxml_dev/unittests/find_container_traits_tester.py 2007-12-10 17:06:45 UTC (rev 1200)
+++ pygccxml_dev/unittests/find_container_traits_tester.py 2007-12-10 21:29:19 UTC (rev 1201)
@@ -57,10 +57,9 @@
print m.partial_name
def test_recursive_partial_name( self ):
- f = self.global_ns.free_fun( 'do_nothing1' )
- t1 = declarations.class_traits.get_declaration( f.arguments[0].type )
- print t1.name
- print t1.partial_name
+ f1 = self.global_ns.free_fun( 'f1' )
+ t1 = declarations.class_traits.get_declaration( f1.arguments[0].type )
+ self.failUnless( 'type< std::set< std::vector< int > > >' == t1.partial_name )
def create_suite():
suite = unittest.TestSuite()
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-10 17:06:40
|
Revision: 1200
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1200&view=rev
Author: roman_yakovenko
Date: 2007-12-10 09:06:45 -0800 (Mon, 10 Dec 2007)
Log Message:
-----------
improving example
Modified Paths:
--------------
pygccxml_dev/docs/example/example.hpp.xml
pygccxml_dev/docs/example/output.txt
pygccxml_dev/pygccxml/declarations/class_declaration.py
pygccxml_dev/unittests/data/remove_template_defaults.hpp
pygccxml_dev/unittests/find_container_traits_tester.py
Modified: pygccxml_dev/docs/example/example.hpp.xml
===================================================================
--- pygccxml_dev/docs/example/example.hpp.xml 2007-12-05 20:52:52 UTC (rev 1199)
+++ pygccxml_dev/docs/example/example.hpp.xml 2007-12-10 17:06:45 UTC (rev 1200)
@@ -1,97 +1,6888 @@
<?xml version="1.0"?>
-<GCC_XML cvs_revision="1.112">
- <Namespace id="_1" name="::" members="_3 _4 _5 _6 _7 _8 " mangled="_Z2::" demangled="::"/>
- <Namespace id="_2" name="std" context="_1" members="" mangled="_Z3std" demangled="std"/>
- <Variable id="_3" name="_ZTIN4core15class_hierarchy15multi_derived_tE" type="_9c" context="_1" location="f0:30" file="f0" line="30" extern="1" artificial="1"/>
- <Variable id="_4" name="_ZTIN4core15class_hierarchy17derived_private_tE" type="_11c" context="_1" location="f0:27" file="f0" line="27" extern="1" artificial="1"/>
- <Variable id="_5" name="_ZTIN4core15class_hierarchy19derived_protected_tE" type="_11c" context="_1" location="f0:24" file="f0" line="24" extern="1" artificial="1"/>
- <Variable id="_6" name="_ZTIN4core15class_hierarchy16derived_public_tE" type="_13c" context="_1" location="f0:21" file="f0" line="21" extern="1" artificial="1"/>
- <Variable id="_7" name="_ZTIN4core15class_hierarchy6base_tE" type="_15c" context="_1" location="f0:13" file="f0" line="13" extern="1" artificial="1"/>
- <Namespace id="_8" name="core" context="_1" members="_17 " mangled="_Z4core" demangled="core"/>
- <Struct id="_9" name="__vmi_class_type_info_pseudo3" context="_1" mangled="29__vmi_class_type_info_pseudo3" demangled="__vmi_class_type_info_pseudo3" location="f0:30" file="f0" line="30" size="384" align="32" members="_18 _19 _20 _21 " bases=""/>
- <CvQualifiedType id="_9c" type="_9" const="1"/>
- <Struct id="_11" name="__vmi_class_type_info_pseudo1" context="_1" mangled="29__vmi_class_type_info_pseudo1" demangled="__vmi_class_type_info_pseudo1" location="f0:24" file="f0" line="24" size="256" align="32" members="_22 _23 _24 _25 " bases=""/>
- <CvQualifiedType id="_11c" type="_11" const="1"/>
- <Struct id="_13" name="__si_class_type_info_pseudo" context="_1" mangled="27__si_class_type_info_pseudo" demangled="__si_class_type_info_pseudo" location="f1:0" file="f1" line="0" size="96" align="32" members="" bases=""/>
- <CvQualifiedType id="_13c" type="_13" const="1"/>
- <Struct id="_15" name="__class_type_info_pseudo" context="_1" mangled="24__class_type_info_pseudo" demangled="__class_type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
- <CvQualifiedType id="_15c" type="_15" const="1"/>
- <Namespace id="_17" name="class_hierarchy" context="_8" members="_26 _27 _28 _29 _30 _31 " mangled="_ZN4core15class_hierarchyE" demangled="core::class_hierarchy"/>
- <Field id="_18" name="" type="_32" offset="0" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_19" name="" type="_33" offset="64" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_20" name="" type="_33" offset="96" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_21" name="" type="_34" offset="128" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_22" name="" type="_32" offset="0" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Field id="_23" name="" type="_33" offset="64" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Field id="_24" name="" type="_33" offset="96" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Field id="_25" name="" type="_35" offset="128" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Class id="_26" name="multi_derived_t" context="_17" mangled="N4core15class_hierarchy15multi_derived_tE" demangled="core::class_hierarchy::multi_derived_t" location="f0:30" file="f0" line="30" artificial="1" size="64" align="32" members="_36 _37 _38 " bases="private:_27 protected:_31 private:_30 ">
- <Base type="_27" access="private" virtual="0" offset="0"/>
- <Base type="_31" access="protected" virtual="0" offset="4"/>
- <Base type="_30" access="private" virtual="0" offset="0"/>
+<GCC_XML cvs_revision="1.118">
+ <Namespace id="_1" name="::" members="_3 _4 _5 _6 _7 _8 _9 _10 _11 _12 _13 _14 _15 _16 _17 _18 _20 _21 _22 _23 _24 _25 _26 _27 _28 _29 _31 _32 _33 _34 _35 _36 _37 _38 _39 _40 _41 _42 _43 _44 _45 _46 _47 _49 _50 _51 _52 _53 _54 _55 _56 _57 _58 _59 _60 _62 _63 _64 _65 _66 _67 _68 _69 _70 _71 _74 _75 _76 _77 _78 _79 _80 _81 _82 _83 _84 _85 _86 _87 _88 _89 _90 _91 _92 _93 _94 _95 _96 _97 _98 _99 _100 _101 _102 _103 _104 _105 _106 _107 _108 _109 _110 _111 _112 _113 _114 _116 _117 _118 _119 _120 _121 _122 _123 _124 _126 _127 _128 _129 _130 _131 _132 _133 _134 _135 _136 _137 _139 _140 _141 _142 _143 _144 _145 _146 _148 _149 _150 _151 _152 _153 _155 _156 _157 _158 _159 _160 _161 _162 _163 _164 _165 _166 _167 _168 _169 _170 _171 _172 _173 _174 _175 _176 _177 _178 _179 _180 _181 _182 _183 _184 _185 _186 _187 _188 _189 _190 _191 _192 _193 _194 _195 _196 _197 _198 _199 _200 _201 _202 _203 _204 _205 _206 _207 _208 _209 _210 _211 _212 _213 _214 _218 _219 _221 _220 _222 _223 _224 _225 _226 _227 _228 _229 _230 _231 _233 _234 _235 _236 _237 _238 _239 _240 _241 _242 _243 _244 _245 _246 _247 _248 _249 _250 _251 _252 _253 _254 _255 _256 _257 _258 _259 _260 _261 _262 _263 _264 _265 _266 _267 _268 _269 _270 _271 _272 _273 _276 _277 _278 _279 _280 _281 _282 _284 _283 _285 _286 _287 _288 _289 _290 _291 _292 _293 _294 _295 _296 _297 _298 _299 _300 _301 _302 _303 _304 _305 _306 _308 _309 _310 _311 _312 _313 _314 _315 _316 _317 _318 _319 _320 _321 _322 _324 _325 _326 _328 _329 _330 _331 _332 _333 _334 _335 _336 _337 _338 _339 _2 _343 _344 _345 _346 _347 _348 _349 _353 _354 _355 _356 _357 _358 _359 _360 _361 _362 _363 _364 _365 _366 _367 _368 _369 _370 _371 _372 _373 _374 _375 _376 _377 _378 _379 _380 _381 _382 _383 _384 _385 _386 _387 _388 _389 _390 _391 _232 _392 _393 _394 _395 _396 _397 _398 _399 _400 _401 _402 _406 _407 _408 _409 _410 _411 _412 _413 _414 _415 _416 _417 _418 _419 _420 _421 _423 _424 _425 _426 _427 _428 _429 _430 _431 _432 _433 _434 _437 _438 _439 _440 _441 _442 _443 _444 _445 _446 _447 _448 _450 _449 _451 _452 _453 _454 _455 _456 _457 _458 _459 _460 _461 _462 _463 _464 _465 _466 _467 _468 _469 _470 _471 _472 _473 _474 _475 _476 _477 _478 _479 _480 _481 _482 _483 _484 _485 _486 _487 _488 _489 _490 _491 _492 _493 _494 _495 _496 _497 _498 _499 _500 _501 _502 _503 _504 _505 _506 _507 _508 _509 _510 _511 _512 _513 _514 _515 _516 _517 _518 _519 _520 _521 _522 _523 _524 _525 _526 _527 _528 _529 _530 _531 _532 _533 _534 _535 _536 _537 _538 _539 _540 _541 _542 _543 _544 _545 _546 _547 _548 _549 _551 _552 _553 _554 _555 _556 _557 _558 _559 _560 _561 _562 _563 _564 _565 _566 _567 _568 _569 _570 _571 _572 _573 _574 _575 _576 _577 _578 _579 _580 _581 _582 _583 _584 " mangled="_Z2::" demangled="::"/>
+ <Namespace id="_2" name="std" context="_1" members="_585 _4 _617 _620 _621 _625 _626 _628 _629 _631 _632 _640 _641 _642 _62 _643 _644 _647 _648 _670 _674 _124 _677 _678 _680 _683 _684 _685 _686 _688 _689 _693 _697 _698 _700 _701 _702 _202 _703 _707 _708 _711 _716 _233 _717 _718 _720 _726 _728 _729 _730 _731 _733 _750 _299 _751 _755 _756 _757 _308 _758 _760 _764 _320 _325 _767 _768 _769 _774 _775 _776 _359 _777 _778 _385 _782 _784 _785 _792 _400 _794 _797 _418 _798 _421 _799 _800 _802 _804 _455 _461 _807 _808 _810 _811 _815 _816 _817 _818 _819 _820 _827 _503 _833 _834 _835 _839 _539 _847 _848 _850 _851 _852 _854 _855 _856 _858 _859 _864 " mangled="_Z3std" demangled="std"/>
+ <Function id="_3" name="_wcsset" returns="_865" context="_1" location="f0:191" file="f0" line="191" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f0:191" file="f0" line="191"/>
+ <Argument type="_550" location="f0:191" file="f0" line="191"/>
+ </Function>
+ <Struct id="_4" name="tm" context="_1" mangled="2tm" demangled="tm" location="f1:721" file="f1" line="721" artificial="1" size="288" align="32" members="_866 _867 _868 _869 _870 _871 _872 _873 _874 " bases=""/>
+ <Function id="_5" name="wcsrtombs" returns="_385" context="_1" location="f1:764" file="f1" line="764" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f1:764" file="f1" line="764"/>
+ <Argument type="_875" location="f1:764" file="f1" line="764"/>
+ <Argument type="_385" location="f1:764" file="f1" line="764"/>
+ <Argument type="_876" location="f1:764" file="f1" line="764"/>
+ </Function>
+ <Variable id="_6" name="_pwctype" type="_877" context="_1" location="f2:67" file="f2" line="67" extern="1"/>
+ <Function id="_7" name="tmpfile" returns="_878" context="_1" location="f3:320" file="f3" line="320" extern="1" attributes="__cdecl__"/>
+ <Function id="_8" name="_strset" returns="_138" context="_1" location="f0:103" file="f0" line="103" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f0:103" file="f0" line="103"/>
+ <Argument type="_307" location="f0:103" file="f0" line="103"/>
+ </Function>
+ <Function id="_9" name="wcrtomb" returns="_385" context="_1" location="f1:763" file="f1" line="763" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f1:763" file="f1" line="763"/>
+ <Argument type="_550" location="f1:763" file="f1" line="763"/>
+ <Argument type="_876" location="f1:763" file="f1" line="763"/>
+ </Function>
+ <Function id="_10" name="vprintf" returns="_307" context="_1" location="f3:325" file="f3" line="325" extern="1" attributes="nothrow __cdecl__ nonnull() format(,,)">
+ <Argument type="_115" location="f3:325" file="f3" line="325"/>
+ <Argument type="_139" location="f3:325" file="f3" line="325"/>
+ </Function>
+ <Function id="_11" name="swscanf" returns="_307" context="_1" location="f3:380" file="f3" line="380" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:380" file="f3" line="380"/>
+ <Argument type="_879" location="f3:380" file="f3" line="380"/>
+ <Ellipsis/>
+ </Function>
+ <Function id="_12" name="remove" returns="_307" context="_1" location="f3:306" file="f3" line="306" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f3:306" file="f3" line="306"/>
+ </Function>
+ <Function id="_13" name="_strcmpi" returns="_307" context="_1" location="f0:121" file="f0" line="121" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f0:121" file="f0" line="121"/>
+ <Argument type="_115" location="f0:121" file="f0" line="121"/>
+ </Function>
+ <Function id="_14" name="_wcsicmp" returns="_307" context="_1" location="f0:187" file="f0" line="187" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f0:187" file="f0" line="187"/>
+ <Argument type="_879" location="f0:187" file="f0" line="187"/>
+ </Function>
+ <Function id="_15" name="_set_se_translator" returns="_31" context="_1" mangled="_Z18_set_se_translatorPFvjP19_EXCEPTION_POINTERSE" demangled="_set_se_translator(void (*)(unsigned int, _EXCEPTION_POINTERS*))" location="f4:63" file="f4" line="63" extern="1" attributes="__cdecl__">
+ <Argument type="_31" location="f4:63" file="f4" line="63"/>
+ </Function>
+ <Function id="_16" name="_wpopen" returns="_878" context="_1" location="f3:393" file="f3" line="393" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:393" file="f3" line="393"/>
+ <Argument type="_879" location="f3:393" file="f3" line="393"/>
+ </Function>
+ <Variable id="_17" name="_fmode" type="_307" context="_1" location="f5:239" file="f5" line="239" extern="1"/>
+ <Function id="_18" name="_fdopen" returns="_878" context="_1" location="f3:263" file="f3" line="263" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f3:263" file="f3" line="263"/>
+ <Argument type="_115" location="f3:263" file="f3" line="263"/>
+ </Function>
+ <FundamentalType id="_19" name="short unsigned int" size="16" align="16"/>
+ <Typedef id="_20" name="wctype_t" type="_19" context="_1" location="f3:84" file="f3" line="84"/>
+ <Struct id="_21" name="_iobuf" context="_1" mangled="6_iobuf" demangled="_iobuf" location="f3:125" file="f3" line="125" artificial="1" size="256" align="32" members="_880 _881 _882 _883 _884 _885 _886 _887 " bases=""/>
+ <Function id="_22" name="wscanf" returns="_307" context="_1" location="f3:382" file="f3" line="382" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:382" file="f3" line="382"/>
+ <Ellipsis/>
+ </Function>
+ <Function id="_23" name="iswascii" returns="_307" context="_1" location="f1:377" file="f1" line="377" endline="377" inline="1" attributes="__cdecl__">
+ <Argument name="_C" type="_503" location="f1:377" file="f1" line="377"/>
+ </Function>
+ <Variable id="_24" name="_wctype" type="_888c" context="_1" location="f2:65" file="f2" line="65" extern="1"/>
+ <Function id="_25" name="setbuf" returns="_890" context="_1" location="f3:311" file="f3" line="311" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:311" file="f3" line="311"/>
+ <Argument type="_138" location="f3:311" file="f3" line="311"/>
+ </Function>
+ <Function id="_26" name="gcvt" returns="_138" context="_1" location="f5:434" file="f5" line="434" extern="1" attributes="__cdecl__">
+ <Argument type="_891" location="f5:434" file="f5" line="434"/>
+ <Argument type="_307" location="f5:434" file="f5" line="434"/>
+ <Argument type="_138" location="f5:434" file="f5" line="434"/>
+ </Function>
+ <Function id="_27" name="set_unexpected" returns="_96" context="_1" mangled="_Z14set_unexpectedPFvvE" demangled="set_unexpected(void (*)())" location="f4:62" file="f4" line="62" extern="1" attributes="__cdecl__">
+ <Argument type="_96" location="f4:62" file="f4" line="62"/>
+ </Function>
+ <Function id="_28" name="_wmktemp" returns="_865" context="_1" location="f1:296" file="f1" line="296" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f1:296" file="f1" line="296"/>
+ </Function>
+ <Function id="_29" name="iswupper" returns="_307" context="_1" location="f1:365" file="f1" line="365" endline="365" inline="1" attributes="nothrow pure __cdecl__">
+ <Argument name="_C" type="_503" location="f1:365" file="f1" line="365"/>
+ </Function>
+ <PointerType id="_30" type="_892" size="32" align="32"/>
+ <Typedef id="_31" name="_se_translator_function" type="_30" context="_1" location="f4:51" file="f4" line="51"/>
+ <Function id="_32" name="iscntrl" returns="_307" context="_1" location="f2:104" file="f2" line="104" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_307" location="f2:104" file="f2" line="104"/>
+ </Function>
+ <Function id="_33" name="_wfreopen" returns="_878" context="_1" location="f3:391" file="f3" line="391" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:391" file="f3" line="391"/>
+ <Argument type="_879" location="f3:391" file="f3" line="391"/>
+ <Argument type="_878" location="f3:391" file="f3" line="391"/>
+ </Function>
+ <Function id="_34" name="_strlwr" returns="_138" context="_1" location="f0:131" file="f0" line="131" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f0:131" file="f0" line="131"/>
+ </Function>
+ <Function id="_35" name="fflush" returns="_307" context="_1" location="f3:268" file="f3" line="268" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:268" file="f3" line="268"/>
+ </Function>
+ <Function id="_36" name="_wfindnexti64" returns="_307" context="_1" location="f1:301" file="f1" line="301" extern="1" attributes="__cdecl__">
+ <Argument type="_383" location="f1:301" file="f1" line="301"/>
+ <Argument type="_893" location="f1:301" file="f1" line="301"/>
+ </Function>
+ <Variable id="_37" name="_ZTISt9bad_alloc" type="_894c" context="_1" location="f6:17" file="f6" line="17" extern="1" artificial="1"/>
+ <Function id="_38" name="mbrtowc" returns="_385" context="_1" location="f1:760" file="f1" line="760" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f1:760" file="f1" line="760"/>
+ <Argument type="_115" location="f1:760" file="f1" line="760"/>
+ <Argument type="_385" location="f1:760" file="f1" line="760"/>
+ <Argument type="_876" location="f1:760" file="f1" line="760"/>
+ </Function>
+ <Function id="_39" name="_makepath" returns="_890" context="_1" location="f5:366" file="f5" line="366" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f5:366" file="f5" line="366"/>
+ <Argument type="_115" location="f5:366" file="f5" line="366"/>
+ <Argument type="_115" location="f5:366" file="f5" line="366"/>
+ <Argument type="_115" location="f5:366" file="f5" line="366"/>
+ <Argument type="_115" location="f5:366" file="f5" line="366"/>
+ </Function>
+ <Function id="_40" name="_putw" returns="_307" context="_1" location="f3:305" file="f3" line="305" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f3:305" file="f3" line="305"/>
+ <Argument type="_878" location="f3:305" file="f3" line="305"/>
+ </Function>
+ <Function id="_41" name="_wstat64" returns="_307" context="_1" location="f1:496" file="f1" line="496" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:496" file="f1" line="496"/>
+ <Argument type="_896" location="f1:496" file="f1" line="496"/>
+ </Function>
+ <Function id="_42" name="strtok" returns="_138" context="_1" location="f0:142" file="f0" line="142" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f0:142" file="f0" line="142"/>
+ <Argument type="_115" location="f0:142" file="f0" line="142"/>
+ </Function>
+ <Function id="_43" name="iswspace" returns="_307" context="_1" location="f1:369" file="f1" line="369" endline="369" inline="1" attributes="nothrow pure __cdecl__">
+ <Argument name="_C" type="_503" location="f1:369" file="f1" line="369"/>
+ </Function>
+ <Function id="_44" name="_wfdopen" returns="_878" context="_1" location="f3:389" file="f3" line="389" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f3:389" file="f3" line="389"/>
+ <Argument type="_879" location="f3:389" file="f3" line="389"/>
+ </Function>
+ <Function id="_45" name="towupper" returns="_550" context="_1" location="f1:258" file="f1" line="258" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_550" location="f1:258" file="f1" line="258"/>
+ </Function>
+ <Function id="_46" name="_wfullpath" returns="_865" context="_1" location="f1:628" file="f1" line="628" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f1:628" file="f1" line="628"/>
+ <Argument type="_879" location="f1:628" file="f1" line="628"/>
+ <Argument type="_385" location="f1:628" file="f1" line="628"/>
+ </Function>
+ <Function id="_47" name="__iscsymf" returns="_307" context="_1" location="f2:111" file="f2" line="111" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f2:111" file="f2" line="111"/>
+ </Function>
+ <FundamentalType id="_48" name="long int" size="32" align="32"/>
+ <Typedef id="_49" name="time_t" type="_48" context="_1" location="f1:89" file="f1" line="89"/>
+ <Struct id="_50" name="_ldiv_t" context="_1" mangled="7_ldiv_t" demangled="_ldiv_t" location="f5:119" file="f5" line="119" artificial="1" size="64" align="32" members="_897 _898 " bases=""/>
+ <Variable id="_51" name="__argc" type="_307" context="_1" location="f5:222" file="f5" line="222" extern="1"/>
+ <Variable id="_52" name="__argv" type="_899" context="_1" location="f5:223" file="f5" line="223" extern="1"/>
+ <Function id="_53" name="strcmpi" returns="_307" context="_1" location="f0:152" file="f0" line="152" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f0:152" file="f0" line="152"/>
+ <Argument type="_115" location="f0:152" file="f0" line="152"/>
+ </Function>
+ <Function id="_54" name="iswalpha" returns="_307" context="_1" location="f1:364" file="f1" line="364" endline="364" inline="1" attributes="nothrow pure __cdecl__">
+ <Argument name="_C" type="_503" location="f1:364" file="f1" line="364"/>
+ </Function>
+ <Function id="_55" name="mblen" returns="_307" context="_1" location="f5:297" file="f5" line="297" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f5:297" file="f5" line="297"/>
+ <Argument type="_385" location="f5:297" file="f5" line="297"/>
+ </Function>
+ <Function id="_56" name="atof" returns="_891" context="_1" location="f5:269" file="f5" line="269" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f5:269" file="f5" line="269"/>
+ </Function>
+ <Function id="_57" name="atoi" returns="_307" context="_1" location="f5:270" file="f5" line="270" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f5:270" file="f5" line="270"/>
+ </Function>
+ <Function id="_58" name="___mb_cur_max_func" returns="_307" context="_1" location="f5:140" file="f5" line="140" extern="1" attributes="__cdecl__"/>
+ <Function id="_59" name="terminate" returns="_890" context="_1" mangled="_Z9terminatev" demangled="terminate()" location="f4:54" file="f4" line="54" extern="1" attributes="noreturn __cdecl__"/>
+ <Function id="_60" name="_Getdays" returns="_138" context="_1" location="f7:73" file="f7" line="73" extern="1" attributes="__cdecl__"/>
+ <PointerType id="_61" type="_900" size="32" align="32"/>
+ <Typedef id="_62" name="unexpected_handler" type="_61" context="_1" location="f4:48" file="f4" line="48"/>
+ <Variable id="_63" name="_ZTIN9unittests10test_suiteE" type="_894c" context="_1" location="f8:45" file="f8" line="45" extern="1" artificial="1"/>
+ <Function id="_64" name="wctomb" returns="_307" context="_1" location="f5:316" file="f5" line="316" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f5:316" file="f5" line="316"/>
+ <Argument type="_550" location="f5:316" file="f5" line="316"/>
+ </Function>
+ <Variable id="_65" name="_ZTISt16invalid_argument" type="_894c" context="_1" location="f9:68" file="f9" line="68" extern="1" artificial="1"/>
+ <Variable id="_66" name="_ZTISt9type_info" type="_901c" context="_1" location="f10:41" file="f10" line="41" extern="1" artificial="1"/>
+ <Function id="_67" name="fwprintf" returns="_307" context="_1" location="f3:359" file="f3" line="359" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:359" file="f3" line="359"/>
+ <Argument type="_879" location="f3:359" file="f3" line="359"/>
+ <Ellipsis/>
+ </Function>
+ <Function id="_68" name="_fullpath" returns="_138" context="_1" location="f5:361" file="f5" line="361" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f5:361" file="f5" line="361"/>
+ <Argument type="_115" location="f5:361" file="f5" line="361"/>
+ <Argument type="_385" location="f5:361" file="f5" line="361"/>
+ </Function>
+ <Function id="_69" name="wmemmove" returns="_865" context="_1" location="f1:795" file="f1" line="795" endline="797" inline="1">
+ <Argument name="_S1" type="_865" location="f1:795" file="f1" line="795"/>
+ <Argument name="_S2" type="_879" location="f1:795" file="f1" line="795"/>
+ <Argument name="_N" type="_385" location="f1:795" file="f1" line="795"/>
+ </Function>
+ <Function id="_70" name="_cgetws" returns="_865" context="_1" location="f1:507" file="f1" line="507" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f1:507" file="f1" line="507"/>
+ </Function>
+ <Variable id="_71" name="_pgmptr" type="_138" context="_1" location="f5:233" file="f5" line="233" extern="1"/>
+ <Function id="_72" name="wmemchr" returns="_865" context="_1" mangled="_Z7wmemchrPwwj" demangled="wmemchr(wchar_t*, wchar_t, unsigned int)" location="f1:807" file="f1" line="807" endline="808" inline="1">
+ <Argument name="_S" type="_865" location="f1:807" file="f1" line="807"/>
+ <Argument name="_C" type="_550" location="f1:807" file="f1" line="807"/>
+ <Argument name="_N" type="_385" location="f1:807" file="f1" line="807"/>
+ </Function>
+ <Function id="_73" name="wmemchr" returns="_879" context="_1" location="f1:781" file="f1" line="781" endline="785" inline="1">
+ <Argument name="_S" type="_879" location="f1:781" file="f1" line="781"/>
+ <Argument name="_C" type="_550" location="f1:781" file="f1" line="781"/>
+ <Argument name="_N" type="_385" location="f1:781" file="f1" line="781"/>
+ </Function>
+ <Typedef id="_74" name="off_t" type="_48" context="_1" location="f1:414" file="f1" line="414"/>
+ <Function id="_75" name="wcstod" returns="_891" context="_1" location="f1:602" file="f1" line="602" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:602" file="f1" line="602"/>
+ <Argument type="_903" location="f1:602" file="f1" line="602"/>
+ </Function>
+ <Function id="_76" name="wcstok" returns="_865" context="_1" location="f0:182" file="f0" line="182" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f0:182" file="f0" line="182"/>
+ <Argument type="_879" location="f0:182" file="f0" line="182"/>
+ </Function>
+ <Function id="_77" name="wcstol" returns="_48" context="_1" location="f1:603" file="f1" line="603" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:603" file="f1" line="603"/>
+ <Argument type="_903" location="f1:603" file="f1" line="603"/>
+ <Argument type="_307" location="f1:603" file="f1" line="603"/>
+ </Function>
+ <Function id="_78" name="__iscsym" returns="_307" context="_1" location="f2:112" file="f2" line="112" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f2:112" file="f2" line="112"/>
+ </Function>
+ <Function id="_79" name="_Getdateorder" returns="_307" context="_1" location="f7:72" file="f7" line="72" extern="1" attributes="__cdecl__"/>
+ <Function id="_80" name="_rotl" returns="_125" context="_1" location="f5:370" file="f5" line="370" extern="1" attributes="__cdecl__">
+ <Argument type="_125" location="f5:370" file="f5" line="370"/>
+ <Argument type="_307" location="f5:370" file="f5" line="370"/>
+ </Function>
+ <Function id="_81" name="_rotr" returns="_125" context="_1" location="f5:372" file="f5" line="372" extern="1" attributes="__cdecl__">
+ <Argument type="_125" location="f5:372" file="f5" line="372"/>
+ <Argument type="_307" location="f5:372" file="f5" line="372"/>
+ </Function>
+ <Function id="_82" name="_Tolower" returns="_307" context="_1" location="f7:88" file="f7" line="88" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f7:88" file="f7" line="88"/>
+ <Argument type="_904" location="f7:88" file="f7" line="88"/>
+ </Function>
+ <Function id="_83" name="sprintf" returns="_307" context="_1" location="f3:315" file="f3" line="315" extern="1" attributes="nothrow __cdecl__ nonnull() format(,,)">
+ <Argument type="_138" location="f3:315" file="f3" line="315"/>
+ <Argument type="_115" location="f3:315" file="f3" line="315"/>
+ <Ellipsis/>
+ </Function>
+ <Function id="_84" name="strtod" returns="_891" context="_1" location="f5:311" file="f5" line="311" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f5:311" file="f5" line="311"/>
+ <Argument type="_899" location="f5:311" file="f5" line="311"/>
+ </Function>
+ <Function id="_85" name="strtol" returns="_48" context="_1" location="f5:312" file="f5" line="312" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f5:312" file="f5" line="312"/>
+ <Argument type="_899" location="f5:312" file="f5" line="312"/>
+ <Argument type="_307" location="f5:312" file="f5" line="312"/>
+ </Function>
+ <Function id="_86" name="putchar" returns="_307" context="_1" location="f3:303" file="f3" line="303" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f3:303" file="f3" line="303"/>
+ </Function>
+ <Function id="_87" name="wcstombs" returns="_385" context="_1" location="f5:317" file="f5" line="317" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f5:317" file="f5" line="317"/>
+ <Argument type="_879" location="f5:317" file="f5" line="317"/>
+ <Argument type="_385" location="f5:317" file="f5" line="317"/>
+ </Function>
+ <Function id="_88" name="wmemcmp" returns="_307" context="_1" location="f1:786" file="f1" line="786" endline="790" inline="1">
+ <Argument name="_S1" type="_879" location="f1:786" file="f1" line="786"/>
+ <Argument name="_S2" type="_879" location="f1:786" file="f1" line="786"/>
+ <Argument name="_N" type="_385" location="f1:786" file="f1" line="786"/>
+ </Function>
+ <Function id="_89" name="getc" returns="_307" context="_1" location="f3:293" file="f3" line="293" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:293" file="f3" line="293"/>
+ </Function>
+ <Function id="_90" name="gets" returns="_138" context="_1" location="f3:296" file="f3" line="296" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f3:296" file="f3" line="296"/>
+ </Function>
+ <Function id="_91" name="getw" returns="_307" context="_1" location="f3:442" file="f3" line="442" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:442" file="f3" line="442"/>
+ </Function>
+ <Function id="_92" name="_vscprintf" returns="_307" context="_1" location="f3:328" file="f3" line="328" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f3:328" file="f3" line="328"/>
+ <Argument type="_139" location="f3:328" file="f3" line="328"/>
+ </Function>
+ <Function id="_93" name="_wcsnset" returns="_865" context="_1" location="f0:189" file="f0" line="189" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f0:189" file="f0" line="189"/>
+ <Argument type="_550" location="f0:189" file="f0" line="189"/>
+ <Argument type="_385" location="f0:189" file="f0" line="189"/>
+ </Function>
+ <Function id="_94" name="_wcslwr" returns="_865" context="_1" location="f0:193" file="f0" line="193" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f0:193" file="f0" line="193"/>
+ </Function>
+ <Function id="_95" name="fputchar" returns="_307" context="_1" location="f3:441" file="f3" line="441" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f3:441" file="f3" line="441"/>
+ </Function>
+ <Typedef id="_96" name="unexpected_function" type="_61" context="_1" location="f4:46" file="f4" line="46"/>
+ <Function id="_97" name="wmemcpy" returns="_865" context="_1" location="f1:791" file="f1" line="791" endline="793" inline="1">
+ <Argument name="_S1" type="_865" location="f1:791" file="f1" line="791"/>
+ <Argument name="_S2" type="_879" location="f1:791" file="f1" line="791"/>
+ <Argument name="_N" type="_385" location="f1:791" file="f1" line="791"/>
+ </Function>
+ <Function id="_98" name="printf" returns="_307" context="_1" location="f3:301" file="f3" line="301" extern="1" attributes="nothrow __cdecl__ nonnull() format(,,)">
+ <Argument type="_115" location="f3:301" file="f3" line="301"/>
+ <Ellipsis/>
+ </Function>
+ <Namespace id="_99" name="unittests" context="_1" members="_905 _906 _907 " mangled="_Z9unittests" demangled="unittests"/>
+ <Variable id="_100" name="_environ" type="_899" context="_1" location="f5:229" file="f5" line="229" extern="1"/>
+ <Function id="_101" name="qsort" returns="_890" context="_1" location="f5:302" file="f5" line="302" extern="1" attributes="__cdecl__">
+ <Argument type="_908" location="f5:302" file="f5" line="302"/>
+ <Argument type="_385" location="f5:302" file="f5" line="302"/>
+ <Argument type="_385" location="f5:302" file="f5" line="302"/>
+ <Argument type="_909" location="f5:302" file="f5" line="302"/>
+ </Function>
+ <Variable id="_102" name="_ZTISt7codecvtIwciE" type="_894c" context="_1" location="f11:655" file="f11" line="655" extern="1" artificial="1"/>
+ <Function id="_103" name="_cputws" returns="_307" context="_1" location="f1:512" file="f1" line="512" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:512" file="f1" line="512"/>
+ </Function>
+ <Variable id="_104" name="_wpgmptr" type="_865" context="_1" location="f5:234" file="f5" line="234" extern="1"/>
+ <Function id="_105" name="__cxa_end_catch" returns="_890" context="_1" location="f12:592" file="f12" line="592" extern="1"/>
+ <Function id="_106" name="fseek" returns="_307" context="_1" location="f3:290" file="f3" line="290" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:290" file="f3" line="290"/>
+ <Argument type="_48" location="f3:290" file="f3" line="290"/>
+ <Argument type="_307" location="f3:290" file="f3" line="290"/>
+ </Function>
+ <Function id="_107" name="flushall" returns="_307" context="_1" location="f3:440" file="f3" line="440" extern="1" attributes="__cdecl__"/>
+ <Variable id="_108" name="_ZTISt9basic_iosItSt11char_traitsItEE" type="_894c" context="_1" location="f13:16" file="f13" line="16" extern="1" artificial="1"/>
+ <Function id="_109" name="vwprintf" returns="_307" context="_1" location="f3:370" file="f3" line="370" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:370" file="f3" line="370"/>
+ <Argument type="_139" location="f3:370" file="f3" line="370"/>
+ </Function>
+ <Function id="_110" name="__isascii" returns="_307" context="_1" location="f2:109" file="f2" line="109" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f2:109" file="f2" line="109"/>
+ </Function>
+ <Function id="_111" name="__toascii" returns="_307" context="_1" location="f2:110" file="f2" line="110" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f2:110" file="f2" line="110"/>
+ </Function>
+ <Function id="_112" name="getchar" returns="_307" context="_1" location="f3:294" file="f3" line="294" extern="1" attributes="__cdecl__"/>
+ <Function id="_113" name="memchr" returns="_908" context="_1" location="f0:110" file="f0" line="110" extern="1" attributes="__cdecl__">
+ <Argument type="_910" location="f0:110" file="f0" line="110"/>
+ <Argument type="_307" location="f0:110" file="f0" line="110"/>
+ <Argument type="_385" location="f0:110" file="f0" line="110"/>
+ </Function>
+ <Function id="_114" name="clearerr" returns="_890" context="_1" location="f3:256" file="f3" line="256" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:256" file="f3" line="256"/>
+ </Function>
+ <PointerType id="_115" type="_911c" size="32" align="32"/>
+ <Typedef id="_116" name="__exString" type="_115" context="_1" location="f14:36" file="f14" line="36"/>
+ <Variable id="_117" name="_ZTISt14overflow_error" type="_894c" context="_1" location="f9:167" file="f9" line="167" extern="1" artificial="1"/>
+ <Function id="_118" name="fgetchar" returns="_307" context="_1" location="f3:438" file="f3" line="438" extern="1" attributes="__cdecl__"/>
+ <Variable id="_119" name="_ZTIN9unittests9test_caseE" type="_901c" context="_1" location="f8:29" file="f8" line="29" extern="1" artificial="1"/>
+ <Function id="_120" name="setvbuf" returns="_307" context="_1" location="f3:313" file="f3" line="313" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:313" file="f3" line="313"/>
+ <Argument type="_138" location="f3:313" file="f3" line="313"/>
+ <Argument type="_307" location="f3:313" file="f3" line="313"/>
+ <Argument type="_385" location="f3:313" file="f3" line="313"/>
+ </Function>
+ <Function id="_121" name="memmove" returns="_908" context="_1" location="f1:773" file="f1" line="773" extern="1" attributes="nothrow __cdecl__ nonnull">
+ <Argument type="_908" location="f0:116" file="f0" line="116"/>
+ <Argument type="_910" location="f0:116" file="f0" line="116"/>
+ <Argument type="_385" location="f0:116" file="f0" line="116"/>
+ </Function>
+ <Function id="_122" name="_ecvt" returns="_138" context="_1" location="f5:354" file="f5" line="354" extern="1" attributes="__cdecl__">
+ <Argument type="_891" location="f5:354" file="f5" line="354"/>
+ <Argument type="_307" location="f5:354" file="f5" line="354"/>
+ <Argument type="_913" location="f5:354" file="f5" line="354"/>
+ <Argument type="_913" location="f5:354" file="f5" line="354"/>
+ </Function>
+ <Function id="_123" name="_strncoll" returns="_307" context="_1" location="f0:125" file="f0" line="125" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f0:125" file="f0" line="125"/>
+ <Argument type="_115" location="f0:125" file="f0" line="125"/>
+ <Argument type="_385" location="f0:125" file="f0" line="125"/>
+ </Function>
+ <Typedef id="_124" name="new_handler" type="_61" context="_2" location="f6:40" file="f6" line="40"/>
+ <FundamentalType id="_125" name="unsigned int" size="32" align="32"/>
+ <Typedef id="_126" name="_dev_t" type="_125" context="_1" location="f1:402" file="f1" line="402"/>
+ <Function id="_127" name="memcpy" returns="_908" context="_1" location="f1:775" file="f1" line="775" extern="1" attributes="nothrow __cdecl__ nonnull">
+ <Argument type="_908" location="f0:100" file="f0" line="100"/>
+ <Argument type="_910" location="f0:100" file="f0" line="100"/>
+ <Argument type="_385" location="f0:100" file="f0" line="100"/>
+ </Function>
+ <Function id="_128" name="strncat" returns="_138" context="_1" location="f0:132" file="f0" line="132" extern="1" attributes="nothrow __cdecl__ nonnull">
+ <Argument type="_138" location="f0:132" file="f0" line="132"/>
+ <Argument type="_115" location="f0:132" file="f0" line="132"/>
+ <Argument type="_385" location="f0:132" file="f0" line="132"/>
+ </Function>
+ <Function id="_129" name="_wcsnicoll" returns="_307" context="_1" location="f0:199" file="f0" line="199" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f0:199" file="f0" line="199"/>
+ <Argument type="_879" location="f0:199" file="f0" line="199"/>
+ <Argument type="_385" location="f0:199" file="f0" line="199"/>
+ </Function>
+ <Function id="_130" name="ultoa" returns="_138" context="_1" location="f5:440" file="f5" line="440" extern="1" attributes="__cdecl__">
+ <Argument type="_323" location="f5:440" file="f5" line="440"/>
+ <Argument type="_138" location="f5:440" file="f5" line="440"/>
+ <Argument type="_307" location="f5:440" file="f5" line="440"/>
+ </Function>
+ <Function id="_131" name="_wfindfirst64" returns="_383" context="_1" location="f1:300" file="f1" line="300" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f1:300" file="f1" line="300"/>
+ <Argument type="_914" location="f1:300" file="f1" line="300"/>
+ </Function>
+ <Function id="_132" name="_wspawnve" returns="_383" context="_1" location="f1:335" file="f1" line="335" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f1:335" file="f1" line="335"/>
+ <Argument type="_879" location="f1:335" file="f1" line="335"/>
+ <Argument type="_915" location="f1:335" file="f1" line="335"/>
+ <Argument type="_915" location="f1:335" file="f1" line="335"/>
+ </Function>
+ <Function id="_133" name="fgetwc" returns="_503" context="_1" location="f3:344" file="f3" line="344" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:344" file="f3" line="344"/>
+ </Function>
+ <Function id="_134" name="bsearch" returns="_908" context="_1" location="f5:273" file="f5" line="273" extern="1" attributes="__cdecl__">
+ <Argument type="_910" location="f5:273" file="f5" line="273"/>
+ <Argument type="_910" location="f5:273" file="f5" line="273"/>
+ <Argument type="_385" location="f5:273" file="f5" line="273"/>
+ <Argument type="_385" location="f5:273" file="f5" line="273"/>
+ <Argument type="_909" location="f5:273" file="f5" line="273"/>
+ </Function>
+ <Function id="_135" name="fgetws" returns="_865" context="_1" location="f3:354" file="f3" line="354" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f3:354" file="f3" line="354"/>
+ <Argument type="_307" location="f3:354" file="f3" line="354"/>
+ <Argument type="_878" location="f3:354" file="f3" line="354"/>
+ </Function>
+ <Function id="_136" name="vsprintf" returns="_307" context="_1" location="f3:327" file="f3" line="327" extern="1" attributes="nothrow __cdecl__ nonnull() format(,,)">
+ <Argument type="_138" location="f3:327" file="f3" line="327"/>
+ <Argument type="_115" location="f3:327" file="f3" line="327"/>
+ <Argument type="_139" location="f3:327" file="f3" line="327"/>
+ </Function>
+ <Function id="_137" name="mbstowcs" returns="_385" context="_1" location="f5:300" file="f5" line="300" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f5:300" file="f5" line="300"/>
+ <Argument type="_115" location="f5:300" file="f5" line="300"/>
+ <Argument type="_385" location="f5:300" file="f5" line="300"/>
+ </Function>
+ <PointerType id="_138" type="_911" size="32" align="32"/>
+ <Typedef id="_139" name="va_list" type="_138" context="_1" location="f3:96" file="f3" line="96"/>
+ <Function id="_140" name="_Strcoll" returns="_307" context="_1" location="f7:83" file="f7" line="83" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f7:83" file="f7" line="83"/>
+ <Argument type="_115" location="f7:83" file="f7" line="83"/>
+ <Argument type="_115" location="f7:83" file="f7" line="83"/>
+ <Argument type="_115" location="f7:83" file="f7" line="83"/>
+ <Argument type="_916" location="f7:83" file="f7" line="83"/>
+ </Function>
+ <Function id="_141" name="_Getcvt" returns="_450" context="_1" location="f7:70" file="f7" line="70" extern="1" attributes="__cdecl__"/>
+ <Function id="_142" name="_wremove" returns="_307" context="_1" location="f3:394" file="f3" line="394" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:394" file="f3" line="394"/>
+ </Function>
+ <Function id="_143" name="iswprint" returns="_307" context="_1" location="f1:372" file="f1" line="372" endline="373" inline="1" attributes="nothrow pure __cdecl__">
+ <Argument name="_C" type="_503" location="f1:372" file="f1" line="372"/>
+ </Function>
+ <Variable id="_144" name="_ZTI10bad_typeid" type="_894c" context="_1" location="f10:68" file="f10" line="68" extern="1" artificial="1"/>
+ <Variable id="_145" name="_ZTISt11range_error" type="_894c" context="_1" location="f9:213" file="f9" line="213" extern="1" artificial="1"/>
+ <Function id="_146" name="_Getwctypes" returns="_879" context="_1" location="f7:99" file="f7" line="99" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f7:99" file="f7" line="99"/>
+ <Argument type="_879" location="f7:99" file="f7" line="99"/>
+ <Argument type="_917" location="f7:99" file="f7" line="99"/>
+ <Argument type="_904" location="f7:99" file="f7" line="99"/>
+ </Function>
+ <PointerType id="_147" type="_918" size="32" align="32"/>
+ <Typedef id="_148" name="_secerr_handler_func" type="_147" context="_1" location="f5:172" file="f5" line="172"/>
+ <Function id="_149" name="strnset" returns="_138" context="_1" location="f0:157" file="f0" line="157" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f0:157" file="f0" line="157"/>
+ <Argument type="_307" location="f0:157" file="f0" line="157"/>
+ <Argument type="_385" location="f0:157" file="f0" line="157"/>
+ </Function>
+ <Function id="_150" name="wcsicoll" returns="_307" context="_1" location="f0:215" file="f0" line="215" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f0:215" file="f0" line="215"/>
+ <Argument type="_879" location="f0:215" file="f0" line="215"/>
+ </Function>
+ <Function id="_151" name="fcvt" returns="_138" context="_1" location="f5:433" file="f5" line="433" extern="1" attributes="__cdecl__">
+ <Argument type="_891" location="f5:433" file="f5" line="433"/>
+ <Argument type="_307" location="f5:433" file="f5" line="433"/>
+ <Argument type="_913" location="f5:433" file="f5" line="433"/>
+ <Argument type="_913" location="f5:433" file="f5" line="433"/>
+ </Function>
+ <Function id="_152" name="_Mbrtowc" returns="_307" context="_1" location="f7:78" file="f7" line="78" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f7:78" file="f7" line="78"/>
+ <Argument type="_115" location="f7:78" file="f7" line="78"/>
+ <Argument type="_385" location="f7:78" file="f7" line="78"/>
+ <Argument type="_876" location="f7:78" file="f7" line="78"/>
+ <Argument type="_919" location="f7:78" file="f7" line="78"/>
+ </Function>
+ <Function id="_153" name="mbtowc" returns="_307" context="_1" location="f5:299" file="f5" line="299" extern="1" attributes="__cdecl__">
+ <Argument type="_865" location="f5:299" file="f5" line="299"/>
+ <Argument type="_115" location="f5:299" file="f5" line="299"/>
+ <Argument type="_385" location="f5:299" file="f5" line="299"/>
+ </Function>
+ <FundamentalType id="_154" name="long long int" size="64" align="64"/>
+ <Typedef id="_155" name="__time64_t" type="_154" context="_1" location="f1:96" file="f1" line="96"/>
+ <Function id="_156" name="_cwprintf" returns="_307" context="_1" location="f1:513" file="f1" line="513" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:513" file="f1" line="513"/>
+ <Ellipsis/>
+ </Function>
+ <Function id="_157" name="abort" returns="_890" context="_1" location="f5:255" file="f5" line="255" extern="1" attributes="nothrow noreturn __cdecl__"/>
+ <Function id="_158" name="onexit" returns="_423" context="_1" location="f5:437" file="f5" line="437" extern="1" attributes="__cdecl__">
+ <Argument type="_423" location="f5:437" file="f5" line="437"/>
+ </Function>
+ <Function id="_159" name="iswlower" returns="_307" context="_1" location="f1:366" file="f1" line="366" endline="366" inline="1" attributes="nothrow pure __cdecl__">
+ <Argument name="_C" type="_503" location="f1:366" file="f1" line="366"/>
+ </Function>
+ <Variable id="_160" name="_ZTISt12length_error" type="_894c" context="_1" location="f9:91" file="f9" line="91" extern="1" artificial="1"/>
+ <Function id="_161" name="getwchar" returns="_503" context="_1" location="f3:349" file="f3" line="349" extern="1" attributes="__cdecl__"/>
+ <Function id="_162" name="_wtof" returns="_891" context="_1" location="f1:607" file="f1" line="607" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:607" file="f1" line="607"/>
+ </Function>
+ <Function id="_163" name="_itoa" returns="_138" context="_1" location="f5:281" file="f5" line="281" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f5:281" file="f5" line="281"/>
+ <Argument type="_138" location="f5:281" file="f5" line="281"/>
+ <Argument type="_307" location="f5:281" file="f5" line="281"/>
+ </Function>
+ <Function id="_164" name="_wtoi" returns="_307" context="_1" location="f1:608" file="f1" line="608" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:608" file="f1" line="608"/>
+ </Function>
+ <Function id="_165" name="_wtol" returns="_48" context="_1" location="f1:609" file="f1" line="609" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:609" file="f1" line="609"/>
+ </Function>
+ <Function id="_166" name="strncmp" returns="_307" context="_1" location="f0:133" file="f0" line="133" extern="1" attributes="nothrow pure __cdecl__ nonnull">
+ <Argument type="_115" location="f0:133" file="f0" line="133"/>
+ <Argument type="_115" location="f0:133" file="f0" line="133"/>
+ <Argument type="_385" location="f0:133" file="f0" line="133"/>
+ </Function>
+ <Function id="_167" name="_itow" returns="_865" context="_1" location="f1:599" file="f1" line="599" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f1:599" file="f1" line="599"/>
+ <Argument type="_865" location="f1:599" file="f1" line="599"/>
+ <Argument type="_307" location="f1:599" file="f1" line="599"/>
+ </Function>
+ <Variable id="_168" name="_osplatform" type="_125" context="_1" location="f5:245" file="f5" line="245" extern="1"/>
+ <Function id="_169" name="fputwc" returns="_503" context="_1" location="f3:346" file="f3" line="346" extern="1" attributes="__cdecl__">
+ <Argument type="_550" location="f3:346" file="f3" line="346"/>
+ <Argument type="_878" location="f3:346" file="f3" line="346"/>
+ </Function>
+ <Function id="_170" name="_getwche" returns="_503" context="_1" location="f1:509" file="f1" line="509" extern="1" attributes="__cdecl__"/>
+ <Function id="_171" name="fputws" returns="_307" context="_1" location="f3:355" file="f3" line="355" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f3:355" file="f3" line="355"/>
+ <Argument type="_878" location="f3:355" file="f3" line="355"/>
+ </Function>
+ <Function id="_172" name="strncpy" returns="_138" context="_1" location="f0:135" file="f0" line="135" extern="1" attributes="nothrow __cdecl__ nonnull">
+ <Argument type="_138" location="f0:135" file="f0" line="135"/>
+ <Argument type="_115" location="f0:135" file="f0" line="135"/>
+ <Argument type="_385" location="f0:135" file="f0" line="135"/>
+ </Function>
+ <Function id="_173" name="_wstat" returns="_307" context="_1" location="f1:492" file="f1" line="492" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:492" file="f1" line="492"/>
+ <Argument type="_920" location="f1:492" file="f1" line="492"/>
+ </Function>
+ <Function id="_174" name="rand" returns="_307" context="_1" location="f5:303" file="f5" line="303" extern="1" attributes="__cdecl__"/>
+ <Function id="_175" name="swab" returns="_890" context="_1" location="f5:439" file="f5" line="439" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f5:439" file="f5" line="439"/>
+ <Argument type="_138" location="f5:439" file="f5" line="439"/>
+ <Argument type="_307" location="f5:439" file="f5" line="439"/>
+ </Function>
+ <Function id="_176" name="getwc" returns="_503" context="_1" location="f3:348" file="f3" line="348" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:348" file="f3" line="348"/>
+ </Function>
+ <Function id="_177" name="_popen" returns="_878" context="_1" location="f3:300" file="f3" line="300" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f3:300" file="f3" line="300"/>
+ <Argument type="_115" location="f3:300" file="f3" line="300"/>
+ </Function>
+ <Function id="_178" name="free" returns="_890" context="_1" location="f5:279" file="f5" line="279" extern="1" attributes="__cdecl__">
+ <Argument type="_908" location="f5:279" file="f5" line="279"/>
+ </Function>
+ <Function id="_179" name="towlower" returns="_550" context="_1" location="f1:259" file="f1" line="259" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_550" location="f1:259" file="f1" line="259"/>
+ </Function>
+ <Function id="_180" name="isupper" returns="_307" context="_1" location="f2:95" file="f2" line="95" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_307" location="f2:95" file="f2" line="95"/>
+ </Function>
+ <Function id="_181" name="toupper" returns="_307" context="_1" location="f2:105" file="f2" line="105" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_307" location="f5:411" file="f5" line="411"/>
+ </Function>
+ <Function id="_182" name="rmtmp" returns="_307" context="_1" location="f3:444" file="f3" line="444" extern="1" attributes="__cdecl__"/>
+ <Function id="_183" name="_Strxfrm" returns="_385" context="_1" location="f7:87" file="f7" line="87" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f7:87" file="f7" line="87"/>
+ <Argument type="_138" location="f7:87" file="f7" line="87"/>
+ <Argument type="_115" location="f7:87" file="f7" line="87"/>
+ <Argument type="_115" location="f7:87" file="f7" line="87"/>
+ <Argument type="_916" location="f7:87" file="f7" line="87"/>
+ </Function>
+ <Function id="_184" name="_strerror" returns="_138" context="_1" location="f0:129" file="f0" line="129" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f0:129" file="f0" line="129"/>
+ </Function>
+ <Function id="_185" name="iswctype" returns="_307" context="_1" location="f1:261" file="f1" line="261" extern="1" attributes="__cdecl__">
+ <Argument type="_503" location="f1:261" file="f1" line="261"/>
+ <Argument type="_20" location="f1:261" file="f1" line="261"/>
+ </Function>
+ <Function id="_186" name="fgetpos" returns="_307" context="_1" location="f3:271" file="f3" line="271" extern="1" attributes="__cdecl__">
+ <Argument type="_878" location="f3:271" file="f3" line="271"/>
+ <Argument type="_921" location="f3:271" file="f3" line="271"/>
+ </Function>
+ <Variable id="_187" name="_sys_nerr" type="_307" context="_1" location="f5:194" file="f5" line="194" extern="1"/>
+ <Struct id="_188" name="__stat64" context="_1" mangled="8__stat64" demangled="__stat64" location="f1:468" file="f1" line="468" artificial="1" size="448" align="64" members="_922 _923 _924 _925 _926 _927 _928 _929 _930 _931 _932 " bases=""/>
+ <Function id="_189" name="_strnicmp" returns="_307" context="_1" location="f0:134" file="f0" line="134" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f0:134" file="f0" line="134"/>
+ <Argument type="_115" location="f0:134" file="f0" line="134"/>
+ <Argument type="_385" location="f0:134" file="f0" line="134"/>
+ </Function>
+ <Function id="_190" name="_seterrormode" returns="_890" context="_1" location="f5:395" file="f5" line="395" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f5:395" file="f5" line="395"/>
+ </Function>
+ <Function id="_191" name="_wmkdir" returns="_307" context="_1" location="f1:277" file="f1" line="277" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:277" file="f1" line="277"/>
+ </Function>
+ <Variable id="_192" name="_ZTINSt6locale7_LocimpE" type="_894c" context="_1" location="f11:145" file="f11" line="145" extern="1" artificial="1"/>
+ <Function id="_193" name="_Strftime" returns="_385" context="_1" location="f7:85" file="f7" line="85" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f7:85" file="f7" line="85"/>
+ <Argument type="_385" location="f7:85" file="f7" line="85"/>
+ <Argument type="_115" location="f7:85" file="f7" line="85"/>
+ <Argument type="_933" location="f7:85" file="f7" line="85"/>
+ <Argument type="_908" location="f7:85" file="f7" line="85"/>
+ </Function>
+ <Function id="_194" name="_wsystem" returns="_307" context="_1" location="f1:606" file="f1" line="606" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f1:339" file="f1" line="339"/>
+ </Function>
+ <Function id="_195" name="isspace" returns="_307" context="_1" location="f2:99" file="f2" line="99" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_307" location="f2:99" file="f2" line="99"/>
+ </Function>
+ <Function id="_196" name="memccpy" returns="_908" context="_1" location="f0:150" file="f0" line="150" extern="1" attributes="__cdecl__">
+ <Argument type="_908" location="f0:150" file="f0" line="150"/>
+ <Argument type="_910" location="f0:150" file="f0" line="150"/>
+ <Argument type="_307" location="f0:150" file="f0" line="150"/>
+ <Argument type="_385" location="f0:150" file="f0" line="150"/>
+ </Function>
+ <Function id="_197" name="realloc" returns="_908" context="_1" location="f5:304" file="f5" line="304" extern="1" attributes="__cdecl__">
+ <Argument type="_908" location="f5:304" file="f5" line="304"/>
+ <Argument type="_385" location="f5:304" file="f5" line="304"/>
+ </Function>
+ <Function id="_198" name="tmpnam" returns="_138" context="_1" location="f3:321" file="f3" line="321" extern="1" attributes="__cdecl__">
+ <Argument type="_138" location="f3:321" file="f3" line="321"/>
+ </Function>
+ <Typedef id="_199" name="_purecall_handler" type="_61" context="_1" location="f5:176" file="f5" line="176"/>
+ <Function id="_200" name="_ltoa" returns="_138" context="_1" location="f5:295" file="f5" line="295" extern="1" attributes="__cdecl__">
+ <Argument type="_48" location="f5:295" file="f5" line="295"/>
+ <Argument type="_138" location="f5:295" file="f5" line="295"/>
+ <Argument type="_307" location="f5:295" file="f5" line="295"/>
+ </Function>
+ <Function id="_201" name="_wcserror" returns="_865" context="_1" location="f0:183" file="f0" line="183" extern="1" attributes="__cdecl__">
+ <Argument type="_307" location="f0:183" file="f0" line="183"/>
+ </Function>
+ <Class id="_202" name="__non_rtti_object" context="_1" mangled="17__non_rtti_object" demangled="__non_rtti_object" location="f10:75" file="f10" line="75" artificial="1" size="96" align="32" members="_934 _935 _936 " bases="_455 ">
+ <Base type="_455" access="public" virtual="0" offset="0"/>
</Class>
- <Class id="_27" name="derived_private_t" context="_17" mangled="N4core15class_hierarchy17derived_private_tE" demangled="core::class_hierarchy::derived_private_t" location="f0:27" file="f0" line="27" artificial="1" size="32" align="32" members="_39 _40 _41 " bases="private:_31 ">
- <Base type="_31" access="private" virtual="0" offset="0"/>
+ <Function id="_203" name="_ltow" returns="_865" context="_1" location="f1:600" file="f1" line="600" extern="1" attributes="__cdecl__">
+ <Argument type="_48" location="f1:600" file="f1" line="600"/>
+ <Argument type="_865" location="f1:600" file="f1" line="600"/>
+ <Argument type="_307" location="f1:600" file="f1" line="600"/>
+ </Function>
+ <Function id="_204" name="iswdigit" returns="_307" context="_1" location="f1:367" file="f1" line="367" endline="367" inline="1" attributes="nothrow pure __cdecl__">
+ <Argument name="_C" type="_503" location="f1:367" file="f1" line="367"/>
+ </Function>
+ <Function id="_205" name="putwc" returns="_503" context="_1" location="f3:350" file="f3" line="350" extern="1" attributes="__cdecl__">
+ <Argument type="_550" location="f3:350" file="f3" line="350"/>
+ <Argument type="_878" location="f3:350" file="f3" line="350"/>
+ </Function>
+ <Function id="_206" name="isalpha" returns="_307" context="_1" location="f2:94" file="f2" line="94" extern="1" attributes="nothrow pure __cdecl__">
+ <Argument type="_307" location="f2:94" file="f2" line="94"/>
+ </Function>
+ <Function id="_207" name="_strtoui64" returns="_327" context="_1" location="f5:287" file="f5" line="287" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f5:287" file="f5" line="287"/>
+ <Argument type="_899" location="f5:287" file="f5" line="287"/>
+ <Argument type="_307" location="f5:287" file="f5" line="287"/>
+ </Function>
+ <Function id="_208" name="_wcsnicmp" returns="_307" context="_1" location="f0:188" file="f0" line="188" extern="1" attributes="__cdecl__">
+ <Argument type="_879" location="f0:188" file="f0" line="188"/>
+ <Argument type="_879" location="f0:188" file="f0" line="188"/>
+ <Argument type="_385" location="f0:188" file="f0" line="188"/>
+ </Function>
+ <Function id="_209" name="tempnam" returns="_138" context="_1" location="f3:445" file="f3" line="445" extern="1" attributes="__cdecl__">
+ <Argument type="_115" location="f3:445" file="f3" line="445"/>
+ <Argument type="_115" location="f3:445" file="f3" line="445"/>
+ </Function>
+ <Function id="_210" name="_set_error_mode" returns="_307" context="_1" location="f5:305" file="f5" line="305" extern="1" attributes="__cdecl__">
+ <Argument type="_307" locatio...
[truncated message content] |
|
From: <rom...@us...> - 2007-12-05 20:52:47
|
Revision: 1199
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1199&view=rev
Author: roman_yakovenko
Date: 2007-12-05 12:52:52 -0800 (Wed, 05 Dec 2007)
Log Message:
-----------
adding new tester for precompiled header files
Modified Paths:
--------------
pyplusplus_dev/unittests/test_all.py
Added Paths:
-----------
pyplusplus_dev/unittests/data/precompiled_header_to_be_exported.hpp
pyplusplus_dev/unittests/precompiled_header_tester.py
Added: pyplusplus_dev/unittests/data/precompiled_header_to_be_exported.hpp
===================================================================
--- pyplusplus_dev/unittests/data/precompiled_header_to_be_exported.hpp (rev 0)
+++ pyplusplus_dev/unittests/data/precompiled_header_to_be_exported.hpp 2007-12-05 20:52:52 UTC (rev 1199)
@@ -0,0 +1,18 @@
+// Copyright 2004 Roman Yakovenko.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef __precompiled_header_to_be_exported_hpp__
+#define __precompiled_header_to_be_exported_hpp__
+
+namespace enums{
+
+enum color{ red, green, blue};
+
+inline int to_int( int x=red ){ return x; }
+
+}
+
+
+#endif//__precompiled_header_to_be_exported_hpp__
Added: pyplusplus_dev/unittests/precompiled_header_tester.py
===================================================================
--- pyplusplus_dev/unittests/precompiled_header_tester.py (rev 0)
+++ pyplusplus_dev/unittests/precompiled_header_tester.py 2007-12-05 20:52:52 UTC (rev 1199)
@@ -0,0 +1,47 @@
+# Copyright 2004 Roman Yakovenko.
+# Distributed under the Boost Software License, Version 1.0. (See
+# accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+import os
+import sys
+import unittest
+import autoconfig
+import fundamental_tester_base
+from pyplusplus import code_creators
+
+class tester_t(fundamental_tester_base.fundamental_tester_base_t):
+ EXTENSION_NAME = 'precompiled_header'
+
+ def __init__( self, *args ):
+ fundamental_tester_base.fundamental_tester_base_t.__init__(
+ self
+ , tester_t.EXTENSION_NAME
+ , *args )
+
+ def customize(self, mb ):
+ #add precompiled header
+ mb.build_code_creator( self.EXTENSION_NAME )
+ stdafx = code_creators.include_t( 'stdafx.h' )
+ mb.code_creator.adopt_creator( stdafx, 0 )
+
+ f = file( os.path.join( autoconfig.build_dir, 'stdafx.h' ), 'w+' )
+ f.writelines( ['//this should be the first header file' + os.linesep] )
+ f.close()
+
+ def run_tests(self, module):
+ lines = file( os.path.join( autoconfig.build_dir, 'precompiled_header.cpp' ) ).readlines()
+ lines = filter( lambda l: l.startswith( '#include' ), lines )
+ self.failUnless( '#include "stdafx.h"' in lines[0] )
+
+
+def create_suite():
+ suite = unittest.TestSuite()
+ suite.addTest( unittest.makeSuite(tester_t))
+ return suite
+
+def run_suite():
+ unittest.TextTestRunner(verbosity=2).run( create_suite() )
+
+if __name__ == "__main__":
+ run_suite()
Modified: pyplusplus_dev/unittests/test_all.py
===================================================================
--- pyplusplus_dev/unittests/test_all.py 2007-12-05 14:49:45 UTC (rev 1198)
+++ pyplusplus_dev/unittests/test_all.py 2007-12-05 20:52:52 UTC (rev 1199)
@@ -96,9 +96,9 @@
import include_exclude_bug_tester
import vector_with_shared_data_tester
import constructors_bug_tester
+import precompiled_header_tester
-
testers = [
algorithms_tester
, module_body_tester
@@ -181,6 +181,7 @@
, vector_with_shared_data_tester
, templates_tester
, constructors_bug_tester
+ , precompiled_header_tester
]
class module_runner_t( object ):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-05 14:49:42
|
Revision: 1198
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1198&view=rev
Author: roman_yakovenko
Date: 2007-12-05 06:49:45 -0800 (Wed, 05 Dec 2007)
Log Message:
-----------
upgrading example
Modified Paths:
--------------
pygccxml_dev/docs/example/example.hpp
pygccxml_dev/docs/example/example.py
Modified: pygccxml_dev/docs/example/example.hpp
===================================================================
--- pygccxml_dev/docs/example/example.hpp 2007-12-05 07:42:42 UTC (rev 1197)
+++ pygccxml_dev/docs/example/example.hpp 2007-12-05 14:49:45 UTC (rev 1198)
@@ -1,4 +1,4 @@
-// Copyright 2004 Roman Yakovenko.
+// Copyright 2004-2007 Roman Yakovenko.
// Distributed under the Boost Software License, Version 1.0. (See
// accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -6,29 +6,61 @@
#ifndef example_hpp_12_10_2006
#define example_hpp_12_10_2006
+#include <vector>
+#include <string>
+#include <map>
-namespace core{ namespace class_hierarchy{
+namespace unittests{
-class base_t{
-public:
- virtual ~base_t(){};
+struct test_results{
+
+ enum status{ ok, fail, error };
+
+ typedef std::map< std::string, status > result_container;
+
+ void update( const std::string& name, status result ){
+ m_results[ name ] = result;
+ }
+
+private:
+ result_container m_results;
};
-
-class other_base_t{
+
+struct test_case{
+
+ test_case( const std::string& name )
+ : m_name( name )
+ {}
+
+ virtual void set_up(){}
+
+ virtual void tear_down(){}
+
+ virtual void run() = 0;
+
+private:
+ const std::string m_name;
};
-class derived_public_t : public base_t{
+struct test_suite : public test_case{
+
+ typedef std::vector< test_case* > test_container;
+
+ test_suite( const std::string& name, const test_container& tests )
+ : test_case(name)
+ , m_tests( tests )
+ {}
+
+ virtual void run();
+
+ const test_results& get_results() const
+ { return m_results; }
+
+private:
+ const test_container m_tests;
+ test_results m_results;
};
+
+}
-class derived_protected_t : protected base_t{
-};
-
-class derived_private_t : private base_t{
-};
-
-class multi_derived_t : derived_private_t, protected base_t, private other_base_t{
-};
-
-} }
-
#endif//example_hpp_12_10_2006
Modified: pygccxml_dev/docs/example/example.py
===================================================================
--- pygccxml_dev/docs/example/example.py 2007-12-05 07:42:42 UTC (rev 1197)
+++ pygccxml_dev/docs/example/example.py 2007-12-05 14:49:45 UTC (rev 1198)
@@ -3,24 +3,62 @@
# accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
+import os
import sys
-#~ sys.path.append('../..') #adding pygccxml to the path
+#find out the file location within the sources tree
+this_module_dir_path = os.path.abspath ( os.path.dirname( sys.modules[__name__].__file__) )
+#find out gccxml location
+gccxml_09_path = os.path.join( this_module_dir_path, '..', '..', '..', 'gccxml_bin', 'v09', sys.platform, 'bin' )
+#add pygccxml package to Python path
+sys.path.append( os.path.join( this_module_dir_path, '..', '..' ) )
+
+
from pygccxml import parser
from pygccxml import declarations
#configure GCC-XML parser
-config = parser.config_t( gccxml_path='/home/roman/language-binding/sources/gccxml_bin/v09/linux2/bin' )
+config = parser.config_t( gccxml_path=gccxml_09_path )
#parsing source file
decls = parser.parse( ['example.hpp'], config )
global_ns = declarations.get_global_namespace( decls )
-#printing all declarations found in file and its includes
-declarations.print_declarations( global_ns )
+#get object that describes unittests namespace
+unittests = global_ns.namespace( 'unittests' )
+print '"unittests" declarations: '
+declarations.print_declarations( unittests )
+
+
#print all base and derived class names
-for class_ in global_ns.classes():
- print class_.name
- print '\tbases: ', `[base.related_class.name for base in class_.bases]`
- print '\tderived: ', `[derive.related_class.name for derive in class_.derived]`
+for class_ in unittests.classes():
+ print 'class "%s" hierarchy information:' % class_.name
+ print '\tbase classes : ', `[base.related_class.name for base in class_.bases]`
+ print '\tderived classes: ', `[derive.related_class.name for derive in class_.derived]`
+ print '\n'
+
+
+#pygccxml has very powerfull query api:
+
+#select multiple declarations
+run_functions = unittests.member_functions( 'run' )
+print 'the namespace contains %d "run" member functions' % len(run_functions)
+print 'they are: '
+for f in run_functions:
+ print '\t' + declarations.full_name( f )
+
+
+#select single declaration - all next statements will return same object
+#vector< unittests::test_case* >
+
+#you can select the class using "full" name
+test_container_1 = global_ns.class_( 'vector<unittests::test_case*, std::allocator<unittests::test_case*> >' )
+#you can select the class using partial name
+test_container_2 = global_ns.class_( 'vector< unittests::test_case* >' )
+#you can define your own "match" criteria
+test_container_3 = global_ns.class_( lambda decl: 'vector' in decl.name )
+
+is_same_object = test_container_1 is test_container_2 \
+ and test_container_2 is test_container_3
+print "Does all test_container_* refer to the same object? ", str(is_same_object)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-05 07:42:43
|
Revision: 1197
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1197&view=rev
Author: roman_yakovenko
Date: 2007-12-04 23:42:42 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
upgrading site creator tools
Added Paths:
-----------
website/tools/Pygments-0.8.1.tar.gz
website/tools/kid-0.9.6.tar.gz
Removed Paths:
-------------
website/tools/kid-svn-12-10-2006.zip
website/tools/pykleur-svn-11-11-2006.zip
Added: website/tools/Pygments-0.8.1.tar.gz
===================================================================
(Binary files differ)
Property changes on: website/tools/Pygments-0.8.1.tar.gz
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: website/tools/kid-0.9.6.tar.gz
===================================================================
(Binary files differ)
Property changes on: website/tools/kid-0.9.6.tar.gz
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Deleted: website/tools/kid-svn-12-10-2006.zip
===================================================================
(Binary files differ)
Deleted: website/tools/pykleur-svn-11-11-2006.zip
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-05 07:39:30
|
Revision: 1196
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1196&view=rev
Author: roman_yakovenko
Date: 2007-12-04 23:39:29 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
upgrading site creator tools
Modified Paths:
--------------
website/site_creator/environment.py
website/site_creator/page_creator.py
Modified: website/site_creator/environment.py
===================================================================
--- website/site_creator/environment.py 2007-12-04 22:08:24 UTC (rev 1195)
+++ website/site_creator/environment.py 2007-12-05 07:39:29 UTC (rev 1196)
@@ -28,5 +28,7 @@
print settings.templates_dir
-sys.path.append( os.path.join( settings.development_dir, 'tools', 'kid-svn-12-10-2006' ) )
-sys.path.append( os.path.join( settings.development_dir, 'tools', 'pykleur-svn-11-11-2006' ) )
+
+sys.path.append( os.path.join( settings.development_dir, 'tools' ) )
+sys.path.append( os.path.join( settings.development_dir, 'tools', 'kid' ) )
+sys.path.append( os.path.join( settings.development_dir, 'tools', 'pygments' ) )
Modified: website/site_creator/page_creator.py
===================================================================
--- website/site_creator/page_creator.py 2007-12-04 22:08:24 UTC (rev 1195)
+++ website/site_creator/page_creator.py 2007-12-05 07:39:29 UTC (rev 1196)
@@ -10,9 +10,10 @@
import www_configuration_reader
import sys
-sys.path.append( 'D:\pykleur' )
-import pykleur
+import pygments
+import pygments.lexers
+import pygments.formatters
def code_block( name, arguments, options, content, lineno, content_offset, block_text, state, state_machine ):
"""
@@ -57,9 +58,9 @@
, docutils.nodes.literal_block(block_text,block_text), line=lineno)
return [error]
- html = pykleur.highlight( source_code
- , pykleur.lexers.get_lexer_by_name( language.lower() )
- , pykleur.formatters.HtmlFormatter(noclasses=True, style='friendly') )
+ html = pygments.highlight( source_code
+ , pygments.lexers.get_lexer_by_name( language.lower() )
+ , pygments.formatters.HtmlFormatter(noclasses=True, style='friendly') )
raw = docutils.nodes.raw('', html, format='html')
return [raw]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 22:08:23
|
Revision: 1195
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1195&view=rev
Author: roman_yakovenko
Date: 2007-12-04 14:08:24 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
adding output file
Modified Paths:
--------------
pygccxml_dev/docs/example/example.py
Added Paths:
-----------
pygccxml_dev/docs/example/output.txt
pygccxml_dev/docs/example/output.txt.rest
Modified: pygccxml_dev/docs/example/example.py
===================================================================
--- pygccxml_dev/docs/example/example.py 2007-12-04 21:56:13 UTC (rev 1194)
+++ pygccxml_dev/docs/example/example.py 2007-12-04 22:08:24 UTC (rev 1195)
@@ -4,13 +4,13 @@
# http://www.boost.org/LICENSE_1_0.txt)
import sys
-sys.path.append('../..') #adding pygccxml to the path
+#~ sys.path.append('../..') #adding pygccxml to the path
from pygccxml import parser
from pygccxml import declarations
#configure GCC-XML parser
-config = parser.config_t( gccxml_path='/home/roman/gccxml-build/bin/gccxml' )
+config = parser.config_t( gccxml_path='/home/roman/language-binding/sources/gccxml_bin/v09/linux2/bin' )
#parsing source file
decls = parser.parse( ['example.hpp'], config )
Added: pygccxml_dev/docs/example/output.txt
===================================================================
--- pygccxml_dev/docs/example/output.txt (rev 0)
+++ pygccxml_dev/docs/example/output.txt 2007-12-04 22:08:24 UTC (rev 1195)
@@ -0,0 +1,773 @@
+>python -u "example.py"
+
+INFO Parsing source file "example.hpp" ...
+
+INFO gccxml cmd: /home/roman/language-binding/sources/gccxml_bin/v09/linux2/bin/gccxml -I"." "example.hpp" -fxml="/tmp/tmpgpIVCq.xml"
+
+INFO GCCXML version - 0.9
+namespace_t: '::'
+ artificial: 'False'
+ namespace_t: 'std'
+ artificial: 'False'
+ free_function_t: '__builtin_nans'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:21
+ artificial: 'False'
+ attributes: nothrow const nonnull
+ free_function_t: '__builtin_acosf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:25
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_acosl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:26
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_log10'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:63
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_popcountll'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:101
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_clogf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:111
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_clogl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:113
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cexpf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:108
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cexpl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:110
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ variable_t: '_ZTIN4core15class_hierarchy17derived_private_tE'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:26
+ artificial: '1'
+ type: ::__vmi_class_type_info_pseudo1 const value: None
+ size: 0
+ align: 0
+ offset: 0
+ free_function_t: '__builtin_asinf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:28
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_asinl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:29
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_popcount'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:99
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_nansf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:22
+ artificial: 'False'
+ attributes: nothrow const nonnull
+ free_function_t: '__builtin_nansl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:23
+ artificial: 'False'
+ attributes: nothrow const nonnull
+ free_function_t: '__builtin_floorf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:52
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_floorl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:53
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_ctanf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:123
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ctanh'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:127
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ctanl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:125
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_carg'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:94
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_clog'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:112
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_logf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:66
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_logl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:67
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_fabs'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:48
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_expf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:46
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_expl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:47
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_csqrt'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:121
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_sin'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:75
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ldexpf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:60
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_ldexpl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:61
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_tanf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:85
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_tanh'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:86
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_tanl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:89
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ceil'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:36
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_fmodf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:54
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_fmodl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:55
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_return'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:13
+ artificial: 'False'
+ attributes: nothrow noreturn
+ free_function_t: '__builtin_sqrt'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:81
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_cpow'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:130
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_coshf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:42
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_coshl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:43
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_cexp'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:109
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_atan2'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:31
+ artificial: 'False'
+ attributes: nothrow
+ variable_t: '_ZTIN4core15class_hierarchy19derived_protected_tE'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: '1'
+ type: ::__vmi_class_type_info_pseudo1 const value: None
+ size: 0
+ align: 0
+ offset: 0
+ free_function_t: '__builtin_atanf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:34
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_atanl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:35
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ctan'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:124
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_log'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:62
+ artificial: 'False'
+ attributes: nothrow
+ variable_t: '_ZTIN4core15class_hierarchy6base_tE'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:12
+ artificial: '1'
+ type: ::__class_type_info_pseudo const value: None
+ size: 0
+ align: 0
+ offset: 0
+ free_function_t: '__builtin_asin'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:27
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_frexp'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:56
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_log10f'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:64
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_log10l'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:65
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_ctzl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:97
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_powif'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:73
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_powil'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:74
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_modff'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:68
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_exp'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:45
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_modfl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:69
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_prefetch'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:17
+ artificial: 'False'
+ attributes: no vops
+ free_function_t: '__builtin_tan'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:84
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_fabsf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:49
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_fabsl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:50
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_inf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:18
+ artificial: 'False'
+ attributes: nothrow const
+ namespace_t: '__cxxabiv1'
+ artificial: 'False'
+ free_function_t: '__builtin_frame_address'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:15
+ artificial: 'False'
+ free_function_t: '__builtin_cabs'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:91
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ namespace_t: 'core'
+ artificial: 'False'
+ namespace_t: 'class_hierarchy'
+ artificial: 'False'
+ class_t: 'base_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:12
+ artificial: '1'
+ class type: 'class'
+ size: 4
+ align: 4
+ derived classes:
+ class: '::core::class_hierarchy::derived_public_t'
+ access: 'public'
+ class: '::core::class_hierarchy::derived_private_t'
+ access: 'private'
+ class: '::core::class_hierarchy::derived_protected_t'
+ access: 'protected'
+ class: '::core::class_hierarchy::multi_derived_t'
+ access: 'protected'
+ public:
+ destructor_t: '~base_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:14
+ artificial: 'False'
+ protected:
+ private:
+ class_t: 'derived_public_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:20
+ artificial: '1'
+ class type: 'class'
+ size: 4
+ align: 4
+ base classes:
+ class: '::core::class_hierarchy::base_t'
+ access: 'public'
+ public:
+ destructor_t: '~derived_public_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:20
+ artificial: '1'
+ protected:
+ private:
+ class_t: 'derived_protected_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: '1'
+ class type: 'class'
+ size: 4
+ align: 4
+ base classes:
+ class: '::core::class_hierarchy::base_t'
+ access: 'protected'
+ public:
+ destructor_t: '~derived_protected_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: '1'
+ protected:
+ private:
+ class_t: 'multi_derived_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: '1'
+ class type: 'class'
+ size: 8
+ align: 4
+ base classes:
+ class: '::core::class_hierarchy::derived_private_t'
+ access: 'private'
+ class: '::core::class_hierarchy::base_t'
+ access: 'protected'
+ class: '::core::class_hierarchy::other_base_t'
+ access: 'private'
+ public:
+ destructor_t: '~multi_derived_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: '1'
+ protected:
+ private:
+ class_t: 'derived_private_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:26
+ artificial: '1'
+ class type: 'class'
+ size: 4
+ align: 4
+ base classes:
+ class: '::core::class_hierarchy::base_t'
+ access: 'private'
+ derived classes:
+ class: '::core::class_hierarchy::multi_derived_t'
+ access: 'private'
+ public:
+ destructor_t: '~derived_private_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:26
+ artificial: '1'
+ protected:
+ private:
+ class_t: 'other_base_t'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:17
+ artificial: '1'
+ class type: 'class'
+ size: 1
+ align: 1
+ derived classes:
+ class: '::core::class_hierarchy::multi_derived_t'
+ access: 'private'
+ public:
+ protected:
+ private:
+ free_function_t: '__builtin_atan2f'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:32
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_atan2l'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:33
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_ccoshf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:105
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ccoshl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:107
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_atan'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:30
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_sinhf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:78
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_sinhl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:79
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_sqrtf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:82
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_sqrtl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:83
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_frexpf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:57
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_frexpl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:58
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_cpowf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:129
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cpowl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:131
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_tanhf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:87
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_tanhl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:88
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cabsf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:90
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cabsl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:92
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_powf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:70
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_powi'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:72
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_powl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:71
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_ccos'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:103
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_expect'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:16
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_popcountl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:100
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_inff'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:19
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_infl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:20
+ artificial: 'False'
+ attributes: nothrow const
+ variable_t: '_ZTIN4core15class_hierarchy16derived_public_tE'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:20
+ artificial: '1'
+ type: ::__si_class_type_info_pseudo const value: None
+ size: 0
+ align: 0
+ offset: 0
+ free_function_t: '__builtin_cos'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:39
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ctz'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:96
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_return_address'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:14
+ artificial: 'False'
+ free_function_t: '__builtin_csinhf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:117
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_csinhl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:119
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_csqrtf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:120
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_csqrtl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:122
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ variable_t: '_ZTIN4core15class_hierarchy15multi_derived_tE'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: '1'
+ type: ::__vmi_class_type_info_pseudo3 const value: None
+ size: 0
+ align: 0
+ offset: 0
+ free_function_t: '__builtin_floor'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:51
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_ldexp'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:59
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_ccosf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:102
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ccosh'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:106
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ccosl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:104
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ctanhf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:126
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ctanhl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:128
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_ceilf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:37
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_ceill'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:38
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_csinf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:114
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_csinh'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:118
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_csinl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:116
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_acos'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:24
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_ctzll'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:98
+ artificial: 'False'
+ attributes: nothrow const
+ free_function_t: '__builtin_cargf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:93
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cargl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:95
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cosf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:40
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_cosh'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:41
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_cosl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:44
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_sinf'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:76
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_sinh'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:77
+ artificial: 'False'
+ attributes: nothrow
+ free_function_t: '__builtin_sinl'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:80
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ free_function_t: '__builtin_csin'
+ location: [/home/roman/language-binding/sources/gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.1/gccxml_builtins.h]:115
+ artificial: 'False'
+ attributes: nothrow pure no vops
+ class_t: '__vmi_class_type_info_pseudo1'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: 'False'
+ class type: 'struct'
+ size: 24
+ align: 4
+ public:
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: 'False'
+ type: ::__type_info_pseudo value: None
+ size: 8
+ align: 4
+ offset: 0
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: 'False'
+ type: int value: None
+ size: 4
+ align: 4
+ offset: 8
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: 'False'
+ type: int value: None
+ size: 4
+ align: 4
+ offset: 12
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:23
+ artificial: 'False'
+ type: ::__base_class_type_info_pseudo[1] value: None
+ size: 8
+ align: 4
+ offset: 16
+ protected:
+ private:
+ class_t: '__class_type_info_pseudo'
+ location: [<built-in>]:0
+ artificial: 'False'
+ class type: 'struct'
+ size: 8
+ align: 4
+ public:
+ protected:
+ private:
+ class_t: '__si_class_type_info_pseudo'
+ location: [<built-in>]:0
+ artificial: 'False'
+ class type: 'struct'
+ size: 12
+ align: 4
+ public:
+ protected:
+ private:
+ class_t: '__vmi_class_type_info_pseudo3'
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: 'False'
+ class type: 'struct'
+ size: 40
+ align: 4
+ public:
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: 'False'
+ type: ::__type_info_pseudo value: None
+ size: 8
+ align: 4
+ offset: 0
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: 'False'
+ type: int value: None
+ size: 4
+ align: 4
+ offset: 8
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: 'False'
+ type: int value: None
+ size: 4
+ align: 4
+ offset: 12
+ variable_t: ''
+ location: [/home/roman/language-binding/sources/pygccxml_dev/docs/example/example.hpp]:29
+ artificial: 'False'
+ type: ::__base_class_type_info_pseudo[3] value: None
+ size: 24
+ align: 4
+ offset: 16
+ protected:
+ private:
+ class_t: '__type_info_pseudo'
+ location: [<built-in>]:0
+ artificial: 'False'
+ class type: 'struct'
+ size: 8
+ align: 4
+ public:
+ protected:
+ private:
+ class_t: '__base_class_type_info_pseudo'
+ location: [<built-in>]:0
+ artificial: 'False'
+ class type: 'struct'
+ size: 8
+ align: 4
+ public:
+ protected:
+ private:
+base_t
+ bases: []
+ derived: ['derived_public_t', 'derived_private_t', 'derived_protected_t', 'multi_derived_t']
+derived_public_t
+ bases: ['base_t']
+ derived: []
+derived_protected_t
+ bases: ['base_t']
+ derived: []
+multi_derived_t
+ bases: ['derived_private_t', 'base_t', 'other_base_t']
+ derived: []
+derived_private_t
+ bases: ['base_t']
+ derived: ['multi_derived_t']
+other_base_t
+ bases: []
+ derived: ['multi_derived_t']
+__vmi_class_type_info_pseudo1
+ bases: []
+ derived: []
+__class_type_info_pseudo
+ bases: []
+ derived: []
+__si_class_type_info_pseudo
+ bases: []
+ derived: []
+__vmi_class_type_info_pseudo3
+ bases: []
+ derived: []
+__type_info_pseudo
+ bases: []
+ derived: []
+__base_class_type_info_pseudo
+ bases: []
+ derived: []
+>Exit code: 1
Added: pygccxml_dev/docs/example/output.txt.rest
===================================================================
--- pygccxml_dev/docs/example/output.txt.rest (rev 0)
+++ pygccxml_dev/docs/example/output.txt.rest 2007-12-04 22:08:24 UTC (rev 1195)
@@ -0,0 +1,3 @@
+.. code-block::
+ :language: text
+ :source-file: ./output.txt
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 21:56:09
|
Revision: 1194
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1194&view=rev
Author: roman_yakovenko
Date: 2007-12-04 13:56:13 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
moving example to separate directory
Modified Paths:
--------------
pygccxml_dev/docs/history/history.rest
pygccxml_dev/docs/query_interface.rest
Added Paths:
-----------
pygccxml_dev/docs/example/
pygccxml_dev/docs/example/example.hpp
pygccxml_dev/docs/example/example.hpp.rest
pygccxml_dev/docs/example/example.hpp.xml
pygccxml_dev/docs/example/example.hpp.xml.rest
pygccxml_dev/docs/example/example.py
pygccxml_dev/docs/example/example.py.rest
pygccxml_dev/docs/example/example.rest
pygccxml_dev/docs/example/www_configuration.py
Removed Paths:
-------------
pygccxml_dev/docs/example.hpp
pygccxml_dev/docs/example.hpp.rest
pygccxml_dev/docs/example.hpp.xml
pygccxml_dev/docs/example.hpp.xml.rest
pygccxml_dev/docs/example.py
pygccxml_dev/docs/example.py.rest
Added: pygccxml_dev/docs/example/example.hpp
===================================================================
--- pygccxml_dev/docs/example/example.hpp (rev 0)
+++ pygccxml_dev/docs/example/example.hpp 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,34 @@
+// Copyright 2004 Roman Yakovenko.
+// Distributed under the Boost Software License, Version 1.0. (See
+// accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef example_hpp_12_10_2006
+#define example_hpp_12_10_2006
+
+
+namespace core{ namespace class_hierarchy{
+
+class base_t{
+public:
+ virtual ~base_t(){};
+};
+
+class other_base_t{
+};
+
+class derived_public_t : public base_t{
+};
+
+class derived_protected_t : protected base_t{
+};
+
+class derived_private_t : private base_t{
+};
+
+class multi_derived_t : derived_private_t, protected base_t, private other_base_t{
+};
+
+} }
+
+#endif//example_hpp_12_10_2006
Added: pygccxml_dev/docs/example/example.hpp.rest
===================================================================
--- pygccxml_dev/docs/example/example.hpp.rest (rev 0)
+++ pygccxml_dev/docs/example/example.hpp.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,3 @@
+.. code-block::
+ :language: C++
+ :source-file: ./example.hpp
Added: pygccxml_dev/docs/example/example.hpp.xml
===================================================================
--- pygccxml_dev/docs/example/example.hpp.xml (rev 0)
+++ pygccxml_dev/docs/example/example.hpp.xml 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,97 @@
+<?xml version="1.0"?>
+<GCC_XML cvs_revision="1.112">
+ <Namespace id="_1" name="::" members="_3 _4 _5 _6 _7 _8 " mangled="_Z2::" demangled="::"/>
+ <Namespace id="_2" name="std" context="_1" members="" mangled="_Z3std" demangled="std"/>
+ <Variable id="_3" name="_ZTIN4core15class_hierarchy15multi_derived_tE" type="_9c" context="_1" location="f0:30" file="f0" line="30" extern="1" artificial="1"/>
+ <Variable id="_4" name="_ZTIN4core15class_hierarchy17derived_private_tE" type="_11c" context="_1" location="f0:27" file="f0" line="27" extern="1" artificial="1"/>
+ <Variable id="_5" name="_ZTIN4core15class_hierarchy19derived_protected_tE" type="_11c" context="_1" location="f0:24" file="f0" line="24" extern="1" artificial="1"/>
+ <Variable id="_6" name="_ZTIN4core15class_hierarchy16derived_public_tE" type="_13c" context="_1" location="f0:21" file="f0" line="21" extern="1" artificial="1"/>
+ <Variable id="_7" name="_ZTIN4core15class_hierarchy6base_tE" type="_15c" context="_1" location="f0:13" file="f0" line="13" extern="1" artificial="1"/>
+ <Namespace id="_8" name="core" context="_1" members="_17 " mangled="_Z4core" demangled="core"/>
+ <Struct id="_9" name="__vmi_class_type_info_pseudo3" context="_1" mangled="29__vmi_class_type_info_pseudo3" demangled="__vmi_class_type_info_pseudo3" location="f0:30" file="f0" line="30" size="384" align="32" members="_18 _19 _20 _21 " bases=""/>
+ <CvQualifiedType id="_9c" type="_9" const="1"/>
+ <Struct id="_11" name="__vmi_class_type_info_pseudo1" context="_1" mangled="29__vmi_class_type_info_pseudo1" demangled="__vmi_class_type_info_pseudo1" location="f0:24" file="f0" line="24" size="256" align="32" members="_22 _23 _24 _25 " bases=""/>
+ <CvQualifiedType id="_11c" type="_11" const="1"/>
+ <Struct id="_13" name="__si_class_type_info_pseudo" context="_1" mangled="27__si_class_type_info_pseudo" demangled="__si_class_type_info_pseudo" location="f1:0" file="f1" line="0" size="96" align="32" members="" bases=""/>
+ <CvQualifiedType id="_13c" type="_13" const="1"/>
+ <Struct id="_15" name="__class_type_info_pseudo" context="_1" mangled="24__class_type_info_pseudo" demangled="__class_type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
+ <CvQualifiedType id="_15c" type="_15" const="1"/>
+ <Namespace id="_17" name="class_hierarchy" context="_8" members="_26 _27 _28 _29 _30 _31 " mangled="_ZN4core15class_hierarchyE" demangled="core::class_hierarchy"/>
+ <Field id="_18" name="" type="_32" offset="0" context="_9" access="public" location="f0:30" file="f0" line="30"/>
+ <Field id="_19" name="" type="_33" offset="64" context="_9" access="public" location="f0:30" file="f0" line="30"/>
+ <Field id="_20" name="" type="_33" offset="96" context="_9" access="public" location="f0:30" file="f0" line="30"/>
+ <Field id="_21" name="" type="_34" offset="128" context="_9" access="public" location="f0:30" file="f0" line="30"/>
+ <Field id="_22" name="" type="_32" offset="0" context="_11" access="public" location="f0:24" file="f0" line="24"/>
+ <Field id="_23" name="" type="_33" offset="64" context="_11" access="public" location="f0:24" file="f0" line="24"/>
+ <Field id="_24" name="" type="_33" offset="96" context="_11" access="public" location="f0:24" file="f0" line="24"/>
+ <Field id="_25" name="" type="_35" offset="128" context="_11" access="public" location="f0:24" file="f0" line="24"/>
+ <Class id="_26" name="multi_derived_t" context="_17" mangled="N4core15class_hierarchy15multi_derived_tE" demangled="core::class_hierarchy::multi_derived_t" location="f0:30" file="f0" line="30" artificial="1" size="64" align="32" members="_36 _37 _38 " bases="private:_27 protected:_31 private:_30 ">
+ <Base type="_27" access="private" virtual="0" offset="0"/>
+ <Base type="_31" access="protected" virtual="0" offset="4"/>
+ <Base type="_30" access="private" virtual="0" offset="0"/>
+ </Class>
+ <Class id="_27" name="derived_private_t" context="_17" mangled="N4core15class_hierarchy17derived_private_tE" demangled="core::class_hierarchy::derived_private_t" location="f0:27" file="f0" line="27" artificial="1" size="32" align="32" members="_39 _40 _41 " bases="private:_31 ">
+ <Base type="_31" access="private" virtual="0" offset="0"/>
+ </Class>
+ <Class id="_28" name="derived_protected_t" context="_17" mangled="N4core15class_hierarchy19derived_protected_tE" demangled="core::class_hierarchy::derived_protected_t" location="f0:24" file="f0" line="24" artificial="1" size="32" align="32" members="_42 _43 _44 " bases="protected:_31 ">
+ <Base type="_31" access="protected" virtual="0" offset="0"/>
+ </Class>
+ <Class id="_29" name="derived_public_t" context="_17" mangled="N4core15class_hierarchy16derived_public_tE" demangled="core::class_hierarchy::derived_public_t" location="f0:21" file="f0" line="21" artificial="1" size="32" align="32" members="_45 _46 _47 " bases="_31 ">
+ <Base type="_31" access="public" virtual="0" offset="0"/>
+ </Class>
+ <Class id="_30" name="other_base_t" context="_17" mangled="N4core15class_hierarchy12other_base_tE" demangled="core::class_hierarchy::other_base_t" location="f0:18" file="f0" line="18" artificial="1" size="8" align="8" members="_48 _49 " bases=""/>
+ <Class id="_31" name="base_t" context="_17" mangled="N4core15class_hierarchy6base_tE" demangled="core::class_hierarchy::base_t" location="f0:13" file="f0" line="13" artificial="1" size="32" align="32" members="_50 _51 _52 " bases=""/>
+ <Struct id="_32" name="__type_info_pseudo" context="_1" mangled="18__type_info_pseudo" demangled="__type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
+ <FundamentalType id="_33" name="int" size="32" align="32"/>
+ <ArrayType id="_34" min="0" max="3" type="_53" size="256" align="32"/>
+ <ArrayType id="_35" min="0" max="1" type="_53" size="128" align="32"/>
+ <Constructor id="_36" name="multi_derived_t" artificial="1" throw="" context="_26" access="public" mangled="_ZN4core15class_hierarchy15multi_derived_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::multi_derived_t::multi_derived_t(core::class_hierarchy::multi_derived_t const&)" location="f0:30" file="f0" line="30" inline="1">
+ <Argument name="_ctor_arg" type="_54" location="f0:30" file="f0" line="30"/>
+ </Constructor>
+ <Constructor id="_37" name="multi_derived_t" explicit="1" artificial="1" throw="" context="_26" access="public" mangled="_ZN4core15class_hierarchy15multi_derived_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::multi_derived_t::multi_derived_t()" location="f0:30" file="f0" line="30" inline="1"/>
+ <Destructor id="_38" name="multi_derived_t" virtual="1" artificial="1" context="_26" access="public" mangled="_ZN4core15class_hierarchy15multi_derived_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::multi_derived_t::~multi_derived_t()" location="f0:30" file="f0" line="30" inline="1">
+ </Destructor>
+ <Constructor id="_39" name="derived_private_t" artificial="1" throw="" context="_27" access="public" mangled="_ZN4core15class_hierarchy17derived_private_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::derived_private_t::derived_private_t(core::class_hierarchy::derived_private_t const&)" location="f0:27" file="f0" line="27" inline="1">
+ <Argument name="_ctor_arg" type="_55" location="f0:27" file="f0" line="27"/>
+ </Constructor>
+ <Constructor id="_40" name="derived_private_t" explicit="1" artificial="1" throw="" context="_27" access="public" mangled="_ZN4core15class_hierarchy17derived_private_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_private_t::derived_private_t()" location="f0:27" file="f0" line="27" inline="1"/>
+ <Destructor id="_41" name="derived_private_t" virtual="1" artificial="1" context="_27" access="public" mangled="_ZN4core15class_hierarchy17derived_private_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_private_t::~derived_private_t()" location="f0:27" file="f0" line="27" inline="1">
+ </Destructor>
+ <Constructor id="_42" name="derived_protected_t" artificial="1" throw="" context="_28" access="public" mangled="_ZN4core15class_hierarchy19derived_protected_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::derived_protected_t::derived_protected_t(core::class_hierarchy::derived_protected_t const&)" location="f0:24" file="f0" line="24" inline="1">
+ <Argument name="_ctor_arg" type="_56" location="f0:24" file="f0" line="24"/>
+ </Constructor>
+ <Constructor id="_43" name="derived_protected_t" explicit="1" artificial="1" throw="" context="_28" access="public" mangled="_ZN4core15class_hierarchy19derived_protected_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_protected_t::derived_protected_t()" location="f0:24" file="f0" line="24" inline="1"/>
+ <Destructor id="_44" name="derived_protected_t" virtual="1" artificial="1" context="_28" access="public" mangled="_ZN4core15class_hierarchy19derived_protected_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_protected_t::~derived_protected_t()" location="f0:24" file="f0" line="24" inline="1">
+ </Destructor>
+ <Constructor id="_45" name="derived_public_t" artificial="1" throw="" context="_29" access="public" mangled="_ZN4core15class_hierarchy16derived_public_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::derived_public_t::derived_public_t(core::class_hierarchy::derived_public_t const&)" location="f0:21" file="f0" line="21" inline="1">
+ <Argument name="_ctor_arg" type="_57" location="f0:21" file="f0" line="21"/>
+ </Constructor>
+ <Constructor id="_46" name="derived_public_t" explicit="1" artificial="1" throw="" context="_29" access="public" mangled="_ZN4core15class_hierarchy16derived_public_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_public_t::derived_public_t()" location="f0:21" file="f0" line="21" inline="1"/>
+ <Destructor id="_47" name="derived_public_t" virtual="1" artificial="1" context="_29" access="public" mangled="_ZN4core15class_hierarchy16derived_public_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_public_t::~derived_public_t()" location="f0:21" file="f0" line="21" inline="1">
+ </Destructor>
+ <Constructor id="_48" name="other_base_t" artificial="1" throw="" context="_30" access="public" mangled="_ZN4core15class_hierarchy12other_base_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::other_base_t::other_base_t(core::class_hierarchy::other_base_t const&)" location="f0:18" file="f0" line="18" inline="1">
+ <Argument name="_ctor_arg" type="_58" location="f0:18" file="f0" line="18"/>
+ </Constructor>
+ <Constructor id="_49" name="other_base_t" explicit="1" artificial="1" throw="" context="_30" access="public" mangled="_ZN4core15class_hierarchy12other_base_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::other_base_t::other_base_t()" location="f0:18" file="f0" line="18" inline="1"/>
+ <Constructor id="_50" name="base_t" artificial="1" throw="" context="_31" access="public" mangled="_ZN4core15class_hierarchy6base_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::base_t::base_t(core::class_hierarchy::base_t const&)" location="f0:13" file="f0" line="13" inline="1">
+ <Argument name="_ctor_arg" type="_59" location="f0:13" file="f0" line="13"/>
+ </Constructor>
+ <Constructor id="_51" name="base_t" explicit="1" artificial="1" throw="" context="_31" access="public" mangled="_ZN4core15class_hierarchy6base_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::base_t::base_t()" location="f0:13" file="f0" line="13" inline="1"/>
+ <Destructor id="_52" name="base_t" virtual="1" context="_31" access="public" mangled="_ZN4core15class_hierarchy6base_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::base_t::~base_t()" location="f0:15" file="f0" line="15" endline="15" inline="1">
+ </Destructor>
+ <Struct id="_53" name="__base_class_type_info_pseudo" context="_1" mangled="29__base_class_type_info_pseudo" demangled="__base_class_type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
+ <ReferenceType id="_54" type="_26c" size="32" align="32"/>
+ <ReferenceType id="_55" type="_27c" size="32" align="32"/>
+ <ReferenceType id="_56" type="_28c" size="32" align="32"/>
+ <ReferenceType id="_57" type="_29c" size="32" align="32"/>
+ <ReferenceType id="_58" type="_30c" size="32" align="32"/>
+ <ReferenceType id="_59" type="_31c" size="32" align="32"/>
+ <CvQualifiedType id="_31c" type="_31" const="1"/>
+ <CvQualifiedType id="_30c" type="_30" const="1"/>
+ <CvQualifiedType id="_29c" type="_29" const="1"/>
+ <CvQualifiedType id="_28c" type="_28" const="1"/>
+ <CvQualifiedType id="_27c" type="_27" const="1"/>
+ <CvQualifiedType id="_26c" type="_26" const="1"/>
+ <File id="f0" name="D:/pygccxml_sources/sources/pygccxml_dev/docs/example.hpp"/>
+ <File id="f1" name="<internal>"/>
+</GCC_XML>
Added: pygccxml_dev/docs/example/example.hpp.xml.rest
===================================================================
--- pygccxml_dev/docs/example/example.hpp.xml.rest (rev 0)
+++ pygccxml_dev/docs/example/example.hpp.xml.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,3 @@
+.. code-block::
+ :language: XML
+ :source-file: ./example.hpp.xml
Added: pygccxml_dev/docs/example/example.py
===================================================================
--- pygccxml_dev/docs/example/example.py (rev 0)
+++ pygccxml_dev/docs/example/example.py 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,26 @@
+# Copyright 2004 Roman Yakovenko.
+# Distributed under the Boost Software License, Version 1.0. (See
+# accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt)
+
+import sys
+sys.path.append('../..') #adding pygccxml to the path
+
+from pygccxml import parser
+from pygccxml import declarations
+
+#configure GCC-XML parser
+config = parser.config_t( gccxml_path='/home/roman/gccxml-build/bin/gccxml' )
+
+#parsing source file
+decls = parser.parse( ['example.hpp'], config )
+global_ns = declarations.get_global_namespace( decls )
+
+#printing all declarations found in file and its includes
+declarations.print_declarations( global_ns )
+
+#print all base and derived class names
+for class_ in global_ns.classes():
+ print class_.name
+ print '\tbases: ', `[base.related_class.name for base in class_.bases]`
+ print '\tderived: ', `[derive.related_class.name for derive in class_.derived]`
Added: pygccxml_dev/docs/example/example.py.rest
===================================================================
--- pygccxml_dev/docs/example/example.py.rest (rev 0)
+++ pygccxml_dev/docs/example/example.py.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,3 @@
+.. code-block::
+ :language: Python
+ :source-file: ./example.py
Added: pygccxml_dev/docs/example/example.rest
===================================================================
--- pygccxml_dev/docs/example/example.rest (rev 0)
+++ pygccxml_dev/docs/example/example.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,16 @@
+=======
+Example
+=======
+
+This directory contains C++ source file, GCC-XML generated file and Python script
+that uses `pygccxml`_ to extract information from the source file.
+
+.. _`pygccxml`: ./../pygccxml.html
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pygccxml_dev/docs/example/www_configuration.py
===================================================================
--- pygccxml_dev/docs/example/www_configuration.py (rev 0)
+++ pygccxml_dev/docs/example/www_configuration.py 2007-12-04 21:56:13 UTC (rev 1194)
@@ -0,0 +1,3 @@
+name = 'example'
+files_to_skip = []
+names = {}
Deleted: pygccxml_dev/docs/example.hpp
===================================================================
--- pygccxml_dev/docs/example.hpp 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/example.hpp 2007-12-04 21:56:13 UTC (rev 1194)
@@ -1,34 +0,0 @@
-// Copyright 2004 Roman Yakovenko.
-// Distributed under the Boost Software License, Version 1.0. (See
-// accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef example_hpp_12_10_2006
-#define example_hpp_12_10_2006
-
-
-namespace core{ namespace class_hierarchy{
-
-class base_t{
-public:
- virtual ~base_t(){};
-};
-
-class other_base_t{
-};
-
-class derived_public_t : public base_t{
-};
-
-class derived_protected_t : protected base_t{
-};
-
-class derived_private_t : private base_t{
-};
-
-class multi_derived_t : derived_private_t, protected base_t, private other_base_t{
-};
-
-} }
-
-#endif//example_hpp_12_10_2006
Deleted: pygccxml_dev/docs/example.hpp.rest
===================================================================
--- pygccxml_dev/docs/example.hpp.rest 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/example.hpp.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -1,3 +0,0 @@
-.. code-block::
- :language: C++
- :source-file: ./example.hpp
Deleted: pygccxml_dev/docs/example.hpp.xml
===================================================================
--- pygccxml_dev/docs/example.hpp.xml 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/example.hpp.xml 2007-12-04 21:56:13 UTC (rev 1194)
@@ -1,97 +0,0 @@
-<?xml version="1.0"?>
-<GCC_XML cvs_revision="1.112">
- <Namespace id="_1" name="::" members="_3 _4 _5 _6 _7 _8 " mangled="_Z2::" demangled="::"/>
- <Namespace id="_2" name="std" context="_1" members="" mangled="_Z3std" demangled="std"/>
- <Variable id="_3" name="_ZTIN4core15class_hierarchy15multi_derived_tE" type="_9c" context="_1" location="f0:30" file="f0" line="30" extern="1" artificial="1"/>
- <Variable id="_4" name="_ZTIN4core15class_hierarchy17derived_private_tE" type="_11c" context="_1" location="f0:27" file="f0" line="27" extern="1" artificial="1"/>
- <Variable id="_5" name="_ZTIN4core15class_hierarchy19derived_protected_tE" type="_11c" context="_1" location="f0:24" file="f0" line="24" extern="1" artificial="1"/>
- <Variable id="_6" name="_ZTIN4core15class_hierarchy16derived_public_tE" type="_13c" context="_1" location="f0:21" file="f0" line="21" extern="1" artificial="1"/>
- <Variable id="_7" name="_ZTIN4core15class_hierarchy6base_tE" type="_15c" context="_1" location="f0:13" file="f0" line="13" extern="1" artificial="1"/>
- <Namespace id="_8" name="core" context="_1" members="_17 " mangled="_Z4core" demangled="core"/>
- <Struct id="_9" name="__vmi_class_type_info_pseudo3" context="_1" mangled="29__vmi_class_type_info_pseudo3" demangled="__vmi_class_type_info_pseudo3" location="f0:30" file="f0" line="30" size="384" align="32" members="_18 _19 _20 _21 " bases=""/>
- <CvQualifiedType id="_9c" type="_9" const="1"/>
- <Struct id="_11" name="__vmi_class_type_info_pseudo1" context="_1" mangled="29__vmi_class_type_info_pseudo1" demangled="__vmi_class_type_info_pseudo1" location="f0:24" file="f0" line="24" size="256" align="32" members="_22 _23 _24 _25 " bases=""/>
- <CvQualifiedType id="_11c" type="_11" const="1"/>
- <Struct id="_13" name="__si_class_type_info_pseudo" context="_1" mangled="27__si_class_type_info_pseudo" demangled="__si_class_type_info_pseudo" location="f1:0" file="f1" line="0" size="96" align="32" members="" bases=""/>
- <CvQualifiedType id="_13c" type="_13" const="1"/>
- <Struct id="_15" name="__class_type_info_pseudo" context="_1" mangled="24__class_type_info_pseudo" demangled="__class_type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
- <CvQualifiedType id="_15c" type="_15" const="1"/>
- <Namespace id="_17" name="class_hierarchy" context="_8" members="_26 _27 _28 _29 _30 _31 " mangled="_ZN4core15class_hierarchyE" demangled="core::class_hierarchy"/>
- <Field id="_18" name="" type="_32" offset="0" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_19" name="" type="_33" offset="64" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_20" name="" type="_33" offset="96" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_21" name="" type="_34" offset="128" context="_9" access="public" location="f0:30" file="f0" line="30"/>
- <Field id="_22" name="" type="_32" offset="0" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Field id="_23" name="" type="_33" offset="64" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Field id="_24" name="" type="_33" offset="96" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Field id="_25" name="" type="_35" offset="128" context="_11" access="public" location="f0:24" file="f0" line="24"/>
- <Class id="_26" name="multi_derived_t" context="_17" mangled="N4core15class_hierarchy15multi_derived_tE" demangled="core::class_hierarchy::multi_derived_t" location="f0:30" file="f0" line="30" artificial="1" size="64" align="32" members="_36 _37 _38 " bases="private:_27 protected:_31 private:_30 ">
- <Base type="_27" access="private" virtual="0" offset="0"/>
- <Base type="_31" access="protected" virtual="0" offset="4"/>
- <Base type="_30" access="private" virtual="0" offset="0"/>
- </Class>
- <Class id="_27" name="derived_private_t" context="_17" mangled="N4core15class_hierarchy17derived_private_tE" demangled="core::class_hierarchy::derived_private_t" location="f0:27" file="f0" line="27" artificial="1" size="32" align="32" members="_39 _40 _41 " bases="private:_31 ">
- <Base type="_31" access="private" virtual="0" offset="0"/>
- </Class>
- <Class id="_28" name="derived_protected_t" context="_17" mangled="N4core15class_hierarchy19derived_protected_tE" demangled="core::class_hierarchy::derived_protected_t" location="f0:24" file="f0" line="24" artificial="1" size="32" align="32" members="_42 _43 _44 " bases="protected:_31 ">
- <Base type="_31" access="protected" virtual="0" offset="0"/>
- </Class>
- <Class id="_29" name="derived_public_t" context="_17" mangled="N4core15class_hierarchy16derived_public_tE" demangled="core::class_hierarchy::derived_public_t" location="f0:21" file="f0" line="21" artificial="1" size="32" align="32" members="_45 _46 _47 " bases="_31 ">
- <Base type="_31" access="public" virtual="0" offset="0"/>
- </Class>
- <Class id="_30" name="other_base_t" context="_17" mangled="N4core15class_hierarchy12other_base_tE" demangled="core::class_hierarchy::other_base_t" location="f0:18" file="f0" line="18" artificial="1" size="8" align="8" members="_48 _49 " bases=""/>
- <Class id="_31" name="base_t" context="_17" mangled="N4core15class_hierarchy6base_tE" demangled="core::class_hierarchy::base_t" location="f0:13" file="f0" line="13" artificial="1" size="32" align="32" members="_50 _51 _52 " bases=""/>
- <Struct id="_32" name="__type_info_pseudo" context="_1" mangled="18__type_info_pseudo" demangled="__type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
- <FundamentalType id="_33" name="int" size="32" align="32"/>
- <ArrayType id="_34" min="0" max="3" type="_53" size="256" align="32"/>
- <ArrayType id="_35" min="0" max="1" type="_53" size="128" align="32"/>
- <Constructor id="_36" name="multi_derived_t" artificial="1" throw="" context="_26" access="public" mangled="_ZN4core15class_hierarchy15multi_derived_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::multi_derived_t::multi_derived_t(core::class_hierarchy::multi_derived_t const&)" location="f0:30" file="f0" line="30" inline="1">
- <Argument name="_ctor_arg" type="_54" location="f0:30" file="f0" line="30"/>
- </Constructor>
- <Constructor id="_37" name="multi_derived_t" explicit="1" artificial="1" throw="" context="_26" access="public" mangled="_ZN4core15class_hierarchy15multi_derived_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::multi_derived_t::multi_derived_t()" location="f0:30" file="f0" line="30" inline="1"/>
- <Destructor id="_38" name="multi_derived_t" virtual="1" artificial="1" context="_26" access="public" mangled="_ZN4core15class_hierarchy15multi_derived_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::multi_derived_t::~multi_derived_t()" location="f0:30" file="f0" line="30" inline="1">
- </Destructor>
- <Constructor id="_39" name="derived_private_t" artificial="1" throw="" context="_27" access="public" mangled="_ZN4core15class_hierarchy17derived_private_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::derived_private_t::derived_private_t(core::class_hierarchy::derived_private_t const&)" location="f0:27" file="f0" line="27" inline="1">
- <Argument name="_ctor_arg" type="_55" location="f0:27" file="f0" line="27"/>
- </Constructor>
- <Constructor id="_40" name="derived_private_t" explicit="1" artificial="1" throw="" context="_27" access="public" mangled="_ZN4core15class_hierarchy17derived_private_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_private_t::derived_private_t()" location="f0:27" file="f0" line="27" inline="1"/>
- <Destructor id="_41" name="derived_private_t" virtual="1" artificial="1" context="_27" access="public" mangled="_ZN4core15class_hierarchy17derived_private_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_private_t::~derived_private_t()" location="f0:27" file="f0" line="27" inline="1">
- </Destructor>
- <Constructor id="_42" name="derived_protected_t" artificial="1" throw="" context="_28" access="public" mangled="_ZN4core15class_hierarchy19derived_protected_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::derived_protected_t::derived_protected_t(core::class_hierarchy::derived_protected_t const&)" location="f0:24" file="f0" line="24" inline="1">
- <Argument name="_ctor_arg" type="_56" location="f0:24" file="f0" line="24"/>
- </Constructor>
- <Constructor id="_43" name="derived_protected_t" explicit="1" artificial="1" throw="" context="_28" access="public" mangled="_ZN4core15class_hierarchy19derived_protected_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_protected_t::derived_protected_t()" location="f0:24" file="f0" line="24" inline="1"/>
- <Destructor id="_44" name="derived_protected_t" virtual="1" artificial="1" context="_28" access="public" mangled="_ZN4core15class_hierarchy19derived_protected_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_protected_t::~derived_protected_t()" location="f0:24" file="f0" line="24" inline="1">
- </Destructor>
- <Constructor id="_45" name="derived_public_t" artificial="1" throw="" context="_29" access="public" mangled="_ZN4core15class_hierarchy16derived_public_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::derived_public_t::derived_public_t(core::class_hierarchy::derived_public_t const&)" location="f0:21" file="f0" line="21" inline="1">
- <Argument name="_ctor_arg" type="_57" location="f0:21" file="f0" line="21"/>
- </Constructor>
- <Constructor id="_46" name="derived_public_t" explicit="1" artificial="1" throw="" context="_29" access="public" mangled="_ZN4core15class_hierarchy16derived_public_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_public_t::derived_public_t()" location="f0:21" file="f0" line="21" inline="1"/>
- <Destructor id="_47" name="derived_public_t" virtual="1" artificial="1" context="_29" access="public" mangled="_ZN4core15class_hierarchy16derived_public_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::derived_public_t::~derived_public_t()" location="f0:21" file="f0" line="21" inline="1">
- </Destructor>
- <Constructor id="_48" name="other_base_t" artificial="1" throw="" context="_30" access="public" mangled="_ZN4core15class_hierarchy12other_base_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::other_base_t::other_base_t(core::class_hierarchy::other_base_t const&)" location="f0:18" file="f0" line="18" inline="1">
- <Argument name="_ctor_arg" type="_58" location="f0:18" file="f0" line="18"/>
- </Constructor>
- <Constructor id="_49" name="other_base_t" explicit="1" artificial="1" throw="" context="_30" access="public" mangled="_ZN4core15class_hierarchy12other_base_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::other_base_t::other_base_t()" location="f0:18" file="f0" line="18" inline="1"/>
- <Constructor id="_50" name="base_t" artificial="1" throw="" context="_31" access="public" mangled="_ZN4core15class_hierarchy6base_tC1ERKS1_ *INTERNAL* " demangled="core::class_hierarchy::base_t::base_t(core::class_hierarchy::base_t const&)" location="f0:13" file="f0" line="13" inline="1">
- <Argument name="_ctor_arg" type="_59" location="f0:13" file="f0" line="13"/>
- </Constructor>
- <Constructor id="_51" name="base_t" explicit="1" artificial="1" throw="" context="_31" access="public" mangled="_ZN4core15class_hierarchy6base_tC1Ev *INTERNAL* " demangled="core::class_hierarchy::base_t::base_t()" location="f0:13" file="f0" line="13" inline="1"/>
- <Destructor id="_52" name="base_t" virtual="1" context="_31" access="public" mangled="_ZN4core15class_hierarchy6base_tD1Ev *INTERNAL* " demangled="core::class_hierarchy::base_t::~base_t()" location="f0:15" file="f0" line="15" endline="15" inline="1">
- </Destructor>
- <Struct id="_53" name="__base_class_type_info_pseudo" context="_1" mangled="29__base_class_type_info_pseudo" demangled="__base_class_type_info_pseudo" location="f1:0" file="f1" line="0" size="64" align="32" members="" bases=""/>
- <ReferenceType id="_54" type="_26c" size="32" align="32"/>
- <ReferenceType id="_55" type="_27c" size="32" align="32"/>
- <ReferenceType id="_56" type="_28c" size="32" align="32"/>
- <ReferenceType id="_57" type="_29c" size="32" align="32"/>
- <ReferenceType id="_58" type="_30c" size="32" align="32"/>
- <ReferenceType id="_59" type="_31c" size="32" align="32"/>
- <CvQualifiedType id="_31c" type="_31" const="1"/>
- <CvQualifiedType id="_30c" type="_30" const="1"/>
- <CvQualifiedType id="_29c" type="_29" const="1"/>
- <CvQualifiedType id="_28c" type="_28" const="1"/>
- <CvQualifiedType id="_27c" type="_27" const="1"/>
- <CvQualifiedType id="_26c" type="_26" const="1"/>
- <File id="f0" name="D:/pygccxml_sources/sources/pygccxml_dev/docs/example.hpp"/>
- <File id="f1" name="<internal>"/>
-</GCC_XML>
Deleted: pygccxml_dev/docs/example.hpp.xml.rest
===================================================================
--- pygccxml_dev/docs/example.hpp.xml.rest 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/example.hpp.xml.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -1,3 +0,0 @@
-.. code-block::
- :language: XML
- :source-file: ./example.hpp.xml
Deleted: pygccxml_dev/docs/example.py
===================================================================
--- pygccxml_dev/docs/example.py 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/example.py 2007-12-04 21:56:13 UTC (rev 1194)
@@ -1,26 +0,0 @@
-# Copyright 2004 Roman Yakovenko.
-# Distributed under the Boost Software License, Version 1.0. (See
-# accompanying file LICENSE_1_0.txt or copy at
-# http://www.boost.org/LICENSE_1_0.txt)
-
-import sys
-sys.path.append('../..') #adding pygccxml to the path
-
-from pygccxml import parser
-from pygccxml import declarations
-
-#configure GCC-XML parser
-config = parser.config_t( gccxml_path='/home/roman/gccxml-build/bin/gccxml' )
-
-#parsing source file
-decls = parser.parse( ['example.hpp'], config )
-global_ns = declarations.get_global_namespace( decls )
-
-#printing all declarations found in file and its includes
-declarations.print_declarations( global_ns )
-
-#print all base and derived class names
-for class_ in global_ns.classes():
- print class_.name
- print '\tbases: ', `[base.related_class.name for base in class_.bases]`
- print '\tderived: ', `[derive.related_class.name for derive in class_.derived]`
Deleted: pygccxml_dev/docs/example.py.rest
===================================================================
--- pygccxml_dev/docs/example.py.rest 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/example.py.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -1,3 +0,0 @@
-.. code-block::
- :language: Python
- :source-file: ./example.py
Modified: pygccxml_dev/docs/history/history.rest
===================================================================
--- pygccxml_dev/docs/history/history.rest 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/history/history.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -21,6 +21,7 @@
* Martin Preisler
* Miguel Lobo
* Jeremy Sanders
+* Ben Schleimer
-----------
SVN Version
@@ -36,6 +37,9 @@
3. A bug in parsing a function exception specification was fixed. Many thanks to
Jeremy Sanders.
+
+4. Support for a type/class "align", "offset" and "size" was added. Many thanks to
+ Ben Schleimer for the implementation.
-------------
Version 0.9.0
Modified: pygccxml_dev/docs/query_interface.rest
===================================================================
--- pygccxml_dev/docs/query_interface.rest 2007-12-04 20:52:37 UTC (rev 1193)
+++ pygccxml_dev/docs/query_interface.rest 2007-12-04 21:56:13 UTC (rev 1194)
@@ -67,6 +67,7 @@
header_file=None,
recursive=None )
+ mem_fun = member_function #just an alias
def member_functions( self,
name=None,
@@ -77,7 +78,9 @@
header_file=None,
recursive=None,
allow_empty=None )
+ mem_funs = member_functions
+
As you can see, from the method arguments you can search for member function
by:
@@ -201,9 +204,9 @@
...
};
-`Call policies`_ of the member function ``clone`` is ``return_value_policy<manage_new_object>()``.
-Next code applies `call policies`_ on all ``clone`` member functions within the
-project.
+``clone`` member function `call policies`_ is ``return_value_policy<manage_new_object>()``.
+Next code applies the `call policies`_ on all ``clone`` member functions within the
+project:
.. code-block:: Python
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 20:52:34
|
Revision: 1193
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1193&view=rev
Author: roman_yakovenko
Date: 2007-12-04 12:52:37 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
adding byte_align, byte_size and byte_offset to the declarations and types
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/class_declaration.py
pygccxml_dev/pygccxml/declarations/cpptypes.py
pygccxml_dev/pygccxml/declarations/decl_printer.py
pygccxml_dev/pygccxml/declarations/typedef.py
pygccxml_dev/pygccxml/declarations/variable.py
pygccxml_dev/pygccxml/parser/scanner.py
pygccxml_dev/unittests/core_tester.py
pygccxml_dev/unittests/data/core_cache.hpp
pygccxml_dev/unittests/data/core_types.hpp
Modified: pygccxml_dev/pygccxml/declarations/class_declaration.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/class_declaration.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/pygccxml/declarations/class_declaration.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -129,6 +129,8 @@
self._private_members = []
self._protected_members = []
self._aliases = []
+ self._byte_size = 0
+ self._byte_align = 0
self._container_traits = None
self._container_traits_set = False
self._recursive_bases = None
@@ -274,6 +276,20 @@
aliases = property( _get_aliases, _set_aliases
, doc="List of L{aliases<typedef_t>} to this instance")
+ def _get_byte_size(self):
+ return self._byte_size
+ def _set_byte_size( self, new_byte_size ):
+ self._byte_size = new_byte_size
+ byte_size = property( _get_byte_size, _set_byte_size
+ , doc="Size of this class in bytes @type: int")
+
+ def _get_byte_align(self):
+ return self._byte_align
+ def _set_byte_align( self, new_byte_align ):
+ self._byte_align = new_byte_align
+ byte_align = property( _get_byte_align, _set_byte_align
+ , doc="Alignment of this class in bytes @type: int")
+
def _get_declarations_impl(self):
return self.get_members()
Modified: pygccxml_dev/pygccxml/declarations/cpptypes.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/cpptypes.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/pygccxml/declarations/cpptypes.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -14,6 +14,8 @@
def __init__(self):
object.__init__( self )
self.cache = algorithms_cache.type_algs_cache_t()
+ self._byte_size = 0
+ self._byte_align = 0
def __str__(self):
res = self.decl_string
@@ -53,6 +55,21 @@
answer = self._clone_impl()
return answer
+ def _get_byte_size(self):
+ return self._byte_size
+ def _set_byte_size( self, new_byte_size ):
+ self._byte_size = new_byte_size
+ byte_size = property( _get_byte_size, _set_byte_size
+ , doc="Size of this type in bytes @type: int")
+
+ def _get_byte_align(self):
+ return self._byte_align
+ def _set_byte_align( self, new_byte_align ):
+ self._byte_align = new_byte_align
+ byte_align = property( _get_byte_align, _set_byte_align
+ , doc="Alignment of this type in bytes @type: int")
+
+
#There are cases when GCC-XML reports something like this
#<Unimplemented id="_9482" tree_code="188" tree_code_name="template_type_parm" node="0xcc4d5b0"/>
#In this case I will use this as type
@@ -628,6 +645,16 @@
def _clone_impl( self ):
return declarated_t( self._declaration )
+ @property
+ def byte_size (self):
+ "Size of this type in bytes @type: int"
+ return self._declaration.byte_size
+
+ @property
+ def byte_align (self):
+ "alignment of this type in bytes @type: int"
+ return self._declaration.byte_align
+
class type_qualifiers_t( object ):
"""contains additional information about type: mutable, static, extern"""
def __init__(self, has_static=False, has_mutable=False ):
Modified: pygccxml_dev/pygccxml/declarations/decl_printer.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/decl_printer.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/pygccxml/declarations/decl_printer.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -141,6 +141,11 @@
curr_level = self.level + 1
class_type = 'class type: ' + "'%s'" % str(self.__inst.class_type)
self.writer( ' ' * curr_level * self.INDENT_SIZE + class_type.ljust( self.JUSTIFY ) + os.linesep )
+ if self.__print_details:
+ byte_size = 'size: %d'%(self.__inst.byte_size)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + byte_size.ljust( self.JUSTIFY ) + os.linesep )
+ byte_align = 'align: %d'%(self.__inst.byte_align)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + byte_align.ljust( self.JUSTIFY ) + os.linesep )
if self.__inst.aliases:
aliases = map( lambda typedef: typedef.name, self.__inst.aliases )
@@ -201,6 +206,13 @@
self.print_decl_header()
curr_level = self.level + 1
self.writer( ' ' * curr_level * self.INDENT_SIZE + 'type: %s value: %s'%(self.__inst.type.decl_string, self.__inst.value) + os.linesep)
+ if self.__print_details:
+ byte_size = 'size: %d'%(self.__inst.type.byte_size)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + byte_size.ljust( self.JUSTIFY ) + os.linesep )
+ byte_align = 'align: %d'%(self.__inst.type.byte_align)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + byte_align.ljust( self.JUSTIFY ) + os.linesep )
+ byte_offset = 'offset: %d'%(self.__inst.byte_offset)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + byte_offset + os.linesep)
def print_declarations( decls, detailed=True, recursive=True, writer=sys.stdout.write ):
""" Print decl tree rooted at each of the included nodes.
Modified: pygccxml_dev/pygccxml/declarations/typedef.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/typedef.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/pygccxml/declarations/typedef.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -36,3 +36,13 @@
def i_depend_on_them( self, recursive=True ):
return [ dependencies.dependency_info_t( self, self.type ) ]
+
+ @property
+ def byte_size (self):
+ "Size of this type in bytes @type: int"
+ return self._type.byte_size
+
+ @property
+ def byte_align (self):
+ "alignment of this type in bytes @type: int"
+ return self._type.byte_align
Modified: pygccxml_dev/pygccxml/declarations/variable.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/variable.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/pygccxml/declarations/variable.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -21,7 +21,8 @@
self._type_qualifiers = type_qualifiers
self._value = value
self._bits = bits
-
+ self._byte_offset = 0
+
def _get__cmp__items( self ):
"""implementation details"""
return [ self.type, self.type_qualifiers, self.value ]
@@ -63,6 +64,14 @@
bits = property( _get_bits, _set_bits
, doc="integer, that contains information about how many bit takes bit field")
+ def _get_byte_offset(self):
+ return self._byte_offset
+ def _set_byte_offset(self, byte_offset):
+ self._byte_offset = byte_offset
+ byte_offset = property( _get_byte_offset, _set_byte_offset
+ , doc="integer, offset of the field from the beginning of class.")
+
+
@property
def access_type(self):
if not isinstance( self.parent, class_declaration.class_t ):
Modified: pygccxml_dev/pygccxml/parser/scanner.py
===================================================================
--- pygccxml_dev/pygccxml/parser/scanner.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/pygccxml/parser/scanner.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -18,6 +18,7 @@
#also those constants are sorted for easy searching.
XML_AN_ABSTRACT = "abstract"
XML_AN_ACCESS = "access"
+XML_AN_ALIGN = "align"
XML_AN_ARTIFICIAL = "artificial"
XML_AN_ATTRIBUTES = "attributes"
XML_AN_BASE_TYPE = "basetype"
@@ -39,9 +40,11 @@
XML_AN_MEMBERS = "members"
XML_AN_MUTABLE = "mutable"
XML_AN_NAME = "name"
+XML_AN_OFFSET = "offset"
XML_AN_PURE_VIRTUAL = "pure_virtual"
XML_AN_RESTRICT = "restrict"
XML_AN_RETURNS = "returns"
+XML_AN_SIZE = "size"
XML_AN_STATIC = "static"
XML_AN_THROW = "throw"
XML_AN_TYPE = "type"
@@ -210,9 +213,12 @@
self.__read_artificial(obj, attrs)
self.__read_mangled( obj, attrs)
self.__read_demangled( obj, attrs)
- self.__read_attributes(obj, attrs)
+ self.__read_attributes(obj, attrs)
+
elif isinstance( obj, type_t ):
self.__types[ element_id ] = obj
+ self.__read_byte_size(obj, attrs)
+ self.__read_byte_align(obj, attrs)
elif isinstance( obj, types.StringTypes ):
self.__files[ element_id ] = obj
else:
@@ -260,6 +266,21 @@
def __read_access( self, attrs ):
self.__access[ attrs[XML_AN_ID] ] = attrs.get( XML_AN_ACCESS, ACCESS_TYPES.PUBLIC )
+ def __read_byte_size (self, decl, attrs):
+ "Using duck typing to set the size instead of in constructor"
+ size = attrs.get(XML_AN_SIZE, 0)
+ decl.byte_size = int(size)/8 # Make sure the size is in bytes instead of bits
+
+ def __read_byte_offset (self, decl, attrs):
+ "Using duck typing to set the offset instead of in constructor"
+ offset = attrs.get(XML_AN_OFFSET, 0)
+ decl.byte_offset = int(offset)/8 # Make sure the size is in bytes instead of bits
+
+ def __read_byte_align (self, decl, attrs):
+ "Using duck typing to set the alignment"
+ align = attrs.get(XML_AN_ALIGN, 0)
+ decl.byte_align = int(align)/8 # Make sure the size is in bytes instead of bits
+
def __read_root(self, attrs):
pass
@@ -408,12 +429,14 @@
bits = attrs.get( XML_AN_BITS, None )
if bits:
bits = int( bits )
- return self.__decl_factory.create_variable( name=attrs.get( XML_AN_NAME, '' )
- , type=attrs[XML_AN_TYPE]
- , type_qualifiers=type_qualifiers
- , value=attrs.get( XML_AN_INIT, None )
- , bits=bits)
-
+ decl = self.__decl_factory.create_variable( name=attrs.get( XML_AN_NAME, '' )
+ , type=attrs[XML_AN_TYPE]
+ , type_qualifiers=type_qualifiers
+ , value=attrs.get( XML_AN_INIT, None )
+ , bits=bits)
+ self.__read_byte_offset(decl, attrs)
+ return decl
+
__read_field = __read_variable #just a synonim
def __read_class_impl(self, class_type, attrs):
@@ -429,6 +452,8 @@
decl.is_abstract = True
else:
decl.is_abstract = False
+ self.__read_byte_size(decl, attrs)
+ self.__read_byte_align(decl, attrs)
return decl
def __read_class( self, attrs ):
Modified: pygccxml_dev/unittests/core_tester.py
===================================================================
--- pygccxml_dev/unittests/core_tester.py 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/unittests/core_tester.py 2007-12-04 20:52:37 UTC (rev 1193)
@@ -297,7 +297,20 @@
def test_versioning(self):
for d in self.global_ns.decls():
self.failUnless( d.compiler )
+
+ def test_byte_size( self ):
+ mptrs = self.global_ns.class_( 'members_pointers_t' )
+ self.failUnless( mptrs.byte_size != 0 )
+
+ def test_byte_align( self ):
+ mptrs = self.global_ns.class_( 'members_pointers_t' )
+ self.failUnless( mptrs.byte_align != 0 )
+ def test_byte_offset( self ):
+ mptrs = self.global_ns.class_( 'members_pointers_t' )
+ self.failUnless( mptrs.var( 'xxx' ).byte_offset != 0 )
+
+
class core_all_at_once_t( core_t ):
COMPILATION_MODE = COMPILATION_MODE.ALL_AT_ONCE
INIT_OPTIMIZER = True
Modified: pygccxml_dev/unittests/data/core_cache.hpp
===================================================================
--- pygccxml_dev/unittests/data/core_cache.hpp 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/unittests/data/core_cache.hpp 2007-12-04 20:52:37 UTC (rev 1193)
@@ -22,4 +22,4 @@
#endif//__core_cache_hpp__
-//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch
\ No newline at end of file
+//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch//touch
\ No newline at end of file
Modified: pygccxml_dev/unittests/data/core_types.hpp
===================================================================
--- pygccxml_dev/unittests/data/core_types.hpp 2007-12-04 18:44:14 UTC (rev 1192)
+++ pygccxml_dev/unittests/data/core_types.hpp 2007-12-04 20:52:37 UTC (rev 1193)
@@ -46,6 +46,7 @@
struct members_pointers_t{
int some_function( double ) const throw( exception );
int m_some_const_member;
+ int xxx;
};
typedef int (members_pointers_t::*member_function_ptr_t)( double )const;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 18:44:09
|
Revision: 1192
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1192&view=rev
Author: roman_yakovenko
Date: 2007-12-04 10:44:14 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
updating docs
Modified Paths:
--------------
index.rest
Modified: index.rest
===================================================================
--- index.rest 2007-12-04 13:53:43 UTC (rev 1191)
+++ index.rest 2007-12-04 18:44:14 UTC (rev 1192)
@@ -27,8 +27,12 @@
`Py++`_ package and `Boost.Python`_ library provide a complete solution for
interfacing Python and C++. `Learn more`_.
+*European Space Agency*, *Ogre*, *PyOpenSG* and many others `use`__ Py++.
+
.. _`Learn more` : `Py++`_
+.. __: ./pyplusplus/quotes.html
+
---------------
pyboost package
---------------
@@ -79,6 +83,9 @@
.. _`pydsc`: ./pydsc/pydsc.html
.. _`EasyBMP`: http://easybmp.sourceforge.net/
+.. _`many others` : ./x.html
+
+
..
Local Variables:
mode: indented-text
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 13:53:38
|
Revision: 1191
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1191&view=rev
Author: roman_yakovenko
Date: 2007-12-04 05:53:43 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
fixing rst syntax
Modified Paths:
--------------
pyplusplus_dev/docs/history/history.rest
Modified: pyplusplus_dev/docs/history/history.rest
===================================================================
--- pyplusplus_dev/docs/history/history.rest 2007-12-04 13:48:55 UTC (rev 1190)
+++ pyplusplus_dev/docs/history/history.rest 2007-12-04 13:53:43 UTC (rev 1191)
@@ -20,6 +20,7 @@
* Andy Miller
* Martin Preisler
* Meghana Haridev
+
------------
Project name
------------
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 13:48:50
|
Revision: 1190
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1190&view=rev
Author: roman_yakovenko
Date: 2007-12-04 05:48:55 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
join build-in transformers with the "transformation" documentation
Removed Paths:
-------------
pyplusplus_dev/docs/documentation/functions/transformation/built_in/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 13:46:07
|
Revision: 1189
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1189&view=rev
Author: roman_yakovenko
Date: 2007-12-04 05:46:10 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
join build-in transformers with the "transformation" documentation
Modified Paths:
--------------
pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest
Added Paths:
-----------
pyplusplus_dev/docs/documentation/functions/transformation/inout.rest
pyplusplus_dev/docs/documentation/functions/transformation/input.rest
pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest
pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest
pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest
pyplusplus_dev/docs/documentation/functions/transformation/output.rest
pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest
pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest
Added: pyplusplus_dev/docs/documentation/functions/transformation/inout.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/inout.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/inout.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,75 @@
+======================
+``inout`` transformer
+======================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+``inout`` transformer is a combination of `input`_ and `output`_ transformers.
+It removes a "reference" type from the function argument and then adds the
+"returned", by the original function, value to the return statement of the
+function-wrapper.
+
+``inout`` transformer takes as argument name or index of the original function
+argument. The argument should have "reference" type. Support for "pointer" type
+will be added pretty soon.
+
+.. _`input` : input.html
+.. _`output` : output.html
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ #include <string>
+
+ inline void hello_world( std::string& hw ){
+ hw = "hello world!";
+ }
+
+Lets say that you need to expose ``hello_world`` function. As you know
+``std::string`` is mapped to `Python`_ string, which is immutable type, so you
+have to create small wrapper for the function. Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ hw = mb.mem_fun( 'hello_world' )
+ hw.add_transformation( FT.inout(0) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ namespace bp = boost::python;
+
+ static boost::python::object hello_world_a3478182294a057b61508c30b1361318( ::std::string hw ){
+ ::hello_world(hw);
+ return bp::object( hw );
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::def( "hello_world", &hello_world_a3478182294a057b61508c30b1361318 );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/input.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/input.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/input.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,68 @@
+======================
+``input`` transformer
+======================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"input" transformer removes a "reference" type from the function argument.
+
+"input" transformer takes as argument name or index of the original function
+argument. The argument should have "reference" type. Support for "pointer" type
+will be added pretty soon.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ #include <string>
+
+ inline void hello_world( std::string& hw ){
+ hw = "hello world!";
+ }
+
+Lets say that you need to expose ``hello_world`` function. As you know
+``std::string`` is mapped to `Python`_ string, which is immutable type, so you
+have to create small wrapper for the function. Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ hw = mb.mem_fun( 'hello_world' )
+ hw.add_transformation( FT.input(0) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ namespace bp = boost::python;
+
+ static void hello_world_a3478182294a057b61508c30b1361318( ::std::string hw ){
+ ::hello_world(hw);
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::def( "hello_world", &hello_world_a3478182294a057b61508c30b1361318 );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/input_c_buffer.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,82 @@
+==================================
+``input_c_buffer`` transformer
+==================================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"input_c_buffer" transformer works on C buffers. It handles the translation
+between a `Python`_ sequence object and the buffer.
+
+"input_c_buffer" transformer takes as first argument name or index of the
+"buffer" argument. The argument should have "array" or "pointer" type.
+The second argument should be name or index of another original function argument,
+which represents array size.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ struct file_t{
+ void write( char* buffer, int size ) const;
+ };
+
+In order to expose ``write`` member function we need to create small wrapper:
+Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ f = mb.class_( 'file_t' )
+ f.mem_fun( 'write' ).add_transformation( FT.input_c_buffer( 'buffer', 'size' ) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ #include "__convenience.pypp.hpp" //Py++ header file, which contains few convenience function
+
+ #include <vector>
+
+ #include <iterator>
+
+ namespace bp = boost::python;
+
+ static void write_8883fea8925bad9911e6c5a4015ed106( ::file_t const & inst, boost::python::object buffer ){
+ int size2 = boost::python::len(buffer);
+ std::vector< char > native_buffer;
+ native_buffer.reserve( size2 );
+ pyplus_conv::ensure_uniform_sequence< char >( buffer );
+ pyplus_conv::copy_sequence( buffer, std::back_inserter( native_buffer), boost::type< char >() );
+ inst.write(&native_buffer[0], size2);
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::class_< file_t >( "file_t" )
+ .def(
+ "write"
+ , (void (*)( ::file_t const &,boost::python::object ))( &write_8883fea8925bad9911e6c5a4015ed106 )
+ , ( bp::arg("inst"), bp::arg("buffer") ) );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/input_static_array.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,85 @@
+==================================
+``input_static_array`` transformer
+==================================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"input_static_array" transformer works on native static arrays. It handles the
+translation between `Python`_ object, passed as argument that represent a sequence,
+and the array. Size of array should be predefined.
+
+"input_static_array" transformer takes as first argument name or index of the
+original function argument. The argument should have "array" or "pointer" type.
+The second argument should an integer value, which represents array size.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ struct vector3{
+
+ void init( int values[3] ){
+ x = values[0];
+ y = values[1];
+ z = values[2];
+ }
+
+ int x,y,z;
+ };
+
+In order to expose ``init`` member function we need to create small wrapper:
+Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ v3 = mb.class_( 'vector3' )
+ v3.mem_fun( 'init' ).add_transformation( FT.input_static_array( 0, 3 ) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ #include "__convenience.pypp.hpp" //Py++ header file, which contains few convenience function
+
+ namespace bp = boost::python;
+
+ static void init_418e52f4a347efa6b7e123b96f32a73c( ::ft::vector3 & inst, boost::python::object values ){
+ int native_values[3];
+ pyplus_conv::ensure_uniform_sequence< int >( values, 3 );
+ pyplus_conv::copy_sequence( values, pyplus_conv::array_inserter( native_values, 3 ) );
+ inst.init(native_values);
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::class_< ft::vector3 >( "vector3", "documentation" )
+ .def( "init"
+ , &init_418e52f4a347efa6b7e123b96f32a73c
+ , ( bp::arg("inst"), bp::arg("values") ) )
+ .def_readwrite( "x", &ft::vector3::x )
+ .def_readwrite( "y", &ft::vector3::y )
+ .def_readwrite( "z", &ft::vector3::z );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/modify_type.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,79 @@
+===========================
+``modify_type`` transformer
+===========================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"modify_type" transformer changes type of the function argument.
+
+"modify_type" transformer takes two arguments:
+
+1. name or index of the original function argument
+
+2. a callable, which takes as argument reference to type and returns new type
+
+New in version greater than 0.8.5.
+
+Pay attention!
+--------------
+
+If implicit conversion between new type and the old one does not exist
+"reinterpret_cast" will be used.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ #include <string>
+
+ inline void hello_world( std::string& hw ){
+ hw = "hello world!";
+ }
+
+Lets say that you need to expose ``hello_world`` function. As you know
+``std::string`` is mapped to `Python`_ string, which is immutable type, so you
+have to create small wrapper for the function. Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pygccxml import declarations
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ hw = mb.mem_fun( 'hello_world' )
+ hw.add_transformation( FT.modify_type(0, declarations.remove_reference) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ namespace bp = boost::python;
+
+ static void hello_world_a3478182294a057b61508c30b1361318( ::std::string hw ){
+ ::hello_world(hw);
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::def( "hello_world", &hello_world_a3478182294a057b61508c30b1361318 );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/output.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/output.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/output.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,73 @@
+======================
+``output`` transformer
+======================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"output" transformer removes an argument from the function definition and adds
+the "returned", by the original function, value to the return statement of the
+function-wrapper.
+
+"output" transformer takes as argument name or index of the original function
+argument. The argument should have "reference" type. Support for "pointer" type
+will be added pretty soon.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ #include <string>
+
+ inline void hello_world( std::string& hw ){
+ hw = "hello world!";
+ }
+
+Lets say that you need to expose ``hello_world`` function. As you know
+``std::string`` is mapped to `Python`_ string, which is immutable type, so you
+have to create small wrapper for the function. Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ hw = mb.mem_fun( 'hello_world' )
+ hw.add_transformation( FT.output(0) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ namespace bp = boost::python;
+
+ static boost::python::object hello_world_a3478182294a057b61508c30b1361318( ){
+ std::string hw2;
+ ::hello_world(hw2);
+ return bp::object( hw2 );
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::def( "hello_world", &hello_world_a3478182294a057b61508c30b1361318 );
+ }
+
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/output_static_array.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,85 @@
+===================================
+``output_static_array`` transformer
+===================================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"output_static_array" transformer works on native static arrays. It handles the
+translation between array and `Python`_ list object. Size of array should be predefined.
+
+"output_static_array" transformer takes as first argument name or index of the
+original function argument. The argument should have "array" or "pointer" type.
+The second argument should an integer value, which represents array size.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ struct vector3{
+
+ void get_values( int values[3] ){
+ values[0] = x;
+ values[1] = y;
+ values[2] = z;
+ }
+
+ int x,y,z;
+ };
+
+In order to expose ``get_values`` member function we need to create small wrapper:
+Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+ v3 = mb.class_( 'vector3' )
+ v3.mem_fun( 'get_values' ).add_transformation( FT.output_static_array( 0, 3 ) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ #include "__convenience.pypp.hpp" //Py++ header file, which contains few convenience function
+
+ namespace bp = boost::python;
+
+ static boost::python::object get_values_22786c66e5973b70f714e7662e2aecd2( ::ft::vector3 & inst ){
+ int native_values[3];
+ boost::python::list py_values;
+ inst.get_values(native_values);
+ pyplus_conv::copy_container( native_values, native_values + 3, pyplus_conv::list_inserter( py_values ) );
+ return bp::object( py_values );
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::class_< ft::vector3 >( "vector3", "documentation" )
+ .def( "get_values"
+ , &get_values_22786c66e5973b70f714e7662e2aecd2
+ , ( bp::arg("inst") ) )
+ .def_readwrite( "x", &ft::vector3::x )
+ .def_readwrite( "y", &ft::vector3::y )
+ .def_readwrite( "z", &ft::vector3::z );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Added: pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest (rev 0)
+++ pyplusplus_dev/docs/documentation/functions/transformation/transfer_ownership.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -0,0 +1,78 @@
+==================================
+``transfer_ownership`` transformer
+==================================
+
+.. contents:: Table of contents
+
+----------
+Definition
+----------
+
+"transfer_ownership" transformer changes type of the function argument, from
+``T*`` to ``std::auto_ptr<T>``. This transformer was born to provide the answer
+to `How can I wrap a function which needs to take ownership of a raw pointer?`_
+FAQ.
+
+.. _`How can I wrap a function which needs to take ownership of a raw pointer?` : http://boost.org/libs/python/doc/v2/faq.html#ownership
+
+"transfer_ownership" transformer takes one argument, name or index of the
+original function argument. The argument type should be "pointer".
+
+New in version greater than 0.8.5.
+
+-------
+Example
+-------
+
+.. code-block:: C++
+
+ struct resource_t{...};
+
+ void do_smth(resource_t* r){
+ ...
+ }
+
+Lets say that you need to expose "do_smth" function. According to the FAQ, you
+have to create small wrapper, which will take ``std::auto_ptr`` as an argument.
+Next `Py++`_ code does it for you:
+
+ .. code-block:: Python
+
+ from pygccxml import declarations
+ from pyplusplus import module_builder
+ from pyplusplus import function_transformers as FT
+
+ mb = module_builder.module_builder_t( ... )
+
+ resource = mb.class_( 'resource_t' )
+ resource.held_type = 'std::auto_ptr< %s >' % resource.decl_string
+ do_smth = mb.free_fun( 'do_smth' )
+ do_smth.add_transformation( FT.transfer_ownership( 0 ) )
+
+What you see below is the relevant pieces of generated code:
+
+ .. code-block:: C++
+
+ namespace bp = boost::python;
+
+ static void do_smth_4cf7cde5fca92efcdb8519f8c1a4bccd( std::auto_ptr< ::resource_t > r ){
+ ::do_smth(r.release());
+ }
+
+ BOOST_PYTHON_MODULE(...){
+ ...
+ bp::def( "do_smth", &do_smth_4cf7cde5fca92efcdb8519f8c1a4bccd, ( bp::arg("r") ) );
+ }
+
+.. _`Py++` : ./../../../pyplusplus.html
+.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
+.. _`Python`: http://www.python.org
+.. _`GCC-XML`: http://www.gccxml.org
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
Modified: pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest
===================================================================
--- pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest 2007-12-04 13:15:03 UTC (rev 1188)
+++ pyplusplus_dev/docs/documentation/functions/transformation/transformation.rest 2007-12-04 13:46:10 UTC (rev 1189)
@@ -78,6 +78,47 @@
A thanks goes to Matthias Baas for his efforts and hard work. He did a research,
implemented the initial working version and wrote a lot of documentation.
+---------------------
+Built-in transformers
+---------------------
+
+`Py++`_ comes with few predefined transformers:
+
+* ``output``
+
+* ``input``
+
+* ``inout``
+
+* ``modify_type``
+
+* ``input_static_array``
+
+* ``output_static_array``
+
+* ``input_c_buffer``
+
+* ``transfer_ownership``
+
+The set doesn't cover all common use cases, but it will grow with every new
+version of `Py++`_. If you created your own transformer consider to contribute
+it to the project.
+
+I suggest you to start reading `output`_ transformer. It is pretty simple and
+well explained.
+
+.. _`output` : ./output.html
+
+All built-in transformers could be applied on any function, except constructors
+and pure virtual functions. The support for them be added in future releases.
+
+You don't have to worry about call policies. You can set the call policy and
+`Py++`_ will generate the correct code.
+
+You don't have to worry about the number of arguments, transformers or return
+value. `Py++`_ handles pretty well such use cases.
+
+
.. _`Py++` : ./../../../pyplusplus.html
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 13:14:59
|
Revision: 1188
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1188&view=rev
Author: roman_yakovenko
Date: 2007-12-04 05:15:03 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
delete custom transf documentation
Removed Paths:
-------------
pyplusplus_dev/docs/documentation/functions/transformation/custom/
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-04 08:01:42
|
Revision: 1187
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1187&view=rev
Author: roman_yakovenko
Date: 2007-12-04 00:01:45 -0800 (Tue, 04 Dec 2007)
Log Message:
-----------
adding attributes printing to decl_printer.py
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/decl_printer.py
Modified: pygccxml_dev/pygccxml/declarations/decl_printer.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/decl_printer.py 2007-12-03 22:42:18 UTC (rev 1186)
+++ pygccxml_dev/pygccxml/declarations/decl_printer.py 2007-12-04 08:01:45 UTC (rev 1187)
@@ -91,7 +91,11 @@
self.writer( ' ' * curr_level * self.INDENT_SIZE + location + os.linesep )
artificial = 'artificial: ' + "'%s'" % str(self.__inst.is_artificial)
self.writer( ' ' * curr_level * self.INDENT_SIZE + artificial.ljust( self.JUSTIFY ) + os.linesep )
+ if self.__inst.attributes:
+ attributes = 'attributes: %s'%(self.__inst.attributes)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + attributes + os.linesep )
+
def __get_method_signature(self, decl=None):
""" Returns function signature: [retval, [arg1, ..., argN]]. """
if None is decl:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-03 22:42:19
|
Revision: 1186
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1186&view=rev
Author: roman_yakovenko
Date: 2007-12-03 14:42:18 -0800 (Mon, 03 Dec 2007)
Log Message:
-----------
doc updates
Modified Paths:
--------------
pyplusplus_dev/docs/comparisons/compare_to.rest
pyplusplus_dev/docs/links.rest
pyplusplus_dev/docs/peps/peps_index.rest
pyplusplus_dev/docs/quotes.rest
Added Paths:
-----------
pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/
pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.odt
pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.pdf
pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest
pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/www_configuration.py
Modified: pyplusplus_dev/docs/comparisons/compare_to.rest
===================================================================
--- pyplusplus_dev/docs/comparisons/compare_to.rest 2007-12-03 22:40:37 UTC (rev 1185)
+++ pyplusplus_dev/docs/comparisons/compare_to.rest 2007-12-03 22:42:18 UTC (rev 1186)
@@ -12,7 +12,7 @@
any more. Nevertheless, users request to compare `Py++`_ and `Pyste`_. You
can read `here`_ the comparison.
-.. _`here` : ./Pyste.html
+.. _`here` : ./pyste.html
----------
SWIG & SIP
Modified: pyplusplus_dev/docs/links.rest
===================================================================
--- pyplusplus_dev/docs/links.rest 2007-12-03 22:40:37 UTC (rev 1185)
+++ pyplusplus_dev/docs/links.rest 2007-12-03 22:42:18 UTC (rev 1186)
@@ -96,6 +96,23 @@
.. _`Sq Plus` : http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SqPlus.html
.. _`Squirrel` : http://wiki.squirrel-lang.org/
+-----------------------------
+Projects inspired by Py++ :-)
+-----------------------------
+
+* `PyBindGen`_ - a new project for producing Python extensions
+
+.. _`PyBindGen` : https://launchpad.net/pybindgen
+
+-----
+Blogs
+-----
+
+* http://www.shocksolution.com/math_tools/boost.python/index.html - this site
+ contains few usefull Boost.Python examples and tutorials.
+
+
+
..
Local Variables:
mode: indented-text
Modified: pyplusplus_dev/docs/peps/peps_index.rest
===================================================================
--- pyplusplus_dev/docs/peps/peps_index.rest 2007-12-03 22:40:37 UTC (rev 1185)
+++ pyplusplus_dev/docs/peps/peps_index.rest 2007-12-03 22:42:18 UTC (rev 1186)
@@ -53,22 +53,6 @@
.. _`DSL challenge` : ./dsl_challenge.html
----------------
-Unicode support
----------------
-
-In version 0.8.1 `Py++`_ introduced nice feature: automatic extraction and
-integration of documentation strings. I estimated wrong the influence of the
-feature on the project. First user, who actually tried it, was Gottfried Ganssauge.
-He asked me to add support for documentation string that contains Unicode characters.
-These days I understand the influence. I should convert all strings in the whole
-project to be Unicode strings, with encoding specified by the user. This is a
-lot of work, but I think this is really important. So this is high priority "TODO".
-
-http://www.joelonsoftware.com/articles/Unicode.html - a nice article, which
-explains what is Unicode, encoding and character sets.
-
-
.. _`Py++` : ./../pyplusplus.html
.. _`Boost.Python`: http://www.boost.org/libs/python/doc/index.html
.. _`Python`: http://www.python.org
Modified: pyplusplus_dev/docs/quotes.rest
===================================================================
--- pyplusplus_dev/docs/quotes.rest 2007-12-03 22:40:37 UTC (rev 1185)
+++ pyplusplus_dev/docs/quotes.rest 2007-12-03 22:42:18 UTC (rev 1186)
@@ -46,6 +46,31 @@
Who is using Py++?
------------------
+* European Space Agency - `ReSP`_ project
+
+ `ReSP`_ is an Open-Source hardware simulation platform targeted for
+ multiprocessor systems. ReSP will provide a framework for composing a
+ system by connecting components chosen from a given repository or
+ developped by the designer. ReSP will provide also also a framework for
+ fault injection campaigns for the analysis of the reliability level of the
+ system.
+
+ `ReSP`_ engineers are developping the simulator core in Python language for exploiting
+ reflective capabilities (missing in a pure C++ environment) that can be
+ exploited for connecting components in a dynamic way and for enabling
+ non-intrusive fault injection activity. Components will be described in
+ SystemC and TLM libraries that are high level hardware description
+ languages based on C++.
+
+ .. _`ReSP` : http://www.esa.int/TEC/Microelectronics/
+
+* Allen Bierbaum, the author of `PyOpenSG`_ project, is using `Py++`_ to create
+ Python bindings for `OpenSG`_
+
+ `OpenSG`_ - is a portable scenegraph system to create realtime graphics
+ programs, e.g. for virtual reality applications.
+
+
* Matthias Baas, the author of `Python Computer Graphics Kit`_ project, is using
`Py++`_ to create Python bindings for `Maya C++ SDK`__.
@@ -94,30 +119,14 @@
You can download the bindings from https://sourceforge.net/project/showfiles.php?group_id=118209 .
-* European Space Agency - `ReSP`_ project
-
- `ReSP`_ is an Open-Source hardware simulation platform targeted for
- multiprocessor systems. ReSP will provide a framework for composing a
- system by connecting components chosen from a given repository or
- developped by the designer. ReSP will provide also also a framework for
- fault injection campaigns for the analysis of the reliability level of the
- system.
-
- `ReSP`_ engineers are developping the simulator core in Python language for exploiting
- reflective capabilities (missing in a pure C++ environment) that can be
- exploited for connecting components in a dynamic way and for enabling
- non-intrusive fault injection activity. Components will be described in
- SystemC and TLM libraries that are high level hardware description
- languages based on C++.
-
- .. _`ReSP` : http://www.esa.int/TEC/Microelectronics/
-
.. _`Py++` : ./pyplusplus.html
.. _`Python Computer Graphics Kit` : http://cgkit.sourceforge.net/
.. _`TnFOX`: http://www.nedprod.com/TnFOX/
-.. _`PyOpenSG`: https://realityforge.vrsource.org/view/PyOpenSG/WebHome
.. _`Python-OGRE` : http://www.python-ogre.org
.. _`OGRE` : http://www.ogre3d.org/index.php?option=com_content&task=view&id=19&Itemid=79
+.. _`PyOpenSG` : https://realityforge.vrsource.org/trac/pyopensg
+.. _`OpenSG` : http://opensg.vrsource.org/trac
+
..
Local Variables:
mode: indented-text
Added: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.odt
===================================================================
(Binary files differ)
Property changes on: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.odt
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.pdf
===================================================================
(Binary files differ)
Property changes on: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.pdf
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest (rev 0)
+++ pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/easy_extending_guide.rest 2007-12-03 22:42:18 UTC (rev 1186)
@@ -0,0 +1,128 @@
+====================
+Easy extending guide
+====================
+
+.. contents:: Table of contents
+
+------------
+Introduction
+------------
+
+"... Boost.Python library is designed to wrap C++ interfaces non-intrusively, so that
+you should not have to change the C++ code at all in order to wrap it."
+
+The previous statement is almost true. There are few use cases that the library
+doesn't support. This guide will list some of them and will offer few possible
+solutions.
+
+-------------------
+Pointer to function
+-------------------
+
+Boost.Python doesn't handle "pointer to function" functionality. You cannot pass
+it as function argument or keep it, as a member variable.
+
+The simple work-around is to use `command design pattern`_
+
+.. _`command design pattern` : http://en.wikipedia.org/wiki/Command_pattern
+
+------------------------------------
+Problematic function arguments types
+------------------------------------
+
+C arrays
+--------
+
+Boost.Python doesn't handle ``C arrays``, the only exception are ``char*`` and
+``wchar_t*``.
+
+Consider next function:
+
+.. code-block:: C++
+
+ int write( int* data, size_t size );
+
+The technical reasons are not the only one that prevent Boost.Python to expose such
+functions, there is a mental one: such interface is not intuitive for Python
+developers. They expect to pass single argument. For example, built-in ``file.write``
+method takes a single argument - sequence of characters.
+
+Work-around:
+
+ 1. With small help from the developer, Py++ generates code which feets well into
+ Python developer mental model. Pure virtual member functions are a special
+ case, which Py++ doesn't handle right now.
+
+ 2. Use STL containers, ``std::vector<...>`` and others.
+
+
+Immutable by reference
+----------------------
+
+Python defines few fundamental types as "immutable". The value of an instance of
+the immutable type could not be changed after construction. Try to avoid passing
+the immutable types by reference.
+
+Immutable types:
+
+ * ``char``
+ * ``signed char``
+ * ``unsigned char``
+ * ``wchar_t``
+ * ``short int``
+ * ``short unsigned int``
+ * ``bool``
+ * ``int``
+ * ``unsigned int``
+ * ``long int``
+ * ``long unsigned int``
+ * ``long long int``
+ * ``long long unsigned int``
+ * ``float``
+ * ``double``
+ * ``long double``
+ * ``complex double``
+ * ``complex long double``
+ * ``complex float``
+ * ``std::string``
+ * ``std::wstring``
+ * C++ ``enum`` is mapped to Python ``int`` type
+ * smart pointers
+
+Work around:
+
+ * Just don't pass them by reference :-)
+
+ * With small help from the developer, Py++ generates code which work-arounds
+ this issue, but the resulting interface is ugly.
+
+``void*``
+---------
+
+In most cases, ``void*`` is used when a developer has to deal with a memory block.
+Python provides support for this functionality, but I still didn't find an easy and
+intuitive way to expose it. There is no work-around for this issue.
+
+If you use ``void*`` to pass a reference to some object, than Boost.Python and Py++
+support such use case.
+
+----------------
+Memory managment
+----------------
+
+* Use ``std::auto_ptr`` to transfer ownership and responsibility for an object
+ destruction.
+
+* The only well supported smart pointer class is ``boost::shared_ptr``. I suggest
+ you to use it all the time, especially in cases where you want to create object
+ from Python and pass ownership to C++ code. You don't want the headache associated
+ with this task.
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
+
Added: pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/www_configuration.py
===================================================================
--- pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/www_configuration.py (rev 0)
+++ pyplusplus_dev/docs/troubleshooting_guide/easy_extending_guide/www_configuration.py 2007-12-03 22:42:18 UTC (rev 1186)
@@ -0,0 +1,2 @@
+name = 'easy extending guide'
+names = {}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2007-12-03 22:40:32
|
Revision: 1185
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1185&view=rev
Author: roman_yakovenko
Date: 2007-12-03 14:40:37 -0800 (Mon, 03 Dec 2007)
Log Message:
-----------
doc updates
Added Paths:
-----------
pygccxml_dev/docs/users.rest
Added: pygccxml_dev/docs/users.rest
===================================================================
--- pygccxml_dev/docs/users.rest (rev 0)
+++ pygccxml_dev/docs/users.rest 2007-12-03 22:40:37 UTC (rev 1185)
@@ -0,0 +1,18 @@
+======================
+Who is using pygccxml?
+======================
+
+.. contents:: Table of contents
+
+* `PyBindGen`_ - is a Python module that is geared to generating C/C++ code
+ that binds a C/C++ library for Python.
+
+.. _`PyBindGen` : https://launchpad.net/pybindgen
+
+..
+ Local Variables:
+ mode: indented-text
+ indent-tabs-mode: nil
+ sentence-end-double-space: t
+ fill-column: 70
+ End:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|