pygccxml-commit Mailing List for C++ Python language bindings (Page 12)
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...> - 2009-01-17 09:29:40
|
Revision: 1582
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1582&view=rev
Author: roman_yakovenko
Date: 2009-01-17 09:29:36 +0000 (Sat, 17 Jan 2009)
Log Message:
-----------
fixing small compilation bug
Modified Paths:
--------------
pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h
Property Changed:
----------------
pyplusplus_dev/unittests/data/ctypes/anonymous/
pyplusplus_dev/unittests/data/ctypes/enums/
pyplusplus_dev/unittests/data/ctypes/include_algorithm/
pyplusplus_dev/unittests/data/ctypes/issues/
pyplusplus_dev/unittests/data/ctypes/opaque/
pyplusplus_dev/unittests/temp/
Property changes on: pyplusplus_dev/unittests/data/ctypes/anonymous
___________________________________________________________________
Added: svn:ignore
+ binaries
Property changes on: pyplusplus_dev/unittests/data/ctypes/enums
___________________________________________________________________
Added: svn:ignore
+ binaries
Property changes on: pyplusplus_dev/unittests/data/ctypes/include_algorithm
___________________________________________________________________
Added: svn:ignore
+ binaries
Property changes on: pyplusplus_dev/unittests/data/ctypes/issues
___________________________________________________________________
Added: svn:ignore
+ binaries
Property changes on: pyplusplus_dev/unittests/data/ctypes/opaque
___________________________________________________________________
Added: svn:ignore
+ binaries
Modified: pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h 2009-01-15 21:27:30 UTC (rev 1581)
+++ pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h 2009-01-17 09:29:36 UTC (rev 1582)
@@ -7,6 +7,6 @@
};
-user_data_t* EXPORT_SYMBOL create();
+EXPORT_SYMBOL user_data_t* create();
int EXPORT_SYMBOL read_user_data(user_data_t*);
void EXPORT_SYMBOL destroy(user_data_t*);
Property changes on: pyplusplus_dev/unittests/temp
___________________________________________________________________
Modified: svn:ignore
- internal_classes.dll
member_functions.dll
member_variables.dll
module_body.dll
namespaces.dll
noncopyable.dll
operators.dll
operators_bug.dll
optional.dll
optional_bug.dll
pointer_as_arg.dll
pointer_to_function_as_argument.dll
private_assign.dll
recursive.dll
regression1.dll
regression2.dll
regression3.dll
smart_pointers.dll
special_operators.dll
statics.dll
temprorary_variable.dll
unnamed_enums.dll
user_text.dll
abstract.cpp~
call_policies.cpp~
casting.cpp~
class_order2.cpp~
class_order3.cpp~
class_order4.cpp~
class_order.cpp~
classes.cpp~
enums.cpp~
factory.cpp~
finalizables.cpp~
free_functions.cpp~
free_operators.cpp~
global_variables.cpp~
index_operator.cpp~
internal_classes.cpp~
member_functions.cpp~
member_variables.cpp~
noncopyable.cpp~
operators_bug.cpp~
optional.cpp~
optional_bug.cpp~
pointer_as_arg.cpp~
pointer_to_function_as_argument.cpp~
private_assign.cpp~
recursive.cpp~
regression1.cpp~
regression2.cpp~
regression3.cpp~
smart_pointers.cpp~
special_operators.cpp~
statics.cpp~
temprorary_variable.cpp~
unnamed_enums.cpp~
user_text.cpp~
abstract.exp
call_policies.exp
casting.exp
class_order2.exp
class_order3.exp
class_order4.exp
class_order.exp
classes.exp
enums.exp
factory.exp
finalizables.exp
free_function_ignore_bug.exp
free_functions.exp
free_operators.exp
global_variables.exp
index_operator.exp
internal_classes.exp
member_functions.exp
member_variables.exp
module_body.exp
namespaces.exp
noncopyable.exp
operators.exp
operators_bug.exp
optional.exp
optional_bug.exp
pointer_as_arg.exp
pointer_to_function_as_argument.exp
private_assign.exp
recursive.exp
regression1.exp
regression2.exp
regression3.exp
smart_pointers.exp
special_operators.exp
statics.exp
temprorary_variable.exp
unnamed_enums.exp
user_text.exp
abstract.lib
call_policies.lib
casting.lib
class_order2.lib
class_order3.lib
class_order4.lib
class_order.lib
classes.lib
enums.lib
factory.lib
finalizables.lib
free_function_ignore_bug.lib
free_functions.lib
free_operators.lib
global_variables.lib
index_operator.lib
internal_classes.lib
member_functions.lib
member_variables.lib
module_body.lib
namespaces.lib
noncopyable.lib
operators.lib
operators_bug.lib
optional.lib
optional_bug.lib
pointer_as_arg.lib
pointer_to_function_as_argument.lib
private_assign.lib
recursive.lib
regression1.lib
regression2.lib
regression3.lib
smart_pointers.lib
special_operators.lib
statics.lib
temprorary_variable.lib
unnamed_enums.lib
user_text.lib
abstract.obj
call_policies.obj
casting.obj
class_order2.obj
class_order3.obj
class_order4.obj
class_order.obj
classes.obj
enums.obj
factory.obj
finalizables.obj
free_function_ignore_bug.obj
free_functions.obj
free_operators.obj
global_variables.obj
index_operator.obj
internal_classes.obj
member_functions.obj
member_variables.obj
module_body.obj
namespaces.obj
noncopyable.obj
operators.obj
operators_bug.obj
optional.obj
optional_bug.obj
pointer_as_arg.obj
pointer_to_function_as_argument.obj
private_assign.obj
recursive.obj
regression1.obj
regression2.obj
regression3.obj
smart_pointers.obj
special_operators.obj
statics.obj
temprorary_variable.obj
unnamed_enums.obj
user_text.obj
abstract.scons
call_policies.scons
casting.scons
class_order2.scons
class_order3.scons
class_order4.scons
class_order.scons
classes.scons
enums.scons
factory.scons
finalizables.scons
free_function_ignore_bug.scons
free_functions.scons
free_operators.scons
global_variables.scons
index_operator.scons
internal_classes.scons
member_functions.scons
member_variables.scons
module_body.scons
namespaces.scons
noncopyable.scons
operators.scons
operators_bug.scons
optional.scons
optional_bug.scons
pointer_as_arg.scons
pointer_to_function_as_argument.scons
private_assign.scons
recursive.scons
regression1.scons
regression2.scons
regression3.scons
smart_pointers.scons
special_operators.scons
statics.scons
temprorary_variable.scons
unnamed_enums.scons
user_text.scons
abstract.dll
call_policies.dll
casting.dll
class_order2.dll
class_order3.dll
class_order4.dll
class_order.dll
classes.dll
enums.dll
factory.dll
finalizables.dll
free_function_ignore_bug.dll
free_functions.dll
free_operators.dll
global_variables.dll
index_operator.dll
.sconsign.dblite
__array_1.pypp.hpp
classes.cpp
enums.cpp
free_functions.cpp
module_body.cpp
namespaces.cpp
unnamed_enums.cpp
abstract.cpp
call_policies.cpp
casting.cpp
class_order.cpp
class_order2.cpp
class_order3.cpp
class_order4.cpp
factory.cpp
finalizables.cpp
free_function_ignore_bug.cpp
free_operators.cpp
global_variables.cpp
index_operator.cpp
internal_classes.cpp
member_functions.cpp
member_variables.cpp
noncopyable.cpp
operators.cpp
operators_bug.cpp
optional.cpp
optional_bug.cpp
pointer_as_arg.cpp
pointer_to_function_as_argument.cpp
private_assign.cpp
protected.cpp
recursive.cpp
regression1.cpp
regression2.cpp
regression3.cpp
smart_pointers.cpp
special_operators.cpp
statics.cpp
temprorary_variable.cpp
user_text.cpp
protected.dll
protected.exp
protected.lib
protected.obj
protected.scons
indexing_suites.cpp
indexing_suites.cpp~
indexing_suites.dll
indexing_suites.exp
indexing_suites.lib
indexing_suites.obj
indexing_suites.scons
*.pyd
*.exp
*.lib
*.obj
*.scons
+ internal_classes.dll
member_functions.dll
member_variables.dll
module_body.dll
namespaces.dll
noncopyable.dll
operators.dll
operators_bug.dll
optional.dll
optional_bug.dll
pointer_as_arg.dll
pointer_to_function_as_argument.dll
private_assign.dll
recursive.dll
regression1.dll
regression2.dll
regression3.dll
smart_pointers.dll
special_operators.dll
statics.dll
temprorary_variable.dll
unnamed_enums.dll
user_text.dll
abstract.cpp~
call_policies.cpp~
casting.cpp~
class_order2.cpp~
class_order3.cpp~
class_order4.cpp~
class_order.cpp~
classes.cpp~
enums.cpp~
factory.cpp~
finalizables.cpp~
free_functions.cpp~
free_operators.cpp~
global_variables.cpp~
index_operator.cpp~
internal_classes.cpp~
member_functions.cpp~
member_variables.cpp~
noncopyable.cpp~
operators_bug.cpp~
optional.cpp~
optional_bug.cpp~
pointer_as_arg.cpp~
pointer_to_function_as_argument.cpp~
private_assign.cpp~
recursive.cpp~
regression1.cpp~
regression2.cpp~
regression3.cpp~
smart_pointers.cpp~
special_operators.cpp~
statics.cpp~
temprorary_variable.cpp~
unnamed_enums.cpp~
user_text.cpp~
abstract.exp
call_policies.exp
casting.exp
class_order2.exp
class_order3.exp
class_order4.exp
class_order.exp
classes.exp
enums.exp
factory.exp
finalizables.exp
free_function_ignore_bug.exp
free_functions.exp
free_operators.exp
global_variables.exp
index_operator.exp
internal_classes.exp
member_functions.exp
member_variables.exp
module_body.exp
namespaces.exp
noncopyable.exp
operators.exp
operators_bug.exp
optional.exp
optional_bug.exp
pointer_as_arg.exp
pointer_to_function_as_argument.exp
private_assign.exp
recursive.exp
regression1.exp
regression2.exp
regression3.exp
smart_pointers.exp
special_operators.exp
statics.exp
temprorary_variable.exp
unnamed_enums.exp
user_text.exp
abstract.lib
call_policies.lib
casting.lib
class_order2.lib
class_order3.lib
class_order4.lib
class_order.lib
classes.lib
enums.lib
factory.lib
finalizables.lib
free_function_ignore_bug.lib
free_functions.lib
free_operators.lib
global_variables.lib
index_operator.lib
internal_classes.lib
member_functions.lib
member_variables.lib
module_body.lib
namespaces.lib
noncopyable.lib
operators.lib
operators_bug.lib
optional.lib
optional_bug.lib
pointer_as_arg.lib
pointer_to_function_as_argument.lib
private_assign.lib
recursive.lib
regression1.lib
regression2.lib
regression3.lib
smart_pointers.lib
special_operators.lib
statics.lib
temprorary_variable.lib
unnamed_enums.lib
user_text.lib
abstract.obj
call_policies.obj
casting.obj
class_order2.obj
class_order3.obj
class_order4.obj
class_order.obj
classes.obj
enums.obj
factory.obj
finalizables.obj
free_function_ignore_bug.obj
free_functions.obj
free_operators.obj
global_variables.obj
index_operator.obj
internal_classes.obj
member_functions.obj
member_variables.obj
module_body.obj
namespaces.obj
noncopyable.obj
operators.obj
operators_bug.obj
optional.obj
optional_bug.obj
pointer_as_arg.obj
pointer_to_function_as_argument.obj
private_assign.obj
recursive.obj
regression1.obj
regression2.obj
regression3.obj
smart_pointers.obj
special_operators.obj
statics.obj
temprorary_variable.obj
unnamed_enums.obj
user_text.obj
abstract.scons
call_policies.scons
casting.scons
class_order2.scons
class_order3.scons
class_order4.scons
class_order.scons
classes.scons
enums.scons
factory.scons
finalizables.scons
free_function_ignore_bug.scons
free_functions.scons
free_operators.scons
global_variables.scons
index_operator.scons
internal_classes.scons
member_functions.scons
member_variables.scons
module_body.scons
namespaces.scons
noncopyable.scons
operators.scons
operators_bug.scons
optional.scons
optional_bug.scons
pointer_as_arg.scons
pointer_to_function_as_argument.scons
private_assign.scons
recursive.scons
regression1.scons
regression2.scons
regression3.scons
smart_pointers.scons
special_operators.scons
statics.scons
temprorary_variable.scons
unnamed_enums.scons
user_text.scons
abstract.dll
call_policies.dll
casting.dll
class_order2.dll
class_order3.dll
class_order4.dll
class_order.dll
classes.dll
enums.dll
factory.dll
finalizables.dll
free_function_ignore_bug.dll
free_functions.dll
free_operators.dll
global_variables.dll
index_operator.dll
.sconsign.dblite
__array_1.pypp.hpp
classes.cpp
enums.cpp
free_functions.cpp
module_body.cpp
namespaces.cpp
unnamed_enums.cpp
abstract.cpp
call_policies.cpp
casting.cpp
class_order.cpp
class_order2.cpp
class_order3.cpp
class_order4.cpp
factory.cpp
finalizables.cpp
free_function_ignore_bug.cpp
free_operators.cpp
global_variables.cpp
index_operator.cpp
internal_classes.cpp
member_functions.cpp
member_variables.cpp
noncopyable.cpp
operators.cpp
operators_bug.cpp
optional.cpp
optional_bug.cpp
pointer_as_arg.cpp
pointer_to_function_as_argument.cpp
private_assign.cpp
protected.cpp
recursive.cpp
regression1.cpp
regression2.cpp
regression3.cpp
smart_pointers.cpp
special_operators.cpp
statics.cpp
temprorary_variable.cpp
user_text.cpp
protected.dll
protected.exp
protected.lib
protected.obj
protected.scons
indexing_suites.cpp
indexing_suites.cpp~
indexing_suites.dll
indexing_suites.exp
indexing_suites.lib
indexing_suites.obj
indexing_suites.scons
*.pyd
*.exp
*.lib
*.obj
*.scons
to_be_exposed
already_exposed
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 21:27:35
|
Revision: 1581
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1581&view=rev
Author: roman_yakovenko
Date: 2009-01-15 21:27:30 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
implmenting better algorithm for ctypes builder
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/config.py
pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
pyplusplus_dev/pyplusplus/code_creators/library_reference.py
pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py
ui/web/config.py
Added Paths:
-----------
pyplusplus_dev/pyplusplus/module_builder/ctypes_decls_dependencies.py
Modified: pygccxml_dev/pygccxml/parser/config.py
===================================================================
--- pygccxml_dev/pygccxml/parser/config.py 2009-01-15 13:37:55 UTC (rev 1580)
+++ pygccxml_dev/pygccxml/parser/config.py 2009-01-15 21:27:30 UTC (rev 1581)
@@ -226,21 +226,21 @@
if isinstance( configuration, types.StringTypes ):
from ConfigParser import SafeConfigParser
parser = SafeConfigParser()
- parser.readfp( file( configuration, 'r' ) )
+ parser.read( configuration )
gccxml_cfg = gccxml_configuration_t()
- if not parser.has_section( 'gccxml' ):
- return gccxml_cfg
values = defaults
if not values:
values = {}
+
+ if parser.has_section( 'gccxml' ):
+ for name, value in parser.items( 'gccxml' ):
+ if value.strip():
+ values[ name ] = value
- for name, value in parser.items( 'gccxml' ):
- if value.strip():
- values[ name ] = value
-
for name, value in values.iteritems():
- value = value.strip()
+ if isinstance( value, types.StringTypes ):
+ value = value.strip()
if name == 'gccxml_path':
gccxml_cfg.gccxml_path = value
elif name == 'working_directory':
Modified: pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-15 13:37:55 UTC (rev 1580)
+++ pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-15 21:27:30 UTC (rev 1581)
@@ -18,17 +18,15 @@
and isinstance( f.arguments[-1].type, declarations.ellipsis_t )
mb.calldefs( has_varargs ).exclude()
-mb.classes( '' ).exclude()
#gmp uses strange convention: every function name starts with __gmp and than, it
#introduces define, which aliass __gmpy to gmpy
for f in mb.calldefs( lambda x: x.name.startswith('__gmp') ):
f.alias = f.name[2:]
-#there is a bug in "include" algorithm - I need to wrote BFS
+#those structs are private implementation of FILE
mb.class_( '_IO_FILE' ).opaque = True
-#another dependency bug - internal union is not included
-mb.class_( '__gmp_randstate_struct' ).include()
+mb.class_( '_IO_marker' ).opaque = True
mb.build_code_creator( project_env.gmp.shared_library_file )
Modified: pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-15 13:37:55 UTC (rev 1580)
+++ pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-15 21:27:30 UTC (rev 1581)
@@ -4,9 +4,9 @@
import ctypes_utils
-libgmp_dot_so_dot_3_dot_4lib = ctypes.CDLL( r"/usr/lib/libgmp.so.3.4.2" )
+libgmp_lib = ctypes.CDLL( r"/usr/lib/libgmp.so.3.4.2" )
-libgmp_dot_so_dot_3_dot_4lib.undecorated_names = {#mapping between decorated and undecorated names
+libgmp_lib.undecorated_names = {#mapping between decorated and undecorated names
"extern double __gmpf_get_d(mpf_srcptr arg0) [free function]" : "__gmpf_get_d",
"extern int __gmpf_cmp_ui(mpf_srcptr arg0, long unsigned int arg1) [free function]" : "__gmpf_cmp_ui",
"extern void __gmpz_mul_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]" : "__gmpz_mul_ui",
@@ -627,6 +627,12 @@
def __init__( self, *args, **keywd ):
raise RuntimeError( "Unable to create instance of opaque type." )
+class _IO_marker(ctypes.Structure):
+ """class _IO_marker"""
+
+ def __init__( self, *args, **keywd ):
+ raise RuntimeError( "Unable to create instance of opaque type." )
+
class __gmp_randstate_struct(ctypes.Structure):
"""class __gmp_randstate_struct"""
@@ -672,877 +678,877 @@
]
gmpq_add_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ) )
-gmpq_add = gmpq_add_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_add(mpq_ptr arg0, mpq_srcptr arg1, mpq_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_add = gmpq_add_type( ( libgmp_lib.undecorated_names["extern void __gmpq_add(mpq_ptr arg0, mpq_srcptr arg1, mpq_srcptr arg2) [free function]"], libgmp_lib ) )
gmpq_canonicalize_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ) )
-gmpq_canonicalize = gmpq_canonicalize_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_canonicalize(mpq_ptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_canonicalize = gmpq_canonicalize_type( ( libgmp_lib.undecorated_names["extern void __gmpq_canonicalize(mpq_ptr arg0) [free function]"], libgmp_lib ) )
gmpq_sub_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ) )
-gmpq_sub = gmpq_sub_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_sub(mpq_ptr arg0, mpq_srcptr arg1, mpq_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_sub = gmpq_sub_type( ( libgmp_lib.undecorated_names["extern void __gmpq_sub(mpq_ptr arg0, mpq_srcptr arg1, mpq_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_tdiv_q_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_tdiv_q_ui = gmpz_tdiv_q_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_tdiv_q_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_q_ui = gmpz_tdiv_q_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_tdiv_q_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpn_scan0_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_ulong )
-gmpn_scan0 = gmpn_scan0_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpn_scan0(mp_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_scan0 = gmpn_scan0_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpn_scan0(mp_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpf_fits_sshort_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpf_struct ) )
-gmpf_fits_sshort_p = gmpf_fits_sshort_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpf_fits_sshort_p(mpf_srcptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_fits_sshort_p = gmpf_fits_sshort_p_type( ( libgmp_lib.undecorated_names["extern int __gmpf_fits_sshort_p(mpf_srcptr arg0) [free function]"], libgmp_lib ) )
gmpz_init_set_d_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_double )
-gmpz_init_set_d = gmpz_init_set_d_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_init_set_d(mpz_ptr arg0, double arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_init_set_d = gmpz_init_set_d_type( ( libgmp_lib.undecorated_names["extern void __gmpz_init_set_d(mpz_ptr arg0, double arg1) [free function]"], libgmp_lib ) )
gmpz_get_d_2exp_type = ctypes.CFUNCTYPE( ctypes.c_double, ctypes.POINTER( ctypes.c_long ), ctypes.POINTER( __mpz_struct ) )
-gmpz_get_d_2exp = gmpz_get_d_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern double __gmpz_get_d_2exp(long int * arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_get_d_2exp = gmpz_get_d_2exp_type( ( libgmp_lib.undecorated_names["extern double __gmpz_get_d_2exp(long int * arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_powm_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong, ctypes.POINTER( __mpz_struct ) )
-gmpz_powm_ui = gmpz_powm_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_powm_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2, mpz_srcptr arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_powm_ui = gmpz_powm_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_powm_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2, mpz_srcptr arg3) [free function]"], libgmp_lib ) )
gmpn_add_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long )
-gmpn_add = gmpn_add_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["mp_limb_t __gmpn_add(mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_add = gmpn_add_type( ( libgmp_lib.undecorated_names["mp_limb_t __gmpn_add(mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) [free function]"], libgmp_lib ) )
gmpn_scan1_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_ulong )
-gmpn_scan1 = gmpn_scan1_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpn_scan1(mp_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_scan1 = gmpn_scan1_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpn_scan1(mp_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpn_divexact_by3c_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.c_ulong )
-gmpn_divexact_by3c = gmpn_divexact_by3c_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern mp_limb_t __gmpn_divexact_by3c(mp_ptr arg0, mp_srcptr arg1, mp_size_t arg2, mp_limb_t arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_divexact_by3c = gmpn_divexact_by3c_type( ( libgmp_lib.undecorated_names["extern mp_limb_t __gmpn_divexact_by3c(mp_ptr arg0, mp_srcptr arg1, mp_size_t arg2, mp_limb_t arg3) [free function]"], libgmp_lib ) )
gmpz_ui_pow_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong, ctypes.c_ulong )
-gmpz_ui_pow_ui = gmpz_ui_pow_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_ui_pow_ui(mpz_ptr arg0, long unsigned int arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_ui_pow_ui = gmpz_ui_pow_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_ui_pow_ui(mpz_ptr arg0, long unsigned int arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_nextprime_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_nextprime = gmpz_nextprime_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_nextprime(mpz_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_nextprime = gmpz_nextprime_type( ( libgmp_lib.undecorated_names["extern void __gmpz_nextprime(mpz_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_size_type = ctypes.CFUNCTYPE( ctypes.c_uint, ctypes.POINTER( __mpz_struct ) )
-gmpz_size = gmpz_size_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["size_t __gmpz_size(mpz_srcptr __gmp_z) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_size = gmpz_size_type( ( libgmp_lib.undecorated_names["size_t __gmpz_size(mpz_srcptr __gmp_z) [free function]"], libgmp_lib ) )
gmpf_sqrt_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpf_sqrt = gmpf_sqrt_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_sqrt(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_sqrt = gmpf_sqrt_type( ( libgmp_lib.undecorated_names["extern void __gmpf_sqrt(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_cdiv_q_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_cdiv_q_ui = gmpz_cdiv_q_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_cdiv_q_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_cdiv_q_ui = gmpz_cdiv_q_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_cdiv_q_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_tdiv_r_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_tdiv_r_ui = gmpz_tdiv_r_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_tdiv_r_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_r_ui = gmpz_tdiv_r_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_tdiv_r_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_init_set_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_init_set_ui = gmpz_init_set_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_init_set_ui(mpz_ptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_init_set_ui = gmpz_init_set_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_init_set_ui(mpz_ptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpz_export_type = ctypes.CFUNCTYPE( ctypes.c_void_p, ctypes.c_void_p, ctypes.POINTER( ctypes.c_uint ), ctypes.c_int, ctypes.c_uint, ctypes.c_int, ctypes.c_uint, ctypes.POINTER( __mpz_struct ) )
-gmpz_export = gmpz_export_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void * __gmpz_export(void * arg0, size_t * arg1, int arg2, size_t arg3, int arg4, size_t arg5, mpz_srcptr arg6) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_export = gmpz_export_type( ( libgmp_lib.undecorated_names["extern void * __gmpz_export(void * arg0, size_t * arg1, int arg2, size_t arg3, int arg4, size_t arg5, mpz_srcptr arg6) [free function]"], libgmp_lib ) )
gmpz_set_str_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.c_char_p, ctypes.c_int )
-gmpz_set_str = gmpz_set_str_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_set_str(mpz_ptr arg0, char const * arg1, int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_set_str = gmpz_set_str_type( ( libgmp_lib.undecorated_names["extern int __gmpz_set_str(mpz_ptr arg0, char const * arg1, int arg2) [free function]"], libgmp_lib ) )
gmpz_set_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_set = gmpz_set_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_set(mpz_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_set = gmpz_set_type( ( libgmp_lib.undecorated_names["extern void __gmpz_set(mpz_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmp_randseed_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __gmp_randstate_struct ), ctypes.c_ulong )
-gmp_randseed_ui = gmp_randseed_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmp_randseed_ui(__gmp_randstate_struct * arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmp_randseed_ui = gmp_randseed_ui_type( ( libgmp_lib.undecorated_names["extern void __gmp_randseed_ui(__gmp_randstate_struct * arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpz_random2_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_long )
-gmpz_random2 = gmpz_random2_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_random2(mpz_ptr arg0, mp_size_t arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_random2 = gmpz_random2_type( ( libgmp_lib.undecorated_names["extern void __gmpz_random2(mpz_ptr arg0, mp_size_t arg1) [free function]"], libgmp_lib ) )
gmpf_mul_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ), ctypes.c_ulong )
-gmpf_mul_2exp = gmpf_mul_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_mul_2exp(mpf_ptr arg0, mpf_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_mul_2exp = gmpf_mul_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmpf_mul_2exp(mpf_ptr arg0, mpf_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpf_cmp_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpf_cmp = gmpf_cmp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpf_cmp(mpf_srcptr arg0, mpf_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_cmp = gmpf_cmp_type( ( libgmp_lib.undecorated_names["extern int __gmpf_cmp(mpf_srcptr arg0, mpf_srcptr arg1) [free function]"], libgmp_lib ) )
gmpn_sub_1_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.c_ulong )
-gmpn_sub_1 = gmpn_sub_1_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["mp_limb_t __gmpn_sub_1(mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_sub_1 = gmpn_sub_1_type( ( libgmp_lib.undecorated_names["mp_limb_t __gmpn_sub_1(mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) [free function]"], libgmp_lib ) )
gmpq_cmp_ui_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpq_struct ), ctypes.c_ulong, ctypes.c_ulong )
-gmpq_cmp_ui = gmpq_cmp_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpq_cmp_ui(mpq_srcptr arg0, long unsigned int arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_cmp_ui = gmpq_cmp_ui_type( ( libgmp_lib.undecorated_names["extern int __gmpq_cmp_ui(mpq_srcptr arg0, long unsigned int arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpq_out_str_type = ctypes.CFUNCTYPE( ctypes.c_uint, ctypes.POINTER( _IO_FILE ), ctypes.c_int, ctypes.POINTER( __mpq_struct ) )
-gmpq_out_str = gmpq_out_str_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern size_t __gmpq_out_str(FILE * arg0, int arg1, mpq_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_out_str = gmpq_out_str_type( ( libgmp_lib.undecorated_names["extern size_t __gmpq_out_str(FILE * arg0, int arg1, mpq_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_mul_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_mul_2exp = gmpz_mul_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_mul_2exp(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_mul_2exp = gmpz_mul_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmpz_mul_2exp(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpn_hamdist_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long )
-gmpn_hamdist = gmpn_hamdist_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpn_hamdist(mp_srcptr arg0, mp_srcptr arg1, mp_size_t arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_hamdist = gmpn_hamdist_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpn_hamdist(mp_srcptr arg0, mp_srcptr arg1, mp_size_t arg2) [free function]"], libgmp_lib ) )
gmpz_submul_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_submul = gmpz_submul_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_submul(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_submul = gmpz_submul_type( ( libgmp_lib.undecorated_names["extern void __gmpz_submul(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmp_randseed_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __gmp_randstate_struct ), ctypes.POINTER( __mpz_struct ) )
-gmp_randseed = gmp_randseed_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmp_randseed(__gmp_randstate_struct * arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmp_randseed = gmp_randseed_type( ( libgmp_lib.undecorated_names["extern void __gmp_randseed(__gmp_randstate_struct * arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_divisible_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_divisible_p = gmpz_divisible_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_divisible_p(mpz_srcptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_divisible_p = gmpz_divisible_p_type( ( libgmp_lib.undecorated_names["extern int __gmpz_divisible_p(mpz_srcptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_getlimbn_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.c_long )
-gmpz_getlimbn = gmpz_getlimbn_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["mp_limb_t __gmpz_getlimbn(mpz_srcptr __gmp_z, mp_size_t __gmp_n) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_getlimbn = gmpz_getlimbn_type( ( libgmp_lib.undecorated_names["mp_limb_t __gmpz_getlimbn(mpz_srcptr __gmp_z, mp_size_t __gmp_n) [free function]"], libgmp_lib ) )
gmp_randinit_lc_2exp_size_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __gmp_randstate_struct ), ctypes.c_ulong )
-gmp_randinit_lc_2exp_size = gmp_randinit_lc_2exp_size_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmp_randinit_lc_2exp_size(__gmp_randstate_struct * arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmp_randinit_lc_2exp_size = gmp_randinit_lc_2exp_size_type( ( libgmp_lib.undecorated_names["extern int __gmp_randinit_lc_2exp_size(__gmp_randstate_struct * arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpz_add_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_add_ui = gmpz_add_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_add_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_add_ui = gmpz_add_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_add_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_inp_raw_type = ctypes.CFUNCTYPE( ctypes.c_uint, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( _IO_FILE ) )
-gmpz_inp_raw = gmpz_inp_raw_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern size_t __gmpz_inp_raw(mpz_ptr arg0, FILE * arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_inp_raw = gmpz_inp_raw_type( ( libgmp_lib.undecorated_names["extern size_t __gmpz_inp_raw(mpz_ptr arg0, FILE * arg1) [free function]"], libgmp_lib ) )
gmpz_tdiv_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_tdiv_ui = gmpz_tdiv_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_tdiv_ui(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_ui = gmpz_tdiv_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_tdiv_ui(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpz_tdiv_qr_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_tdiv_qr_ui = gmpz_tdiv_qr_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_tdiv_qr_ui(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, long unsigned int arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_qr_ui = gmpz_tdiv_qr_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_tdiv_qr_ui(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, long unsigned int arg3) [free function]"], libgmp_lib ) )
gmpf_neg_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpf_neg = gmpf_neg_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_neg(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_neg = gmpf_neg_type( ( libgmp_lib.undecorated_names["extern void __gmpf_neg(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_lib ) )
gmpq_set_num_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpq_set_num = gmpq_set_num_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_set_num(mpq_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_set_num = gmpq_set_num_type( ( libgmp_lib.undecorated_names["extern void __gmpq_set_num(mpq_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpf_mul_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpf_mul = gmpf_mul_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_mul(mpf_ptr arg0, mpf_srcptr arg1, mpf_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_mul = gmpf_mul_type( ( libgmp_lib.undecorated_names["extern void __gmpf_mul(mpf_ptr arg0, mpf_srcptr arg1, mpf_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_submul_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_submul_ui = gmpz_submul_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_submul_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_submul_ui = gmpz_submul_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_submul_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpf_div_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ), ctypes.c_ulong )
-gmpf_div_ui = gmpf_div_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_div_ui(mpf_ptr arg0, mpf_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_div_ui = gmpf_div_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpf_div_ui(mpf_ptr arg0, mpf_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_random_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_long )
-gmpz_random = gmpz_random_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_random(mpz_ptr arg0, mp_size_t arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_random = gmpz_random_type( ( libgmp_lib.undecorated_names["extern void __gmpz_random(mpz_ptr arg0, mp_size_t arg1) [free function]"], libgmp_lib ) )
gmpn_pow_1_type = ctypes.CFUNCTYPE( ctypes.c_long, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ) )
-gmpn_pow_1 = gmpn_pow_1_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern mp_size_t __gmpn_pow_1(mp_ptr arg0, mp_srcptr arg1, mp_size_t arg2, mp_limb_t arg3, mp_ptr arg4) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_pow_1 = gmpn_pow_1_type( ( libgmp_lib.undecorated_names["extern mp_size_t __gmpn_pow_1(mp_ptr arg0, mp_srcptr arg1, mp_size_t arg2, mp_limb_t arg3, mp_ptr arg4) [free function]"], libgmp_lib ) )
gmpz_addmul_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_addmul = gmpz_addmul_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_addmul(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_addmul = gmpz_addmul_type( ( libgmp_lib.undecorated_names["extern void __gmpz_addmul(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_ui_sub_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong, ctypes.POINTER( __mpz_struct ) )
-gmpz_ui_sub = gmpz_ui_sub_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_ui_sub(mpz_ptr arg0, long unsigned int arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_ui_sub = gmpz_ui_sub_type( ( libgmp_lib.undecorated_names["extern void __gmpz_ui_sub(mpz_ptr arg0, long unsigned int arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmp_set_memory_functions_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( ctypes.CFUNCTYPE( ctypes.c_void_p, ctypes.c_uint ) ), ctypes.POINTER( ctypes.CFUNCTYPE( ctypes.c_void_p, ctypes.c_void_p, ctypes.c_uint, ctypes.c_uint ) ), ctypes.POINTER( ctypes.CFUNCTYPE( None, ctypes.c_void_p, ctypes.c_uint ) ) )
-gmp_set_memory_functions = gmp_set_memory_functions_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmp_set_memory_functions(void * (*)( ::size_t ) * arg0, void * (*)( void *,::size_t,::size_t ) * arg1, void (*)( void *,::size_t ) * arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmp_set_memory_functions = gmp_set_memory_functions_type( ( libgmp_lib.undecorated_names["extern void __gmp_set_memory_functions(void * (*)( ::size_t ) * arg0, void * (*)( void *,::size_t,::size_t ) * arg1, void (*)( void *,::size_t ) * arg2) [free function]"], libgmp_lib ) )
gmpz_tdiv_q_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_tdiv_q_2exp = gmpz_tdiv_q_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_tdiv_q_2exp(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_q_2exp = gmpz_tdiv_q_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmpz_tdiv_q_2exp(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_sqrt_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_sqrt = gmpz_sqrt_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_sqrt(mpz_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_sqrt = gmpz_sqrt_type( ( libgmp_lib.undecorated_names["extern void __gmpz_sqrt(mpz_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpn_divrem_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long )
-gmpn_divrem = gmpn_divrem_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern mp_limb_t __gmpn_divrem(mp_ptr arg0, mp_size_t arg1, mp_ptr arg2, mp_size_t arg3, mp_srcptr arg4, mp_size_t arg5) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_divrem = gmpn_divrem_type( ( libgmp_lib.undecorated_names["extern mp_limb_t __gmpn_divrem(mp_ptr arg0, mp_size_t arg1, mp_ptr arg2, mp_size_t arg3, mp_srcptr arg4, mp_size_t arg5) [free function]"], libgmp_lib ) )
gmpf_sqrt_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.c_ulong )
-gmpf_sqrt_ui = gmpf_sqrt_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_sqrt_ui(mpf_ptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_sqrt_ui = gmpf_sqrt_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpf_sqrt_ui(mpf_ptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpn_sub_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long )
-gmpn_sub = gmpn_sub_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["mp_limb_t __gmpn_sub(mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_sub = gmpn_sub_type( ( libgmp_lib.undecorated_names["mp_limb_t __gmpn_sub(mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) [free function]"], libgmp_lib ) )
gmpq_set_f_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpq_set_f = gmpq_set_f_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_set_f(mpq_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_set_f = gmpq_set_f_type( ( libgmp_lib.undecorated_names["extern void __gmpq_set_f(mpq_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_lib ) )
gmpq_get_d_type = ctypes.CFUNCTYPE( ctypes.c_double, ctypes.POINTER( __mpq_struct ) )
-gmpq_get_d = gmpq_get_d_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern double __gmpq_get_d(mpq_srcptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_get_d = gmpq_get_d_type( ( libgmp_lib.undecorated_names["extern double __gmpq_get_d(mpq_srcptr arg0) [free function]"], libgmp_lib ) )
gmpf_size_type = ctypes.CFUNCTYPE( ctypes.c_uint, ctypes.POINTER( __mpf_struct ) )
-gmpf_size = gmpf_size_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern size_t __gmpf_size(mpf_srcptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_size = gmpf_size_type( ( libgmp_lib.undecorated_names["extern size_t __gmpf_size(mpf_srcptr arg0) [free function]"], libgmp_lib ) )
gmpz_add_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_add = gmpz_add_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_add(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_add = gmpz_add_type( ( libgmp_lib.undecorated_names["extern void __gmpz_add(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpq_inv_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ) )
-gmpq_inv = gmpq_inv_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_inv(mpq_ptr arg0, mpq_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_inv = gmpq_inv_type( ( libgmp_lib.undecorated_names["extern void __gmpq_inv(mpq_ptr arg0, mpq_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_rootrem_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_rootrem = gmpz_rootrem_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_rootrem(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, long unsigned int arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_rootrem = gmpz_rootrem_type( ( libgmp_lib.undecorated_names["extern void __gmpz_rootrem(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, long unsigned int arg3) [free function]"], libgmp_lib ) )
gmpf_ceil_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpf_ceil = gmpf_ceil_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_ceil(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_ceil = gmpf_ceil_type( ( libgmp_lib.undecorated_names["extern void __gmpf_ceil(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_fits_ushort_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ) )
-gmpz_fits_ushort_p = gmpz_fits_ushort_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["int __gmpz_fits_ushort_p(mpz_srcptr __gmp_z) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_fits_ushort_p = gmpz_fits_ushort_p_type( ( libgmp_lib.undecorated_names["int __gmpz_fits_ushort_p(mpz_srcptr __gmp_z) [free function]"], libgmp_lib ) )
gmpz_cdiv_r_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_cdiv_r_2exp = gmpz_cdiv_r_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_cdiv_r_2exp(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_cdiv_r_2exp = gmpz_cdiv_r_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmpz_cdiv_r_2exp(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_fdiv_qr_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_fdiv_qr = gmpz_fdiv_qr_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_fdiv_qr(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, mpz_srcptr arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_fdiv_qr = gmpz_fdiv_qr_type( ( libgmp_lib.undecorated_names["extern void __gmpz_fdiv_qr(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, mpz_srcptr arg3) [free function]"], libgmp_lib ) )
gmpz_get_si_type = ctypes.CFUNCTYPE( ctypes.c_long, ctypes.POINTER( __mpz_struct ) )
-gmpz_get_si = gmpz_get_si_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long int __gmpz_get_si(mpz_srcptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_get_si = gmpz_get_si_type( ( libgmp_lib.undecorated_names["extern long int __gmpz_get_si(mpz_srcptr arg0) [free function]"], libgmp_lib ) )
gmpf_integer_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpf_struct ) )
-gmpf_integer_p = gmpf_integer_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpf_integer_p(mpf_srcptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_integer_p = gmpf_integer_p_type( ( libgmp_lib.undecorated_names["extern int __gmpf_integer_p(mpf_srcptr arg0) [free function]"], libgmp_lib ) )
gmpz_congruent_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_congruent_p = gmpz_congruent_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_congruent_p(mpz_srcptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_congruent_p = gmpz_congruent_p_type( ( libgmp_lib.undecorated_names["extern int __gmpz_congruent_p(mpz_srcptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpf_ui_div_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.c_ulong, ctypes.POINTER( __mpf_struct ) )
-gmpf_ui_div = gmpf_ui_div_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_ui_div(mpf_ptr arg0, long unsigned int arg1, mpf_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_ui_div = gmpf_ui_div_type( ( libgmp_lib.undecorated_names["extern void __gmpf_ui_div(mpf_ptr arg0, long unsigned int arg1, mpf_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_mul_si_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_long )
-gmpz_mul_si = gmpz_mul_si_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_mul_si(mpz_ptr arg0, mpz_srcptr arg1, long int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_mul_si = gmpz_mul_si_type( ( libgmp_lib.undecorated_names["extern void __gmpz_mul_si(mpz_ptr arg0, mpz_srcptr arg1, long int arg2) [free function]"], libgmp_lib ) )
gmpq_div_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ), ctypes.c_ulong )
-gmpq_div_2exp = gmpq_div_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_div_2exp(mpq_ptr arg0, mpq_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_div_2exp = gmpq_div_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmpq_div_2exp(mpq_ptr arg0, mpq_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpq_mul_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ), ctypes.c_ulong )
-gmpq_mul_2exp = gmpq_mul_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_mul_2exp(mpq_ptr arg0, mpq_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_mul_2exp = gmpq_mul_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmpq_mul_2exp(mpq_ptr arg0, mpq_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpf_urandomb_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __gmp_randstate_struct ), ctypes.c_ulong )
-gmpf_urandomb = gmpf_urandomb_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_urandomb(__mpf_struct * arg0, __gmp_randstate_struct * arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_urandomb = gmpf_urandomb_type( ( libgmp_lib.undecorated_names["extern void __gmpf_urandomb(__mpf_struct * arg0, __gmp_randstate_struct * arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpq_neg_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ) )
-gmpq_neg = gmpq_neg_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["void __gmpq_neg(mpq_ptr __gmp_w, mpq_srcptr __gmp_u) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_neg = gmpq_neg_type( ( libgmp_lib.undecorated_names["void __gmpq_neg(mpq_ptr __gmp_w, mpq_srcptr __gmp_u) [free function]"], libgmp_lib ) )
gmpz_import_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.c_uint, ctypes.c_int, ctypes.c_uint, ctypes.c_int, ctypes.c_uint, ctypes.c_void_p )
-gmpz_import = gmpz_import_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_import(mpz_ptr arg0, size_t arg1, int arg2, size_t arg3, int arg4, size_t arg5, void const * arg6) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_import = gmpz_import_type( ( libgmp_lib.undecorated_names["extern void __gmpz_import(mpz_ptr arg0, size_t arg1, int arg2, size_t arg3, int arg4, size_t arg5, void const * arg6) [free function]"], libgmp_lib ) )
gmpz_mul_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_mul_ui = gmpz_mul_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_mul_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_mul_ui = gmpz_mul_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_mul_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_tstbit_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_tstbit = gmpz_tstbit_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_tstbit(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tstbit = gmpz_tstbit_type( ( libgmp_lib.undecorated_names["extern int __gmpz_tstbit(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpq_get_num_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpq_struct ) )
-gmpq_get_num = gmpq_get_num_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_get_num(mpz_ptr arg0, mpq_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_get_num = gmpq_get_num_type( ( libgmp_lib.undecorated_names["extern void __gmpq_get_num(mpz_ptr arg0, mpq_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_sub_ui_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_sub_ui = gmpz_sub_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_sub_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_sub_ui = gmpz_sub_ui_type( ( libgmp_lib.undecorated_names["extern void __gmpz_sub_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_rrandomb_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __gmp_randstate_struct ), ctypes.c_ulong )
-gmpz_rrandomb = gmpz_rrandomb_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_rrandomb(mpz_ptr arg0, __gmp_randstate_struct * arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_rrandomb = gmpz_rrandomb_type( ( libgmp_lib.undecorated_names["extern void __gmpz_rrandomb(mpz_ptr arg0, __gmp_randstate_struct * arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpn_set_str_type = ctypes.CFUNCTYPE( ctypes.c_long, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ubyte ), ctypes.c_uint, ctypes.c_int )
-gmpn_set_str = gmpn_set_str_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern mp_size_t __gmpn_set_str(mp_ptr arg0, unsigned char const * arg1, size_t arg2, int arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_set_str = gmpn_set_str_type( ( libgmp_lib.undecorated_names["extern mp_size_t __gmpn_set_str(mp_ptr arg0, unsigned char const * arg1, size_t arg2, int arg3) [free function]"], libgmp_lib ) )
gmpz_root_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_root = gmpz_root_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_root(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_root = gmpz_root_type( ( libgmp_lib.undecorated_names["extern int __gmpz_root(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_fdiv_q_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_fdiv_q_ui = gmpz_fdiv_q_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_fdiv_q_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_fdiv_q_ui = gmpz_fdiv_q_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_fdiv_q_ui(mpz_ptr arg0, mpz_srcptr arg1, long unsigned int arg2) [free function]"], libgmp_lib ) )
gmpz_cmpabs_ui_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_cmpabs_ui = gmpz_cmpabs_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_cmpabs_ui(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_cmpabs_ui = gmpz_cmpabs_ui_type( ( libgmp_lib.undecorated_names["extern int __gmpz_cmpabs_ui(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpz_divexact_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_divexact = gmpz_divexact_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_divexact(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_divexact = gmpz_divexact_type( ( libgmp_lib.undecorated_names["extern void __gmpz_divexact(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_cmpabs_d_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.c_double )
-gmpz_cmpabs_d = gmpz_cmpabs_d_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_cmpabs_d(mpz_srcptr arg0, double arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_cmpabs_d = gmpz_cmpabs_d_type( ( libgmp_lib.undecorated_names["extern int __gmpz_cmpabs_d(mpz_srcptr arg0, double arg1) [free function]"], libgmp_lib ) )
gmpz_mod_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_mod = gmpz_mod_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_mod(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_mod = gmpz_mod_type( ( libgmp_lib.undecorated_names["extern void __gmpz_mod(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_fits_ulong_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ) )
-gmpz_fits_ulong_p = gmpz_fits_ulong_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["int __gmpz_fits_ulong_p(mpz_srcptr __gmp_z) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_fits_ulong_p = gmpz_fits_ulong_p_type( ( libgmp_lib.undecorated_names["int __gmpz_fits_ulong_p(mpz_srcptr __gmp_z) [free function]"], libgmp_lib ) )
gmpz_cdiv_qr_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_cdiv_qr_ui = gmpz_cdiv_qr_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long unsigned int __gmpz_cdiv_qr_ui(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, long unsigned int arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_cdiv_qr_ui = gmpz_cdiv_qr_ui_type( ( libgmp_lib.undecorated_names["extern long unsigned int __gmpz_cdiv_qr_ui(mpz_ptr arg0, mpz_ptr arg1, mpz_srcptr arg2, long unsigned int arg3) [free function]"], libgmp_lib ) )
gmpz_cmp_ui_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.c_ulong )
-gmpz_cmp_ui = gmpz_cmp_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_cmp_ui(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_cmp_ui = gmpz_cmp_ui_type( ( libgmp_lib.undecorated_names["extern int __gmpz_cmp_ui(mpz_srcptr arg0, long unsigned int arg1) [free function]"], libgmp_lib ) )
gmpz_clear_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ) )
-gmpz_clear = gmpz_clear_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_clear(mpz_ptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_clear = gmpz_clear_type( ( libgmp_lib.undecorated_names["extern void __gmpz_clear(mpz_ptr arg0) [free function]"], libgmp_lib ) )
gmp_randinit_mt_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __gmp_randstate_struct ) )
-gmp_randinit_mt = gmp_randinit_mt_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmp_randinit_mt(__gmp_randstate_struct * arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmp_randinit_mt = gmp_randinit_mt_type( ( libgmp_lib.undecorated_names["extern void __gmp_randinit_mt(__gmp_randstate_struct * arg0) [free function]"], libgmp_lib ) )
gmpq_set_z_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpq_set_z = gmpq_set_z_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_set_z(mpq_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_set_z = gmpq_set_z_type( ( libgmp_lib.undecorated_names["extern void __gmpq_set_z(mpq_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_abs_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_abs = gmpz_abs_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["void __gmpz_abs(mpz_ptr __gmp_w, mpz_srcptr __gmp_u) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_abs = gmpz_abs_type( ( libgmp_lib.undecorated_names["void __gmpz_abs(mpz_ptr __gmp_w, mpz_srcptr __gmp_u) [free function]"], libgmp_lib ) )
gmpz_probab_prime_p_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpz_struct ), ctypes.c_int )
-gmpz_probab_prime_p = gmpz_probab_prime_p_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpz_probab_prime_p(mpz_srcptr arg0, int arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_probab_prime_p = gmpz_probab_prime_p_type( ( libgmp_lib.undecorated_names["extern int __gmpz_probab_prime_p(mpz_srcptr arg0, int arg1) [free function]"], libgmp_lib ) )
gmpz_tdiv_q_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_tdiv_q = gmpz_tdiv_q_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_tdiv_q(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_q = gmpz_tdiv_q_type( ( libgmp_lib.undecorated_names["extern void __gmpz_tdiv_q(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpz_tdiv_r_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_tdiv_r = gmpz_tdiv_r_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_tdiv_r(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_tdiv_r = gmpz_tdiv_r_type( ( libgmp_lib.undecorated_names["extern void __gmpz_tdiv_r(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpf_set_str_type = ctypes.CFUNCTYPE( ctypes.c_int, ctypes.POINTER( __mpf_struct ), ctypes.c_char_p, ctypes.c_int )
-gmpf_set_str = gmpf_set_str_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern int __gmpf_set_str(mpf_ptr arg0, char const * arg1, int arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_set_str = gmpf_set_str_type( ( libgmp_lib.undecorated_names["extern int __gmpf_set_str(mpf_ptr arg0, char const * arg1, int arg2) [free function]"], libgmp_lib ) )
gmpf_set_q_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpq_struct ) )
-gmpf_set_q = gmpf_set_q_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_set_q(mpf_ptr arg0, mpq_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_set_q = gmpf_set_q_type( ( libgmp_lib.undecorated_names["extern void __gmpf_set_q(mpf_ptr arg0, mpq_srcptr arg1) [free function]"], libgmp_lib ) )
gmpq_set_d_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.c_double )
-gmpq_set_d = gmpq_set_d_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_set_d(mpq_ptr arg0, double arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_set_d = gmpq_set_d_type( ( libgmp_lib.undecorated_names["extern void __gmpq_set_d(mpq_ptr arg0, double arg1) [free function]"], libgmp_lib ) )
gmpz_lcm_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpz_lcm = gmpz_lcm_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpz_lcm(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_lcm = gmpz_lcm_type( ( libgmp_lib.undecorated_names["extern void __gmpz_lcm(mpz_ptr arg0, mpz_srcptr arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpn_rshift_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( ctypes.c_ulong ), ctypes.POINTER( ctypes.c_ulong ), ctypes.c_long, ctypes.c_uint )
-gmpn_rshift = gmpn_rshift_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern mp_limb_t __gmpn_rshift(mp_ptr arg0, mp_srcptr arg1, mp_size_t arg2, unsigned int arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpn_rshift = gmpn_rshift_type( ( libgmp_lib.undecorated_names["extern mp_limb_t __gmpn_rshift(mp_ptr arg0, mp_srcptr arg1, mp_size_t arg2, unsigned int arg3) [free function]"], libgmp_lib ) )
gmpf_set_z_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpf_set_z = gmpf_set_z_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_set_z(mpf_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_set_z = gmpf_set_z_type( ( libgmp_lib.undecorated_names["extern void __gmpf_set_z(mpf_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpq_set_den_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpz_struct ) )
-gmpq_set_den = gmpq_set_den_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpq_set_den(mpq_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpq_set_den = gmpq_set_den_type( ( libgmp_lib.undecorated_names["extern void __gmpq_set_den(mpq_ptr arg0, mpz_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_get_str_type = ctypes.CFUNCTYPE( ctypes.c_char_p, ctypes.c_char_p, ctypes.c_int, ctypes.POINTER( __mpz_struct ) )
-gmpz_get_str = gmpz_get_str_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern char * __gmpz_get_str(char * arg0, int arg1, mpz_srcptr arg2) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_get_str = gmpz_get_str_type( ( libgmp_lib.undecorated_names["extern char * __gmpz_get_str(char * arg0, int arg1, mpz_srcptr arg2) [free function]"], libgmp_lib ) )
gmpf_init_set_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpf_struct ), ctypes.POINTER( __mpf_struct ) )
-gmpf_init_set = gmpf_init_set_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmpf_init_set(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_init_set = gmpf_init_set_type( ( libgmp_lib.undecorated_names["extern void __gmpf_init_set(mpf_ptr arg0, mpf_srcptr arg1) [free function]"], libgmp_lib ) )
gmpz_get_ui_type = ctypes.CFUNCTYPE( ctypes.c_ulong, ctypes.POINTER( __mpz_struct ) )
-gmpz_get_ui = gmpz_get_ui_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["long unsigned int __gmpz_get_ui(mpz_srcptr __gmp_z) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpz_get_ui = gmpz_get_ui_type( ( libgmp_lib.undecorated_names["long unsigned int __gmpz_get_ui(mpz_srcptr __gmp_z) [free function]"], libgmp_lib ) )
gmpf_get_si_type = ctypes.CFUNCTYPE( ctypes.c_long, ctypes.POINTER( __mpf_struct ) )
-gmpf_get_si = gmpf_get_si_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern long int __gmpf_get_si(mpf_srcptr arg0) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmpf_get_si = gmpf_get_si_type( ( libgmp_lib.undecorated_names["extern long int __gmpf_get_si(mpf_srcptr arg0) [free function]"], libgmp_lib ) )
gmp_randinit_lc_2exp_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __gmp_randstate_struct ), ctypes.POINTER( __mpz_struct ), ctypes.c_ulong, ctypes.c_ulong )
-gmp_randinit_lc_2exp = gmp_randinit_lc_2exp_type( ( libgmp_dot_so_dot_3_dot_4lib.undecorated_names["extern void __gmp_randinit_lc_2exp(__gmp_randstate_struct * arg0, mpz_srcptr arg1, long unsigned int arg2, long unsigned int arg3) [free function]"], libgmp_dot_so_dot_3_dot_4lib ) )
+gmp_randinit_lc_2exp = gmp_randinit_lc_2exp_type( ( libgmp_lib.undecorated_names["extern void __gmp_randinit_lc_2exp(__gmp_randstate_struct * arg0, mpz_srcptr arg1, long unsigned int arg2, long unsigned int ...
[truncated message content] |
|
From: <rom...@us...> - 2009-01-15 13:38:06
|
Revision: 1580
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1580&view=rev
Author: roman_yakovenko
Date: 2009-01-15 13:37:55 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
revert previous commit
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py 2009-01-15 13:35:10 UTC (rev 1579)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py 2009-01-15 13:37:55 UTC (rev 1580)
@@ -5,7 +5,6 @@
"""Contains definition of call policies classes"""
-import types
import algorithm
import python_traits
from pygccxml import declarations
@@ -215,18 +214,11 @@
"""implements code generation for boost::python::return_value_policy call policies"""
def __init__( self, result_converter_generator, base=None):
compound_policy_t.__init__( self, base )
- if not isinstance( result_converter_generator, types.StringTypes ):
- raise RuntimeError( "New value of return_value_policy_t.result_converter_generator type should be string, got( %s )."
- % str( result_converter_generator ) )
-
self._result_converter_generator = result_converter_generator
def _get_result_converter_generator( self ):
return self._result_converter_generator
def _set_result_converter_generator( self, new_result_converter_generator):
- if not isinstance( new_result_converter_generator, types.StringTypes ):
- raise RuntimeError( "New value of return_value_policy_t.result_converter_generator type should be string, got( %s )."
- % str( new_result_converter_generator ) )
self._result_converter_generator = new_result_converter_generator
result_converter_generator = property( _get_result_converter_generator
, _set_result_converter_generator )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 13:35:15
|
Revision: 1579
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1579&view=rev
Author: roman_yakovenko
Date: 2009-01-15 13:35:10 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
better error message for an user mistake
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py 2009-01-15 11:51:47 UTC (rev 1578)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/call_policies.py 2009-01-15 13:35:10 UTC (rev 1579)
@@ -5,6 +5,7 @@
"""Contains definition of call policies classes"""
+import types
import algorithm
import python_traits
from pygccxml import declarations
@@ -214,11 +215,18 @@
"""implements code generation for boost::python::return_value_policy call policies"""
def __init__( self, result_converter_generator, base=None):
compound_policy_t.__init__( self, base )
+ if not isinstance( result_converter_generator, types.StringTypes ):
+ raise RuntimeError( "New value of return_value_policy_t.result_converter_generator type should be string, got( %s )."
+ % str( result_converter_generator ) )
+
self._result_converter_generator = result_converter_generator
def _get_result_converter_generator( self ):
return self._result_converter_generator
def _set_result_converter_generator( self, new_result_converter_generator):
+ if not isinstance( new_result_converter_generator, types.StringTypes ):
+ raise RuntimeError( "New value of return_value_policy_t.result_converter_generator type should be string, got( %s )."
+ % str( new_result_converter_generator ) )
self._result_converter_generator = new_result_converter_generator
result_converter_generator = property( _get_result_converter_generator
, _set_result_converter_generator )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 12:54:43
|
Revision: 1578
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1578&view=rev
Author: roman_yakovenko
Date: 2009-01-15 11:51:47 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
making ctypes tests to work on windows
Modified Paths:
--------------
pyplusplus_dev/unittests/autoconfig.py
pyplusplus_dev/unittests/ctypes_pof_tester.py
Modified: pyplusplus_dev/unittests/autoconfig.py
===================================================================
--- pyplusplus_dev/unittests/autoconfig.py 2009-01-15 08:57:39 UTC (rev 1577)
+++ pyplusplus_dev/unittests/autoconfig.py 2009-01-15 11:51:47 UTC (rev 1578)
@@ -25,7 +25,7 @@
gccxml_version = '__GCCXML_09__'
class cxx_parsers_cfg:
- gccxml = pygccxml.parser.load_gccxml_configuration( 'gccxml.cfg'
+ gccxml = pygccxml.parser.load_gccxml_configuration( os.path.join( this_module_dir_path, 'gccxml.cfg' )
, gccxml_path=gccxml.executable
, working_directory=data_directory
, compiler=pygccxml.utils.native_compiler.get_gccxml_compiler() )
@@ -72,14 +72,14 @@
return os.linesep.join( code )
@staticmethod
- def compile( cmd ) :
+ def compile( cmd, cwd=build_directory ) :
print '\n', cmd
process = subprocess.Popen( args=cmd
, shell=True
, stdin=subprocess.PIPE
, stdout=subprocess.PIPE
, stderr=subprocess.STDOUT
- , cwd=this_module_dir_path )
+ , cwd=cwd )
process.stdin.close()
while process.poll() is None:
Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py
===================================================================
--- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 08:57:39 UTC (rev 1577)
+++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 11:51:47 UTC (rev 1578)
@@ -58,7 +58,7 @@
if self.base_name in sys.modules:
return sys.modules[ self.base_name ]
- autoconfig.scons_config.compile( self.__build_scons_cmd() )
+ autoconfig.scons_config.compile( self.__build_scons_cmd(), cwd=autoconfig.this_module_dir_path )
mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml )
self.customize( mb )
mb.build_code_creator( self.library_file )
@@ -146,7 +146,7 @@
udt = self.module_ref.create()
self.failUnless( 1977 == self.module_ref.read_user_data(udt) )
self.module_ref.destroy( udt )
-
+
class include_algorithm_tester_t( ctypes_base_tester_t ):
def __init__( self, *args, **keywd ):
ctypes_base_tester_t.__init__( self, 'include_algorithm', *args, **keywd )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 08:57:42
|
Revision: 1577
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1577&view=rev
Author: roman_yakovenko
Date: 2009-01-15 08:57:39 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
making ctypes testers to work on windows with python 2.5 and visual studio 2003
Modified Paths:
--------------
pyplusplus_dev/unittests/autoconfig.py
pyplusplus_dev/unittests/ctypes_pof_tester.py
pyplusplus_dev/unittests/sconstruct
Modified: pyplusplus_dev/unittests/autoconfig.py
===================================================================
--- pyplusplus_dev/unittests/autoconfig.py 2009-01-15 08:39:29 UTC (rev 1576)
+++ pyplusplus_dev/unittests/autoconfig.py 2009-01-15 08:57:39 UTC (rev 1577)
@@ -22,24 +22,22 @@
import pygccxml
-compiler = pygccxml.utils.native_compiler.get_gccxml_compiler()
-print 'GCCXML configured to simulate compiler ', compiler
gccxml_version = '__GCCXML_09__'
+
class cxx_parsers_cfg:
- keywd = { 'working_directory' : data_directory
- , 'define_symbols' : [ gccxml_version ]
- , 'compiler' : compiler
- , 'gccxml_path': gccxml.executable }
+ gccxml = pygccxml.parser.load_gccxml_configuration( 'gccxml.cfg'
+ , gccxml_path=gccxml.executable
+ , working_directory=data_directory
+ , compiler=pygccxml.utils.native_compiler.get_gccxml_compiler() )
+ gccxml.define_symbols.append( gccxml_version )
if 'win' in sys.platform:
- keywd['define_symbols'].append( '__PYGCCXML_%s__' % compiler.upper() )
- if 'msvc9' == compiler:
- keywd['define_symbols'].append( '_HAS_TR1=0' )
+ gccxml.define_symbols.append( '__PYGCCXML_%s__' % gccxml.compiler.upper() )
+ if 'msvc9' == gccxml.compiler:
+ gccxml.define_symbols.append( '_HAS_TR1=0' )
- gccxml = pygccxml.parser.gccxml_configuration_t( **keywd )
+print 'GCCXML configured to simulate compiler ', cxx_parsers_cfg.gccxml.compiler
-
-
class scons_config:
libs = []
libpath = [ python.libs ] + boost.libs
Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py
===================================================================
--- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 08:39:29 UTC (rev 1576)
+++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-15 08:57:39 UTC (rev 1577)
@@ -48,12 +48,17 @@
def customize(self, mb ):
pass
+ def __build_scons_cmd( self ):
+ cmd = autoconfig.scons.cmd_build + ' ' + self.base_name
+ if autoconfig.cxx_parsers_cfg.gccxml.compiler == 'msvc71':
+ cmd = cmd + ' use_msvc71=True'
+ return cmd
+
def setUp( self ):
if self.base_name in sys.modules:
return sys.modules[ self.base_name ]
- #~ import pdb
- #~ pdb.set_trace()
- autoconfig.scons_config.compile( autoconfig.scons.cmd_build + ' ' + self.base_name )
+
+ autoconfig.scons_config.compile( self.__build_scons_cmd() )
mb = ctypes_module_builder_t( [self.header], self.symbols_file, autoconfig.cxx_parsers_cfg.gccxml )
self.customize( mb )
mb.build_code_creator( self.library_file )
@@ -150,7 +155,7 @@
self.failUnless( mb.global_ns.class_( 'io_marker_t' ).ignore == False )
def test(self):
- self.failUnless( mb.module_ref.io_marker_t )
+ self.failUnless( self.module_ref.io_marker_t )
class anonymous_tester_t( ctypes_base_tester_t ):
def __init__( self, *args, **keywd ):
@@ -166,12 +171,12 @@
def create_suite():
suite = unittest.TestSuite()
- #~ if 'win' in sys.platform:
- #~ suite.addTest( unittest.makeSuite(pof_tester_t))
- #~ suite.addTest( unittest.makeSuite(issues_tester_t))
- #~ suite.addTest( unittest.makeSuite(enums_tester_t))
- #~ suite.addTest( unittest.makeSuite(opaque_tester_t))
- #~ suite.addTest( unittest.makeSuite(include_algorithm_tester_t))
+ if 'win' in sys.platform:
+ suite.addTest( unittest.makeSuite(pof_tester_t))
+ suite.addTest( unittest.makeSuite(issues_tester_t))
+ suite.addTest( unittest.makeSuite(enums_tester_t))
+ suite.addTest( unittest.makeSuite(opaque_tester_t))
+ suite.addTest( unittest.makeSuite(include_algorithm_tester_t))
suite.addTest( unittest.makeSuite(anonymous_tester_t))
return suite
Modified: pyplusplus_dev/unittests/sconstruct
===================================================================
--- pyplusplus_dev/unittests/sconstruct 2009-01-15 08:39:29 UTC (rev 1576)
+++ pyplusplus_dev/unittests/sconstruct 2009-01-15 08:57:39 UTC (rev 1577)
@@ -1,8 +1,12 @@
import os
import sys
-env = Environment()
+opts = Options( "options.txt", ARGUMENTS )
+opts.Add( BoolOption( 'use_msvc71', 'use msvc71 compiler', False ) )
+
+env = Environment(options=opts)
+
if 'win32' in sys.platform:
if os.path.exists( r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib' ):
env.Append( LIBPATH=[ r'E:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib'
@@ -13,6 +17,12 @@
env.AppendUnique( CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] )
env.AppendUnique( LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] )
+ if env[ 'use_msvc71' ]:
+ env['MSVS'] = {'VERSION': '7.1'}
+ env['MSVS_VERSION'] = '7.1'
+ Tool('msvc')(env)
+
+
env.AppendUnique( CPPPATH=['#data'] )
scripts = [ 'pof', 'issues', 'enums', 'opaque', 'include_algorithm', 'anonymous' ]
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 08:39:35
|
Revision: 1576
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1576&view=rev
Author: roman_yakovenko
Date: 2009-01-15 08:39:29 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
removing dead code ( reference to pdb )
Modified Paths:
--------------
pygccxml_dev/unittests/type_traits_tester.py
pyplusplus_dev/pyplusplus/code_creators/fields_definition.py
pyplusplus_dev/unittests/member_variables_tester.py
pyplusplus_dev/unittests/unions_tester.py
Modified: pygccxml_dev/unittests/type_traits_tester.py
===================================================================
--- pygccxml_dev/unittests/type_traits_tester.py 2009-01-15 07:06:24 UTC (rev 1575)
+++ pygccxml_dev/unittests/type_traits_tester.py 2009-01-15 08:39:29 UTC (rev 1576)
@@ -45,9 +45,6 @@
elif isinstance( decl, declarations.calldef_t ) and decl.name.startswith( 'test_' ):
continue
else:
- #~ if 'mf1_type_const_volatile_t' in decl.name:
- #~ import pdb
- #~ pdb.set_trace()
self.failUnless( controller( decl )
, 'for type "%s" the answer to the question "%s" should be True'
% ( decl.decl_string, ns_name ) )
Modified: pyplusplus_dev/pyplusplus/code_creators/fields_definition.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-15 07:06:24 UTC (rev 1575)
+++ pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-15 08:39:29 UTC (rev 1576)
@@ -30,10 +30,7 @@
return False
def _create_impl(self):
- result = []
- #~ import pdb
- #~ pdb.set_trace()
-
+ result = []
anonymous_vars = self.declaration.vars( self.has_unnamed_type, recursive=False, allow_empty=True )
if anonymous_vars:
formated_vars = []
Modified: pyplusplus_dev/unittests/member_variables_tester.py
===================================================================
--- pyplusplus_dev/unittests/member_variables_tester.py 2009-01-15 07:06:24 UTC (rev 1575)
+++ pyplusplus_dev/unittests/member_variables_tester.py 2009-01-15 08:39:29 UTC (rev 1576)
@@ -8,7 +8,6 @@
import ctypes
import unittest
import fundamental_tester_base
-import pdb
class tester_t(fundamental_tester_base.fundamental_tester_base_t):
EXTENSION_NAME = 'member_variables'
@@ -92,7 +91,6 @@
image = module.image_t()
- #pdb.set_trace()
data_type = ctypes.POINTER( ctypes.c_int )
data = data_type.from_address( image.data )
for j in range(5):
Modified: pyplusplus_dev/unittests/unions_tester.py
===================================================================
--- pyplusplus_dev/unittests/unions_tester.py 2009-01-15 07:06:24 UTC (rev 1575)
+++ pyplusplus_dev/unittests/unions_tester.py 2009-01-15 08:39:29 UTC (rev 1576)
@@ -5,7 +5,6 @@
import os
import sys
-import pdb
import ctypes
import unittest
import fundamental_tester_base
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 07:06:31
|
Revision: 1575
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1575&view=rev
Author: roman_yakovenko
Date: 2009-01-15 07:06:24 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
update load_gccxml_configuration functionality and integrate it with tests
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/config.py
pygccxml_dev/unittests/autoconfig.py
pygccxml_dev/unittests/undname_creator_tester.py
Modified: pygccxml_dev/pygccxml/parser/config.py
===================================================================
--- pygccxml_dev/pygccxml/parser/config.py 2009-01-15 07:04:23 UTC (rev 1574)
+++ pygccxml_dev/pygccxml/parser/config.py 2009-01-15 07:06:24 UTC (rev 1575)
@@ -194,7 +194,7 @@
config_t = gccxml_configuration_t #backward computability
-def load_gccxml_configuration( configuration ):
+def load_gccxml_configuration( configuration, **defaults ):
"""loads GCC-XML configuration from a file
Configuration file sceleton:
@@ -230,7 +230,16 @@
gccxml_cfg = gccxml_configuration_t()
if not parser.has_section( 'gccxml' ):
return gccxml_cfg
+
+ values = defaults
+ if not values:
+ values = {}
+
for name, value in parser.items( 'gccxml' ):
+ if value.strip():
+ values[ name ] = value
+
+ for name, value in values.iteritems():
value = value.strip()
if name == 'gccxml_path':
gccxml_cfg.gccxml_path = value
Modified: pygccxml_dev/unittests/autoconfig.py
===================================================================
--- pygccxml_dev/unittests/autoconfig.py 2009-01-15 07:04:23 UTC (rev 1574)
+++ pygccxml_dev/unittests/autoconfig.py 2009-01-15 07:06:24 UTC (rev 1575)
@@ -27,77 +27,19 @@
import pygccxml
print 'unittests will run on DEVELOPMENT version'
-compiler = pygccxml.utils.native_compiler.get_gccxml_compiler()
-print 'GCCXML configured to simulate compiler ', compiler
pygccxml.declarations.class_t.USE_DEMANGLED_AS_NAME = True
class cxx_parsers_cfg:
- keywd = { 'working_directory' : data_directory
- , 'define_symbols' : [ gccxml_version ]
- , 'compiler' : compiler }
+ gccxml = pygccxml.parser.load_gccxml_configuration( 'gccxml.cfg'
+ , gccxml_path=gccxml_path
+ , working_directory=data_directory
+ , compiler=pygccxml.utils.native_compiler.get_gccxml_compiler() )
+ gccxml.define_symbols.append( gccxml_version )
if 'win' in sys.platform:
- keywd['define_symbols'].append( '__PYGCCXML_%s__' % compiler.upper() )
- if 'msvc9' == compiler:
- keywd['define_symbols'].append( '_HAS_TR1=0' )
+ gccxml.define_symbols.append( '__PYGCCXML_%s__' % gccxml.compiler.upper() )
+ if 'msvc9' == gccxml.compiler:
+ gccxml.define_symbols.append( '_HAS_TR1=0' )
-
- if os.path.exists( os.path.join( gccxml_path, 'gccxml' ) ) \
- or os.path.exists( os.path.join( gccxml_path, 'gccxml.exe' ) ):
- keywd[ 'gccxml_path'] = gccxml_path
- gccxml = pygccxml.parser.gccxml_configuration_t( **keywd )
-
- #~ pdb_loader = None
- #~ if sys.platform == 'win32':
- #~ from pygccxml.msvc import mspdb
- #~ pdb_file = os.path.join( data_directory, 'msvc_build', 'Debug', 'msvc_build.pdb' )
- #~ if os.path.exists( pdb_file ):
- #~ pdb_loader = mspdb.decl_loader_t( pdb_file )
- #~ pdb_loader.read()
-
-#~ def get_pdb_global_ns():
- #~ if cxx_parsers_cfg.pdb_loader:
- #~ return cxx_parsers_cfg.pdb_loader.global_ns
-
-#~ try:
- #~ import pydsc
- #~ pydsc.include( r'D:\pygccxml_sources\sources\pygccxml_dev' )
- #~ pydsc.ignore( [ 'Yakovenko'
- #~ , 'Bierbaum'
- #~ , 'org'
- #~ , 'http'
- #~ , 'bool'
- #~ , 'str'
- #~ , 'www'
- #~ , 'param'
- #~ , 'txt'
- #~ , 'decl'
- #~ , 'decls'
- #~ , 'namespace'
- #~ , 'namespaces'
- #~ , 'enum'
- #~ , 'const'
- #~ , 'GCC'
- #~ , 'xcc'
- #~ , 'TODO'
- #~ , 'typedef'
- #~ , 'os'
- #~ , 'normcase'
- #~ , 'normpath'
- #~ , 'scopedef'
- #~ , 'ira'#part of Matthias mail address
- #~ , 'uka'#part of Matthias mail address
- #~ , 'de'#part of Matthias mail address
- #~ , 'dat'#file extension of directory cache
- #~ , 'config'#parameter description
- #~ , 'gccxml'#parameter description
- #~ , 'Py++'
- #~ , 'pygccxml'
- #~ , 'calldef'
- #~ , 'XXX'
- #~ , 'wstring'
- #~ , 'py'
- #~ ] )
-#~ except ImportError:
- #~ pass
+print 'GCCXML configured to simulate compiler ', cxx_parsers_cfg.gccxml.compiler
Modified: pygccxml_dev/unittests/undname_creator_tester.py
===================================================================
--- pygccxml_dev/unittests/undname_creator_tester.py 2009-01-15 07:04:23 UTC (rev 1574)
+++ pygccxml_dev/unittests/undname_creator_tester.py 2009-01-15 07:06:24 UTC (rev 1575)
@@ -41,7 +41,7 @@
#typeinfo name for number_t
, '_ZTI8number_t'
, '_ZTV8number_t'
- , '_ZTS8number_t'
+ , '_ZTS8number_t'
#it seems that gccxml doesn't report this one
, '_ZNSt12auto_ptr_refI8number_tEC1EPS0_'
#the following are some global symbols
@@ -65,7 +65,7 @@
tester_t.global_ns = declarations.get_global_namespace( decls )
tester_t.global_ns.init_optimizer()
- process = subprocess.Popen( args='scons msvc_compiler=%s' % autoconfig.compiler
+ process = subprocess.Popen( args='scons msvc_compiler=%s' % autoconfig.cxx_parsers_cfg.gccxml.compiler
, shell=True
, stdin=subprocess.PIPE
, stdout=subprocess.PIPE
@@ -94,7 +94,7 @@
symbols, parser = binary_parsers.merge_information( self.global_ns, fname, runs_under_unittest=True )
self.failUnless( len(symbols) == expected_symbols
, "The expected symbols number(%d), is different frm the actual one(%d)"
- % ( expected_symbols, len(symbols) ) )
+ % ( expected_symbols, len(symbols) ) )
self.failUnless( 'identity' in symbols )
blob_names = set()
@@ -118,7 +118,9 @@
blob_names.difference_update(common)
if not self.known_issues.issubset( blob_names ):
blob_names.difference_update( self.known_issues )
- msg = [ "undecorate_decl - failed" ]
+ if sys.version_info[0] == 2 and sys.version_info[1] == 5:
+ if 0 == len(decl_blob_names) and 0 ==len(blob_names):
+ return
msg.append( "decl_blob_names :" )
for i in decl_blob_names:
msg.append( '\t==>%s<==' % i )
@@ -130,11 +132,11 @@
def test_map_file( self ):
if 'win32' in sys.platform:
- self.__tester_impl( self.map_file )
+ self.__tester_impl( self.map_file, 71 )
def test_dll_file( self ):
if 'win32' in sys.platform:
- self.__tester_impl( self.dll_file )
+ self.__tester_impl( self.dll_file, 71 )
def test_z_compare_parsers( self ):
if 'win32' not in sys.platform:
@@ -159,7 +161,7 @@
if 'linux2' in sys.platform:
self.__tester_impl( self.so_file, 64 )
- def dont_test_print( self ):
+ def dont_test_print( self ):
"""primary used for debugging"""
symbols, parser = binary_parsers.merge_information( self.global_ns, self.so_file, runs_under_unittest=True )
for f in self.global_ns.calldefs( allow_empty=True, recursive=True ):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-15 07:04:33
|
Revision: 1574
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1574&view=rev
Author: roman_yakovenko
Date: 2009-01-15 07:04:23 +0000 (Thu, 15 Jan 2009)
Log Message:
-----------
replace md5 with hashlib module (removes deprecation warnings)
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/directory_cache.py
Modified: pygccxml_dev/pygccxml/parser/directory_cache.py
===================================================================
--- pygccxml_dev/pygccxml/parser/directory_cache.py 2009-01-14 19:30:12 UTC (rev 1573)
+++ pygccxml_dev/pygccxml/parser/directory_cache.py 2009-01-15 07:04:23 UTC (rev 1574)
@@ -14,7 +14,7 @@
argument of the L{parse()} function.
"""
-import os, os.path, gzip, md5
+import os, os.path, gzip, hashlib
import cPickle
import declarations_cache
@@ -27,7 +27,7 @@
This class is a helper class for the directory_cache_t class.
"""
-
+
def __init__( self, filesigs, configsig ):
"""Constructor.
@@ -42,8 +42,8 @@
def __setstate__(self, state):
self.filesigs, self.configsig = state
-
+
class directory_cache_t ( declarations_cache.cache_base_t ):
"""Cache class that stores its data as multiple files inside a directory.
@@ -103,7 +103,7 @@
def flush(self):
"""Save the index table to disk."""
- self._save()
+ self._save()
# self.__filename_rep._dump()
def update(self, source_file, configuration, declarations, included_files):
@@ -152,7 +152,7 @@
cachefilename = self._create_cache_filename(source_file)
self._write_file(cachefilename, declarations)
-
+
def cached_value(self, source_file, configuration):
"""Return the cached declarations or None.
@@ -167,7 +167,7 @@
key = self._create_cache_key(source_file)
entry = self.__index.get(key)
if entry==None:
-# print "CACHE: %s: Not cached"%source_file
+# print "CACHE: %s: Not cached"%source_file
return None
# Check if the entry is still valid. It is not valid if:
@@ -220,7 +220,7 @@
else:
self.__index = {}
self.__filename_rep = filename_repository_t(self.__md5_sigs)
-
+
self.__modified_flag = False
def _save(self):
@@ -267,8 +267,8 @@
else:
f = file(filename, "wb")
cPickle.dump(data, f, cPickle.HIGHEST_PROTOCOL)
- f.close()
-
+ f.close()
+
def _remove_entry(self, source_file, key):
"""Remove an entry from the cache.
@@ -285,7 +285,7 @@
@param key: Key value for the specified header file
@type key: hashable object
"""
-
+
entry = self.__index.get(key)
if entry==None:
return
@@ -340,7 +340,7 @@
@returns: Signature
@rtype: str
"""
- m = md5.new()
+ m = hashlib.md5()
m.update(config.working_directory)
map(lambda p: m.update(p), config.include_paths)
map(lambda p: m.update(p), config.define_symbols)
@@ -349,8 +349,8 @@
return m.digest()
-
+
class filename_entry_t:
"""This is a record stored in the filename_repository_t class.
@@ -368,7 +368,7 @@
self.filename = filename
# Reference count
self.refcount = 0
-
+
# Cached signature value for the file.
# If sig_valid flag is False, the signature still has to be computed,
# otherwise the cached value can be used.
@@ -410,7 +410,7 @@
def __init__( self, md5_sigs ):
"""Constructor.
"""
-
+
# Flag that determines whether the signature is a md5 digest or
# the modification time
# (this flag is passed to the filename_repository_t class)
@@ -433,7 +433,7 @@
"""Acquire a file name and return its id and its signature.
"""
id_ = self.__id_lut.get(name)
- # Is this a new entry?
+ # Is this a new entry?
if id_==None:
# then create one...
id_ = self.__next_id
@@ -447,7 +447,7 @@
entry.inc_ref_count()
return id_, self._get_signature(entry)
-
+
def release_filename(self, id_):
"""Release a file name.
"""
@@ -467,7 +467,7 @@
if entry==None:
raise ValueError, "Invalid filename id_ (%d)"%id_
- # Is the signature already known?
+ # Is the signature already known?
if entry.sig_valid:
# use the cached signature
filesig = entry.signature
@@ -501,7 +501,7 @@
return None
data = f.read()
f.close()
- return md5.new(data).digest()
+ return hashlib.md5(data).digest()
else:
# return file modification date...
try:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-14 19:30:17
|
Revision: 1573
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1573&view=rev
Author: roman_yakovenko
Date: 2009-01-14 19:30:12 +0000 (Wed, 14 Jan 2009)
Log Message:
-----------
making gmp example to work
Modified Paths:
--------------
pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
pyplusplus_dev/unittests/ctypes_pof_tester.py
pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.cpp
pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.h
Modified: pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-14 15:14:35 UTC (rev 1572)
+++ pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-14 19:30:12 UTC (rev 1573)
@@ -25,12 +25,12 @@
for f in mb.calldefs( lambda x: x.name.startswith('__gmp') ):
f.alias = f.name[2:]
-#there is a bug in "include" algorithm - I need to wrote DFS
+#there is a bug in "include" algorithm - I need to wrote BFS
mb.class_( '_IO_FILE' ).opaque = True
+#another dependency bug - internal union is not included
+mb.class_( '__gmp_randstate_struct' ).include()
-#include should work as expected - include only exported function
-#~ mb.print_declarations()
mb.build_code_creator( project_env.gmp.shared_library_file )
mb.write_module( os.path.join( project_env.gmp.generated_code_dir, '__init__.py' ) )
Modified: pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-14 15:14:35 UTC (rev 1572)
+++ pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-14 19:30:12 UTC (rev 1573)
@@ -617,217 +617,22 @@
"__gmpf_init_set_str" : "extern int __gmpf_init_set_str(mpf_ptr arg0, char const * arg1, int arg2) [free function]",
}
-class std:
- """namespace std"""
-
-class __gnu_cxx:
- """namespace __gnu_cxx"""
-
-class __cxxabiv1:
- """namespace __cxxabiv1"""
-
class gmp_randalg_t( ctypes_utils.Enumeration ):
GMP_RAND_ALG_DEFAULT = 0
GMP_RAND_ALG_LC = 0
-class (ctypes.Structure):
- """class """
-
- class (ctypes.Structure):
- """class """
-
-class _G_fpos64_t(ctypes.Structure):
- """class _G_fpos64_t"""
-
-class _G_fpos_t(ctypes.Structure):
- """class _G_fpos_t"""
-
class _IO_FILE(ctypes.Structure):
"""class _IO_FILE"""
def __init__( self, *args, **keywd ):
raise RuntimeError( "Unable to create instance of opaque type." )
-class _IO_cookie_io_functions_t(ctypes.Structure):
- """class _IO_cookie_io_functions_t"""
-
-class _IO_marker(ctypes.Structure):
- """class _IO_marker"""
-
-class __base_class_type_info_pseudo(ctypes.Structure):
- """class __base_class_type_info_pseudo"""
-
-class __class_type_info_pseudo(ctypes.Structure):
- """class __class_type_info_pseudo"""
-
-class __forced_unwind(ctypes.Structure):
- """class __cxxabiv1::__forced_unwind"""
-
-
-__cxxabiv1.__forced_unwind = __forced_unwind
-
-class __fsid_t(ctypes.Structure):
- """class __fsid_t"""
-
class __gmp_randstate_struct(ctypes.Structure):
"""class __gmp_randstate_struct"""
- class (ctypes.Structure):
+ class _(ctypes.Union):
"""class __gmp_randstate_struct"""
-class __add_unsigned_less__char__greater_(ctypes.Structure):
- """class __gnu_cxx::__add_unsigned< char >"""
-
-
-__gnu_cxx.__add_unsigned_less__char__greater_ = __add_unsigned_less__char__greater_
-
-class __add_unsigned_less__int__greater_(ctypes.Structure):
- """class __gnu_cxx::__add_unsigned< int >"""
-
-
-__gnu_cxx.__add_unsigned_less__int__greater_ = __add_unsigned_less__int__greater_
-
-class __add_unsigned_less__long_long__greater_(ctypes.Structure):
- """class __gnu_cxx::__add_unsigned< long long >"""
-
-
-__gnu_cxx.__add_unsigned_less__long_long__greater_ = __add_unsigned_less__long_long__greater_
-
-class __add_unsigned_less__long__greater_(ctypes.Structure):
- """class __gnu_cxx::__add_unsigned< long >"""
-
-
-__gnu_cxx.__add_unsigned_less__long__greater_ = __add_unsigned_less__long__greater_
-
-class __add_unsigned_less__short__greater_(ctypes.Structure):
- """class __gnu_cxx::__add_unsigned< short >"""
-
-
-__gnu_cxx.__add_unsigned_less__short__greater_ = __add_unsigned_less__short__greater_
-
-class __add_unsigned_less__signed_char__greater_(ctypes.Structure):
- """class __gnu_cxx::__add_unsigned< signed char >"""
-
-
-__gnu_cxx.__add_unsigned_less__signed_char__greater_ = __add_unsigned_less__signed_char__greater_
-
-class __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__int__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__int__greater___greater_(ctypes.Structure):
- """class __gnu_cxx::__conditional_type< true, __gnu_cxx::__numeric_traits_integer< int >, __gnu_cxx::__numeric_traits_floating< int > >"""
-
-
-__gnu_cxx.__conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__int__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__int__greater___greater_ = __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__int__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__int__greater___greater_
-
-class __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__short__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__short__greater___greater_(ctypes.Structure):
- """class __gnu_cxx::__conditional_type< true, __gnu_cxx::__numeric_traits_integer< short >, __gnu_cxx::__numeric_traits_floating< short > >"""
-
-
-__gnu_cxx.__conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__short__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__short__greater___greater_ = __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__short__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__short__greater___greater_
-
-class __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__unsigned_long__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__unsigned_long__greater___greater_(ctypes.Structure):
- """class __gnu_cxx::__conditional_type< true, __gnu_cxx::__numeric_traits_integer< unsigned long >, __gnu_cxx::__numeric_traits_floating< unsigned long > >"""
-
-
-__gnu_cxx.__conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__unsigned_long__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__unsigned_long__greater___greater_ = __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__unsigned_long__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__unsigned_long__greater___greater_
-
-class __conditional_type_less__true_comma__unsigned_long_comma__unsigned_long_long__greater_(ctypes.Structure):
- """class __gnu_cxx::__conditional_type< true, unsigned long, unsigned long long >"""
-
-
-__gnu_cxx.__conditional_type_less__true_comma__unsigned_long_comma__unsigned_long_long__greater_ = __conditional_type_less__true_comma__unsigned_long_comma__unsigned_long_long__greater_
-
-class __type(ctypes.Structure):
- """class __gnu_cxx::__numeric_traits_integer< int >"""
-
-
-__gnu_cxx.__type = __type
-
-class __numeric_traits_less__int__greater_(ctypes.Structure):
- """class __gnu_cxx::__numeric_traits< int >"""
-
-
-__gnu_cxx.__numeric_traits_less__int__greater_ = __numeric_traits_less__int__greater_
-
-class __type(ctypes.Structure):
- """class __gnu_cxx::__numeric_traits_integer< short >"""
-
-
-__gnu_cxx.__type = __type
-
-class __numeric_traits_less__short__greater_(ctypes.Structure):
- """class __gnu_cxx::__numeric_traits< short >"""
-
-
-__gnu_cxx.__numeric_traits_less__short__greater_ = __numeric_traits_less__short__greater_
-
-class __type(ctypes.Structure):
- """class __gnu_cxx::__numeric_traits_integer< unsigned long >"""
-
-
-__gnu_cxx.__type = __type
-
-class __numeric_traits_less__unsigned_long__greater_(ctypes.Structure):
- """class __gnu_cxx::__numeric_traits< unsigned long >"""
-
-
-__gnu_cxx.__numeric_traits_less__unsigned_long__greater_ = __numeric_traits_less__unsigned_long__greater_
-
-class __remove_unsigned_less__char__greater_(ctypes.Structure):
- """class __gnu_cxx::__remove_unsigned< char >"""
-
-
-__gnu_cxx.__remove_unsigned_less__char__greater_ = __remove_unsigned_less__char__greater_
-
-class __remove_unsigned_less__unsigned_char__greater_(ctypes.Structure):
- """class __gnu_cxx::__remove_unsigned< unsigned char >"""
-
-
-__gnu_cxx.__remove_unsigned_less__unsigned_char__greater_ = __remove_unsigned_less__unsigned_char__greater_
-
-class __remove_unsigned_less__unsigned_int__greater_(ctypes.Structure):
- """class __gnu_cxx::__remove_unsigned< unsigned int >"""
-
-
-__gnu_cxx.__remove_unsigned_less__unsigned_int__greater_ = __remove_unsigned_less__unsigned_int__greater_
-
-class __remove_unsigned_less__unsigned_long_long__greater_(ctypes.Structure):
- """class __gnu_cxx::__remove_unsigned< unsigned long long >"""
-
-
-__gnu_cxx.__remove_unsigned_less__unsigned_long_long__greater_ = __remove_unsigned_less__unsigned_long_long__greater_
-
-class __remove_unsigned_less__unsigned_long__greater_(ctypes.Structure):
- """class __gnu_cxx::__remove_unsigned< unsigned long >"""
-
-
-__gnu_cxx.__remove_unsigned_less__unsigned_long__greater_ = __remove_unsigned_less__unsigned_long__greater_
-
-class __remove_unsigned_less__unsigned_short__greater_(ctypes.Structure):
- """class __gnu_cxx::__remove_unsigned< unsigned short >"""
-
-
-__gnu_cxx.__remove_unsigned_less__unsigned_short__greater_ = __remove_unsigned_less__unsigned_short__greater_
-
-class new_allocator_less__char__greater_(ctypes.Structure):
- """class __gnu_cxx::new_allocator< char >"""
-
-
-__gnu_cxx.new_allocator_less__char__greater_ = new_allocator_less__char__greater_
-
-class new_allocator_less__wchar_t__greater_(ctypes.Structure):
- """class __gnu_cxx::new_allocator< wchar_t >"""
-
-
-__gnu_cxx.new_allocator_less__wchar_t__greater_ = new_allocator_less__wchar_t__greater_
-
-class __locale_struct(ctypes.Structure):
- """class __locale_struct"""
-
-class __mbstate_t(ctypes.Structure):
- """class __mbstate_t"""
-
- class (ctypes.Structure):
- """class __mbstate_t"""
-
class __mpf_struct(ctypes.Structure):
"""class __mpf_struct"""
@@ -837,1494 +642,6 @@
class __mpz_struct(ctypes.Structure):
"""class __mpz_struct"""
-class __pthread_cleanup_class(ctypes.Structure):
- """class __pthread_cleanup_class"""
-
-class __pthread_cleanup_frame(ctypes.Structure):
- """class __pthread_cleanup_frame"""
-
-class __pthread_internal_slist(ctypes.Structure):
- """class __pthread_internal_slist"""
-
-class __sched_param(ctypes.Structure):
- """class __sched_param"""
-
-class __si_class_type_info_pseudo(ctypes.Structure):
- """class __si_class_type_info_pseudo"""
-
-class __sigset_t(ctypes.Structure):
- """class __sigset_t"""
-
-class __type_info_pseudo(ctypes.Structure):
- """class __type_info_pseudo"""
-
-class __vmi_class_type_info_pseudo1(ctypes.Structure):
- """class __vmi_class_type_info_pseudo1"""
-
-class __vmi_class_type_info_pseudo2(ctypes.Structure):
- """class __vmi_class_type_info_pseudo2"""
-
-class _pthread_cleanup_buffer(ctypes.Structure):
- """class _pthread_cleanup_buffer"""
-
-class cpu_set_t(ctypes.Structure):
- """class cpu_set_t"""
-
-class itimerspec(ctypes.Structure):
- """class itimerspec"""
-
-class lconv(ctypes.Structure):
- """class lconv"""
-
-class pthread_attr_t(ctypes.Structure):
- """class pthread_attr_t"""
-
-class pthread_barrier_t(ctypes.Structure):
- """class pthread_barrier_t"""
-
-class pthread_barrierattr_t(ctypes.Structure):
- """class pthread_barrierattr_t"""
-
-class pthread_cond_t(ctypes.Structure):
- """class pthread_cond_t"""
-
- class (ctypes.Structure):
- """class pthread_cond_t"""
-
-class pthread_condattr_t(ctypes.Structure):
- """class pthread_condattr_t"""
-
-class pthread_mutex_t(ctypes.Structure):
- """class pthread_mutex_t"""
-
- class __pthread_mutex_s(ctypes.Structure):
- """class pthread_mutex_t::__pthread_mutex_s"""
-
- class (ctypes.Structure):
- """class pthread_mutex_t::__pthread_mutex_s"""
-
-class pthread_mutexattr_t(ctypes.Structure):
- """class pthread_mutexattr_t"""
-
-class pthread_rwlock_t(ctypes.Structure):
- """class pthread_rwlock_t"""
-
- class (ctypes.Structure):
- """class pthread_rwlock_t"""
-
-class pthread_rwlockattr_t(ctypes.Structure):
- """class pthread_rwlockattr_t"""
-
-class sched_param(ctypes.Structure):
- """class sched_param"""
-
-class __copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_(ctypes.Structure):
- """class std::__copy_move< false, false, std::random_access_iterator_tag >"""
-
-
-std.__copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_ = __copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_
-
-class __copy_move_backward_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_(ctypes.Structure):
- """class std::__copy_move_backward< false, false, std::random_access_iterator_tag >"""
-
-
-std.__copy_move_backward_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_ = __copy_move_backward_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_
-
-class ctype_base(ctypes.Structure):
- """class std::ctype_base"""
-
-
-std.ctype_base = ctype_base
-
-class __ctype_abstract_base_less__wchar_t__greater_(ctypes.Structure):
- """class std::__ctype_abstract_base< wchar_t >"""
-
-
-std.__ctype_abstract_base_less__wchar_t__greater_ = __ctype_abstract_base_less__wchar_t__greater_
-
-class __equal_less__true__greater_(ctypes.Structure):
- """class std::__equal< true >"""
-
-
-std.__equal_less__true__greater_ = __equal_less__true__greater_
-
-class __false_type(ctypes.Structure):
- """class std::__false_type"""
-
-
-std.__false_type = __false_type
-
-class __is_byte_less__char__greater_(ctypes.Structure):
- """class std::__is_byte< char >"""
-
-
-std.__is_byte_less__char__greater_ = __is_byte_less__char__greater_
-
-class __is_byte_less__signed_char__greater_(ctypes.Structure):
- """class std::__is_byte< signed char >"""
-
-
-std.__is_byte_less__signed_char__greater_ = __is_byte_less__signed_char__greater_
-
-class __is_byte_less__unsigned_char__greater_(ctypes.Structure):
- """class std::__is_byte< unsigned char >"""
-
-
-std.__is_byte_less__unsigned_char__greater_ = __is_byte_less__unsigned_char__greater_
-
-class __is_char_less__char__greater_(ctypes.Structure):
- """class std::__is_char< char >"""
-
-
-std.__is_char_less__char__greater_ = __is_char_less__char__greater_
-
-class __is_char_less__wchar_t__greater_(ctypes.Structure):
- """class std::__is_char< wchar_t >"""
-
-
-std.__is_char_less__wchar_t__greater_ = __is_char_less__wchar_t__greater_
-
-class __is_floating_less__double__greater_(ctypes.Structure):
- """class std::__is_floating< double >"""
-
-
-std.__is_floating_less__double__greater_ = __is_floating_less__double__greater_
-
-class __is_floating_less__float__greater_(ctypes.Structure):
- """class std::__is_floating< float >"""
-
-
-std.__is_floating_less__float__greater_ = __is_floating_less__float__greater_
-
-class __is_floating_less__long_double__greater_(ctypes.Structure):
- """class std::__is_floating< long double >"""
-
-
-std.__is_floating_less__long_double__greater_ = __is_floating_less__long_double__greater_
-
-class __is_integer_less__bool__greater_(ctypes.Structure):
- """class std::__is_integer< bool >"""
-
-
-std.__is_integer_less__bool__greater_ = __is_integer_less__bool__greater_
-
-class __is_integer_less__char__greater_(ctypes.Structure):
- """class std::__is_integer< char >"""
-
-
-std.__is_integer_less__char__greater_ = __is_integer_less__char__greater_
-
-class __is_integer_less__int__greater_(ctypes.Structure):
- """class std::__is_integer< int >"""
-
-
-std.__is_integer_less__int__greater_ = __is_integer_less__int__greater_
-
-class __is_integer_less__long_long__greater_(ctypes.Structure):
- """class std::__is_integer< long long >"""
-
-
-std.__is_integer_less__long_long__greater_ = __is_integer_less__long_long__greater_
-
-class __is_integer_less__long__greater_(ctypes.Structure):
- """class std::__is_integer< long >"""
-
-
-std.__is_integer_less__long__greater_ = __is_integer_less__long__greater_
-
-class __is_integer_less__short__greater_(ctypes.Structure):
- """class std::__is_integer< short >"""
-
-
-std.__is_integer_less__short__greater_ = __is_integer_less__short__greater_
-
-class __is_integer_less__signed_char__greater_(ctypes.Structure):
- """class std::__is_integer< signed char >"""
-
-
-std.__is_integer_less__signed_char__greater_ = __is_integer_less__signed_char__greater_
-
-class __is_integer_less__unsigned_char__greater_(ctypes.Structure):
- """class std::__is_integer< unsigned char >"""
-
-
-std.__is_integer_less__unsigned_char__greater_ = __is_integer_less__unsigned_char__greater_
-
-class __is_integer_less__unsigned_int__greater_(ctypes.Structure):
- """class std::__is_integer< unsigned int >"""
-
-
-std.__is_integer_less__unsigned_int__greater_ = __is_integer_less__unsigned_int__greater_
-
-class __is_integer_less__unsigned_long_long__greater_(ctypes.Structure):
- """class std::__is_integer< unsigned long long >"""
-
-
-std.__is_integer_less__unsigned_long_long__greater_ = __is_integer_less__unsigned_long_long__greater_
-
-class __is_integer_less__unsigned_long__greater_(ctypes.Structure):
- """class std::__is_integer< unsigned long >"""
-
-
-std.__is_integer_less__unsigned_long__greater_ = __is_integer_less__unsigned_long__greater_
-
-class __is_integer_less__unsigned_short__greater_(ctypes.Structure):
- """class std::__is_integer< unsigned short >"""
-
-
-std.__is_integer_less__unsigned_short__greater_ = __is_integer_less__unsigned_short__greater_
-
-class __is_integer_less__wchar_t__greater_(ctypes.Structure):
- """class std::__is_integer< wchar_t >"""
-
-
-std.__is_integer_less__wchar_t__greater_ = __is_integer_less__wchar_t__greater_
-
-class __is_void_less__void__greater_(ctypes.Structure):
- """class std::__is_void< void >"""
-
-
-std.__is_void_less__void__greater_ = __is_void_less__void__greater_
-
-class __iter_swap_less__true__greater_(ctypes.Structure):
- """class std::__iter_swap< true >"""
-
-
-std.__iter_swap_less__true__greater_ = __iter_swap_less__true__greater_
-
-class __lc_rai_less__std_scope_random_access_iterator_tag_comma__std_scope_random_access_iterator_tag__greater_(ctypes.Structure):
- """class std::__lc_rai< std::random_access_iterator_tag, std::random_access_iterator_tag >"""
-
-
-std.__lc_rai_less__std_scope_random_access_iterator_tag_comma__std_scope_random_access_iterator_tag__greater_ = __lc_rai_less__std_scope_random_access_iterator_tag_comma__std_scope_random_access_iterator_tag__greater_
-
-class __lexicographical_compare_less__true__greater_(ctypes.Structure):
- """class std::__lexicographical_compare< true >"""
-
-
-std.__lexicographical_compare_less__true__greater_ = __lexicographical_compare_less__true__greater_
-
-class __num_base(ctypes.Structure):
- """class std::__num_base"""
-
-
-std.__num_base = __num_base
-
-class __true_type(ctypes.Structure):
- """class std::__true_type"""
-
-
-std.__true_type = __true_type
-
-class __truth_type_less__true__greater_(ctypes.Structure):
- """class std::__truth_type< true >"""
-
-
-std.__truth_type_less__true__greater_ = __truth_type_less__true__greater_
-
-class allocator_less__char__greater_(ctypes.Structure):
- """class std::allocator< char >"""
-
- class rebind_less__char__greater_(ctypes.Structure):
- """class std::allocator< char >::rebind< char >"""
-
-std.allocator_less__char__greater_ = allocator_less__char__greater_
-
-class allocator_less__void__greater_(ctypes.Structure):
- """class std::allocator< void >"""
-
-
-std.allocator_less__void__greater_ = allocator_less__void__greater_
-
-class allocator_less__wchar_t__greater_(ctypes.Structure):
- """class std::allocator< wchar_t >"""
-
- class rebind_less__char__greater_(ctypes.Structure):
- """class std::allocator< wchar_t >::rebind< char >"""
-
- class rebind_less__wchar_t__greater_(ctypes.Structure):
- """class std::allocator< wchar_t >::rebind< wchar_t >"""
-
-std.allocator_less__wchar_t__greater_ = allocator_less__wchar_t__greater_
-
-class exception(ctypes.Structure):
- """class std::exception"""
-
-
-std.exception = exception
-
-class bad_alloc(ctypes.Structure):
- """class std::bad_alloc"""
-
-
-std.bad_alloc = bad_alloc
-
-class bad_exception(ctypes.Structure):
- """class std::bad_exception"""
-
-
-std.bad_exception = bad_exception
-
-class ios_base(ctypes.Structure):
- """class std::ios_base"""
-
- class Init(ctypes.Structure):
- """class std::ios_base::Init"""
-
- class _Callback_list(ctypes.Structure):
- """class std::ios_base::_Callback_list"""
-
- class _Words(ctypes.Structure):
- """class std::ios_base::_Words"""
-
- class failure(ctypes.Structure):
- """class std::ios_base::failure"""
-
-std.ios_base = ios_base
-
-class basic_ios_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class std::basic_ios< char, std::char_traits< char > >"""
-
-
-std.basic_ios_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ios_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class basic_ios_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class std::basic_ios< wchar_t, std::char_traits< wchar_t > >"""
-
-
-std.basic_ios_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ios_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class std::basic_istream< char, std::char_traits< char > >"""
-
- class sentry(ctypes.Structure):
- """class std::basic_istream< char, std::char_traits< char > >::sentry"""
-
-std.basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class basic_ostream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class std::basic_ostream< char, std::char_traits< char > >"""
-
- class sentry(ctypes.Structure):
- """class std::basic_ostream< char, std::char_traits< char > >::sentry"""
-
-std.basic_ostream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ostream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class iostream(ctypes.Structure):
- """class std::basic_iostream< char, std::char_traits< char > >"""
-
-
-std.iostream = iostream
-
-class basic_istream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class std::basic_istream< wchar_t, std::char_traits< wchar_t > >"""
-
- class sentry(ctypes.Structure):
- """class std::basic_istream< wchar_t, std::char_traits< wchar_t > >::sentry"""
-
-std.basic_istream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_istream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class std::basic_ostream< wchar_t, std::char_traits< wchar_t > >"""
-
- class sentry(ctypes.Structure):
- """class std::basic_ostream< wchar_t, std::char_traits< wchar_t > >::sentry"""
-
-std.basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class wiostream(ctypes.Structure):
- """class std::basic_iostream< wchar_t, std::char_traits< wchar_t > >"""
-
-
-std.wiostream = wiostream
-
-class basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class std::basic_streambuf< char, std::char_traits< char > >"""
-
-
-std.basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class std::basic_streambuf< wchar_t, std::char_traits< wchar_t > >"""
-
-
-std.basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class string(ctypes.Structure):
- """class std::string"""
-
- class _Alloc_hider(ctypes.Structure):
- """class std::string::_Alloc_hider"""
-
- class _Rep_base(ctypes.Structure):
- """class std::string::_Rep_base"""
-
- class _Rep(ctypes.Structure):
- """class std::string::_Rep"""
-
-std.string = string
-
-class wstring(ctypes.Structure):
- """class std::wstring"""
-
- class _Alloc_hider(ctypes.Structure):
- """class std::wstring::_Alloc_hider"""
-
- class _Rep_base(ctypes.Structure):
- """class std::wstring::_Rep_base"""
-
- class _Rep(ctypes.Structure):
- """class std::wstring::_Rep"""
-
-std.wstring = wstring
-
-class input_iterator_tag(ctypes.Structure):
- """class std::input_iterator_tag"""
-
-
-std.input_iterator_tag = input_iterator_tag
-
-class forward_iterator_tag(ctypes.Structure):
- """class std::forward_iterator_tag"""
-
-
-std.forward_iterator_tag = forward_iterator_tag
-
-class bidirectional_iterator_tag(ctypes.Structure):
- """class std::bidirectional_iterator_tag"""
-
-
-std.bidirectional_iterator_tag = bidirectional_iterator_tag
-
-class traits_type(ctypes.Structure):
- """class std::char_traits< char >"""
-
-
-std.traits_type = traits_type
-
-class traits_type(ctypes.Structure):
- """class std::char_traits< wchar_t >"""
-
-
-std.traits_type = traits_type
-
-class collate_less__char__greater_(ctypes.Structure):
- """class std::collate< char >"""
-
-
-std.collate_less__char__greater_ = collate_less__char__greater_
-
-class collate_less__wchar_t__greater_(ctypes.Structure):
- """class std::collate< wchar_t >"""
-
-
-std.collate_less__wchar_t__greater_ = collate_less__wchar_t__greater_
-
-class collate_byname_less__char__greater_(ctypes.Structure):
- """class std::collate_byname< char >"""
-
-
-std.collate_byname_less__char__greater_ = collate_byname_less__char__greater_
-
-class collate_byname_less__wchar_t__greater_(ctypes.Structure):
- """class std::collate_byname< wchar_t >"""
-
-
-std.collate_byname_less__wchar_t__greater_ = collate_byname_less__wchar_t__greater_
-
-class __ctype_type(ctypes.Structure):
- """class std::ctype< char >"""
-
-
-std.__ctype_type = __ctype_type
-
-class __ctype_type(ctypes.Structure):
- """class std::ctype< wchar_t >"""
-
-
-std.__ctype_type = __ctype_type
-
-class ctype_byname_less__char__greater_(ctypes.Structure):
- """class std::ctype_byname< char >"""
-
-
-std.ctype_byname_less__char__greater_ = ctype_byname_less__char__greater_
-
-class ctype_byname_less__wchar_t__greater_(ctypes.Structure):
- """class std::ctype_byname< wchar_t >"""
-
-
-std.ctype_byname_less__wchar_t__greater_ = ctype_byname_less__wchar_t__greater_
-
-class iterator_less__std_scope_output_iterator_tag_comma__void_comma__void_comma__void_comma__void__greater_(ctypes.Structure):
- """class std::iterator< std::output_iterator_tag, void, void, void, void >"""
-
-
-std.iterator_less__std_scope_output_iterator_tag_comma__void_comma__void_comma__void_comma__void__greater_ = iterator_less__std_scope_output_iterator_tag_comma__void_comma__void_comma__void_comma__void__greater_
-
-class locale(ctypes.Structure):
- """class std::locale"""
-
- class _Impl(ctypes.Structure):
- """class std::locale::_Impl"""
-
- class facet(ctypes.Structure):
- """class std::locale::facet"""
-
- class id(ctypes.Structure):
- """class std::locale::id"""
-
-std.locale = locale
-
-class nothrow_t(ctypes.Structure):
- """class std::nothrow_t"""
-
-
-std.nothrow_t = nothrow_t
-
-class __num_get_type(ctypes.Structure):
- """class std::num_get< char, std::istreambuf_iterator< char, std::char_traits< char > > >"""
-
-
-std.__num_get_type = __num_get_type
-
-class __num_get_type(ctypes.Structure):
- """class std::num_get< wchar_t, std::istreambuf_iterator< wchar_t, std::char_traits< wchar_t > > >"""
-
-
-std.__num_get_type = __num_get_type
-
-class __num_put_type(ctypes.Structure):
- """class std::num_put< char, std::ostreambuf_iterator< char, std::char_traits< char > > >"""
-
-
-std.__num_put_type = __num_put_type
-
-class __num_put_type(ctypes.Structure):
- """class std::num_put< wchar_t, std::ostreambuf_iterator< wchar_t, std::char_traits< wchar_t > > >"""
-
-
-std.__num_put_type = __num_put_type
-
-class numpunct_less__char__greater_(ctypes.Structure):
- """class std::numpunct< char >"""
-
-
-std.numpunct_less__char__greater_ = numpunct_less__char__greater_
-
-class numpunct_less__wchar_t__greater_(ctypes.Structure):
- """class std::numpunct< wchar_t >"""
-
-
-std.numpunct_less__wchar_t__greater_ = numpunct_less__wchar_t__greater_
-
-class numpunct_byname_less__char__greater_(ctypes.Structure):
- """class std::numpunct_byname< char >"""
-
-
-std.numpunct_byname_less__char__greater_ = numpunct_byname_less__char__greater_
-
-class numpunct_byname_less__wchar_t__greater_(ctypes.Structure):
- """class std::numpunct_byname< wchar_t >"""
-
-
-std.numpunct_byname_less__wchar_t__greater_ = numpunct_byname_less__wchar_t__greater_
-
-class output_iterator_tag(ctypes.Structure):
- """class std::output_iterator_tag"""
-
-
-std.output_iterator_tag = output_iterator_tag
-
-class random_access_iterator_tag(ctypes.Structure):
- """class std::random_access_iterator_tag"""
-
-
-std.random_access_iterator_tag = random_access_iterator_tag
-
-class timespec(ctypes.Structure):
- """class timespec"""
-
-class tm(ctypes.Structure):
- """class tm"""
-
-class basic_istringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_istringstream< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
- _fields_ = []
-std.basic_istringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_istringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
-
-class basic_ifstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_ifstream< char, std::char_traits< char > >"""
- _fields_ = []
-std.basic_ifstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ifstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class money_base(ctypes.Structure):
- """class declaration std::money_base"""
- _fields_ = []
-std.money_base = money_base
-
-class time_base(ctypes.Structure):
- """class declaration std::time_base"""
- _fields_ = []
-std.time_base = time_base
-
-class basic_istringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_istringstream< char, std::char_traits< char >, std::allocator< char > >"""
- _fields_ = []
-std.basic_istringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_istringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
-
-class basic_stringbuf_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_stringbuf< char, std::char_traits< char >, std::allocator< char > >"""
- _fields_ = []
-std.basic_stringbuf_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_stringbuf_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
-
-class basic_ostringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_ostringstream< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
- _fields_ = []
-std.basic_ostringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_ostringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
-
-class messages_base(ctypes.Structure):
- """class declaration std::messages_base"""
- _fields_ = []
-std.messages_base = messages_base
-
-class basic_stringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_stringstream< char, std::char_traits< char >, std::allocator< char > >"""
- _fields_ = []
-std.basic_stringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_stringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
-
-class __numpunct_cache_less__wchar_t__greater_(ctypes.Structure):
- """class declaration std::__numpunct_cache< wchar_t >"""
- _fields_ = []
-std.__numpunct_cache_less__wchar_t__greater_ = __numpunct_cache_less__wchar_t__greater_
-
-class __numpunct_cache_less__char__greater_(ctypes.Structure):
- """class declaration std::__numpunct_cache< char >"""
- _fields_ = []
-std.__numpunct_cache_less__char__greater_ = __numpunct_cache_less__char__greater_
-
-class basic_stringbuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_stringbuf< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
- _fields_ = []
-std.basic_stringbuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_stringbuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
-
-class basic_ofstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_ofstream< wchar_t, std::char_traits< wchar_t > >"""
- _fields_ = []
-std.basic_ofstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ofstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class basic_ofstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_ofstream< char, std::char_traits< char > >"""
- _fields_ = []
-std.basic_ofstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ofstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class basic_stringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_stringstream< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
- _fields_ = []
-std.basic_stringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_stringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
-
-class basic_ostringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_ostringstream< char, std::char_traits< char >, std::allocator< char > >"""
- _fields_ = []
-std.basic_ostringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_ostringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
-
-class basic_fstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_fstream< wchar_t, std::char_traits< wchar_t > >"""
- _fields_ = []
-std.basic_fstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_fstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class basic_fstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_fstream< char, std::char_traits< char > >"""
- _fields_ = []
-std.basic_fstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_fstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class istreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::istreambuf_iterator< wchar_t, std::char_traits< wchar_t > >"""
- _fields_ = []
-std.istreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = istreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class istreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::istreambuf_iterator< char, std::char_traits< char > >"""
- _fields_ = []
-std.istreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = istreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class basic_ifstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_ifstream< wchar_t, std::char_traits< wchar_t > >"""
- _fields_ = []
-std.basic_ifstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ifstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class basic_filebuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::basic_filebuf< wchar_t, std::char_traits< wchar_t > >"""
- _fields_ = []
-std.basic_filebuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_filebuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class basic_filebuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::basic_filebuf< char, std::char_traits< char > >"""
- _fields_ = []
-std.basic_filebuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_filebuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_(ctypes.Structure):
- """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< const wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > > >"""
- _fields_ = []
-std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_
-
-class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_(ctypes.Structure):
- """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > > >"""
- _fields_ = []
-std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_
-
-class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_(ctypes.Structure):
- """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< const char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > > >"""
- _fields_ = []
-std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_
-
-class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_(ctypes.Structure):
- """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > > >"""
- _fields_ = []
-std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_
-
-class fpos_less____mbstate_t__greater_(ctypes.Structure):
- """class declaration std::fpos< __mbstate_t >"""
- _fields_ = []
-std.fpos_less____mbstate_t__greater_ = fpos_less____mbstate_t__greater_
-
-class codecvt_base(ctypes.Structure):
- """class declaration std::codecvt_base"""
- _fields_ = []
-std.codecvt_base = codecvt_base
-
-class codecvt_less__wchar_t_comma__char_comma____mbstate_t__greater_(ctypes.Structure):
- """class declaration std::codecvt< wchar_t, char, __mbstate_t >"""
- _fields_ = []
-std.codecvt_less__wchar_t_comma__char_comma____mbstate_t__greater_ = codecvt_less__wchar_t_comma__char_comma____mbstate_t__greater_
-
-class codecvt_less__char_comma__char_comma____mbstate_t__greater_(ctypes.Structure):
- """class declaration std::codecvt< char, char, __mbstate_t >"""
- _fields_ = []
-std.codecvt_less__char_comma__char_comma____mbstate_t__greater_ = codecvt_less__char_comma__char_comma____mbstate_t__greater_
-
-class __iter_swap_less___obrace__obrace_std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_greater__scope___value__ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__Iter_greater__scope_reference_greater__scope___value_cbrace___ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_reference_greater__scope___value_cbrace___greater_(ctypes.Structure):
- """class declaration std::__iter_swap< ((std::__are_same<typename std::iterator_traits<_Iter>::value_type,typename std::iterator_traits<_ForwardIterator2>::value_type>::__value && std::__are_same<typename std::iterator_traits<_Iter>::value_type&,typename std::iterator_traits<_Iter>::reference>::__value) && std::__are_same<typename std::iterator_traits<_ForwardIterator2>::value_type&,typename std::iterator_traits<_ForwardIterator2>::reference>::__value) >"""
- _fields_ = []
-std.__iter_swap_less___obrace__obrace_std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_greater__scope___value__ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__Iter_greater__scope_reference_greater__scope___value_cbrace___ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_reference_greater__scope___value_cbrace___greater_ = __iter_swap_less___obrace__obrace_std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_greater__scope___value__ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__Iter_greater__scope_reference_greater__scope___value_cbrace___ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_reference_greater__scope___value_cbrace___greater_
-
-class ostreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
- """class declaration std::ostreambuf_iterator< wchar_t, std::char_traits< wchar_t > >"""
- _fields_ = []
-std.ostreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = ostreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
-
-class ostreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
- """class declaration std::ostreambuf_iterator< char, std::char_traits< char > >"""
- _fields_ = []
-std.ostreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = ostreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_
-
-class obstack(ctypes.Structure):
- """class declaration obstack"""
- _fields_ = []
-
-class sigevent(ctypes.Structure):
- """class declaration sigevent"""
- _fields_ = []
-
-class __numeric_traits_floating_less__short_int__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__numeric_traits_floating< short int >"""
- _fields_ = []
-__gnu_cxx.__numeric_traits_floating_less__short_int__greater_ = __numeric_traits_floating_less__short_int__greater_
-
-class __numeric_traits_floating_less__long_unsigned_int__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__numeric_traits_floating< long unsigned int >"""
- _fields_ = []
-__gnu_cxx.__numeric_traits_floating_less__long_unsigned_int__greater_ = __numeric_traits_floating_less__long_unsigned_int__greater_
-
-class __numeric_traits_floating_less__int__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__numeric_traits_floating< int >"""
- _fields_ = []
-__gnu_cxx.__numeric_traits_floating_less__int__greater_ = __numeric_traits_floating_less__int__greater_
-
-class __add_unsigned_less__wchar_t__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__add_unsigned< wchar_t >"""
- _fields_ = []
-__gnu_cxx.__add_unsigned_less__wchar_t__greater_ = __add_unsigned_less__wchar_t__greater_
-
-class __add_unsigned_less__bool__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__add_unsigned< bool >"""
- _fields_ = []
-__gnu_cxx.__add_unsigned_less__bool__greater_ = __add_unsigned_less__bool__greater_
-
-class __enable_if_less__!_std_scope___is_char_less__CharT2_greater__scope___value_comma__int__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__enable_if< ! std::__is_char<_CharT2>::__value, int >"""
- _fields_ = []
-__gnu_cxx.__enable_if_less__!_std_scope___is_char_less__CharT2_greater__scope___value_comma__int__greater_ = __enable_if_less__!_std_scope___is_char_less__CharT2_greater__scope___value_comma__int__greater_
-
-class __enable_if_less__!_std_scope___is_scalar_less__Tp_greater__scope___value_comma__void__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__enable_if< ! std::__is_scalar<_Tp>::__value, void >"""
- _fields_ = []
-__gnu_cxx.__enable_if_less__!_std_scope___is_scalar_less__Tp_greater__scope___value_comma__void__greater_ = __enable_if_less__!_std_scope___is_scalar_less__Tp_greater__scope___value_comma__void__greater_
-
-class __remove_unsigned_less__wchar_t__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__remove_unsigned< wchar_t >"""
- _fields_ = []
-__gnu_cxx.__remove_unsigned_less__wchar_t__greater_ = __remove_unsigned_less__wchar_t__greater_
-
-class __remove_unsigned_less__bool__greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__remove_unsigned< bool >"""
- _fields_ = []
-__gnu_cxx.__remove_unsigned_less__bool__greater_ = __remove_unsigned_less__bool__greater_
-
-class __normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__normal_iterator< wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > >"""
- _fields_ = []
-__gnu_cxx.__normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_ = __normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_
-
-class __normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__normal_iterator< const wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > >"""
- _fields_ = []
-__gnu_cxx.__normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_ = __normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_
-
-class __normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__normal_iterator< char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > >"""
- _fields_ = []
-__gnu_cxx.__normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_ = __normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_
-
-class __normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_(ctypes.Structure):
- """class declaration __gnu_cxx::__normal_iterator< const char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > >"""
- _fields_ = []
-__gnu_cxx.__normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_ = __normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_
-
-class _IO_jump_t(ctypes.Structure):
- """class declaration _IO_jump_t"""
- _fields_ = []
-
-class __jmp_buf_tag(ctypes.Structure):
- """class declaration __jmp_buf_tag"""
- _fields_ = []
-
-class locale_data(ctypes.Structure):
- """class declaration locale_data"""
- _fields_ = []
-
-class _IO_cookie_file(ctypes.Structure):
- """class declaration _IO_cookie_file"""
- _fields_ = []
-
-class _IO_FILE_plus(ctypes.Structure):
- """class declaration _IO_FILE_plus"""
- _fields_ = []
-
-std.collate_byname_less__wchar_t__greater_._fields_ = [ #class std::collate_byname< wchar_t >
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.collate_byname_less__char__greater_._fields_ = [ #class std::collate_byname< char >
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.bad_exception._fields_ = [ #class std::bad_exception
- ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.wstring._fields_ = [ #class std::wstring
- ("npos", ctypes.c_uint),
- ("_M_dataplus", std.wstring._Alloc_hider),
-]
-
-std.wstring._Rep_base._fields_ = [ #class std::wstring::_Rep_base
- ("_M_length", ctypes.c_uint),
- ("_M_capacity", ctypes.c_uint),
- ("_M_refcount", ctypes.c_int),
-]
-
-std.wstring._Rep._fields_ = [ #class std::wstring::_Rep
- ("_S_max_size", ctypes.c_uint),
- ("_S_terminal", ctypes.c_wchar),
- ("_S_empty_rep_storage", ( ctypes.c_uint * 4 )),
-]
-
-std.wstring._Alloc_hider._fields_ = [ #class std::wstring::_Alloc_hider
- ("_M_p", ctypes.c_wchar_p),
-]
-
-std.basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_._fields_ = [ #class std::basic_istream< char, std::char_traits< char > >
- ("_M_gcount", ctypes.c_int),
-]
-
-std.basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_.sentry._fields_ = [ #class std::basic_istream< char, std::char_traits< char > >::sentry
- ("_M_ok", ctypes.c_bool),
-]
-
-std.basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_._fields_ = [ #class std::basic_streambuf< wchar_t, std::char_traits< wchar_t > >
- ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
- ("_M_in_beg", ctypes.c_wchar_p),
- ("_M_in_cur", ctypes.c_wchar_p),
- ("_M_in_end", ctypes.c_wchar_p),
- ("_M_out_beg", ctypes.c_wchar_p),
- ("_M_out_cur", ctypes.c_wchar_p),
- ("_M_out_end", ctypes.c_wchar_p),
- ("_M_buf_locale", std.locale),
-]
-
-std.basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_._fields_ = [ #class std::basic_streambuf< char, std::char_traits< char > >
- ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
- ("_M_in_beg", ctypes.c_char_p),
- ("_M_in_cur", ctypes.c_char_p),
- ("_M_in_end", ctypes.c_char_p),
- ("_M_out_beg", ctypes.c_char_p),
- ("_M_out_cur", ctypes.c_char_p),
- ("_M_out_end", ctypes.c_char_p),
- ("_M_buf_locale", std.locale),
-]
-
-std.input_iterator_tag._fields_ = [ #class std::input_iterator_tag
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.__copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_._fields_ = [ #class std::__copy_move< false, false, std::random_access_iterator_tag >
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.__false_type._fields_ = [ #class std::__false_type
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.collate_less__wchar_t__greater_._fields_ = [ #class std::collate< wchar_t >
- ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
- ("_M_c_locale_collate", ctypes.POINTER( __locale_struct )),
- ("id", std.locale.id),
-]
-
-std.collate_less__char__greater_._fields_ = [ #class std::collate< char >
- ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
- ("_M_c_locale_collate", ctypes.POINTER( __locale_struct )),
- ("id", std.locale.id),
-]
-
-std.__lexicographical_compare_less__true__greater_._fields_ = [ #class std::__lexicographical_compare< true >
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_._fields_ = [ #class std::basic_ostream< wchar_t, std::char_traits< wchar_t > >
- ("__empty__", ctypes.c_char * 4)
-]
-
-std.basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_.sentry._fields_ = [ #class std::basic_ostream< wchar_t, std::char_traits< wchar_t > >::sentry
- ("_M_ok", ctypes.c_bool),
- ("_M_os", ctypes.POINTER( std.basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ )),
-]
-
-std.string._fields_ = [ #class std::string
- ("npos", ctypes.c_uint),
- ("_M_dataplus", std.string._Alloc_hider),
-]
-
-std.string._Rep_base._fields_ = [ #class std::string::_Rep_base
- ("_M_length", ctypes.c_uint),
- ("_M_capacity", ctypes.c_uint),
- ("_M_refcount", ctypes.c_int),
-]
-
-std.string._Rep._fields_ = [ #class std::string::_Rep
- ("_S_max_size", ctypes.c_uint),
- ("_S_terminal", ctypes.c_char),
- ("_S_empty_rep_storage", ( ctypes.c_uint * 4 )),
-]
-
-std.string._Alloc_hider._fields_ = [ #class std::string::_Alloc_hider
- ("_M_p", ctypes.c_char_p),
-]
-
-std.locale._fields_ = [ #class std::locale
- ("none", ctypes.c_int),
- ("ctype", ctypes.c_int),
- ("numer...
[truncated message content] |
|
From: <rom...@us...> - 2009-01-14 15:14:42
|
Revision: 1572
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1572&view=rev
Author: roman_yakovenko
Date: 2009-01-14 15:14:35 +0000 (Wed, 14 Jan 2009)
Log Message:
-----------
adding ability to configure gccxml parser in a configuration files
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/__init__.py
pygccxml_dev/pygccxml/parser/config.py
Modified: pygccxml_dev/pygccxml/parser/__init__.py
===================================================================
--- pygccxml_dev/pygccxml/parser/__init__.py 2009-01-14 13:20:11 UTC (rev 1571)
+++ pygccxml_dev/pygccxml/parser/__init__.py 2009-01-14 15:14:35 UTC (rev 1572)
@@ -8,6 +8,7 @@
from config import config_t
from config import gccxml_configuration_t
+from config import load_gccxml_configuration
from project_reader import COMPILATION_MODE
from project_reader import project_reader_t
@@ -27,6 +28,7 @@
CONTENT_TYPE = file_configuration_t.CONTENT_TYPE
+
def parse( files
, config=None
, compilation_mode=COMPILATION_MODE.FILE_BY_FILE
@@ -43,7 +45,7 @@
@type cache: L{cache_base_t} or str
@returns: Declarations
"""
-
+
if not config:
config = config_t()
parser = project_reader_t( config=config, cache=cache )
Modified: pygccxml_dev/pygccxml/parser/config.py
===================================================================
--- pygccxml_dev/pygccxml/parser/config.py 2009-01-14 13:20:11 UTC (rev 1571)
+++ pygccxml_dev/pygccxml/parser/config.py 2009-01-14 15:14:35 UTC (rev 1572)
@@ -9,6 +9,7 @@
import os
import sys
import copy
+import types
class parser_configuration_t(object):
"""Configuration object to collect parameters for invoking C++ parser
@@ -76,10 +77,13 @@
"""list of "undefine" directives """
return self.__undefine_symbols
- @property
- def compiler(self):
- """compiler name to simulate"""
+ def get_compiler(self):
+ """get compiler name to simulate"""
return self.__compiler
+ def set_compiler( self, compiler ):
+ """set compiler name to simulate"""
+ self.__compiler = compiler
+ compiler = property( get_compiler, set_compiler, doc="compiler name to simulate" )
def __get_cflags(self):
return self.__cflags
@@ -104,7 +108,6 @@
map( lambda idir: self.__ensure_dir_exists( idir, 'include directory' )
, self.include_paths )
-
class gccxml_configuration_t(parser_configuration_t):
"""Configuration object to collect parameters for invoking gccxml.
@@ -189,3 +192,64 @@
raise RuntimeError( msg )
config_t = gccxml_configuration_t #backward computability
+
+
+def load_gccxml_configuration( configuration ):
+ """loads GCC-XML configuration from a file
+
+ Configuration file sceleton:
+
+ >>> start <<<
+
+ [gccxml]
+ #path to gccxml executable file - optional, if not provided, os.environ['PATH']
+ #variable is used to find it
+ gccxml_path=
+ #gccxml working directory - optional, could be set to your source code directory
+ working_directory=
+ #additional include directories, separated by ';' or ':'
+ include_paths=
+ #gccxml has a nice algorithms, which selects what C++ compiler to emulate.
+ #You can explicitly set what compiler it should emulate.
+ #Valid options are: g++, msvc6, msvc7, msvc71, msvc8, cl.
+ compiler=
+
+ #GCC-XML site: http://gccxml.org/
+
+ >>> end <<<
+
+
+ configuration could be string( configuration file path ) or instance of
+ ConfigParser.SafeConfigParser class
+ """
+ parser = configuration
+ if isinstance( configuration, types.StringTypes ):
+ from ConfigParser import SafeConfigParser
+ parser = SafeConfigParser()
+ parser.readfp( file( configuration, 'r' ) )
+ gccxml_cfg = gccxml_configuration_t()
+ if not parser.has_section( 'gccxml' ):
+ return gccxml_cfg
+ for name, value in parser.items( 'gccxml' ):
+ value = value.strip()
+ if name == 'gccxml_path':
+ gccxml_cfg.gccxml_path = value
+ elif name == 'working_directory':
+ gccxml_cfg.working_directory = value
+ elif name == 'include_paths':
+ for p in value.split( ';' ):
+ for pp in p.split( ':' ):
+ pp = pp.strip()
+ if pp:
+ gccxml_cfg.include_paths.append( pp )
+ elif name == 'compiler':
+ gccxml_cfg.compiler = value
+ else:
+ print '\n%s entry was ignored' % name
+ return gccxml_cfg
+
+
+if __name__ == '__main__':
+ print load_gccxml_configuration( 'gccxml.cfg' ).__dict__
+
+
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-14 13:20:21
|
Revision: 1571
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1571&view=rev
Author: roman_yakovenko
Date: 2009-01-14 13:20:11 +0000 (Wed, 14 Jan 2009)
Log Message:
-----------
web ui - main success scenarios work!
Modified Paths:
--------------
ui/web/code_generator.py
ui/web/form_processor.py
ui/web/static/generator.css
ui/web/templates/generator_tmpl.html
Modified: ui/web/code_generator.py
===================================================================
--- ui/web/code_generator.py 2009-01-14 09:53:39 UTC (rev 1570)
+++ ui/web/code_generator.py 2009-01-14 13:20:11 UTC (rev 1571)
@@ -4,6 +4,7 @@
from pyplusplus import _logging_
from pygccxml import declarations
from pyplusplus import module_builder
+from pyplusplus.module_builder import ctypes_module_builder_t
import xml.sax.saxutils
class manager_t:
@@ -36,10 +37,6 @@
user_msg.append( str( error ) )
return '', '\n'.join( user_msg )
-
- def generate_pypp_code( self, source_code ):
- return "import pyplusplus"
-
def generate_bpl_code( self, file_configuration ):
try:
_logging_.loggers.make_inmemory()
@@ -61,6 +58,26 @@
user_msg.append( str( error ) )
return '', '\n'.join( user_msg )
+ def generate_ctypes_code( self, file_configuration, symbols_file ):
+ try:
+ _logging_.loggers.make_inmemory()
+ mb = ctypes_module_builder_t( [ file_configuration ], symbols_file, config.gccxml )
+ mb.build_code_creator( symbols_file )
+ code = mb.code_creator.create()
+ code = code.replace( '\n\r', '\n' )
+ code = code.replace( '\r\n', '\n' )
+ warnings = _logging_.loggers.stream.getvalue()
+ _logging_.loggers.stream.close()
+ return code, warnings
+ except Exception, error:
+ user_msg = [ 'Error occured during code generation process!' ]
+ user_msg.append( 'Error:' )
+ user_msg.append( str( error ) )
+ return '', '\n'.join( user_msg )
+
+
+
+
if __name__ == '__main__':
m = manager_t()
m.generate_bpl_code( 'int do_smth( int &);int do_smth( int, int);' )
Modified: ui/web/form_processor.py
===================================================================
--- ui/web/form_processor.py 2009-01-14 09:53:39 UTC (rev 1570)
+++ ui/web/form_processor.py 2009-01-14 13:20:11 UTC (rev 1571)
@@ -10,8 +10,8 @@
self.__handlers = {
"VIEW_XML" : self.on_view_xml
, "VIEW_DECLS" : self.on_view_decls
- , "GENERATE_BP_CODE" : self.on_generate_bp_code
- , "GENERATE_BP_PYPP_CODE" : self.on_generate_bp_pypp_code
+ , "GENERATE_BP_CODE" : self.on_generate_bpl_code
+ , "GENERATE_BP_PYPP_CODE" : self.on_generate_bpl_pypp_code
, "GENERATE_CTYPES_CODE" : self.on_generate_ctypes_code
, "GENERATE_CTYPES_PYPP_CODE" : self.on_generate_ctypes_pypp_code
}
@@ -35,18 +35,21 @@
decls_tree, warnings = self.__code_generator.show_declarations( fc )
return decls_tree, warnings
- def on_generate_bp_code( self ):
- fc = self.__create_fc( 'BP' )
+ def on_generate_bpl_code( self ):
+ fc = self.__create_fc( 'BPL' )
code, warnings = self.__code_generator.generate_bpl_code( fc )
return code, warnings
- def on_generate_bp_pypp_code( self ):
+ def on_generate_bpl_pypp_code( self ):
w = wizard.wizard_t()
- code = w.create_bpl_code( config.gccxml, self.__create_fc( 'BP' ) )
+ code = w.create_bpl_code( config.gccxml, self.__create_fc( 'BPL' ) )
return code, ''
def on_generate_ctypes_code( self ):
- pass
+ fc = parser.create_source_fc( self.__input[ "CTYPES_FILE_NAME" ] )
+ symbols_file = self.__input[ "CTYPES_SHLIB_FILE_NAME" ]
+ code, warnings = self.__code_generator.generate_ctypes_code( fc, symbols_file )
+ return code, warnings
def on_generate_ctypes_pypp_code( self ):
pass
Modified: ui/web/static/generator.css
===================================================================
--- ui/web/static/generator.css 2009-01-14 09:53:39 UTC (rev 1570)
+++ ui/web/static/generator.css 2009-01-14 13:20:11 UTC (rev 1571)
@@ -17,15 +17,16 @@
}
textarea{
- margin-top: 3px;
- margin-right: 5px;
- margin-left: 5px;
- margin-bottom: 3px;
+ margin-top: 2mm;
+ margin-right: 2mm;
+ margin-left: 2mm;
+ margin-bottom: 2mm;
}
input{
- margin-top: 5px;
- margin-right: 5px;
- margin-left: 5px;
- margin-bottom: 5px;
+ margin-top: 2mm;
+ margin-right: 2mm;
+ margin-left: 2mm;
+ margin-bottom: 2mm;
}
+
Modified: ui/web/templates/generator_tmpl.html
===================================================================
--- ui/web/templates/generator_tmpl.html 2009-01-14 09:53:39 UTC (rev 1570)
+++ ui/web/templates/generator_tmpl.html 2009-01-14 13:20:11 UTC (rev 1571)
@@ -11,23 +11,23 @@
</head>
<body>
<h2>pygccxml & py++ demo</h2>
- <form action="/generated.html" method="post" name="CODE_GENERATOR_FORM">
+ <form action="/generated.html" method="post">
<p>In the following tabs you can configurate GCC-XML compiler. It is not a must</p>
<div class="tabber">
<div class="tabbertab">
<h2>Include directories</h2>
<p>List include directories( each directory on the new line ):</p>
- <textarea name="COMPILER_INCLUDE_DIRECTORIES" rows="5" cols="80" style="margin-left: 5mm" ></textarea>
+ <textarea name="COMPILER_INCLUDE_DIRECTORIES" rows="5" cols="80"></textarea>
</div>
<div class="tabbertab">
<h2>Preprocessor definitions</h2>
<p>Configure preprocessor ( define -D"HAS_XYZ=1" or undefine -U"_DEBUG" ):</p>
- <textarea name="COMPILER_PREPROCESSOR_DEFINITIONS" rows="5" cols="80" style="margin-left: 5mm" ></textarea>
+ <textarea name="COMPILER_PREPROCESSOR_DEFINITIONS" rows="5" cols="80"></textarea>
</div>
<div class="tabbertab">
<h2>Advance</h2>
<p>Define GCC-XML command line arguments:</p>
- <textarea name="COMPILER_CMD_ARGS" rows="5" cols="80" style="margin-left: 5mm"></textarea>
+ <textarea name="COMPILER_CMD_ARGS" rows="5" cols="80" ></textarea>
</div>
</div>
<p>Add some text that describes purpose of the "Text" and "File"</p>
@@ -36,9 +36,9 @@
<h2>pygccxml demonstration</h2>
<p></p>
<input type="radio" name="GCCXML_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
- <input type="text" name="GCCXML_FILE_NAME" size="80" style="margin-left: 5mm" /><br />
+ <input type="text" name="GCCXML_FILE_NAME" style="min-width:93%;" /><br />
<input type="radio" name="GCCXML_TAKE_CODE_FROM" value="text"/>Code:<br/>
- <textarea name="GCCXML_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
+ <textarea name="GCCXML_SOURCE_CODE" rows="15" cols="80" ></textarea>
<br/>
<hr />
<input type="submit" name="VIEW_XML" value="View XML" />
@@ -48,10 +48,10 @@
<div class="tabbertab">
<h2>Boost.Python code generator</h2>
<p></p>
- <input type="radio" name="BP_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
- <input type="text" name="BP_FILE_NAME" size="80" style="margin-left: 5mm"
- <input type="radio" name="BP_TAKE_CODE_FROM" value="text"/>Code:<br/>
- <textarea name="BP_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
+ <input type="radio" name="BPL_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
+ <input type="text" name="BPL_FILE_NAME" style="min-width:93%;"/><br/>
+ <input type="radio" name="BPL_TAKE_CODE_FROM" value="text"/>Code:<br/>
+ <textarea name="BPL_SOURCE_CODE" rows="15" cols="80" ></textarea>
<br/>
<hr />
<input type="submit" name="GENERATE_BP_CODE" value="Generate code" />
@@ -62,13 +62,14 @@
<h2>ctypes code generator</h2>
<p></p>
<a>Dynamic/shared library path:</a>
- <input type="text" name="CTYPES_SHLIB_FILE_NAME" size="80" style="margin-left: 5mm" /><br/>
- <input type="radio" name="CTYPES_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
- <input type="text" name="CTYPES_FILE_NAME" size="80" style="margin-left: 5mm" /><br/>
- <input type="radio" name="CTYPES_TAKE_CODE_FROM" value="text"/>Code:<br/>
- <textarea name="CTYPES_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
- <br/>
- <hr />
+ <input type="text" name="CTYPES_SHLIB_FILE_NAME" style="min-width:93%;" /><br/>
+ <!--input type="radio" name="CTYPES_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/-->
+ <a>Header file:</a>
+ <input type="text" name="CTYPES_FILE_NAME" style="min-width:93%;" /><br/>
+ <!--input type="radio" name="CTYPES_TAKE_CODE_FROM" value="text"/>Code:<br/-->
+ <!--textarea name="CTYPES_SOURCE_CODE" rows="15" cols="80" ></textarea-->
+ <!--br/-->
+ <hr/>
<input type="submit" name="GENERATE_CTYPES_CODE" value="Generate code" />
<a></a>
<input type="submit" name="GENERATE_CTYPES_PYPP_CODE" value="Generate Py++ code" />
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-14 09:53:49
|
Revision: 1570
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1570&view=rev
Author: roman_yakovenko
Date: 2009-01-14 09:53:39 +0000 (Wed, 14 Jan 2009)
Log Message:
-----------
adding ability to display generated XML
Modified Paths:
--------------
ui/web/code_generator.py
ui/web/main.py
ui/web/templates/generator_tmpl.html
Added Paths:
-----------
ui/web/form_processor.py
Removed Paths:
-------------
ui/web/forms.py
Modified: ui/web/code_generator.py
===================================================================
--- ui/web/code_generator.py 2009-01-14 09:50:52 UTC (rev 1569)
+++ ui/web/code_generator.py 2009-01-14 09:53:39 UTC (rev 1570)
@@ -4,9 +4,24 @@
from pyplusplus import _logging_
from pygccxml import declarations
from pyplusplus import module_builder
+import xml.sax.saxutils
class manager_t:
+ def __init__( self ):
+ pass
+ def show_xml( self, file_configuration ):
+ try:
+ reader = parser.project_reader_t( config=config.gccxml )
+ content = reader.read_xml( file_configuration )
+ return content, ''
+ #return xml.sax.saxutils.escape( content ), ''
+ except Exception, error:
+ user_msg = [ 'Error occured during code generation process!' ]
+ user_msg.append( 'Error:' )
+ user_msg.append( str( error ) )
+ return '', '\n'.join( user_msg )
+
def show_declarations( self, file_configuration ):
try:
reader = parser.project_reader_t( config=config.gccxml )
@@ -14,7 +29,6 @@
global_ns = declarations.get_global_namespace( decls )
tmp = []
declarations.print_declarations( decls, verbose=False, writer=lambda x: tmp.append( x.rstrip() ) )
- print os.linesep.join( tmp )
return os.linesep.join( tmp ), ''
except Exception, error:
user_msg = [ 'Error occured during code generation process!' ]
Copied: ui/web/form_processor.py (from rev 1567, ui/web/forms.py)
===================================================================
--- ui/web/form_processor.py (rev 0)
+++ ui/web/form_processor.py 2009-01-14 09:53:39 UTC (rev 1570)
@@ -0,0 +1,79 @@
+import config
+import web
+from pygccxml import parser
+import wizard
+
+class generator_t:
+ def __init__( self, code_generator, input ):
+ self.__input = input
+ self.__code_generator = code_generator
+ self.__handlers = {
+ "VIEW_XML" : self.on_view_xml
+ , "VIEW_DECLS" : self.on_view_decls
+ , "GENERATE_BP_CODE" : self.on_generate_bp_code
+ , "GENERATE_BP_PYPP_CODE" : self.on_generate_bp_pypp_code
+ , "GENERATE_CTYPES_CODE" : self.on_generate_ctypes_code
+ , "GENERATE_CTYPES_PYPP_CODE" : self.on_generate_ctypes_pypp_code
+ }
+
+ def __create_fc( self, prefix ):
+ fto_key = prefix + '_TAKE_CODE_FROM'
+ code_key = prefix + '_SOURCE_CODE'
+ file_key = prefix + '_FILE_NAME'
+ if self.__input[fto_key] == 'text':
+ return parser.create_text_fc( self.__input[ code_key ] )
+ else:
+ return parser.create_source_fc( self.__input[ file_key ] )
+
+ def on_view_xml( self ):
+ fc = self.__create_fc( 'GCCXML' )
+ decls_tree, warnings = self.__code_generator.show_xml( fc )
+ return decls_tree, warnings
+
+ def on_view_decls( self ):
+ fc = self.__create_fc( 'GCCXML' )
+ decls_tree, warnings = self.__code_generator.show_declarations( fc )
+ return decls_tree, warnings
+
+ def on_generate_bp_code( self ):
+ fc = self.__create_fc( 'BP' )
+ code, warnings = self.__code_generator.generate_bpl_code( fc )
+ return code, warnings
+
+ def on_generate_bp_pypp_code( self ):
+ w = wizard.wizard_t()
+ code = w.create_bpl_code( config.gccxml, self.__create_fc( 'BP' ) )
+ return code, ''
+
+ def on_generate_ctypes_code( self ):
+ pass
+
+ def on_generate_ctypes_pypp_code( self ):
+ pass
+
+ def not_found_handler( self ):
+ raise RuntimeError( 'Error - unknown submit action' )
+
+ def __select_handler( self ):
+ for key, handler in self.__handlers.iteritems():
+ if key in self.__input:
+ return handler
+ else:
+ return self.not_found_handler
+
+ def process( self ):
+ handler = self.__select_handler()
+ return handler()
+
+
+ #~ source_code = request_data[ self.__source_code.name]
+ #~ if self.__show_decls.name in request_data:
+ #~ generated = self.__code_generator.show_declarations( source_code )
+ #~ elif self.__generate_pypp_code.name in request_data:
+ #~ generated = self.__code_generator.generate_pypp_code( source_code )
+ #~ elif self.__generate_bpl_code.name in request_data:
+ #~ generated, warnings = self.__code_generator.generate_bpl_code( source_code )
+ #~ else:
+ #~ generated = 'error - unknown submit action'
+ #~ return generated, warnings
+
Deleted: ui/web/forms.py
===================================================================
--- ui/web/forms.py 2009-01-14 09:50:52 UTC (rev 1569)
+++ ui/web/forms.py 2009-01-14 09:53:39 UTC (rev 1570)
@@ -1,122 +0,0 @@
-import config
-import web
-from pygccxml import parser
-import wizard
-
-class Label(web.form.Input):
- tmpl = """<label name="%(name)s" %(atts)s>%(value)s</label>%(note)s"""
- def render(self):
- value = ''
- if self.value is not None:
- value = web.net.websafe(self.value)
- return self.tmpl % dict( name=web.net.websafe(self.name)
- , value=value
- , atts=self.addatts()
- , note=self.rendernote(self.note) )
-
-class RawHTML(web.form.Input):
- def __init__(self, html, *validators, **attrs):
- web.form.Input.__init__( self, '', *validators, **attrs )
- self.__html = html
- def render(self):
- return self.__html
-
-class SimpleForm( web.form.Form ):
- tmpl = """<form %(attrs)s>\n%(inputs)s\n</form>\n"""
- def __init__(self, *inputs, **kw):
- web.form.Form.__init__( self, *inputs, **kw )
- self.__kw = kw
- self.__kw.pop( 'validators', None )
-
- def render_addattrs( self ):
- attrs = []
- for (n, v) in self.__kw.iteritems():
- attrs.append( ' %s="%s"' % (n, web.net.websafe(v)) )
- return ''.join( attrs )
-
- def render( self ):
- controls = []
- controls.append( self.rendernote(self.note) )
- for i in self.inputs:
- if i.pre:
- controls.append( i.pre )
- controls.append( i.render() )
- if i.post:
- controls.append( i.post )
- return self.tmpl % dict( attrs=self.render_addattrs(), inputs='\n'.join( controls ) )
-
-
-class generator_t:
- def __init__( self, code_generator, input ):
- self.__input = input
- self.__code_generator = code_generator
- self.__handlers = {
- "VIEW_XML" : self.on_view_xml
- , "VIEW_DECLS" : self.on_view_decls
- , "GENERATE_BP_CODE" : self.on_generate_bp_code
- , "GENERATE_BP_PYPP_CODE" : self.on_generate_bp_pypp_code
- , "GENERATE_CTYPES_CODE" : self.on_generate_ctypes_code
- , "GENERATE_CTYPES_PYPP_CODE" : self.on_generate_ctypes_pypp_code
- }
-
- def __create_fc( self, prefix ):
- fto_key = prefix + '_TAKE_CODE_FROM'
- code_key = prefix + '_SOURCE_CODE'
- file_key = prefix + '_FILE_NAME'
- if self.__input[fto_key] == 'text':
- return parser.create_text_fc( self.__input[ code_key ] )
- else:
- return parser.create_source_fc( self.__input[ file_key ] )
-
- def on_view_xml( self ):
- fc = self.__create_fc( 'GCCXML' )
- decls_tree, warnings = self.__code_generator.show_declarations( fc )
- return decls_tree, warnings
-
- def on_view_decls( self ):
- fc = self.__create_fc( 'GCCXML' )
- decls_tree, warnings = self.__code_generator.show_declarations( fc )
- return decls_tree, warnings
-
- def on_generate_bp_code( self ):
- fc = self.__create_fc( 'BP' )
- code, warnings = self.__code_generator.generate_bpl_code( fc )
- return code, warnings
-
- def on_generate_bp_pypp_code( self ):
- w = wizard.wizard_t()
- code = w.create_bpl_code( config.gccxml, self.__create_fc( 'BP' ) )
- return code, ''
-
- def on_generate_ctypes_code( self ):
- pass
-
- def on_generate_ctypes_pypp_code( self ):
- pass
-
- def not_found_handler( self ):
- raise RuntimeError( 'Error - unknown submit action' )
-
- def __select_handler( self ):
- for key, handler in self.__handlers.iteritems():
- if key in self.__input:
- return handler
- else:
- return self.not_found_handler
-
- def process( self ):
- handler = self.__select_handler()
- return handler()
-
-
- #~ source_code = request_data[ self.__source_code.name]
- #~ if self.__show_decls.name in request_data:
- #~ generated = self.__code_generator.show_declarations( source_code )
- #~ elif self.__generate_pypp_code.name in request_data:
- #~ generated = self.__code_generator.generate_pypp_code( source_code )
- #~ elif self.__generate_bpl_code.name in request_data:
- #~ generated, warnings = self.__code_generator.generate_bpl_code( source_code )
- #~ else:
- #~ generated = 'error - unknown submit action'
- #~ return generated, warnings
-
Modified: ui/web/main.py
===================================================================
--- ui/web/main.py 2009-01-14 09:50:52 UTC (rev 1569)
+++ ui/web/main.py 2009-01-14 09:53:39 UTC (rev 1570)
@@ -2,7 +2,7 @@
import sys
import web
-import forms
+import form_processor
import code_generator
urls = ( "/", "generator"
@@ -21,7 +21,7 @@
class generated:
def POST(self, r_url=None ):
- form = forms.generator_t( code_generator.manager_t(), web.input() )
+ form = form_processor.generator_t( code_generator.manager_t(), web.input() )
generated_frender = web.template.frender('templates/generated_tmpl.html')
generated, warnings = form.process()
return generated_frender(generated, warnings)
Modified: ui/web/templates/generator_tmpl.html
===================================================================
--- ui/web/templates/generator_tmpl.html 2009-01-14 09:50:52 UTC (rev 1569)
+++ ui/web/templates/generator_tmpl.html 2009-01-14 09:53:39 UTC (rev 1570)
@@ -11,7 +11,7 @@
</head>
<body>
<h2>pygccxml & py++ demo</h2>
- <form action="/generated.html" method="post" id="SourceCodeForm">
+ <form action="/generated.html" method="post" name="CODE_GENERATOR_FORM">
<p>In the following tabs you can configurate GCC-XML compiler. It is not a must</p>
<div class="tabber">
<div class="tabbertab">
@@ -36,7 +36,7 @@
<h2>pygccxml demonstration</h2>
<p></p>
<input type="radio" name="GCCXML_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
- <input type="file" name="GCCXML_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="text" name="GCCXML_FILE_NAME" size="80" style="margin-left: 5mm" /><br />
<input type="radio" name="GCCXML_TAKE_CODE_FROM" value="text"/>Code:<br/>
<textarea name="GCCXML_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
<br/>
@@ -49,7 +49,7 @@
<h2>Boost.Python code generator</h2>
<p></p>
<input type="radio" name="BP_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
- <input type="file" name="BP_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="text" name="BP_FILE_NAME" size="80" style="margin-left: 5mm"
<input type="radio" name="BP_TAKE_CODE_FROM" value="text"/>Code:<br/>
<textarea name="BP_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
<br/>
@@ -62,9 +62,9 @@
<h2>ctypes code generator</h2>
<p></p>
<a>Dynamic/shared library path:</a>
- <input type="file" name="CTYPES_SHLIB_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="text" name="CTYPES_SHLIB_FILE_NAME" size="80" style="margin-left: 5mm" /><br/>
<input type="radio" name="CTYPES_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
- <input type="file" name="CTYPES_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="text" name="CTYPES_FILE_NAME" size="80" style="margin-left: 5mm" /><br/>
<input type="radio" name="CTYPES_TAKE_CODE_FROM" value="text"/>Code:<br/>
<textarea name="CTYPES_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
<br/>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-14 09:50:54
|
Revision: 1569
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1569&view=rev
Author: roman_yakovenko
Date: 2009-01-14 09:50:52 +0000 (Wed, 14 Jan 2009)
Log Message:
-----------
adding ability to view gccxml generated file
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/project_reader.py
Modified: pygccxml_dev/pygccxml/parser/project_reader.py
===================================================================
--- pygccxml_dev/pygccxml/parser/project_reader.py 2009-01-14 09:47:29 UTC (rev 1568)
+++ pygccxml_dev/pygccxml/parser/project_reader.py 2009-01-14 09:50:52 UTC (rev 1569)
@@ -307,6 +307,44 @@
reader = source_reader.source_reader_t( self.__config, None, self.__decl_factory )
return reader.read_string( content )
+ def read_xml( self, file_configuration ):
+ """parses C++ code, defined on the file_configurations and returns GCCXML
+ generated file content"""
+
+ xml_file_path = None
+ delete_xml_file = True
+ fc = file_configuration
+ reader = source_reader.source_reader_t( self.__config, None, self.__decl_factory )
+ try:
+ if fc.content_type == fc.CONTENT_TYPE.STANDARD_SOURCE_FILE:
+ self.logger.info( 'Parsing source file "%s" ... ' % fc.data )
+ xml_file_path = reader.create_xml_file( fc.data )
+ elif fc.content_type == file_configuration_t.CONTENT_TYPE.GCCXML_GENERATED_FILE:
+ self.logger.info( 'Parsing xml file "%s" ... ' % fc.data )
+ xml_file_path = fc.data
+ delete_xml_file = False
+ elif fc.content_type == fc.CONTENT_TYPE.CACHED_SOURCE_FILE:
+ #TODO: raise error when header file does not exist
+ if not os.path.exists( fc.cached_source_file ):
+ dir_ = os.path.split( fc.cached_source_file )[0]
+ if dir_ and not os.path.exists( dir_ ):
+ os.makedirs( dir_ )
+ self.logger.info( 'Creating xml file "%s" from source file "%s" ... '
+ % ( fc.cached_source_file, header ) )
+ xml_file_path = reader.create_xml_file( header, fc.cached_source_file )
+ else:
+ xml_file_path = fc.cached_source_file
+ else:
+ xml_file_path = reader.create_xml_file_from_string( fc.data )
+ xml_file = file( xml_file_path, 'r' )
+ xml = xml_file.read()
+ xml_file.close()
+ utils.remove_file_no_raise( xml_file_path )
+ return xml
+ finally:
+ if xml_file_path and delete_xml_file:
+ utils.remove_file_no_raise( xml_file_path )
+
def _join_top_namespaces(self, main_ns_list, other_ns_list):
answer = main_ns_list[:]
for other_ns in other_ns_list:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-14 09:47:36
|
Revision: 1568
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1568&view=rev
Author: roman_yakovenko
Date: 2009-01-14 09:47:29 +0000 (Wed, 14 Jan 2009)
Log Message:
-----------
remove dead code
Modified Paths:
--------------
pygccxml_dev/pygccxml/parser/source_reader.py
Modified: pygccxml_dev/pygccxml/parser/source_reader.py
===================================================================
--- pygccxml_dev/pygccxml/parser/source_reader.py 2009-01-13 23:29:45 UTC (rev 1567)
+++ pygccxml_dev/pygccxml/parser/source_reader.py 2009-01-14 09:47:29 UTC (rev 1568)
@@ -320,28 +320,3 @@
decls = filter( lambda inst: isinstance( inst, namespace_t ) and not inst.parent
, decls.itervalues() )
return ( decls, files.values() )
-
- def read_synopsis_file( self, source_file ):
- import synopsis_scanner
- from Synopsis import AST
- from Synopsis.Parsers import Cxx
-
- ffname = self.__file_full_name(source_file)
-
- cppflags = []
- map( lambda dpath: cppflags.append( '-I %s' % dpath )
- , self.__config.include_paths )
- map( lambda define: cppflags.append( '-D %s' % define )
- , self.__config.define_symbols )
- map( lambda define: cppflags.append( '-U %s' % define )
- , self.__config.undefine_symbols )
-
- cxx = Cxx.Parser( preprocess=True, cppflags=cppflags )
- ast = AST.AST()
- cxx.process( ast, input=[source_file] )
- scanner = synopsis_scanner.scanner_t( ast, self.__decl_factory )
- scanner.visitAST( ast )
- declarations = [scanner.global_ns]
- self.__dcache.update( ffname, self.__config, declarations, [] )
- return declarations
-
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-13 23:29:52
|
Revision: 1567
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1567&view=rev
Author: roman_yakovenko
Date: 2009-01-13 23:29:45 +0000 (Tue, 13 Jan 2009)
Log Message:
-----------
adding support for anonymous structs
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/code_creators/class_introduction.py
pyplusplus_dev/pyplusplus/code_creators/fields_definition.py
pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py
pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py
pyplusplus_dev/unittests/ctypes_pof_tester.py
pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h
pyplusplus_dev/unittests/data/unnamed_classes_to_be_exported.hpp
pyplusplus_dev/unittests/sconstruct
Added Paths:
-----------
pyplusplus_dev/unittests/data/ctypes/anonymous/
pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.cpp
pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.h
pyplusplus_dev/unittests/data/ctypes/anonymous/sconscript
pyplusplus_dev/unittests/data/ctypes/include_algorithm/
pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.cpp
pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.h
pyplusplus_dev/unittests/data/ctypes/include_algorithm/sconscript
Modified: pyplusplus_dev/pyplusplus/code_creators/class_introduction.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/class_introduction.py 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/pyplusplus/code_creators/class_introduction.py 2009-01-13 23:29:45 UTC (rev 1567)
@@ -9,14 +9,26 @@
import declaration_based
from pygccxml import declarations
+ctypes_base_classes = {
+ declarations.CLASS_TYPES.CLASS : 'Structure'
+ , declarations.CLASS_TYPES.UNION : 'Union'
+ , declarations.CLASS_TYPES.STRUCT : 'Structure'
+}
+
class class_introduction_t(compound.compound_t, declaration_based.declaration_based_t):
def __init__( self, class_ ):
compound.compound_t.__init__(self)
declaration_based.declaration_based_t.__init__( self, class_ )
+ @property
+ def ctypes_base_class( self ):
+ global ctypes_base_classes
+ return ctypes_base_classes[ self.declaration.class_type ]
+
def _create_impl(self):
result = []
- result.append( "class %s(ctypes.Structure):" % self.alias )
+ result.append( "class %(alias)s(ctypes.%(base)s):"
+ % dict( alias=self.alias, base=self.ctypes_base_class ) )
result.append( self.indent( '"""class %s"""' % self.decl_identifier ) )
if self.creators:
result.append( self.indent( '' ) )
Modified: pyplusplus_dev/pyplusplus/code_creators/fields_definition.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/pyplusplus/code_creators/fields_definition.py 2009-01-13 23:29:45 UTC (rev 1567)
@@ -4,6 +4,7 @@
# http://www.boost.org/LICENSE_1_0.txt)
import os
+import algorithm
import code_creator
import ctypes_formatter
import declaration_based
@@ -19,8 +20,29 @@
code_creator.code_creator_t.__init__(self)
declaration_based.declaration_based_t.__init__( self, class_ )
+ def has_unnamed_type( self, var ):
+ type_ = declarations.remove_pointer( var.type )
+ #~ type_ = declarations.remove_declarated( type_ )
+ if declarations.class_traits.is_my_case( type_ ):
+ cls = declarations.class_traits.get_declaration( type_ )
+ return bool( not cls.name )
+ else:
+ return False
+
def _create_impl(self):
result = []
+ #~ import pdb
+ #~ pdb.set_trace()
+
+ anonymous_vars = self.declaration.vars( self.has_unnamed_type, recursive=False, allow_empty=True )
+ if anonymous_vars:
+ formated_vars = []
+ for var in anonymous_vars:
+ formated_vars.append( '"%s"' % var.alias )
+ result.append( '%(complete_py_name)s._anonymous_ = [%(vars)s]'
+ % dict( complete_py_name=self.complete_py_name
+ , vars=', '.join( formated_vars ) ) )
+
result.append( '%(complete_py_name)s._fields_ = [ #class %(decl_identifier)s'
% dict( complete_py_name=self.complete_py_name
, decl_identifier=self.decl_identifier) )
@@ -35,7 +57,7 @@
vars.sort( key=lambda d: d.location.line )
for v in vars:
result.append( self.indent( '("%(name)s", %(type)s),'
- % dict( name=v.name
+ % dict( name=v.alias
,type=ctypes_formatter.as_ctype( v.type ) ) ) )
result.append( ']' )
return os.linesep.join( result )
Modified: pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py
===================================================================
--- pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-01-13 23:29:45 UTC (rev 1567)
@@ -235,8 +235,6 @@
def visit_class(self):
self.__dependencies_manager.add_exported( self.curr_decl )
if not self.curr_decl.opaque:
- #fields definition should be recursive using the visitor
- self.__class_defs_ccs.adopt_creator( code_creators.fields_definition_t( self.curr_decl ) )
if self.curr_decl.calldefs( self.__should_generate_code, recursive=False, allow_empty=True ):
md_cc = code_creators.methods_definition_t( self.curr_decl )
self.__class2methods_def[ self.curr_decl ] = md_cc
@@ -247,6 +245,9 @@
self.curr_decl = decl
declarations.apply_visitor( self, decl )
self.curr_decl = class_
+ #fields definition should be recursive using the visitor
+ #internal classes fields should be defined first
+ self.__class_defs_ccs.adopt_creator( code_creators.fields_definition_t( self.curr_decl ) )
else:
cls_intro_cc = self.__class2introduction[ self.curr_decl ]
cls_intro_cc.adopt_creator( code_creators.opaque_init_introduction_t( self.curr_decl ) )
Modified: pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py
===================================================================
--- pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2009-01-13 23:29:45 UTC (rev 1567)
@@ -58,7 +58,7 @@
self.global_ns = self.__parse_declarations( files, gccxml_config )
self.__blob2decl = binary_parsers.merge_information( self.global_ns, exported_symbols_file )
- self.__include_declarations()
+ self.__apply_defaults()
self.__code_creator = None
if optimize_queries:
@@ -89,7 +89,7 @@
continue
self.logger.debug( 'discovered dependency %s - included' % str(dependency) )
dd = traits.get_declaration( dependency )
- dd.ignore = False
+ dd.include()
def __include_parent_classes( self, decl ):
self.logger.debug( 'including decl %s' % str(decl) )
@@ -99,7 +99,7 @@
break
else:
self.logger.debug( 'including parent class %s' % str(parent) )
- parent.ignore = False
+ parent.include()
parent = parent.parent
def __include_declarations( self ):
@@ -113,6 +113,15 @@
self.__include_dependencies( d )
self.logger.debug( 'including decl %s - done' % str(d) )
+ def __apply_defaults( self ):
+ self.__include_declarations()
+ anonymous_classes = self.global_ns.classes( '', recursive=True, allow_empty=True )
+ anonymous_classes.alias = '_'
+ #TODO: check whether the anonymous class unique or not
+ #if 1 == len( anonymous.parent.classes( '', recursive=False ) ):
+ anonymous_vars = self.global_ns.vars( '', recursive=True, allow_empty=True )
+ anonymous_vars.alias = '_'
+
def build_code_creator( self, library_path, doc_extractor=None ):
creator = creators_factory.ctypes_creator_t( self.global_ns
, library_path
Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py
===================================================================
--- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-13 23:29:45 UTC (rev 1567)
@@ -141,9 +141,29 @@
udt = self.module_ref.create()
self.failUnless( 1977 == self.module_ref.read_user_data(udt) )
self.module_ref.destroy( udt )
+
+class include_algorithm_tester_t( ctypes_base_tester_t ):
+ def __init__( self, *args, **keywd ):
+ ctypes_base_tester_t.__init__( self, 'include_algorithm', *args, **keywd )
+ def customize( self, mb ):
+ self.failUnless( mb.global_ns.class_( 'io_marker_t' ).ignore == False )
+ def test(self):
+ self.failUnless( mb.module_ref.io_marker_t )
+class anonymous_tester_t( ctypes_base_tester_t ):
+ def __init__( self, *args, **keywd ):
+ ctypes_base_tester_t.__init__( self, 'anonymous', *args, **keywd )
+
+ def customize( self, mb ):
+ mb.class_( 'rgbai' ).include()
+
+ def test(self):
+ c = self.module_ref.color()
+ c.r
+ c.val
+
def create_suite():
suite = unittest.TestSuite()
if 'win' in sys.platform:
@@ -151,6 +171,8 @@
suite.addTest( unittest.makeSuite(issues_tester_t))
suite.addTest( unittest.makeSuite(enums_tester_t))
suite.addTest( unittest.makeSuite(opaque_tester_t))
+ suite.addTest( unittest.makeSuite(include_algorithm_tester_t))
+ suite.addTest( unittest.makeSuite(anonymous_tester_t))
return suite
def run_suite():
Added: pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.cpp
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.cpp (rev 0)
+++ pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.cpp 2009-01-13 23:29:45 UTC (rev 1567)
@@ -0,0 +1,3 @@
+#include "anonymous.h"
+
+void do_smth( color ){}
Added: pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.h
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.h (rev 0)
+++ pyplusplus_dev/unittests/data/ctypes/anonymous/anonymous.h 2009-01-13 23:29:45 UTC (rev 1567)
@@ -0,0 +1,26 @@
+#pragma once
+#include "libconfig.h"
+
+
+struct EXPORT_SYMBOL rgbai{
+ struct {
+ float r,g,b,a;
+ };
+ int i;
+};
+
+struct EXPORT_SYMBOL color{
+ union{
+ struct {
+ float r,g,b,a;
+ };
+ float val[4];
+ };
+};
+
+struct {
+ int x;
+} unnamed_struct_with_mem_var_x;
+
+void EXPORT_SYMBOL do_smth( color );
+
Added: pyplusplus_dev/unittests/data/ctypes/anonymous/sconscript
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/anonymous/sconscript (rev 0)
+++ pyplusplus_dev/unittests/data/ctypes/anonymous/sconscript 2009-01-13 23:29:45 UTC (rev 1567)
@@ -0,0 +1,5 @@
+Import('*')
+
+target_name = 'anonymous'
+shlib = env.SharedLibrary( target=target_name, source=[ target_name + '.cpp' ] )
+env.Alias( target_name, shlib )
Added: pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.cpp
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.cpp (rev 0)
+++ pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.cpp 2009-01-13 23:29:45 UTC (rev 1567)
@@ -0,0 +1,5 @@
+#include "include_algorithm.h"
+
+void do_nothing( io_file_t* ){
+ return;
+}
Added: pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.h
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.h (rev 0)
+++ pyplusplus_dev/unittests/data/ctypes/include_algorithm/include_algorithm.h 2009-01-13 23:29:45 UTC (rev 1567)
@@ -0,0 +1,11 @@
+#pragma once
+
+#include "libconfig.h"
+
+struct EXPORT_SYMBOL io_marker_t{};
+
+struct EXPORT_SYMBOL io_file_t{
+ io_marker_t* io_marker;
+};
+
+void EXPORT_SYMBOL do_nothing( io_file_t* );
Added: pyplusplus_dev/unittests/data/ctypes/include_algorithm/sconscript
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/include_algorithm/sconscript (rev 0)
+++ pyplusplus_dev/unittests/data/ctypes/include_algorithm/sconscript 2009-01-13 23:29:45 UTC (rev 1567)
@@ -0,0 +1,5 @@
+Import('*')
+
+target_name = 'include_algorithm'
+shlib = env.SharedLibrary( target=target_name, source=[ target_name + '.cpp' ] )
+env.Alias( target_name, shlib )
Modified: pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h
===================================================================
--- pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h 2009-01-13 23:29:45 UTC (rev 1567)
@@ -1,10 +1,12 @@
#pragma once
-struct user_data_t{
+#include "libconfig.h"
+
+struct EXPORT_SYMBOL user_data_t{
int i;
};
-user_data_t* create();
-int read_user_data(user_data_t*);
-void destroy(user_data_t*);
+user_data_t* EXPORT_SYMBOL create();
+int EXPORT_SYMBOL read_user_data(user_data_t*);
+void EXPORT_SYMBOL destroy(user_data_t*);
Modified: pyplusplus_dev/unittests/data/unnamed_classes_to_be_exported.hpp
===================================================================
--- pyplusplus_dev/unittests/data/unnamed_classes_to_be_exported.hpp 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/unittests/data/unnamed_classes_to_be_exported.hpp 2009-01-13 23:29:45 UTC (rev 1567)
@@ -6,9 +6,11 @@
#ifndef __unnamed_enums_to_be_exported_hpp__
#define __unnamed_enums_to_be_exported_hpp__
+#include "libconfig.h"
+
namespace unnamed_enums{
-struct color{
+struct EXPORT_SYMBOL color{
union{
struct {
float r,g,b,a;
@@ -17,10 +19,12 @@
};
};
-struct{
+struct {
int x;
} unnamed_struct_with_mem_var_x;
+void EXPORT_SYMBOL do_smth( color ){}
+
}
#endif//__unnamed_enums_to_be_exported_hpp__
Modified: pyplusplus_dev/unittests/sconstruct
===================================================================
--- pyplusplus_dev/unittests/sconstruct 2009-01-13 15:36:40 UTC (rev 1566)
+++ pyplusplus_dev/unittests/sconstruct 2009-01-13 23:29:45 UTC (rev 1567)
@@ -13,7 +13,9 @@
env.AppendUnique( CCFLAGS=[ r"/MD",r"/EHsc",r"/GR",r"/Zc:wchar_t",r"/Zc:forScope" ] )
env.AppendUnique( LINKFLAGS=[r"/MAP:${TARGET.base}.map", r"/MAPINFO:EXPORTS"] )
-scripts = [ 'pof', 'issues', 'enums', 'opaque' ]
+env.AppendUnique( CPPPATH=['#data'] )
+
+scripts = [ 'pof', 'issues', 'enums', 'opaque', 'include_algorithm', 'anonymous' ]
for s in scripts:
SConscript( 'data/ctypes/%s/sconscript' % s
, variant_dir='data/ctypes/%s/binaries' % s
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-13 15:36:50
|
Revision: 1566
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1566&view=rev
Author: roman_yakovenko
Date: 2009-01-13 15:36:40 +0000 (Tue, 13 Jan 2009)
Log Message:
-----------
more changes to WEB UI
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/decl_printer.py
pyplusplus_dev/unittests/ctypes_pof_tester.py
ui/web/code_generator.py
ui/web/config.py
ui/web/forms.py
ui/web/main.py
ui/web/templates/generated_tmpl.html
Added Paths:
-----------
ui/web/wizard.py
Modified: pygccxml_dev/pygccxml/declarations/decl_printer.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/decl_printer.py 2009-01-12 22:33:13 UTC (rev 1565)
+++ pygccxml_dev/pygccxml/declarations/decl_printer.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -259,7 +259,8 @@
def visit_variable(self ):
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)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + 'type: %s' % self.__inst.type.decl_string + os.linesep)
+ self.writer( ' ' * curr_level * self.INDENT_SIZE + 'value: %s' % 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)
Modified: pyplusplus_dev/unittests/ctypes_pof_tester.py
===================================================================
--- pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-12 22:33:13 UTC (rev 1565)
+++ pyplusplus_dev/unittests/ctypes_pof_tester.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -141,15 +141,15 @@
udt = self.module_ref.create()
self.failUnless( 1977 == self.module_ref.read_user_data(udt) )
self.module_ref.destroy( udt )
-
-
+
+
def create_suite():
suite = unittest.TestSuite()
if 'win' in sys.platform:
suite.addTest( unittest.makeSuite(pof_tester_t))
suite.addTest( unittest.makeSuite(issues_tester_t))
- #suite.addTest( unittest.makeSuite(enums_tester_t))
+ suite.addTest( unittest.makeSuite(enums_tester_t))
suite.addTest( unittest.makeSuite(opaque_tester_t))
return suite
Modified: ui/web/code_generator.py
===================================================================
--- ui/web/code_generator.py 2009-01-12 22:33:13 UTC (rev 1565)
+++ ui/web/code_generator.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -6,34 +6,33 @@
from pyplusplus import module_builder
class manager_t:
- def __init__( self ):
- pass
- def show_declarations( self, source_code ):
+ def show_declarations( self, file_configuration ):
try:
- reader = parser.source_reader_t( config=config.gccxml )
- decls = reader.read_string( source_code )
+ reader = parser.project_reader_t( config=config.gccxml )
+ decls = reader.read_files( [file_configuration] )
global_ns = declarations.get_global_namespace( decls )
tmp = []
- declarations.print_declarations( decls, verbose=False, writer=lambda x: tmp.append( x ) )
- return '\n'.join( tmp )
+ declarations.print_declarations( decls, verbose=False, writer=lambda x: tmp.append( x.rstrip() ) )
+ print os.linesep.join( tmp )
+ return os.linesep.join( tmp ), ''
except Exception, error:
user_msg = [ 'Error occured during code generation process!' ]
user_msg.append( 'Error:' )
user_msg.append( str( error ) )
- return '\n'.join( user_msg )
+ return '', '\n'.join( user_msg )
def generate_pypp_code( self, source_code ):
return "import pyplusplus"
- def generate_bpl_code( self, source_code ):
+ def generate_bpl_code( self, file_configuration ):
try:
_logging_.loggers.make_inmemory()
-
- f = parser.create_text_fc( source_code )
- mb = module_builder.module_builder_t( [ f ]
- , gccxml_path=config.gccxml.gccxml_path )
+
+ mb = module_builder.module_builder_t( [ file_configuration ]
+ , gccxml_path=config.gccxml.gccxml_path
+ , compiler=config.gccxml.compiler)
mb.decls( header_dir=config.temp_dir ).include()
mb.build_code_creator( "pyplusplus" )
code = mb.code_creator.create()
@@ -41,12 +40,12 @@
code = code.replace( '\r\n', '\n' )
warnings = _logging_.loggers.stream.getvalue()
_logging_.loggers.stream.close()
- return code, warnings
+ return code, warnings
except Exception, error:
user_msg = [ 'Error occured during code generation process!' ]
user_msg.append( 'Error:' )
user_msg.append( str( error ) )
- return '\n'.join( user_msg )
+ return '', '\n'.join( user_msg )
if __name__ == '__main__':
m = manager_t()
Modified: ui/web/config.py
===================================================================
--- ui/web/config.py 2009-01-12 22:33:13 UTC (rev 1565)
+++ ui/web/config.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -10,16 +10,16 @@
if os.path.exists( os.path.join( projects_root_dir, 'pygccxml_dev' ) ):
sys.path.append( os.path.join( projects_root_dir, 'pygccxml_dev' ) )
-if os.path.exists( os.path.join( projects_root_dir, 'pyplusplus_dev' ) ):
+if os.path.exists( os.path.join( projects_root_dir, 'pyplusplus_dev' ) ):
sys.path.append( os.path.join( projects_root_dir, 'pyplusplus_dev' ) )
-#else use installed modules
+#else use installed modules
from pygccxml import parser
from pyplusplus import module_builder
gccxml_path = os.path.join( projects_root_dir, 'gccxml_bin', 'v09', sys.platform, 'bin' )
if os.path.exists( gccxml_path ):
- gccxml = parser.config_t( gccxml_path=gccxml_path )
+ gccxml = parser.config_t( gccxml_path=gccxml_path, compiler='msvc71' )
else: #use gccxml from PATH
gccxml = parser.config_t()
Modified: ui/web/forms.py
===================================================================
--- ui/web/forms.py 2009-01-12 22:33:13 UTC (rev 1565)
+++ ui/web/forms.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -1,12 +1,13 @@
import config
import web
-import textcha
+from pygccxml import parser
+import wizard
class Label(web.form.Input):
tmpl = """<label name="%(name)s" %(atts)s>%(value)s</label>%(note)s"""
def render(self):
value = ''
- if self.value is not None:
+ if self.value is not None:
value = web.net.websafe(self.value)
return self.tmpl % dict( name=web.net.websafe(self.name)
, value=value
@@ -43,49 +44,79 @@
if i.post:
controls.append( i.post )
return self.tmpl % dict( attrs=self.render_addattrs(), inputs='\n'.join( controls ) )
-
-
-class generator_t( SimpleForm ):
- def __init__( self, action, code_generator=None, method='post' ):
+
+
+class generator_t:
+ def __init__( self, code_generator, input ):
+ self.__input = input
self.__code_generator = code_generator
- self.__show_decls = web.form.Button( 'Show declarations', type="submit" )
- self.__generate_bpl_code = web.form.Button( 'Generate Boost.Python code', type="submit" )
- self.__generate_pypp_code = web.form.Button( 'Generate Py++ code', id="generate_pypp_code", type="submit" )
- self.__source_code = web.form.Textarea( "source_code", rows="20", style="width:100%")
- self.__textcha_question = web.form.Hidden( "textcha_question", value=textcha.random_question(), style="width:60%;", id='textcha-question')
- self.__textcha_answer = web.form.Textbox( "textcha_answer", value="", style="width:40%;", maxlength="120", id='textcha-answer')
- SimpleForm.__init__( self
- , Label( 'source_code', value="Source code:" )
- , RawHTML( '<br/>' )
- , self.__source_code
- , RawHTML( '<br/>' )
- , self.__textcha_question
- , Label( 'textcha_question', value=self.__textcha_question.value )
- , self.__textcha_answer
- , RawHTML( '<br/><br/>' )
- , self.__show_decls
- , RawHTML( '<a></a>' )
- , self.__generate_bpl_code
- , RawHTML( '<a></a>' )
- , self.__generate_pypp_code
- , action=action
- , method=method
- , style="width:80%; float:left;" )
-
- def process( self, request_data ):
- warnings = ''
- generated = ''
- if not textcha.is_human( request_data[ self.__textcha_question.name], request_data[ self.__textcha_answer.name] ):
- generated = warnings = "Please answer the question!"
- return generated, warnings
- source_code = request_data[ self.__source_code.name]
- if self.__show_decls.name in request_data:
- generated = self.__code_generator.show_declarations( source_code )
- elif self.__generate_pypp_code.name in request_data:
- generated = self.__code_generator.generate_pypp_code( source_code )
- elif self.__generate_bpl_code.name in request_data:
- generated, warnings = self.__code_generator.generate_bpl_code( source_code )
+ self.__handlers = {
+ "VIEW_XML" : self.on_view_xml
+ , "VIEW_DECLS" : self.on_view_decls
+ , "GENERATE_BP_CODE" : self.on_generate_bp_code
+ , "GENERATE_BP_PYPP_CODE" : self.on_generate_bp_pypp_code
+ , "GENERATE_CTYPES_CODE" : self.on_generate_ctypes_code
+ , "GENERATE_CTYPES_PYPP_CODE" : self.on_generate_ctypes_pypp_code
+ }
+
+ def __create_fc( self, prefix ):
+ fto_key = prefix + '_TAKE_CODE_FROM'
+ code_key = prefix + '_SOURCE_CODE'
+ file_key = prefix + '_FILE_NAME'
+ if self.__input[fto_key] == 'text':
+ return parser.create_text_fc( self.__input[ code_key ] )
else:
- generated = 'error - unknown submit action'
- return generated, warnings
-
+ return parser.create_source_fc( self.__input[ file_key ] )
+
+ def on_view_xml( self ):
+ fc = self.__create_fc( 'GCCXML' )
+ decls_tree, warnings = self.__code_generator.show_declarations( fc )
+ return decls_tree, warnings
+
+ def on_view_decls( self ):
+ fc = self.__create_fc( 'GCCXML' )
+ decls_tree, warnings = self.__code_generator.show_declarations( fc )
+ return decls_tree, warnings
+
+ def on_generate_bp_code( self ):
+ fc = self.__create_fc( 'BP' )
+ code, warnings = self.__code_generator.generate_bpl_code( fc )
+ return code, warnings
+
+ def on_generate_bp_pypp_code( self ):
+ w = wizard.wizard_t()
+ code = w.create_bpl_code( config.gccxml, self.__create_fc( 'BP' ) )
+ return code, ''
+
+ def on_generate_ctypes_code( self ):
+ pass
+
+ def on_generate_ctypes_pypp_code( self ):
+ pass
+
+ def not_found_handler( self ):
+ raise RuntimeError( 'Error - unknown submit action' )
+
+ def __select_handler( self ):
+ for key, handler in self.__handlers.iteritems():
+ if key in self.__input:
+ return handler
+ else:
+ return self.not_found_handler
+
+ def process( self ):
+ handler = self.__select_handler()
+ return handler()
+
+
+ #~ source_code = request_data[ self.__source_code.name]
+ #~ if self.__show_decls.name in request_data:
+ #~ generated = self.__code_generator.show_declarations( source_code )
+ #~ elif self.__generate_pypp_code.name in request_data:
+ #~ generated = self.__code_generator.generate_pypp_code( source_code )
+ #~ elif self.__generate_bpl_code.name in request_data:
+ #~ generated, warnings = self.__code_generator.generate_bpl_code( source_code )
+ #~ else:
+ #~ generated = 'error - unknown submit action'
+ #~ return generated, warnings
+
Modified: ui/web/main.py
===================================================================
--- ui/web/main.py 2009-01-12 22:33:13 UTC (rev 1565)
+++ ui/web/main.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -21,9 +21,10 @@
class generated:
def POST(self, r_url=None ):
- form = forms.generator_t( action='', code_generator=code_generator.manager_t() )
- generated, warnings = form.process( web.input() )
- return render.generated(generated, warnings)
+ form = forms.generator_t( code_generator.manager_t(), web.input() )
+ generated_frender = web.template.frender('templates/generated_tmpl.html')
+ generated, warnings = form.process()
+ return generated_frender(generated, warnings)
if __name__ == '__main__':
app = web.application(urls, globals(), autoreload=True)
Modified: ui/web/templates/generated_tmpl.html
===================================================================
--- ui/web/templates/generated_tmpl.html 2009-01-12 22:33:13 UTC (rev 1565)
+++ ui/web/templates/generated_tmpl.html 2009-01-13 15:36:40 UTC (rev 1566)
@@ -1,28 +1,21 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="shortcut icon" href="/static/favicon.ico" />
- <link rel="icon" href="/static/favicon.ico" />
- <title>pygccxml & py++ demo - generated code</title>
-</head>
-<body>
- <h2>pygccxml & py++ demo - generated code</h2>
- <span style="width:80%; float:left;">
- <label>Generated code</label>
- <br/>
- <textarea name="generated_code" rows="20" readonly="true" style="width:100%;">hihi</textarea>
- </span>
- <a> </a>
- <span style="float : left; padding-left : 10px; width : 18%;">
- <br/>
- <label style="width:100;">What is ... ?</label>
- <dt>
- <dd><a href="http://www.language-binding.net">py++</a></dd>
- <dd><a href="http://www.language-binding.net">pygccxml</a></dd>
- </dt>
- <label style="width:100;">Adsense placeholder</label>
- <textarea name="adsense" rows="15" style="width:100;">jjjjjjjjjjjjjjjjjjjjjjjjjj</textarea>
- </span>
-</body>
-</html>
+$def with ( generated_code, warnings )
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link rel="shortcut icon" href="/static/favicon.ico" />
+ <link rel="icon" href="/static/favicon.ico" />
+ <title>pygccxml & py++ demo - generated code</title>
+</head>
+<body>
+ <h2>pygccxml & py++ demo - generated code</h2>
+ <label>Generated code</label>
+ <br/>
+ <textarea name="generated_code" rows="20" cols="180" readonly="true">$generated_code</textarea>
+ <br/>
+ <label>Warnings and Errors</label>
+ <br/>
+ <textarea name="generated_code" rows="20" cols="180" readonly="true">$warnings</textarea>
+
+</body>
+</html>
Added: ui/web/wizard.py
===================================================================
--- ui/web/wizard.py (rev 0)
+++ ui/web/wizard.py 2009-01-13 15:36:40 UTC (rev 1566)
@@ -0,0 +1,81 @@
+"""generates Py++ code from the user data"""
+import os
+from pygccxml import parser
+
+BP_FILE_CODE_TEMPLATE = \
+"""
+import os
+from pyplusplus import module_builder
+
+#Creating an instance of class that will help you to expose your declarations
+mb = module_builder.module_builder_t( [r"%(file_name)s"]
+ , gccxml_path=r"%(gccxml_path)s"
+ , include_paths=%(include_paths)s
+ , define_symbols=%(define_symbols)s )
+
+#print all parsed declarations and some information about them
+mb.print_declarations()
+
+#Py++ has smart algorithm, which automaticly selects what declarations should be
+#exported, but of course you can change that.
+
+#building code creator. After this step you should not modify declarations.
+mb.build_code_creator( module_name='pyplusplus' )
+
+#writing code to file.
+mb.write_module( './bindings.cpp' )
+"""
+
+BP_TEXT_CODE_TEMPLATE = \
+r'''
+import os
+import tempfile
+from pygccxml import parser
+from pyplusplus import module_builder
+
+code = \
+"""
+%(text)s
+"""
+
+
+#Creating an instance of class that will help you to expose your declarations
+mb = module_builder.module_builder_t( [parser.create_text_fc(code)]
+ , gccxml_path=r"%(gccxml_path)s"
+ , include_paths=%(include_paths)s
+ , define_symbols=%(define_symbols)s )
+
+#print all parsed declarations and some information about them
+mb.print_declarations()
+
+#select all declarations from the code fragment and export them
+mb.decls( header_dir=tempfile.tempdir ).include()
+
+mb.add_declaration_code( code, tail=False )
+
+#building code creator. After this step you should not modify declarations.
+mb.build_code_creator( module_name='pyplusplus' )
+
+#writing code to file.
+mb.write_module( './bindings.cpp' )
+'''
+
+class wizard_t( object ):
+ """code generator that creates Py++ code"""
+ def __init__( self ):
+ object.__init__( self )
+
+ def create_bpl_code( self, gccxml_cfg, file_configuration ):
+ tmpl = None
+ substitute_dict = dict( gccxml_path=gccxml_cfg.gccxml_path
+ , include_paths=`gccxml_cfg.include_paths`
+ , define_symbols=`gccxml_cfg.define_symbols` )
+ if file_configuration.content_type == file_configuration.CONTENT_TYPE.TEXT:
+ global BP_TEXT_CODE_TEMPLATE
+ tmpl = BP_TEXT_CODE_TEMPLATE
+ substitute_dict['text'] = '\n'.join( [ line.rstrip() for line in file_configuration.data.split('\n') ] )
+ else:
+ global BP_FILE_CODE_TEMPLATE
+ tmpl = BP_FILE_CODE_TEMPLATE
+ substitute_dict['file_name'] = file_configuration.data
+ return tmpl % substitute_dict
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-12 23:05:12
|
Revision: 1564
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1564&view=rev
Author: roman_yakovenko
Date: 2009-01-12 22:28:49 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
Added Paths:
-----------
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/gccxml_bitset
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/gccxml_bitset
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/gccxml_bitset (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/gccxml_bitset 2009-01-12 22:28:49 UTC (rev 1564)
@@ -0,0 +1,1066 @@
+/*
+ * Copyright (c) 1998
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ */
+
+#ifndef __SGI_STL_BITSET
+#define __SGI_STL_BITSET
+
+// This implementation of bitset<> has a second template parameter,
+// _WordT, which defaults to unsigned long. *YOU SHOULD NOT USE
+// THIS FEATURE*. It is experimental, and it may be removed in
+// future releases.
+
+// A bitset of size N, using words of type _WordT, will have
+// N % (sizeof(_WordT) * CHAR_BIT) unused bits. (They are the high-
+// order bits in the highest word.) It is a class invariant
+// of class bitset<> that those unused bits are always zero.
+
+// Most of the actual code isn't contained in bitset<> itself, but in the
+// base class _Base_bitset. The base class works with whole words, not with
+// individual bits. This allows us to specialize _Base_bitset for the
+// important special case where the bitset is only a single word.
+
+// The C++ standard does not define the precise semantics of operator[].
+// In this implementation the const version of operator[] is equivalent
+// to test(), except that it does no range checking. The non-const version
+// returns a reference to a bit, again without doing any range checking.
+
+
+#include <stddef.h> // for size_t
+#include <limits.h> // for CHAR_BIT
+#include <string>
+#include <stdexcept> // for invalid_argument, out_of_range, overflow_error
+#include <iostream.h> // for istream, ostream
+
+#define __BITS_PER_WORDT(__wt) (CHAR_BIT*sizeof(__wt))
+#define __BITSET_WORDS(__n,__wt) \
+ ((__n) < 1 ? 1 : ((__n) + __BITS_PER_WORDT(__wt) - 1)/__BITS_PER_WORDT(__wt))
+
+__STL_BEGIN_NAMESPACE
+
+#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
+#pragma set woff 1209
+#endif
+
+// structure to aid in counting bits
+template<bool __dummy>
+struct _Bit_count {
+ static unsigned char _S_bit_count[256];
+};
+
+// Mapping from 8 bit unsigned integers to the index of the first one
+// bit:
+template<bool __dummy>
+struct _First_one {
+ static unsigned char _S_first_one[256];
+};
+
+//
+// Base class: general case.
+//
+
+template<size_t _Nw, class _WordT>
+struct _Base_bitset {
+ _WordT _M_w[_Nw]; // 0 is the least significant word.
+
+ _Base_bitset( void ) { _M_do_reset(); }
+
+ _Base_bitset(unsigned long __val);
+
+ static size_t _S_whichword( size_t __pos ) {
+ return __pos / __BITS_PER_WORDT(_WordT);
+ }
+ static size_t _S_whichbyte( size_t __pos ) {
+ return (__pos % __BITS_PER_WORDT(_WordT)) / CHAR_BIT;
+ }
+ static size_t _S_whichbit( size_t __pos ) {
+ return __pos % __BITS_PER_WORDT(_WordT);
+ }
+ static _WordT _S_maskbit( size_t __pos ) {
+ return (static_cast<_WordT>(1)) << _S_whichbit(__pos);
+ }
+
+ _WordT& _M_getword(size_t __pos) { return _M_w[_S_whichword(__pos)]; }
+ _WordT _M_getword(size_t __pos) const { return _M_w[_S_whichword(__pos)]; }
+
+ _WordT& _M_hiword() { return _M_w[_Nw - 1]; }
+ _WordT _M_hiword() const { return _M_w[_Nw - 1]; }
+
+ void _M_do_and(const _Base_bitset<_Nw,_WordT>& __x) {
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _M_w[__i] &= __x._M_w[__i];
+ }
+ }
+
+ void _M_do_or(const _Base_bitset<_Nw,_WordT>& __x) {
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _M_w[__i] |= __x._M_w[__i];
+ }
+ }
+
+ void _M_do_xor(const _Base_bitset<_Nw,_WordT>& __x) {
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _M_w[__i] ^= __x._M_w[__i];
+ }
+ }
+
+ void _M_do_left_shift(size_t __shift);
+
+ void _M_do_right_shift(size_t __shift);
+
+ void _M_do_flip() {
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _M_w[__i] = ~_M_w[__i];
+ }
+ }
+
+ void _M_do_set() {
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _M_w[__i] = ~static_cast<_WordT>(0);
+ }
+ }
+
+ void _M_do_reset() {
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _M_w[__i] = 0;
+ }
+ }
+
+ bool _M_is_equal(const _Base_bitset<_Nw,_WordT>& __x) const {
+ for (size_t __i = 0; __i < _Nw; ++__i) {
+ if (_M_w[__i] != __x._M_w[__i])
+ return false;
+ }
+ return true;
+ }
+
+ bool _M_is_any() const {
+ for ( size_t __i = 0; __i < __BITSET_WORDS(_Nw,_WordT); __i++ ) {
+ if ( _M_w[__i] != static_cast<_WordT>(0) )
+ return true;
+ }
+ return false;
+ }
+
+ size_t _M_do_count() const {
+ size_t __result = 0;
+ const unsigned char* __byte_ptr = (const unsigned char*)_M_w;
+ const unsigned char* __end_ptr = (const unsigned char*)(_M_w+_Nw);
+
+ while ( __byte_ptr < __end_ptr ) {
+ __result += _Bit_count<true>::_S_bit_count[*__byte_ptr];
+ __byte_ptr++;
+ }
+ return __result;
+ }
+
+ unsigned long _M_do_to_ulong() const;
+
+ // find first "on" bit
+ size_t _M_do_find_first(size_t __not_found) const;
+
+ // find the next "on" bit that follows "prev"
+ size_t _M_do_find_next(size_t __prev, size_t __not_found) const;
+};
+
+//
+// Definitions of non-inline functions from _Base_bitset.
+//
+
+template<size_t _Nw, class _WordT>
+_Base_bitset<_Nw, _WordT>::_Base_bitset(unsigned long __val)
+{
+ _M_do_reset();
+ const size_t __n = min(static_cast<size_t>(sizeof(unsigned long)*CHAR_BIT),
+ static_cast<size_t>(__BITS_PER_WORDT(_WordT)*_Nw));
+ for(size_t __i = 0; __i < __n; ++__i, __val >>= 1)
+ if ( __val & 0x1 )
+ _M_getword(__i) |= _S_maskbit(__i);
+}
+
+template<size_t _Nw, class _WordT>
+void _Base_bitset<_Nw, _WordT>::_M_do_left_shift(size_t __shift)
+{
+ if (__shift != 0) {
+ const size_t __wshift = __shift / __BITS_PER_WORDT(_WordT);
+ const size_t __offset = __shift % __BITS_PER_WORDT(_WordT);
+ const size_t __sub_offset = __BITS_PER_WORDT(_WordT) - __offset;
+ size_t __n = _Nw - 1;
+ for ( ; __n > __wshift; --__n)
+ _M_w[__n] = (_M_w[__n - __wshift] << __offset) |
+ (_M_w[__n - __wshift - 1] >> __sub_offset);
+ if (__n == __wshift)
+ _M_w[__n] = _M_w[0] << __offset;
+ for (size_t __n1 = 0; __n1 < __n; ++__n1)
+ _M_w[__n1] = static_cast<_WordT>(0);
+ }
+}
+
+template<size_t _Nw, class _WordT>
+void _Base_bitset<_Nw, _WordT>::_M_do_right_shift(size_t __shift)
+{
+ if (__shift != 0) {
+ const size_t __wshift = __shift / __BITS_PER_WORDT(_WordT);
+ const size_t __offset = __shift % __BITS_PER_WORDT(_WordT);
+ const size_t __sub_offset = __BITS_PER_WORDT(_WordT) - __offset;
+ const size_t __limit = _Nw - __wshift - 1;
+ size_t __n = 0;
+ for ( ; __n < __limit; ++__n)
+ _M_w[__n] = (_M_w[__n + __wshift] >> __offset) |
+ (_M_w[__n + __wshift + 1] << __sub_offset);
+ _M_w[__limit] = _M_w[_Nw-1] >> __offset;
+ for (size_t __n1 = __limit + 1; __n1 < _Nw; ++__n1)
+ _M_w[__n1] = static_cast<_WordT>(0);
+ }
+}
+
+template<size_t _Nw, class _WordT>
+unsigned long _Base_bitset<_Nw, _WordT>::_M_do_to_ulong() const
+{
+ const overflow_error __overflow("bitset");
+
+ if (sizeof(_WordT) >= sizeof(unsigned long)) {
+ for (size_t __i = 1; __i < _Nw; ++__i)
+ if (_M_w[__i])
+ __STL_THROW(__overflow);
+
+ const _WordT __mask = static_cast<_WordT>(static_cast<unsigned long>(-1));
+ if (_M_w[0] & ~__mask)
+ __STL_THROW(__overflow);
+
+ return static_cast<unsigned long>(_M_w[0] & __mask);
+ }
+ else { // sizeof(_WordT) < sizeof(unsigned long).
+ const size_t __nwords =
+ (sizeof(unsigned long) + sizeof(_WordT) - 1) / sizeof(_WordT);
+
+ size_t __min_nwords = __nwords;
+ if (_Nw > __nwords) {
+ for (size_t __i = __nwords; __i < _Nw; ++__i)
+ if (_M_w[__i])
+ __STL_THROW(__overflow);
+ }
+ else
+ __min_nwords = _Nw;
+
+ // If unsigned long is 8 bytes and _WordT is 6 bytes, then an unsigned
+ // long consists of all of one word plus 2 bytes from another word.
+ const size_t __part = sizeof(unsigned long) % sizeof(_WordT);
+
+ if (__part != 0 && __nwords <= _Nw &&
+ (_M_w[__min_nwords - 1] >> ((sizeof(_WordT) - __part) * CHAR_BIT)) != 0)
+ __STL_THROW(__overflow);
+
+ unsigned long __result = 0;
+ for (size_t __i = 0; __i < __min_nwords; ++__i) {
+ __result |= static_cast<unsigned long>(
+ _M_w[__i]) << (__i * sizeof(_WordT) * CHAR_BIT);
+ }
+ return __result;
+ }
+} // End _M_do_to_ulong
+
+template<size_t _Nw, class _WordT>
+size_t _Base_bitset<_Nw, _WordT>::_M_do_find_first(size_t __not_found) const
+{
+ for ( size_t __i = 0; __i < _Nw; __i++ ) {
+ _WordT __thisword = _M_w[__i];
+ if ( __thisword != static_cast<_WordT>(0) ) {
+ // find byte within word
+ for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
+ unsigned char __this_byte
+ = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
+ if ( __this_byte )
+ return __i*__BITS_PER_WORDT(_WordT) + __j*CHAR_BIT +
+ _First_one<true>::_S_first_one[__this_byte];
+
+ __thisword >>= CHAR_BIT;
+ }
+ }
+ }
+ // not found, so return an indication of failure.
+ return __not_found;
+}
+
+template<size_t _Nw, class _WordT>
+size_t
+_Base_bitset<_Nw, _WordT>::_M_do_find_next(size_t __prev,
+ size_t __not_found) const
+{
+ // make bound inclusive
+ ++__prev;
+
+ // check out of bounds
+ if ( __prev >= _Nw * __BITS_PER_WORDT(_WordT) )
+ return __not_found;
+
+ // search first word
+ size_t __i = _S_whichword(__prev);
+ _WordT __thisword = _M_w[__i];
+
+ // mask off bits below bound
+ __thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev);
+
+ if ( __thisword != static_cast<_WordT>(0) ) {
+ // find byte within word
+ // get first byte into place
+ __thisword >>= _S_whichbyte(__prev) * CHAR_BIT;
+ for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) {
+ unsigned char __this_byte
+ = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
+ if ( __this_byte )
+ return __i*__BITS_PER_WORDT(_WordT) + __j*CHAR_BIT +
+ _First_one<true>::_S_first_one[__this_byte];
+
+ __thisword >>= CHAR_BIT;
+ }
+ }
+
+ // check subsequent words
+ __i++;
+ for ( ; __i < _Nw; __i++ ) {
+ _WordT __thisword = _M_w[__i];
+ if ( __thisword != static_cast<_WordT>(0) ) {
+ // find byte within word
+ for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
+ unsigned char __this_byte
+ = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
+ if ( __this_byte )
+ return __i*__BITS_PER_WORDT(_WordT) + __j*CHAR_BIT +
+ _First_one<true>::_S_first_one[__this_byte];
+
+ __thisword >>= CHAR_BIT;
+ }
+ }
+ }
+
+ // not found, so return an indication of failure.
+ return __not_found;
+} // end _M_do_find_next
+
+
+// ------------------------------------------------------------
+
+//
+// Base class: specialization for a single word.
+//
+
+template<class _WordT>
+struct _Base_bitset<1, _WordT> {
+ _WordT _M_w;
+
+ _Base_bitset( void ) { _M_do_reset(); }
+
+ _Base_bitset(unsigned long __val);
+
+ static size_t _S_whichword( size_t __pos ) {
+ return __pos / __BITS_PER_WORDT(_WordT);
+ }
+ static size_t _S_whichbyte( size_t __pos ) {
+ return (__pos % __BITS_PER_WORDT(_WordT)) / CHAR_BIT;
+ }
+ static size_t _S_whichbit( size_t __pos ) {
+ return __pos % __BITS_PER_WORDT(_WordT);
+ }
+ static _WordT _S_maskbit( size_t __pos ) {
+ return (static_cast<_WordT>(1)) << _S_whichbit(__pos);
+ }
+
+ _WordT& _M_getword(size_t) { return _M_w; }
+ _WordT _M_getword(size_t) const { return _M_w; }
+
+ _WordT& _M_hiword() { return _M_w; }
+ _WordT _M_hiword() const { return _M_w; }
+
+ void _M_do_and(const _Base_bitset<1,_WordT>& __x) { _M_w &= __x._M_w; }
+ void _M_do_or(const _Base_bitset<1,_WordT>& __x) { _M_w |= __x._M_w; }
+ void _M_do_xor(const _Base_bitset<1,_WordT>& __x) { _M_w ^= __x._M_w; }
+ void _M_do_left_shift(size_t __shift) { _M_w <<= __shift; }
+ void _M_do_right_shift(size_t __shift) { _M_w >>= __shift; }
+ void _M_do_flip() { _M_w = ~_M_w; }
+ void _M_do_set() { _M_w = ~static_cast<_WordT>(0); }
+ void _M_do_reset() { _M_w = 0; }
+
+ bool _M_is_equal(const _Base_bitset<1,_WordT>& __x) const {
+ return _M_w == __x._M_w;
+ }
+ bool _M_is_any() const {
+ return _M_w != 0;
+ }
+
+ size_t _M_do_count() const {
+ size_t __result = 0;
+ const unsigned char* __byte_ptr = (const unsigned char*)&_M_w;
+ const unsigned char* __end_ptr = ((const unsigned char*)&_M_w)+sizeof(_M_w);
+ while ( __byte_ptr < __end_ptr ) {
+ __result += _Bit_count<true>::_S_bit_count[*__byte_ptr];
+ __byte_ptr++;
+ }
+ return __result;
+ }
+
+ unsigned long _M_do_to_ulong() const {
+ if (sizeof(_WordT) <= sizeof(unsigned long))
+ return static_cast<unsigned long>(_M_w);
+ else {
+ const _WordT __mask = static_cast<_WordT>(static_cast<unsigned long>(-1));
+ if (_M_w & ~__mask)
+ __STL_THROW(overflow_error("bitset"));
+ return static_cast<unsigned long>(_M_w);
+ }
+ }
+
+ size_t _M_do_find_first(size_t __not_found) const;
+
+ // find the next "on" bit that follows "prev"
+ size_t _M_do_find_next(size_t __prev, size_t __not_found) const;
+
+};
+
+//
+// Definitions of non-inline functions from the single-word version of
+// _Base_bitset.
+//
+
+template <class _WordT>
+_Base_bitset<1, _WordT>::_Base_bitset(unsigned long __val)
+{
+ _M_do_reset();
+ const size_t __n = min(static_cast<size_t>(sizeof(unsigned long)*CHAR_BIT),
+ static_cast<size_t>(__BITS_PER_WORDT(_WordT)*1));
+ for(size_t __i = 0; __i < __n; ++__i, __val >>= 1)
+ if ( __val & 0x1 )
+ _M_w |= _S_maskbit(__i);
+}
+
+template <class _WordT>
+size_t _Base_bitset<1, _WordT>::_M_do_find_first(size_t __not_found) const
+{
+ _WordT __thisword = _M_w;
+
+ if ( __thisword != static_cast<_WordT>(0) ) {
+ // find byte within word
+ for ( size_t __j = 0; __j < sizeof(_WordT); __j++ ) {
+ unsigned char __this_byte
+ = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
+ if ( __this_byte )
+ return __j*CHAR_BIT + _First_one<true>::_S_first_one[__this_byte];
+
+ __thisword >>= CHAR_BIT;
+ }
+ }
+ // not found, so return a value that indicates failure.
+ return __not_found;
+}
+
+template <class _WordT>
+size_t
+_Base_bitset<1, _WordT>::_M_do_find_next(size_t __prev,
+ size_t __not_found ) const
+{
+ // make bound inclusive
+ ++__prev;
+
+ // check out of bounds
+ if ( __prev >= __BITS_PER_WORDT(_WordT) )
+ return __not_found;
+
+ // search first (and only) word
+ _WordT __thisword = _M_w;
+
+ // mask off bits below bound
+ __thisword &= (~static_cast<_WordT>(0)) << _S_whichbit(__prev);
+
+ if ( __thisword != static_cast<_WordT>(0) ) {
+ // find byte within word
+ // get first byte into place
+ __thisword >>= _S_whichbyte(__prev) * CHAR_BIT;
+ for ( size_t __j = _S_whichbyte(__prev); __j < sizeof(_WordT); __j++ ) {
+ unsigned char __this_byte
+ = static_cast<unsigned char>(__thisword & (~(unsigned char)0));
+ if ( __this_byte )
+ return __j*CHAR_BIT + _First_one<true>::_S_first_one[__this_byte];
+
+ __thisword >>= CHAR_BIT;
+ }
+ }
+
+ // not found, so return a value that indicates failure.
+ return __not_found;
+} // end _M_do_find_next
+
+//
+// One last specialization: _M_do_to_ulong() and the constructor from
+// unsigned long are very simple if the bitset consists of a single
+// word of type unsigned long.
+//
+
+template<>
+inline unsigned long
+_Base_bitset<1, unsigned long>::_M_do_to_ulong() const { return _M_w; }
+
+template<>
+inline _Base_bitset<1, unsigned long>::_Base_bitset(unsigned long __val) {
+ _M_w = __val;
+}
+
+
+// ------------------------------------------------------------
+// Helper class to zero out the unused high-order bits in the highest word.
+
+template <class _WordT, size_t _Extrabits> struct _Sanitize {
+ static void _M_do_sanitize(_WordT& __val)
+ { __val &= ~((~static_cast<_WordT>(0)) << _Extrabits); }
+};
+
+template <class _WordT> struct _Sanitize<_WordT, 0> {
+ static void _M_do_sanitize(_WordT) {}
+};
+
+// ------------------------------------------------------------
+// Class bitset.
+// _Nb may be any nonzero number of type size_t.
+// Type _WordT may be any unsigned integral type.
+
+template<size_t _Nb, class _WordT = unsigned long>
+class bitset : private _Base_bitset<__BITSET_WORDS(_Nb,_WordT), _WordT>
+{
+private:
+ typedef _Base_bitset<__BITSET_WORDS(_Nb,_WordT), _WordT> _Base;
+
+ // Import base's protected interface. Necessary because of new template
+ // name resolution rules.
+ using _Base::_S_whichword;
+ using _Base::_S_whichbyte;
+ using _Base::_S_whichbit;
+ using _Base::_S_maskbit;
+ using _Base::_M_getword;
+ using _Base::_M_hiword;
+ using _Base::_M_do_and;
+ using _Base::_M_do_or;
+ using _Base::_M_do_xor;
+ using _Base::_M_do_left_shift;
+ using _Base::_M_do_right_shift;
+ using _Base::_M_do_flip;
+ using _Base::_M_do_set;
+ using _Base::_M_do_reset;
+ using _Base::_M_is_equal;
+ using _Base::_M_is_any;
+ using _Base::_M_do_count;
+ using _Base::_M_do_to_ulong;
+ using _Base::_M_do_find_first;
+ using _Base::_M_do_find_next;
+
+private:
+ void _M_do_sanitize() {
+ _Sanitize<_WordT,_Nb%__BITS_PER_WORDT(_WordT) >
+ ::_M_do_sanitize(_M_hiword());
+ }
+
+public:
+
+ // bit reference:
+ class reference;
+ friend class reference;
+ class reference {
+ friend class bitset;
+
+ _WordT *_M_wp;
+ size_t _M_bpos;
+
+ // left undefined
+ reference();
+
+ reference( bitset& __b, size_t __pos ) {
+ _M_wp = &__b._M_getword(__pos);
+ _M_bpos = _S_whichbit(__pos);
+ }
+
+ public:
+ ~reference() {}
+
+ // for b[i] = __x;
+ reference& operator=(bool __x) {
+ if ( __x )
+ *_M_wp |= _S_maskbit(_M_bpos);
+ else
+ *_M_wp &= ~_S_maskbit(_M_bpos);
+
+ return *this;
+ }
+
+ // for b[i] = b[__j];
+ reference& operator=(const reference& __j) {
+ if ( (*(__j._M_wp) & _S_maskbit(__j._M_bpos)) )
+ *_M_wp |= _S_maskbit(_M_bpos);
+ else
+ *_M_wp &= ~_S_maskbit(_M_bpos);
+
+ return *this;
+ }
+
+ // flips the bit
+ bool operator~() const { return (*(_M_wp) & _S_maskbit(_M_bpos)) == 0; }
+
+ // for __x = b[i];
+ operator bool() const { return (*(_M_wp) & _S_maskbit(_M_bpos)) != 0; }
+
+ // for b[i].flip();
+ reference& flip() {
+ *_M_wp ^= _S_maskbit(_M_bpos);
+ return *this;
+ }
+ };
+
+ // 23.3.5.1 constructors:
+ bitset() {}
+ bitset(unsigned long __val) :
+ _Base_bitset<__BITSET_WORDS(_Nb,_WordT), _WordT>(__val) {}
+
+ template<class _CharT, class _Traits, class _Alloc>
+ explicit bitset(const basic_string<_CharT,_Traits,_Alloc>& __s,
+ size_t __pos = 0,
+ size_t __n = size_t(basic_string<_CharT,_Traits,_Alloc>::npos))
+ : _Base()
+ {
+ if (__pos > __s.size())
+ __STL_THROW(out_of_range("bitset"));
+ _M_copy_from_string(__s, __pos, __n);
+ }
+
+ // 23.3.5.2 bitset operations:
+ bitset<_Nb,_WordT>& operator&=(const bitset<_Nb,_WordT>& __rhs) {
+ _M_do_and(__rhs);
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& operator|=(const bitset<_Nb,_WordT>& __rhs) {
+ _M_do_or(__rhs);
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& operator^=(const bitset<_Nb,_WordT>& __rhs) {
+ _M_do_xor(__rhs);
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& operator<<=(size_t __pos) {
+ _M_do_left_shift(__pos);
+ _M_do_sanitize();
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& operator>>=(size_t __pos) {
+ _M_do_right_shift(__pos);
+ _M_do_sanitize();
+ return *this;
+ }
+
+ //
+ // Extension:
+ // Versions of single-bit set, reset, flip, test with no range checking.
+ //
+
+ bitset<_Nb,_WordT>& _Unchecked_set(size_t __pos) {
+ _M_getword(__pos) |= _S_maskbit(__pos);
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& _Unchecked_set(size_t __pos, int __val) {
+ if (__val)
+ _M_getword(__pos) |= _S_maskbit(__pos);
+ else
+ _M_getword(__pos) &= ~_S_maskbit(__pos);
+
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& _Unchecked_reset(size_t __pos) {
+ _M_getword(__pos) &= ~_S_maskbit(__pos);
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& _Unchecked_flip(size_t __pos) {
+ _M_getword(__pos) ^= _S_maskbit(__pos);
+ return *this;
+ }
+
+ bool _Unchecked_test(size_t __pos) const {
+ return (_M_getword(__pos) & _S_maskbit(__pos)) != static_cast<_WordT>(0);
+ }
+
+ // Set, reset, and flip.
+
+ bitset<_Nb,_WordT>& set() {
+ _M_do_set();
+ _M_do_sanitize();
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& set(size_t __pos) {
+ if (__pos >= _Nb)
+ __STL_THROW(out_of_range("bitset"));
+
+ return _Unchecked_set(__pos);
+ }
+
+ bitset<_Nb,_WordT>& set(size_t __pos, int __val) {
+ if (__pos >= _Nb)
+ __STL_THROW(out_of_range("bitset"));
+
+ return _Unchecked_set(__pos, __val);
+ }
+
+ bitset<_Nb,_WordT>& reset() {
+ _M_do_reset();
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& reset(size_t __pos) {
+ if (__pos >= _Nb)
+ __STL_THROW(out_of_range("bitset"));
+
+ return _Unchecked_reset(__pos);
+ }
+
+ bitset<_Nb,_WordT>& flip() {
+ _M_do_flip();
+ _M_do_sanitize();
+ return *this;
+ }
+
+ bitset<_Nb,_WordT>& flip(size_t __pos) {
+ if (__pos >= _Nb)
+ __STL_THROW(out_of_range("bitset"));
+
+ return _Unchecked_flip(__pos);
+ }
+
+ bitset<_Nb,_WordT> operator~() const {
+ return bitset<_Nb,_WordT>(*this).flip();
+ }
+
+ // element access:
+ //for b[i];
+ reference operator[](size_t __pos) { return reference(*this,__pos); }
+ bool operator[](size_t __pos) const { return _Unchecked_test(__pos); }
+
+ unsigned long to_ulong() const { return _M_do_to_ulong(); }
+
+#ifdef __STL_EXPLICIT_FUNCTION_TMPL_ARGS
+ template <class _CharT, class _Traits, class _Alloc>
+ basic_string<_CharT, _Traits, _Alloc> to_string() const {
+ basic_string<_CharT, _Traits, _Alloc> __result;
+ _M_copy_to_string(__result);
+ return __result;
+ }
+#endif /* __STL_EXPLICIT_FUNCTION_TMPL_ARGS */
+
+ // Helper functions for string operations.
+ template<class _CharT, class _Traits, class _Alloc>
+ void _M_copy_from_string(const basic_string<_CharT,_Traits,_Alloc>& __s,
+ size_t,
+ size_t);
+
+ // Helper functions for string operations.
+ template<class _CharT, class _Traits, class _Alloc>
+ void _M_copy_to_string(basic_string<_CharT,_Traits,_Alloc>&) const;
+
+ size_t count() const { return _M_do_count(); }
+
+ size_t size() const { return _Nb; }
+
+ bool operator==(const bitset<_Nb,_WordT>& __rhs) const {
+ return _M_is_equal(__rhs);
+ }
+ bool operator!=(const bitset<_Nb,_WordT>& __rhs) const {
+ return !_M_is_equal(__rhs);
+ }
+
+ bool test(size_t __pos) const {
+ if (__pos > _Nb)
+ __STL_THROW(out_of_range("bitset"));
+
+ return _Unchecked_test(__pos);
+ }
+
+ bool any() const { return _M_is_any(); }
+ bool none() const { return !_M_is_any(); }
+
+ bitset<_Nb,_WordT> operator<<(size_t __pos) const
+ { return bitset<_Nb,_WordT>(*this) <<= __pos; }
+ bitset<_Nb,_WordT> operator>>(size_t __pos) const
+ { return bitset<_Nb,_WordT>(*this) >>= __pos; }
+
+ //
+ // EXTENSIONS: bit-find operations. These operations are
+ // experimental, and are subject to change or removal in future
+ // versions.
+ //
+
+ // find the index of the first "on" bit
+ size_t _Find_first() const
+ { return _M_do_find_first(_Nb); }
+
+ // find the index of the next "on" bit after prev
+ size_t _Find_next( size_t __prev ) const
+ { return _M_do_find_next(__prev, _Nb); }
+
+};
+
+//
+// Definitions of non-inline member functions.
+//
+
+template <size_t _Nb, class _WordT>
+template<class _CharT, class _Traits, class _Alloc>
+void bitset<_Nb, _WordT>
+ ::_M_copy_from_string(const basic_string<_CharT,_Traits,_Alloc>& __s,
+ size_t __pos,
+ size_t __n)
+{
+ reset();
+ const size_t __nbits = min(_Nb, min(__n, __s.size() - __pos));
+ for (size_t __i = 0; __i < __nbits; ++__i) {
+ switch(__s[__pos + __nbits - __i - 1]) {
+ case '0':
+ break;
+ case '1':
+ set(__i);
+ break;
+ default:
+ __STL_THROW(invalid_argument("bitset"));
+ }
+ }
+}
+
+template <size_t _Nb, class _WordT>
+template <class _CharT, class _Traits, class _Alloc>
+void bitset<_Nb, _WordT>
+ ::_M_copy_to_string(basic_string<_CharT, _Traits, _Alloc>& __s) const
+{
+ __s.assign(_Nb, '0');
+
+ for (size_t __i = 0; __i < _Nb; ++__i)
+ if (_Unchecked_test(__i))
+ __s[_Nb - 1 - __i] = '1';
+}
+
+// ------------------------------------------------------------
+
+//
+// 23.3.5.3 bitset operations:
+//
+
+template <size_t _Nb, class _WordT>
+inline bitset<_Nb,_WordT> operator&(const bitset<_Nb,_WordT>& __x,
+ const bitset<_Nb,_WordT>& __y) {
+ bitset<_Nb,_WordT> __result(__x);
+ __result &= __y;
+ return __result;
+}
+
+
+template <size_t _Nb, class _WordT>
+inline bitset<_Nb,_WordT> operator|(const bitset<_Nb,_WordT>& __x,
+ const bitset<_Nb,_WordT>& __y) {
+ bitset<_Nb,_WordT> __result(__x);
+ __result |= __y;
+ return __result;
+}
+
+template <size_t _Nb, class _WordT>
+inline bitset<_Nb,_WordT> operator^(const bitset<_Nb,_WordT>& __x,
+ const bitset<_Nb,_WordT>& __y) {
+ bitset<_Nb,_WordT> __result(__x);
+ __result ^= __y;
+ return __result;
+}
+
+// NOTE: these must be rewritten once we have templatized iostreams.
+
+template <size_t _Nb, class _WordT>
+istream&
+operator>>(istream& __is, bitset<_Nb,_WordT>& __x) {
+ string __tmp;
+ __tmp.reserve(_Nb);
+
+ // In new templatized iostreams, use istream::sentry
+ if (__is.flags() & ios::skipws) {
+ char __c;
+ do
+ __is.get(__c);
+ while (__is && isspace(__c));
+ if (__is)
+ __is.putback(__c);
+ }
+
+ for (size_t __i = 0; __i < _Nb; ++__i) {
+ char __c;
+ __is.get(__c);
+
+ if (!__is)
+ break;
+ else if (__c != '0' && __c != '1') {
+ __is.putback(__c);
+ break;
+ }
+ else
+ __tmp.push_back(__c);
+ }
+
+ if (__tmp.empty())
+ __is.clear(__is.rdstate() | ios::failbit);
+ else
+ __x._M_copy_from_string(__tmp, static_cast<size_t>(0), _Nb);
+
+ return __is;
+}
+
+template <size_t _Nb, class _WordT>
+ostream& operator<<(ostream& __os, const bitset<_Nb,_WordT>& __x) {
+ string __tmp;
+ __x._M_copy_to_string(__tmp);
+ return __os << __tmp;
+}
+
+// ------------------------------------------------------------
+// Lookup tables for find and count operations.
+
+template<bool __dummy>
+unsigned char _Bit_count<__dummy>::_S_bit_count[] = {
+ 0, /* 0 */ 1, /* 1 */ 1, /* 2 */ 2, /* 3 */ 1, /* 4 */
+ 2, /* 5 */ 2, /* 6 */ 3, /* 7 */ 1, /* 8 */ 2, /* 9 */
+ 2, /* 10 */ 3, /* 11 */ 2, /* 12 */ 3, /* 13 */ 3, /* 14 */
+ 4, /* 15 */ 1, /* 16 */ 2, /* 17 */ 2, /* 18 */ 3, /* 19 */
+ 2, /* 20 */ 3, /* 21 */ 3, /* 22 */ 4, /* 23 */ 2, /* 24 */
+ 3, /* 25 */ 3, /* 26 */ 4, /* 27 */ 3, /* 28 */ 4, /* 29 */
+ 4, /* 30 */ 5, /* 31 */ 1, /* 32 */ 2, /* 33 */ 2, /* 34 */
+ 3, /* 35 */ 2, /* 36 */ 3, /* 37 */ 3, /* 38 */ 4, /* 39 */
+ 2, /* 40 */ 3, /* 41 */ 3, /* 42 */ 4, /* 43 */ 3, /* 44 */
+ 4, /* 45 */ 4, /* 46 */ 5, /* 47 */ 2, /* 48 */ 3, /* 49 */
+ 3, /* 50 */ 4, /* 51 */ 3, /* 52 */ 4, /* 53 */ 4, /* 54 */
+ 5, /* 55 */ 3, /* 56 */ 4, /* 57 */ 4, /* 58 */ 5, /* 59 */
+ 4, /* 60 */ 5, /* 61 */ 5, /* 62 */ 6, /* 63 */ 1, /* 64 */
+ 2, /* 65 */ 2, /* 66 */ 3, /* 67 */ 2, /* 68 */ 3, /* 69 */
+ 3, /* 70 */ 4, /* 71 */ 2, /* 72 */ 3, /* 73 */ 3, /* 74 */
+ 4, /* 75 */ 3, /* 76 */ 4, /* 77 */ 4, /* 78 */ 5, /* 79 */
+ 2, /* 80 */ 3, /* 81 */ 3, /* 82 */ 4, /* 83 */ 3, /* 84 */
+ 4, /* 85 */ 4, /* 86 */ 5, /* 87 */ 3, /* 88 */ 4, /* 89 */
+ 4, /* 90 */ 5, /* 91 */ 4, /* 92 */ 5, /* 93 */ 5, /* 94 */
+ 6, /* 95 */ 2, /* 96 */ 3, /* 97 */ 3, /* 98 */ 4, /* 99 */
+ 3, /* 100 */ 4, /* 101 */ 4, /* 102 */ 5, /* 103 */ 3, /* 104 */
+ 4, /* 105 */ 4, /* 106 */ 5, /* 107 */ 4, /* 108 */ 5, /* 109 */
+ 5, /* 110 */ 6, /* 111 */ 3, /* 112 */ 4, /* 113 */ 4, /* 114 */
+ 5, /* 115 */ 4, /* 116 */ 5, /* 117 */ 5, /* 118 */ 6, /* 119 */
+ 4, /* 120 */ 5, /* 121 */ 5, /* 122 */ 6, /* 123 */ 5, /* 124 */
+ 6, /* 125 */ 6, /* 126 */ 7, /* 127 */ 1, /* 128 */ 2, /* 129 */
+ 2, /* 130 */ 3, /* 131 */ 2, /* 132 */ 3, /* 133 */ 3, /* 134 */
+ 4, /* 135 */ 2, /* 136 */ 3, /* 137 */ 3, /* 138 */ 4, /* 139 */
+ 3, /* 140 */ 4, /* 141 */ 4, /* 142 */ 5, /* 143 */ 2, /* 144 */
+ 3, /* 145 */ 3, /* 146 */ 4, /* 147 */ 3, /* 148 */ 4, /* 149 */
+ 4, /* 150 */ 5, /* 151 */ 3, /* 152 */ 4, /* 153 */ 4, /* 154 */
+ 5, /* 155 */ 4, /* 156 */ 5, /* 157 */ 5, /* 158 */ 6, /* 159 */
+ 2, /* 160 */ 3, /* 161 */ 3, /* 162 */ 4, /* 163 */ 3, /* 164 */
+ 4, /* 165 */ 4, /* 166 */ 5, /* 167 */ 3, /* 168 */ 4, /* 169 */
+ 4, /* 170 */ 5, /* 171 */ 4, /* 172 */ 5, /* 173 */ 5, /* 174 */
+ 6, /* 175 */ 3, /* 176 */ 4, /* 177 */ 4, /* 178 */ 5, /* 179 */
+ 4, /* 180 */ 5, /* 181 */ 5, /* 182 */ 6, /* 183 */ 4, /* 184 */
+ 5, /* 185 */ 5, /* 186 */ 6, /* 187 */ 5, /* 188 */ 6, /* 189 */
+ 6, /* 190 */ 7, /* 191 */ 2, /* 192 */ 3, /* 193 */ 3, /* 194 */
+ 4, /* 195 */ 3, /* 196 */ 4, /* 197 */ 4, /* 198 */ 5, /* 199 */
+ 3, /* 200 */ 4, /* 201 */ 4, /* 202 */ 5, /* 203 */ 4, /* 204 */
+ 5, /* 205 */ 5, /* 206 */ 6, /* 207 */ 3, /* 208 */ 4, /* 209 */
+ 4, /* 210 */ 5, /* 211 */ 4, /* 212 */ 5, /* 213 */ 5, /* 214 */
+ 6, /* 215 */ 4, /* 216 */ 5, /* 217 */ 5, /* 218 */ 6, /* 219 */
+ 5, /* 220 */ 6, /* 221 */ 6, /* 222 */ 7, /* 223 */ 3, /* 224 */
+ 4, /* 225 */ 4, /* 226 */ 5, /* 227 */ 4, /* 228 */ 5, /* 229 */
+ 5, /* 230 */ 6, /* 231 */ 4, /* 232 */ 5, /* 233 */ 5, /* 234 */
+ 6, /* 235 */ 5, /* 236 */ 6, /* 237 */ 6, /* 238 */ 7, /* 239 */
+ 4, /* 240 */ 5, /* 241 */ 5, /* 242 */ 6, /* 243 */ 5, /* 244 */
+ 6, /* 245 */ 6, /* 246 */ 7, /* 247 */ 5, /* 248 */ 6, /* 249 */
+ 6, /* 250 */ 7, /* 251 */ 6, /* 252 */ 7, /* 253 */ 7, /* 254 */
+ 8 /* 255 */
+}; // end _Bit_count
+
+template<bool __dummy>
+unsigned char _First_one<__dummy>::_S_first_one[] = {
+ 0, /* 0 */ 0, /* 1 */ 1, /* 2 */ 0, /* 3 */ 2, /* 4 */
+ 0, /* 5 */ 1, /* 6 */ 0, /* 7 */ 3, /* 8 */ 0, /* 9 */
+ 1, /* 10 */ 0, /* 11 */ 2, /* 12 */ 0, /* 13 */ 1, /* 14 */
+ 0, /* 15 */ 4, /* 16 */ 0, /* 17 */ 1, /* 18 */ 0, /* 19 */
+ 2, /* 20 */ 0, /* 21 */ 1, /* 22 */ 0, /* 23 */ 3, /* 24 */
+ 0, /* 25 */ 1, /* 26 */ 0, /* 27 */ 2, /* 28 */ 0, /* 29 */
+ 1, /* 30 */ 0, /* 31 */ 5, /* 32 */ 0, /* 33 */ 1, /* 34 */
+ 0, /* 35 */ 2, /* 36 */ 0, /* 37 */ 1, /* 38 */ 0, /* 39 */
+ 3, /* 40 */ 0, /* 41 */ 1, /* 42 */ 0, /* 43 */ 2, /* 44 */
+ 0, /* 45 */ 1, /* 46 */ 0, /* 47 */ 4, /* 48 */ 0, /* 49 */
+ 1, /* 50 */ 0, /* 51 */ 2, /* 52 */ 0, /* 53 */ 1, /* 54 */
+ 0, /* 55 */ 3, /* 56 */ 0, /* 57 */ 1, /* 58 */ 0, /* 59 */
+ 2, /* 60 */ 0, /* 61 */ 1, /* 62 */ 0, /* 63 */ 6, /* 64 */
+ 0, /* 65 */ 1, /* 66 */ 0, /* 67 */ 2, /* 68 */ 0, /* 69 */
+ 1, /* 70 */ 0, /* 71 */ 3, /* 72 */ 0, /* 73 */ 1, /* 74 */
+ 0, /* 75 */ 2, /* 76 */ 0, /* 77 */ 1, /* 78 */ 0, /* 79 */
+ 4, /* 80 */ 0, /* 81 */ 1, /* 82 */ 0, /* 83 */ 2, /* 84 */
+ 0, /* 85 */ 1, /* 86 */ 0, /* 87 */ 3, /* 88 */ 0, /* 89 */
+ 1, /* 90 */ 0, /* 91 */ 2, /* 92 */ 0, /* 93 */ 1, /* 94 */
+ 0, /* 95 */ 5, /* 96 */ 0, /* 97 */ 1, /* 98 */ 0, /* 99 */
+ 2, /* 100 */ 0, /* 101 */ 1, /* 102 */ 0, /* 103 */ 3, /* 104 */
+ 0, /* 105 */ 1, /* 106 */ 0, /* 107 */ 2, /* 108 */ 0, /* 109 */
+ 1, /* 110 */ 0, /* 111 */ 4, /* 112 */ 0, /* 113 */ 1, /* 114 */
+ 0, /* 115 */ 2, /* 116 */ 0, /* 117 */ 1, /* 118 */ 0, /* 119 */
+ 3, /* 120 */ 0, /* 121 */ 1, /* 122 */ 0, /* 123 */ 2, /* 124 */
+ 0, /* 125 */ 1, /* 126 */ 0, /* 127 */ 7, /* 128 */ 0, /* 129 */
+ 1, /* 130 */ 0, /* 131 */ 2, /* 132 */ 0, /* 133 */ 1, /* 134 */
+ 0, /* 135 */ 3, /* 136 */ 0, /* 137 */ 1, /* 138 */ 0, /* 139 */
+ 2, /* 140 */ 0, /* 141 */ 1, /* 142 */ 0, /* 143 */ 4, /* 144 */
+ 0, /* 145 */ 1, /* 146 */ 0, /* 147 */ 2, /* 148 */ 0, /* 149 */
+ 1, /* 150 */ 0, /* 151 */ 3, /* 152 */ 0, /* 153 */ 1, /* 154 */
+ 0, /* 155 */ 2, /* 156 */ 0, /* 157 */ 1, /* 158 */ 0, /* 159 */
+ 5, /* 160 */ 0, /* 161 */ 1, /* 162 */ 0, /* 163 */ 2, /* 164 */
+ 0, /* 165 */ 1, /* 166 */ 0, /* 167 */ 3, /* 168 */ 0, /* 169 */
+ 1, /* 170 */ 0, /* 171 */ 2, /* 172 */ 0, /* 173 */ 1, /* 174 */
+ 0, /* 175 */ 4, /* 176 */ 0, /* 177 */ 1, /* 178 */ 0, /* 179 */
+ 2, /* 180 */ 0, /* 181 */ 1, /* 182 */ 0, /* 183 */ 3, /* 184 */
+ 0, /* 185 */ 1, /* 186 */ 0, /* 187 */ 2, /* 188 */ 0, /* 189 */
+ 1, /* 190 */ 0, /* 191 */ 6, /* 192 */ 0, /* 193 */ 1, /* 194 */
+ 0, /* 195 */ 2, /* 196 */ 0, /* 197 */ 1, /* 198 */ 0, /* 199 */
+ 3, /* 200 */ 0, /* 201 */ 1, /* 202 */ 0, /* 203 */ 2, /* 204 */
+ 0, /* 205 */ 1, /* 206 */ 0, /* 207 */ 4, /* 208 */ 0, /* 209 */
+ 1, /* 210 */ 0, /* 211 */ 2, /* 212 */ 0, /* 213 */ 1, /* 214 */
+ 0, /* 215 */ 3, /* 216 */ 0, /* 217 */ 1, /* 218 */ 0, /* 219 */
+ 2, /* 220 */ 0, /* 221 */ 1, /* 222 */ 0, /* 223 */ 5, /* 224 */
+ 0, /* 225 */ 1, /* 226 */ 0, /* 227 */ 2, /* 228 */ 0, /* 229 */
+ 1, /* 230 */ 0, /* 231 */ 3, /* 232 */ 0, /* 233 */ 1, /* 234 */
+ 0, /* 235 */ 2, /* 236 */ 0, /* 237 */ 1, /* 238 */ 0, /* 239 */
+ 4, /* 240 */ 0, /* 241 */ 1, /* 242 */ 0, /* 243 */ 2, /* 244 */
+ 0, /* 245 */ 1, /* 246 */ 0, /* 247 */ 3, /* 248 */ 0, /* 249 */
+ 1, /* 250 */ 0, /* 251 */ 2, /* 252 */ 0, /* 253 */ 1, /* 254 */
+ 0, /* 255 */
+}; // end _First_one
+
+#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
+#pragma reset woff 1209
+#endif
+
+__STL_END_NAMESPACE
+
+
+#undef __BITS_PER_WORDT
+#undef __BITSET_WORDS
+
+#endif /* __SGI_STL_BITSET */
+
+
+// Local Variables:
+// mode:C++
+// End:
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-12 23:05:07
|
Revision: 1565
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1565&view=rev
Author: roman_yakovenko
Date: 2009-01-12 22:33:13 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
adding missing files
Added Paths:
-----------
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/bastring.cc
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/dcomplex.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/fcomplex.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/straits.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_alloc.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_bvector.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_deque.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_list.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_tree.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_vector.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.2/bits/sstream.tcc
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.2/bits/valarray_meta.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.2/sstream
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/fstream.tcc
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/list.tcc
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/sstream.tcc
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/stl_deque.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/stl_list.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/stl_tree.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/stl_vector.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/bits/valarray_meta.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/fstream
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.3/sstream
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/3.4/bits/gthr-default.h
gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/4.3/
gccxml_bin/v09/linux2/share/gccxml-0.9/Sun/
gccxml_bin/v09/linux2/share/gccxml-0.9/gccxml_identify_compiler.cc
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/bastring.cc
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/bastring.cc (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/bastring.cc 2009-01-12 22:33:13 UTC (rev 1565)
@@ -0,0 +1,524 @@
+// Member templates for the -*- C++ -*- string classes.
+// Copyright (C) 1994, 1999 Free Software Foundation
+
+// This file is part of the GNU ANSI C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+// As a special exception, if you link this library with files
+// compiled with a GNU compiler to produce an executable, this does not cause
+// the resulting executable to be covered by the GNU General Public License.
+// This exception does not however invalidate any other reasons why
+// the executable file might be covered by the GNU General Public License.
+
+// Written by Jason Merrill based upon the specification by Takanori Adachi
+// in ANSI X3J16/94-0013R2.
+
+extern "C++" {
+template <class charT, class traits, class Allocator>
+inline void * basic_string <charT, traits, Allocator>::Rep::
+operator new (size_t s, size_t extra)
+{
+ return Allocator::allocate(s + extra * sizeof (charT));
+}
+
+template <class charT, class traits, class Allocator>
+inline void basic_string <charT, traits, Allocator>::Rep::
+operator delete (void * ptr)
+{
+ Allocator::deallocate(ptr, sizeof(Rep) +
+ reinterpret_cast<Rep *>(ptr)->res *
+ sizeof (charT));
+}
+
+template <class charT, class traits, class Allocator>
+inline size_t basic_string <charT, traits, Allocator>::Rep::
+frob_size (size_t s)
+{
+ size_t i = 16;
+ while (i < s) i *= 2;
+ return i;
+}
+
+template <class charT, class traits, class Allocator>
+inline typename basic_string <charT, traits, Allocator>::Rep *
+basic_string <charT, traits, Allocator>::Rep::
+create (size_t extra)
+{
+ extra = frob_size (extra + 1);
+ Rep *p = new (extra) Rep;
+ p->res = extra;
+ p->ref = 1;
+ p->selfish = false;
+ return p;
+}
+
+template <class charT, class traits, class Allocator>
+charT * basic_string <charT, traits, Allocator>::Rep::
+clone ()
+{
+ Rep *p = Rep::create (len);
+ p->copy (0, data (), len);
+ p->len = len;
+ return p->data ();
+}
+
+template <class charT, class traits, class Allocator>
+inline bool basic_string <charT, traits, Allocator>::Rep::
+excess_slop (size_t s, size_t r)
+{
+ return 2 * (s <= 16 ? 16 : s) < r;
+}
+
+template <class charT, class traits, class Allocator>
+inline bool basic_string <charT, traits, Allocator>::
+check_realloc (basic_string::size_type s) const
+{
+ s += sizeof (charT);
+ rep ()->selfish = false;
+ return (rep ()->ref > 1
+ || s > capacity ()
+ || Rep::excess_slop (s, capacity ()));
+}
+
+template <class charT, class traits, class Allocator>
+void basic_string <charT, traits, Allocator>::
+alloc (basic_string::size_type __size, bool __save)
+{
+ if (! check_realloc (__size))
+ return;
+
+ Rep *p = Rep::create (__size);
+
+ if (__save)
+ {
+ p->copy (0, data (), length ());
+ p->len = length ();
+ }
+ else
+ p->len = 0;
+
+ repup (p);
+}
+
+template <class charT, class traits, class Allocator>
+basic_string <charT, traits, Allocator>&
+basic_string <charT, traits, Allocator>::
+replace (size_type pos1, size_type n1,
+ const basic_string& _str, size_type pos2, size_type n2)
+{
+ const size_t len2 = _str.length ();
+
+ if (pos1 == 0 && n1 >= length () && pos2 == 0 && n2 >= len2)
+ return operator= (_str);
+
+ OUTOFRANGE (pos2 > len2);
+
+ if (n2 > len2 - pos2)
+ n2 = len2 - pos2;
+
+ return replace (pos1, n1, _str.data () + pos2, n2);
+}
+
+template <class charT, class traits, class Allocator>
+inline void basic_string <charT, traits, Allocator>::Rep::
+copy (size_t pos, const charT *s, size_t n)
+{
+ if (n)
+ traits::copy (data () + pos, s, n);
+}
+
+template <class charT, class traits, class Allocator>
+inline void basic_string <charT, traits, Allocator>::Rep::
+move (size_t pos, const charT *s, size_t n)
+{
+ if (n)
+ traits::move (data () + pos, s, n);
+}
+
+template <class charT, class traits, class Allocator>
+basic_string <charT, traits, Allocator>&
+basic_string <charT, traits, Allocator>::
+replace (size_type pos, size_type n1, const charT* s, size_type n2)
+{
+ const size_type len = length ();
+ OUTOFRANGE (pos > len);
+ if (n1 > len - pos)
+ n1 = len - pos;
+ LENGTHERROR (len - n1 > max_size () - n2);
+ size_t newlen = len - n1 + n2;
+
+ if (check_realloc (newlen))
+ {
+ Rep *p = Rep::create (newlen);
+ p->copy (0, data (), pos);
+ p->copy (pos + n2, data () + pos + n1, len - (pos + n1));
+ p->copy (pos, s, n2);
+ repup (p);
+ }
+ else
+ {
+ rep ()->move (pos + n2, data () + pos + n1, len - (pos + n1));
+ rep ()->copy (pos, s, n2);
+ }
+ rep ()->len = newlen;
+
+ return *this;
+}
+
+template <class charT, class traits, class Allocator>
+inline void basic_string <charT, traits, Allocator>::Rep::
+set (size_t pos, const charT c, size_t n)
+{
+ traits::set (data () + pos, c, n);
+}
+
+template <class charT, class traits, class Allocator>
+basic_string <charT, traits, Allocator>& basic_string <charT, traits, Allocator>::
+replace (size_type pos, size_type n1, size_type n2, charT c)
+{
+ const size_t len = length ();
+ OUTOFRANGE (pos > len);
+ if (n1 > len - pos)
+ n1 = len - pos;
+ LENGTHERROR (len - n1 > max_size () - n2);
+ size_t newlen = len - n1 + n2;
+
+ if (check_realloc (newlen))
+ {
+ Rep *p = Rep::create (newlen);
+ p->copy (0, data (), pos);
+ p->copy (pos + n2, data () + pos + n1, len - (pos + n1));
+ p->set (pos, c, n2);
+ repup (p);
+ }
+ else
+ {
+ rep ()->move (pos + n2, data () + pos + n1, len - (pos + n1));
+ rep ()->set (pos, c, n2);
+ }
+ rep ()->len = newlen;
+
+ return *this;
+}
+
+template <class charT, class traits, class Allocator>
+void basic_string <charT, traits, Allocator>::
+resize (size_type n, charT c)
+{
+ LENGTHERROR (n > max_size ());
+
+ if (n > length ())
+ append (n - length (), c);
+ else
+ erase (n);
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+copy (charT* s, size_type n, size_type pos) const
+{
+ OUTOFRANGE (pos > length ());
+
+ if (n > length () - pos)
+ n = length () - pos;
+
+ traits::copy (s, data () + pos, n);
+ return n;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find (const charT* s, size_type pos, size_type n) const
+{
+ size_t xpos = pos;
+ for (; xpos + n <= length (); ++xpos)
+ if (traits::eq (data () [xpos], *s)
+ && traits::compare (data () + xpos, s, n) == 0)
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+inline typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+_find (const charT* ptr, charT c, size_type xpos, size_type len)
+{
+ for (; xpos < len; ++xpos)
+ if (traits::eq (ptr [xpos], c))
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find (charT c, size_type pos) const
+{
+ return _find (data (), c, pos, length ());
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+rfind (const charT* s, size_type pos, size_type n) const
+{
+ if (n > length ())
+ return npos;
+
+ size_t xpos = length () - n;
+ if (xpos > pos)
+ xpos = pos;
+
+ for (++xpos; xpos-- > 0; )
+ if (traits::eq (data () [xpos], *s)
+ && traits::compare (data () + xpos, s, n) == 0)
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+rfind (charT c, size_type pos) const
+{
+ if (1 > length ())
+ return npos;
+
+ size_t xpos = length () - 1;
+ if (xpos > pos)
+ xpos = pos;
+
+ for (++xpos; xpos-- > 0; )
+ if (traits::eq (data () [xpos], c))
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find_first_of (const charT* s, size_type pos, size_type n) const
+{
+ size_t xpos = pos;
+ for (; xpos < length (); ++xpos)
+ if (_find (s, data () [xpos], 0, n) != npos)
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find_last_of (const charT* s, size_type pos, size_type n) const
+{
+ if (length() == 0)
+ return npos;
+ size_t xpos = length () - 1;
+ if (xpos > pos)
+ xpos = pos;
+ for (++xpos; xpos-- > 0;)
+ if (_find (s, data () [xpos], 0, n) != npos)
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find_first_not_of (const charT* s, size_type pos, size_type n) const
+{
+ size_t xpos = pos;
+ for (; xpos < length (); ++xpos)
+ if (_find (s, data () [xpos], 0, n) == npos)
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find_first_not_of (charT c, size_type pos) const
+{
+ size_t xpos = pos;
+ for (; xpos < length (); ++xpos)
+ if (traits::ne (data () [xpos], c))
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find_last_not_of (const charT* s, size_type pos, size_type n) const
+{
+ if (length() == 0)
+ return npos;
+ size_t xpos = length () - 1;
+ if (xpos > pos)
+ xpos = pos;
+ for (++xpos; xpos-- > 0;)
+ if (_find (s, data () [xpos], 0, n) == npos)
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::
+find_last_not_of (charT c, size_type pos) const
+{
+ if (length() == 0)
+ return npos;
+ size_t xpos = length () - 1;
+ if (xpos > pos)
+ xpos = pos;
+ for (++xpos; xpos-- > 0;)
+ if (traits::ne (data () [xpos], c))
+ return xpos;
+ return npos;
+}
+
+template <class charT, class traits, class Allocator>
+int basic_string <charT, traits, Allocator>::
+compare (const basic_string& _str, size_type pos, size_type n) const
+{
+ OUTOFRANGE (pos > length ());
+
+ size_t rlen = length () - pos;
+ if (rlen > n)
+ rlen = n;
+ if (rlen > _str.length ())
+ rlen = _str.length ();
+ int r = traits::compare (data () + pos, _str.data (), rlen);
+ if (r != 0)
+ return r;
+ if (rlen == n)
+ return 0;
+ return (length () - pos) - _str.length ();
+}
+
+template <class charT, class traits, class Allocator>
+int basic_string <charT, traits, Allocator>::
+compare (const charT* s, size_type pos, size_type n) const
+{
+ OUTOFRANGE (pos > length ());
+
+ size_t rlen = length () - pos;
+ if (rlen > n)
+ rlen = n;
+ int r = traits::compare (data () + pos, s, rlen);
+ if (r != 0)
+ return r;
+ return (length () - pos) - n;
+}
+
+#include <iostream.h>
+
+template <class charT, class traits, class Allocator>
+istream &
+operator>> (istream &is, basic_string <charT, traits, Allocator> &s)
+{
+ int w = is.width (0);
+ if (is.ipfx0 ())
+ {
+ register streambuf *sb = is.rdbuf ();
+ s.resize (0);
+ while (1)
+ {
+ int ch = sb->sbumpc ();
+ if (ch == EOF)
+ {
+ is.setstate (ios::eofbit);
+ break;
+ }
+ else if (traits::is_del (ch))
+ {
+ sb->sungetc ();
+ break;
+ }
+ s += static_cast<charT> (ch);
+ if (--w == 1)
+ break;
+ }
+ }
+
+ is.isfx ();
+ if (s.length () == 0)
+ is.setstate (ios::failbit);
+
+ return is;
+}
+
+template <class charT, class traits, class Allocator>
+ostream &
+operator<< (ostream &o, const basic_string <charT, traits, Allocator>& s)
+{
+ return o.write (s.data (), s.length ());
+}
+
+template <class charT, class traits, class Allocator>
+istream&
+getline (istream &is, basic_string <charT, traits, Allocator>& s, charT delim)
+{
+ if (is.ipfx1 ())
+ {
+ _IO_size_t _count = 0;
+ streambuf *sb = is.rdbuf ();
+ s.resize (0);
+
+ while (1)
+ {
+ int ch = sb->sbumpc ();
+ if (ch == EOF)
+ {
+ is.setstate (_count == 0
+ ? (ios::failbit|ios::eofbit)
+ : ios::eofbit);
+ break;
+ }
+
+ ++_count;
+
+ if (ch == delim)
+ break;
+
+ s += static_cast<charT> (ch);
+
+ if (s.length () == s.npos - 1)
+ {
+ is.setstate (ios::failbit);
+ break;
+ }
+ }
+ }
+
+ // We need to be friends with istream to do this.
+ // is._gcount = _count;
+ is.isfx ();
+
+ return is;
+}
+
+template <class charT, class traits, class Allocator>
+typename basic_string <charT, traits, Allocator>::Rep
+basic_string<charT, traits, Allocator>::nilRep = { 0, 0, 1, false };
+
+template <class charT, class traits, class Allocator>
+const typename basic_string <charT, traits, Allocator>::size_type
+basic_string <charT, traits, Allocator>::npos;
+
+} // extern "C++"
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/dcomplex.h
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/dcomplex.h (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/dcomplex.h 2009-01-12 22:33:13 UTC (rev 1565)
@@ -0,0 +1,92 @@
+// The -*- C++ -*- double_complex class.
+// Copyright (C) 1994 Free Software Foundation
+
+// This file is part of the GNU ANSI C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+// As a special exception, if you link this library with files
+// compiled with a GNU compiler to produce an executable, this does not cause
+// the resulting executable to be covered by the GNU General Public License.
+// This exception does not however invalidate any other reasons why
+// the executable file might be covered by the GNU General Public License.
+
+// Written by Jason Merrill based upon the specification in the 27 May 1994
+// C++ working paper, ANSI document X3J16/94-0098.
+
+#ifndef __DCOMPLEX__
+#define __DCOMPLEX__
+
+#ifdef __GNUG__
+#pragma interface "dcomplex"
+#endif
+
+extern "C++" {
+template <>
+class complex<double>
+{
+public:
+ complex (double r = 0, double i = 0): re (r), im (i) { }
+ complex (const complex<float>& r): re (r.real ()), im (r.imag ()) { }
+ explicit complex (const complex<long double>& r);
+
+ complex& operator+= (const complex& r) { return __doapl (this, r); }
+ complex& operator-= (const complex& r) { return __doami (this, r); }
+ complex& operator*= (const complex& r) { return __doaml (this, r); }
+ complex& operator/= (const complex& r) { return __doadv (this, r); }
+
+ double real () const { return re; }
+ double imag () const { return im; }
+private:
+ double re, im;
+
+ friend complex& __doapl<> (complex *, const complex&);
+ friend complex& __doami<> (complex *, const complex&);
+ friend complex& __doaml<> (complex *, const complex&);
+ friend complex& __doadv<> (complex *, const complex&);
+
+#ifndef __STRICT_ANSI__
+ friend inline complex operator + (const complex& x, double y)
+ { return operator+<> (x, y); }
+ friend inline complex operator + (double x, const complex& y)
+ { return operator+<> (x, y); }
+ friend inline complex operator - (const complex& x, double y)
+ { return operator-<> (x, y); }
+ friend inline complex operator - (double x, const complex& y)
+ { return operator-<> (x, y); }
+ friend inline complex operator * (const complex& x, double y)
+ { return operator*<> (x, y); }
+ friend inline complex operator * (double x, const complex& y)
+ { return operator*<> (x, y); }
+ friend inline complex operator / (const complex& x, double y)
+ { return operator/<> (x, y); }
+ friend inline complex operator / (double x, const complex& y)
+ { return operator/<> (x, y); }
+ friend inline bool operator == (const complex& x, double y)
+ { return operator==<> (x, y); }
+ friend inline bool operator == (double x, const complex& y)
+ { return operator==<> (x, y); }
+ friend inline bool operator != (const complex& x, double y)
+ { return operator!=<> (x, y); }
+ friend inline bool operator != (double x, const complex& y)
+ { return operator!=<> (x, y); }
+#endif /* __STRICT_ANSI__ */
+};
+
+inline complex<float>::complex (const complex<double>& r)
+: re (r.real ()), im (r.imag ())
+{ }
+} // extern "C++"
+
+#endif
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/fcomplex.h
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/fcomplex.h (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/fcomplex.h 2009-01-12 22:33:13 UTC (rev 1565)
@@ -0,0 +1,88 @@
+// The -*- C++ -*- float_complex class.
+// Copyright (C) 1994 Free Software Foundation
+
+// This file is part of the GNU ANSI C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+// As a special exception, if you link this library with files
+// compiled with a GNU compiler to produce an executable, this does not cause
+// the resulting executable to be covered by the GNU General Public License.
+// This exception does not however invalidate any other reasons why
+// the executable file might be covered by the GNU General Public License.
+
+// Written by Jason Merrill based upon the specification in the 27 May 1994
+// C++ working paper, ANSI document X3J16/94-0098.
+
+#ifndef __FCOMPLEX__
+#define __FCOMPLEX__
+
+#ifdef __GNUG__
+#pragma interface "fcomplex"
+#endif
+
+extern "C++" {
+template <>
+class complex<float>
+{
+public:
+ complex (float r = 0, float i = 0): re (r), im (i) { }
+ explicit complex (const complex<double>& r);
+ explicit complex (const complex<long double>& r);
+
+ complex& operator+= (const complex& r) { return __doapl (this, r); }
+ complex& operator-= (const complex& r) { return __doami (this, r); }
+ complex& operator*= (const complex& r) { return __doaml (this, r); }
+ complex& operator/= (const complex& r) { return __doadv (this, r); }
+
+ float real () const { return re; }
+ float imag () const { return im; }
+private:
+ float re, im;
+
+ friend complex& __doapl<> (complex *, const complex&);
+ friend complex& __doami<> (complex *, const complex&);
+ friend complex& __doaml<> (complex *, const complex&);
+ friend complex& __doadv<> (complex *, const complex&);
+
+#ifndef __STRICT_ANSI__
+ friend inline complex operator + (const complex& x, float y)
+ { return operator+<> (x, y); }
+ friend inline complex operator + (float x, const complex& y)
+ { return operator+<> (x, y); }
+ friend inline complex operator - (const complex& x, float y)
+ { return operator-<> (x, y); }
+ friend inline complex operator - (float x, const complex& y)
+ { return operator-<> (x, y); }
+ friend inline complex operator * (const complex& x, float y)
+ { return operator*<> (x, y); }
+ friend inline complex operator * (float x, const complex& y)
+ { return operator*<> (x, y); }
+ friend inline complex operator / (const complex& x, float y)
+ { return operator/<> (x, y); }
+ friend inline complex operator / (float x, const complex& y)
+ { return operator/<> (x, y); }
+ friend inline bool operator == (const complex& x, float y)
+ { return operator==<> (x, y); }
+ friend inline bool operator == (float x, const complex& y)
+ { return operator==<> (x, y); }
+ friend inline bool operator != (const complex& x, float y)
+ { return operator!=<> (x, y); }
+ friend inline bool operator != (float x, const complex& y)
+ { return operator!=<> (x, y); }
+#endif /* __STRICT_ANSI__ */
+};
+} // extern "C++"
+
+#endif
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/ldcomplex.h 2009-01-12 22:33:13 UTC (rev 1565)
@@ -0,0 +1,96 @@
+// The -*- C++ -*- long_double_complex class.
+// Copyright (C) 1994 Free Software Foundation
+
+// This file is part of the GNU ANSI C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+// As a special exception, if you link this library with files
+// compiled with a GNU compiler to produce an executable, this does not cause
+// the resulting executable to be covered by the GNU General Public License.
+// This exception does not however invalidate any other reasons why
+// the executable file might be covered by the GNU General Public License.
+
+// Written by Jason Merrill based upon the specification in the 27 May 1994
+// C++ working paper, ANSI document X3J16/94-0098.
+
+#ifndef __LDCOMPLEX__
+#define __LDCOMPLEX__
+
+#ifdef __GNUG__
+#pragma interface "ldcomplex"
+#endif
+
+extern "C++" {
+template <>
+class complex<long double>
+{
+public:
+ complex (long double r = 0, long double i = 0): re (r), im (i) { }
+ complex (const complex<float>& r): re (r.real ()), im (r.imag ()) { }
+ complex (const complex<double>& r): re (r.real ()), im (r.imag ()) { }
+
+ complex& operator+= (const complex& r) { return __doapl (this, r); }
+ complex& operator-= (const complex& r) { return __doami (this, r); }
+ complex& operator*= (const complex& r) { return __doaml (this, r); }
+ complex& operator/= (const complex& r) { return __doadv (this, r); }
+
+ long double real () const { return re; }
+ long double imag () const { return im; }
+private:
+ long double re, im;
+
+ friend complex& __doapl<> (complex *, const complex&);
+ friend complex& __doami<> (complex *, const complex&);
+ friend complex& __doaml<> (complex *, const complex&);
+ friend complex& __doadv<> (complex *, const complex&);
+
+#ifndef __STRICT_ANSI__
+ friend inline complex operator + (const complex& x, long double y)
+ { return operator+<> (x, y); }
+ friend inline complex operator + (long double x, const complex& y)
+ { return operator+<> (x, y); }
+ friend inline complex operator - (const complex& x, long double y)
+ { return operator-<> (x, y); }
+ friend inline complex operator - (long double x, const complex& y)
+ { return operator-<> (x, y); }
+ friend inline complex operator * (const complex& x, long double y)
+ { return operator*<> (x, y); }
+ friend inline complex operator * (long double x, const complex& y)
+ { return operator*<> (x, y); }
+ friend inline complex operator / (const complex& x, long double y)
+ { return operator/<> (x, y); }
+ friend inline complex operator / (long double x, const complex& y)
+ { return operator/<> (x, y); }
+ friend inline bool operator == (const complex& x, long double y)
+ { return operator==<> (x, y); }
+ friend inline bool operator == (long double x, const complex& y)
+ { return operator==<> (x, y); }
+ friend inline bool operator != (const complex& x, long double y)
+ { return operator!=<> (x, y); }
+ friend inline bool operator != (long double x, const complex& y)
+ { return operator!=<> (x, y); }
+#endif /* __STRICT_ANSI__ */
+};
+
+inline complex<float>::complex (const complex<long double>& r)
+: re (r.real ()), im (r.imag ())
+{ }
+
+inline complex<double>::complex (const complex<long double>& r)
+: re (r.real ()), im (r.imag ())
+{ }
+} // extern "C++"
+
+#endif
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/straits.h
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/straits.h (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/std/straits.h 2009-01-12 22:33:13 UTC (rev 1565)
@@ -0,0 +1,162 @@
+// Character traits template for the -*- C++ -*- string classes.
+// Copyright (C) 1994 Free Software Foundation
+
+// This file is part of the GNU ANSI C++ Library. This library is free
+// software; you can redistribute it and/or modify it under the
+// terms of the GNU General Public License as published by the
+// Free Software Foundation; either version 2, or (at your option)
+// any later version.
+
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to the Free
+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+// As a special exception, if you link this library with files
+// compiled with a GNU compiler to produce an executable, this does not cause
+// the resulting executable to be covered by the GNU General Public License.
+// This exception does not however invalidate any other reasons why
+// the executable file might be covered by the GNU General Public License.
+
+// Written by Jason Merrill based upon the specification by Takanori Adachi
+// in ANSI X3J16/94-0013R2.
+
+#ifndef __STRING_CHAR_TRAITS__
+#define __STRING_CHAR_TRAITS__
+
+#ifdef __GNUG__
+// For string_char_traits <char>
+#pragma interface "std/straits.h"
+#endif
+
+#include <cstddef>
+
+extern "C++" {
+template <class charT>
+struct string_char_traits {
+ typedef charT char_type; // for users to acquire the basic character type
+
+ // constraints
+
+ static void assign (char_type& c1, const char_type& c2)
+ { c1 = c2; }
+ static bool eq (const char_type& c1, const char_type& c2)
+ { return (c1 == c2); }
+ static bool ne (const char_type& c1, const char_type& c2)
+ { return !(c1 == c2); }
+ static bool lt (const char_type& c1, const char_type& c2)
+ { return (c1 < c2); }
+ static char_type eos () { return char_type(); } // the null character
+ static bool is_del(char_type a) { return 0; }
+ // characteristic function for delimiters of charT
+
+ // speed-up functions
+
+ static int compare (const char_type* s1, const char_type* s2, size_t n)
+ {
+ size_t i;
+ for (i = 0; i < n; ++i)
+ if (ne (s1[i], s2[i]))
+ return lt (s1[i], s2[i]) ? -1 : 1;
+
+ return 0;
+ }
+
+ static size_t length (const char_type* s)
+ {
+ size_t l = 0;
+ while (ne (*s++, eos ()))
+ ++l;
+ return l;
+ }
+
+ static char_type* copy (char_type* s1, const char_type* s2, size_t n)
+ {
+ for (; n--; )
+ assign (s1[n], s2[n]);
+ return s1;
+ }
+
+ static char_type* move (char_type* s1, const char_type* s2, size_t n)
+ {
+ char_type a[n];
+ size_t i;
+ for (i = 0; i < n; ++i)
+ assign (a[i], s2[i]);
+ for (i = 0; i < n; ++i)
+ assign (s1[i], a[i]);
+ return s1;
+ }
+
+ static char_type* set (char_type* s1, const char_type& c, size_t n)
+ {
+ for (; n--; )
+ assign (s1[n], c);
+ return s1;
+ }
+};
+
+class istream;
+class ostream;
+#include <cctype>
+#include <cstring>
+
+template <>
+struct string_char_traits <char> {
+ typedef char char_type;
+
+ static void assign (char_type& c1, const char_type& c2)
+ { c1 = c2; }
+ static bool eq (const char_type & c1, const char_type& c2)
+ { return (c1 == c2); }
+ static bool ne (const char_type& c1, const char_type& c2)
+ { return (c1 != c2); }
+ static bool lt (const char_type& c1, const char_type& c2)
+ { return (c1 < c2); }
+ static char_type eos () { return 0; }
+ static bool is_del(char_type a) { return isspace(a); }
+
+ static int compare (const char_type* s1, const char_type* s2, size_t n)
+ { return memcmp (s1, s2, n); }
+ static size_t length (const char_type* s)
+ { return strlen (s); }
+ static char_type* copy (char_type* s1, const char_type* s2, size_t n)
+ { return (char_type*) memcpy (s1, s2, n); }
+ static char_type* move (char_type* s1, const char_type* s2, size_t n)
+ { return (char_type*) memmove (s1, s2, n); }
+ static char_type* set (char_type* s1, const char_type& c, size_t n)
+ { return (char_type*) memset (s1, c, n); }
+};
+
+#if 0
+#include <cwctype>
+struct string_char_traits <wchar_t> {
+ typedef wchar_t char_type;
+
+ static void assign (char_type& c1, const char_type& c2)
+ { c1 = c2; }
+ static bool eq (const char_type & c1, const char_type& c2)
+ { return (c1 == c2); }
+ static bool ne (const char_type& c1, const char_type& c2)
+ { return (c1 != c2); }
+ static bool lt (const char_type& c1, const char_type& c2)
+ { return (c1 < c2); }
+ static char_type eos () { return 0; }
+ static bool is_del(char_type a) { return iswspace(a); }
+
+ static int compare (const char_type* s1, const char_type* s2, size_t n)
+ { return wmemcmp (s1, s2, n); }
+ static size_t length (const char_type* s)
+ { return wcslen (s); }
+ static char_type* copy (char_type* s1, const char_type* s2, size_t n)
+ { return wmemcpy (s1, s2, n); }
+ static char_type* set (char_type* s1, const char_type& c, size_t n)
+ { return wmemset (s1, c, n); }
+};
+#endif
+} // extern "C++"
+#endif
Added: gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_alloc.h
===================================================================
--- gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_alloc.h (rev 0)
+++ gccxml_bin/v09/linux2/share/gccxml-0.9/GCC/2.95/stl_alloc.h 2009-01-12 22:33:13 UTC (rev 1565)
@@ -0,0 +1,1057 @@
+/*
+ * Copyright (c) 1996-1997
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation. Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose. It is provided "as is" without express or implied warranty.
+ */
+
+/* NOTE: This is an internal header file, included by other STL headers.
+ * You should not attempt to use it directly.
+ */
+
+#ifndef __SGI_STL_INTERNAL_ALLOC_H
+#define __SGI_STL_INTERNAL_ALLOC_H
+
+#ifdef __SUNPRO_CC
+# define __PRIVATE public
+ // Extra access restrictions prevent us from really making some things
+ // private.
+#else
+# define __PRIVATE private
+#endif
+
+#ifdef __STL_STATIC_TEMPLATE_MEMBER_BUG
+# define __USE_MALLOC
+#endif
+
+
+// This implements some standard node allocators. These are
+// NOT the same as the allocators in the C++ draft standard or in
+// in the original STL. They do not encapsulate different pointer
+// types; indeed we assume that there is only one pointer type.
+// The allocation primitives are intended to allocate individual objects,
+// not larger arenas as with the original STL allocators.
+
+#ifdef __STL_USE_EXCEPTIONS
+# include <new>
+# define __THROW_BAD_ALLOC throw bad_alloc()
+#elif !defined(__THROW_BAD_ALLOC)
+# include <iostream.h>
+# define __THROW_BAD_ALLOC cerr << "out of memory" << endl; exit(1)
+#endif
+
+#ifdef __STL_WIN32THREADS
+# include <windows.h>
+#endif
+
+#include <stddef.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#ifndef __RESTRICT
+# define __RESTRICT
+#endif
+
+#if !defined(__STL_PTHREADS) && !defined(__STL_SOLTHREADS) \
+ && !defined(_NOTHREADS) \
+ && !defined(__STL_SGI_THREADS) && !defined(__STL_WIN32THREADS)
+# define _NOTHREADS
+#endif
+
+# ifdef __STL_PTHREADS
+ // POSIX Threads
+ // This is dubious, since this is likely to be a high contention
+ // lock. Performance may not be adequate.
+# include <pthread.h>
+# define __NODE_ALLOCATOR_LOCK \
+ if (threads) pthread_mutex_lock(&_S_node_allocator_lock)
+# define __NODE_ALLOCATOR_UNLOCK \
+ if (threads) pthread_mutex_unlock(&_S_node_allocator_lock)
+# define __NODE_ALLOCATOR_THREADS true
+# define __VOLATILE volatile // Needed at -O3 on SGI
+# endif
+# ifdef __STL_SOLTHREADS
+# include <thread.h>
+# define __NODE_ALLOCATOR_LOCK \
+ if (threads) mutex_lock(&_S_node_allocator_lock)
+# define __NODE_ALLOCATOR_UNLOCK \
+ if (threads) mutex_unlock(&_S_node_allocator_lock)
+# define __NODE_ALLOCATOR_THREADS true
+# define __VOLATILE
+# endif
+# ifdef __STL_WIN32THREADS
+ // The lock needs to be initialized by constructing an allocator
+ // objects of the right type. We do that here explicitly for alloc.
+# define __NODE_ALLOCATOR_LOCK \
+ EnterCriticalSection(&_S_node_allocator_lock)
+# define __NODE_ALLOCATOR_UNLOCK \
+ LeaveCriticalSection(&_S_node_allocator_lock)
+# define __NODE_ALLOCATOR_THREADS true
+# define __VOLATILE volatile // may not be needed
+# endif /* WIN32THREADS */
+# ifdef __STL_SGI_THREADS
+ // This should work without threads, with sproc threads, or with
+ // pthreads. It is suboptimal in all cases.
+ // It is unlikely to even compile on nonSGI machines.
+
+ extern "C" {
+ extern int __us_rsthread_malloc;
+ }
+ // The above is copied from malloc.h. Including <malloc.h>
+ // would be cleaner but fails with certain levels of standard
+ // conformance.
+# define __NODE_ALLOCATOR_LOCK if (threads && __us_rsthread_malloc) \
+ { _S_lock(&_S_node_allocator_lock); }
+# define __NODE_ALLOCATOR_UNLOCK if (threads && __us_rsthread_malloc) \
+ { _S_unlock(&_S_node_allocator_lock); }
+# define __NODE_ALLOCATOR_THREADS true
+# define __VOLATILE volatile // Needed at -O3 on SGI
+# endif
+# ifdef _NOTHREADS
+// Thread-unsafe
+# define __NODE_ALLOCATOR_LOCK
+# define __NODE_ALLOCATOR_UNLOCK
+# define __NODE_ALLOCATOR_THREADS false
+# define __VOLATILE
+# endif
+
+__STL_BEGIN_NAMESPACE
+
+#if defined(__sgi) && !defined(__GNUC__) && (_MIPS_SIM != _MIPS_SIM_ABI32)
+#pragma set woff 1174
+#endif
+
+// Malloc-based allocator. Typically slower than default alloc below.
+// Typically thread-safe and more storage efficient.
+#ifdef __STL_STATIC_TEMPLATE_MEMBER_BUG
+# ifdef __DECLARE_GLOBALS_HERE
+ void (* __malloc_alloc_oom_handler)() = 0;
+ // g++ 2.7.2 does not handle static template data members.
+# else
+ extern void (* __malloc_alloc_oom_handler)();
+# endif
+#endif
+
+template <int __inst>
+class __malloc_alloc_template {
+
+private:
+
+ static void* _S_oom_malloc(size_t);
+ static void* _S_oom_realloc(void*, size_t);
+
+#ifndef __STL_STATIC_TEMPLATE_MEMBER_BUG
+ static void (* __malloc_alloc_oom_handler)();
+#endif
+
+public:
+
+ static void* allocate(size_t __n)
+ {
+ void* __result = malloc(__n);
+ if (0 == __result) __result = _S_oom_malloc(__n);
+ return __result;
+ }
+
+ static void deallocate(void* __p, size_t /* __n */)
+ {
+ free(__p);
+ }
+
+ static void* reallocate(void* __p, size_t /* old_sz */, size_t __new_sz)
+ {
+ void* __result = realloc(__p, __new_sz);
+ if (0 == __result) __result = _S_oom_realloc(__p, __new_sz);
+ return __result;
+ }
+
+ static void (* __set_malloc_handler(void (*__f)()))()
+ {
+ void (* __old)() = __malloc_alloc_oom_handler;
+ __malloc_alloc_oom_handler = __f;
+ return(__old);
+ }
+
+};
+
+// malloc_alloc out-of-memory handling
+
+#ifndef __STL_STATIC_TEMPLATE_MEMBER_BUG
+template <int __inst>
+void (* __malloc_alloc_template<__inst>::__malloc_alloc_oom_handler)() = 0;
+#endif
+
+template <int __inst>
+void*
+__malloc_alloc_template<__inst>::_S_oom_malloc(size_t __n)
+{
+ void (* __my_malloc_handler)();
+ void* __result;
+
+ for (;;) {
+ __my_malloc_handler = __malloc_alloc_oom_handler;
+ if (0 == __my_malloc_handler) { __THROW_BAD_ALLOC; }
+ (*__my_malloc_handler)();
+ __result = malloc(__n);
+ if (__result) return(__result);
+ }
+}
+
+template <int __inst>
+void* __malloc_alloc_template<__inst>::_S_oom_realloc(void* __p, size_t __n)
+{
+ void (* __my_malloc_handler)();
+ void* __result;
+
+ for (;;) {
+ __my_malloc_handler = __malloc_alloc_oom_handler;
+ if (0 == __my_malloc_handler) { __THROW_BAD_ALLOC; }
+ (*__my_malloc_handler)();
+ __result = realloc(__p, __n);
+ if (__result) return(__result);
+ }
+}
+
+typedef __malloc_alloc_template<0> malloc_alloc;
+
+template<class _Tp, class _Alloc>
+class simple_alloc {
+
+public:
+ static _Tp* allocate(size_t __n)
+ { return 0 == __n ? 0 : (_Tp*) _Alloc::allocate(__n * sizeof (_Tp)); }
+ static _Tp* allocate(void)
+ { return (_Tp*) _Alloc::allocate(sizeof (_Tp)); }
+ static void deallocate(_Tp* __p, size_t __n)
+ { if (0 != __n) _Alloc::deallocate(__p, __n * sizeof (_Tp)); }
+ static void deallocate(_Tp* __p)
+ { _Alloc::deallocate(__p, sizeof (_Tp)); }
+};
+
+// Allocator adaptor to check size arguments for debugging.
+// Reports errors using assert. Checking can be disabled with
+// NDEBUG, but it's far better to just use the underlying allocator
+// instead when no checking is desired.
+// There is some evidence that this can confuse Purify.
+template <class _Alloc>
+class debug_alloc {
+
+private:
+
+ enum {_S_extra = 8}; // Size of space used to store size. Note
+ // that this must be large enough to preserve
+ // alignment.
+
+public:
+
+ static void* allocate(size_t __n)
+ {
+ char* __result = (char*)_Alloc::allocate(__n + _S_extra);
+ *(size_t*)__result = __n;
+ return __result + _S_extra;
+ }
+
+ static void deallocate(void* __p, size_t __n)
+ {
+ char* __real_p = (char*)__p - _S_extra;
+ assert(*(size_t*)__real_p == __n);
+ _Alloc::deallocate(__real_p, __n + _S_extra);
+ }
+
+ static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz)
+ {
+ char* __real_p = (char*)__p - _S_extra;
+ assert(*(size_t*)__real_p == __old_sz);
+ char* __result = (char*)
+ _Alloc::reallocate(__real_p, __old_sz + _S_extra, __new_sz + _S_extra);
+ *(size_t*)__result = __new_sz;
+ return __result + _S_extra;
+ }
+
+};
+
+
+# ifdef __USE_MALLOC
+
+typedef malloc_alloc alloc;
+typedef malloc_alloc single_client_alloc;
+
+# else
+
+
+// Default node allocator.
+// With a reasonable compiler, this should be roughly as fast as the
+// original STL class-specific allocators, but with less fragmentation.
+// Default_alloc_template parameters are experimental and MAY
+// DISAPPEAR in the future. Clients should just use alloc for now.
+//
+// Important implementation properties:
+// 1. If the client request an object of size > _MAX_BYTES, the resulting
+// object will be obtained directly from malloc.
+// 2. In all other cases, we allocate an object of size exactly
+// _S_round_up(requested_size). Thus the client has enough size
+// information that we can return the object to the proper free list
+// without permanently losing part of the object.
+//
+
+// The first template parameter specifies whether more than one thread
+// may use this allocator. It is safe to allocate an object from
+// one instance of a default_alloc and deallocate it with another
+// one. This effectively transfers its ownership to the second one.
+// This may have undesirable effects on reference locality.
+// The second parameter is unreferenced and serves only to allow the
+// creation of multiple default_alloc instances.
+// Node that containers built on different allocator instances have
+// different types, limiting the utility of this approach.
+#ifdef __SUNPRO_CC
+// breaks if we make these template class members:
+ enum {_ALIGN = 8};
+ enum {_MAX_BYTES = 128};
+ enum {_NFREELISTS = _MAX_BYTES/_ALIGN};
+#endif
+
+template <bool threads, int inst>
+class __default_alloc_template {
+
+private:
+ // Really we should use static const int x = N
+ // instead of enum { x = N }, but few compilers accept the former.
+# ifndef __SUNPRO_CC
+ enum {_ALIGN = 8};
+ enum {_MAX_BYTES = 128};
+ enum {_NFREELISTS = _MAX_BYTES/_ALIGN};
+# endif
+ static size_t
+ _S_round_up(size_t __bytes)
+ { return (((__bytes) + _ALIGN-1) & ~(_ALIGN - 1)); }
+
+__PRIVATE:
+ union _Obj {
+ union _Obj* _M_free_list_link;
+ char _M_client_data[1]; /* The client sees this. */
+ };
+private:
+# ifdef __SUNPRO_CC
+ static _Obj* __VOLATILE _S_free_list[];
+ // Specifying a size results in duplicate def for 4.1
+# else
+ static _Obj* __VOLATILE _S_free_list[_NFREELISTS];
+# endif
+ static size_t _S_freelist_index(size_t __bytes) {
+ return (((__bytes) + _ALIGN-1)/_ALIGN - 1);
+ }
+
+ // Returns an object of size __n, and optionally adds to size __n free list.
+ static void* _S_refill(size_t __n);
+ // Allocates a chunk for nobjs of size "size". nobjs may be reduced
+ // if it is inconvenient to allocate the requested number.
+ static char* _S_chunk_alloc(size_t __size, int& __nobjs);
+
+ // Chunk allocation state.
+ static char* _S_start_free;
+ static char* _S_end_free;
+ static size_t _S_heap_size;
+
+# ifdef __STL_SGI_THREADS
+ static volatile unsigned long _S_node_allocator_lock;
+ static void _S_lock(volatile unsigned long*);
+ static inline void _S_unlock(volatile unsigned long*);
+# endif
+
+# ifdef __STL_PTHREADS
+ static pthread_mutex_t _S_node_allocator_lock;
+# endif
+
+# ifdef __STL_SOLTHREADS
+ static mutex_t _S_node_allocator_lock;
+# endif
+
+# ifdef __STL_WIN32THREADS
+ static CRITICAL_SECTION _S_node_allocator_lock;
+ static bool _S_node_allocator_lock_initialized;
+
+ public:
+ __default_alloc_template() {
+ // This assumes the first constructor is called before threads
+ // are started.
+ if (!_S_node_allocator_lock_initialized) {
+ InitializeCriticalSection(&_S_node_allocator_lock);
+ _S_node_allocator_lock_initialized = true;
+ }
+ }
+ private:
+# endif
+
+ class _Lock {
+ public:
+ _Lock() { __NODE_ALLOCATOR_LOCK; }
+ ~_Lock() { __NODE_ALLOCATOR_UNLOCK; }
+ };
+ friend class _Lock;
+
+public:
+
+ /* __n must be > 0 */
+ static void* allocate(size_t __n)
+ {
+ _Obj* __VOLATILE* __my_free_list;
+ _Obj* __RESTRICT __result;
+
+ if (__n > (size_t) _MAX_BYTES) {
+ return(malloc_alloc::allocate(__n));
+ }
+ __my_free_list = _S_free_list + _S_freelist_index(__n);
+ // Acquire the lock here with a constructor call.
+ // This ensures that it is released in exit or during stack
+ // unwinding.
+# ifndef _NOTHREADS
+ /*REFERENCED*/
+ _Lock __lock_instance;
+# endif
+ __result = *__my_free_list;
+ if (__result == 0) {
+ void* __r = _S_refill(_S_round_up(__n));
+ return __r;
+ }
+ *__my_free_list = __result -> _M_free_list_link;
+ return (__result);
+ };
+
+ /* __p may not be 0 */
+ static void deallocate(void* __p, size_t __n)
+ {
+ _Obj* __q = (_Obj*)__p;
+ _Obj* __VOLATILE* __my_free_list;
+
+ if (__n > (size_t) _MAX_BYTES) {
+ malloc_alloc::deallocate(__p, __n);
+ return;
+ }
+ __my_free_list = _S_free_list + _S_freelist_index(__n);
+ // acquire lock
+# ifndef _NOTHREADS
+ /*REFERENCED*/
+ _Lock __lock_instance;
+# endif /* _NOTHREADS */
+ __q -> _M_free_list_link = *__my_free_list;
+ *__my_free_list = __q;
+ // lock is released here
+ }
+
+ static void* reallocate(void* __p, size_t __old_sz, size_t __new_sz);
+
+} ;
+
+typedef __default_alloc_template<__NODE_ALLOCATOR_THREADS, 0> alloc;
+typedef __default_alloc_template<false, 0> single_client_alloc;
+
+
+
+/* We allocate memory in large chunks in order to avoid fragmenting */
+/* the malloc heap too much. */
+/* We assume that size is properly aligned. */
+/* We hold the allocation lock. */
+template <bool __threads, int __inst>
+char*
+__default_alloc_template<__threads, __inst>::_S_chunk_alloc(size_t __size,
+ int& __nobjs)
+{
+ char* __result;
+ size_t __total_bytes = __size * __nobjs;
+ size_t __bytes_left = _S_end_free - _S_start_free;
+
+ if (__bytes_left >= __total_bytes) {
+ __result = _S_start_free;
+ _S_start_free += __total_bytes;
+ return(__result);
+ } else if (__bytes_left >= __size) {
+ __nobjs = (int)(__bytes_left/__size);
+ __total_bytes = __size * __nobjs;
+ __result = _S_start_free;
+ _S_start_free += __total_bytes;
+ return(__result);
+ } else {
+ size_t __bytes_to_get =
+ 2 * __total_bytes + _S_round_up(_S_heap_size >> 4);
+ // Try to make use of the left-over piece.
+ if (__bytes_left > 0) {
+ _Obj* __VOLATILE* __my_free_list =
+ _S_free_list + _S_freelist_index(__bytes_left);
+
+ ((_Obj*)_S_start_free) -> _M_free_list_link = *__my_free_list;
+ *__my_free_list = (_Obj*)_S_start_free;
+ }
+ _S_start_free = (char*)malloc(__bytes_to_get);
+ if (0 == _S_start_free) {
+ size_t __i;
+ _Obj* __VOLATILE* __my_free_list;
+ _Obj* __p;
+ // Try to make do with what we have. That can't
+ // hurt. We do not try smaller requests, since that tends
+ // to result in disaster on multi-process machines.
+ for (__i = __size; __i <= _MAX_BYTES; __i += _ALIGN) {
+ __my_free_list = _S_free_list + _S_freelist_index(__i);
+ __p = *__my_free_list;
+ if (0 != __p) {
+ *__my_free_list = __p -> _M_free_list_link;
+ _S_start_free = (char*)__p;
+ _S_end_free = _S_start_free + __i;
+ return(_S_chunk_alloc(__size, __nobjs));
+ // Any leftover piece will eventually make it to the
+ // right free list.
+ }
+ }
+ _S_end_free = 0; // In case of exception.
+ _S_start_free = (char*)malloc_alloc::allocate(__bytes_to_get);
+ // This should either throw an
+ // exception or remedy the situation. Thus we assume it
+ // succeeded.
+ }
+ _S_heap_size += __bytes_to_get;
+ _S_end_free = _S_start_free + __bytes_to_get;
+ return(_S_chunk_alloc(__size, __nobjs));
+ }
+}
+
+
+/* Returns an object of size __n, and optionally adds to size __n free list.*/
+/* We assume that __n is properly aligned. */
+/* We hold the allocation lock. */
+template <bool __threads, int __inst>
+void*
+__default_alloc_template<__threads, __inst>::_S_refill(size_t __n)
+{
+ int __nobjs = 20;
+ char* __chunk = _S_chunk_alloc(__n, __nobjs);
+ _Obj* __VOLATILE* __my_free_list;
+ _Obj* __result;
+ _Obj* __current_obj;
+ _Obj* __next_obj;
+ int __i;
+
+ if (1 == __nobjs) return(__chunk);
+ __my_free_list = _S_free_list + _S_freelist_index(__n);
+
+ /* Build free list in chunk */
+ __result = (_Obj*)__chunk;
+ *__my_free_list = __next_obj = (_Obj*)(__chunk + __n);
+ for (__i = 1; ; __i++) {
+ __current_obj = __next_obj;
+ __next_obj = (_Obj*)((char*)__next_obj + __n);
+ if (__nobjs - 1 == __i) {
+ __current_obj -> _M_free_list_link = 0;
+ break;
+ } else {
+ __current_obj -> _M_free_list_link = __next_obj;
+ }
+ }
+ return(__result);
+}
+
+template <bool threads, int inst>
+void*
+__default_alloc_template<threads, inst>::reallocate(void* __p,
+ size_t __old_sz,
+ size_t __new_sz)
+{
+ void* __result;
+ size_t __copy_sz;
+
+ if (__old_sz > (size_t) _MAX_BYTES && __new_sz > (size_t) _MAX_BYTES) {
+ return(realloc(__p, __new_sz));
+ }
+ if (_S_round_up(__old_sz) == _S_round_up(__new_sz)) return(__p);
+ __result = allocate(__new_sz);
+ __copy_sz = __new_sz > __old_sz? __old_sz : __new_sz;
+ memcpy(__result, __p, __copy_sz);
+ deallocate(__p, __old_sz);
+ return(__result);
+}
+
+#ifdef __STL_PTHREADS
+ template <bool __threads, int __inst>
+ pthread_mutex_t
+ __default_alloc_template<__threads, __inst>::_S_node_allocator_lock
+ = PTHREAD_MUTEX_INITIALIZER;
+#endif
+
+#ifdef __STL_SOLTHREADS
+ template <bool __threads, int __inst>
+ mutex_t
+ __default_alloc_template<__threads, __inst>::_S_node_allocator_lock
+ = DEFAULTMUTEX;
+#endif
+
+#ifdef __STL_WIN32THREADS
+ template <bool __threads, int __inst>
+ CRITICAL_SECTION
+ __default_alloc_template<__threads, __inst>::
+ _S_node_allocator_lock;
+
+ template <bool __threads, int __inst>
+ bool
+ __default_alloc_template<__threads, __inst>::
+ _S_node_allocator_lock_initialized
+ = false;
+#endif
+
+#ifdef __STL_SGI_THREADS
+__STL_END_NAMESPACE
+#include <mutex.h>
+#include <time.h> /* XXX should use <ctime> */
+__STL_BEGIN_NAMESPACE
+// Somewhat generic lock implementations. We need only test-and-set
+// and some way to sleep. These should work with both SGI pthreads
+// and sproc threads. They may be useful on other systems.
+template <bool __threads, int __inst>
+volatile unsigned long
+__default_alloc_template<__threads, __inst>::_S_node_allocator_lock = 0;
+
+#if __mips < 3 || !(defined (_ABIN32) || defined(_ABI64)) || defined(__GNUC__)
+# define __test_and_set(l,v) test_and_set(l,v)
+#endif
+
+template <bool __threads, int __inst>
+void
+__default_alloc_template<__threads, __inst>::
+ _S_lock(volatile unsigned long* __lock)
+{
+ const unsigned __low_spin_max = 30; // spins if we suspect uniprocessor
+ const unsigned __high_spin_max = 1000; // spins for multiprocessor
+ static unsigned __spin_max = __low_spin_max;
+ unsigned __my_spin_max;
+ static unsigned __last_spins = 0;
+ unsigned __my_last_spins;
+ unsigned __junk;
+# define __ALLOC_PAUSE \
+ __junk *= __junk; __junk *= __junk; __junk *= __junk; __junk *= __junk
+ int __i;
+
+ if (!__test_and_set((unsigned long*)__lock, 1)) {
+ return;
+ }
+ __my_spin_max = __spin_max;
+ __my_last_spins = __last_spins;
+ for (__i = 0; __i < __my_spin_max; __i++) {
+ if (__i < __my_last_spins/2 || *__lock) {
+ __ALLOC_PAUSE;
+ continue;
+ }
+ if (!__test_and_set((unsigned long*)__lock, 1)) {
+ // got it!
+ // Spinning worked. Thus we're probably not being scheduled
+ // against the other process with which we were contending.
+ // Thus it makes sense to spin longer the next time.
+ __last_spins = __i;
+ __spin_max = __high_spin_max;
+ return;
+ }
+ }
+ // We are probably being scheduled against the other process. Sleep.
+ __spin_max = __low_spin_max;
+ for (__i = 0 ;; ++__i) {
+ struct timespec __ts;
+ int __log_nsec = __i + 6;
+
+ if (!__test_and_set((unsigned long *)__lock, 1)) {
+ return;
+ }
+ if (__log_nsec > 27) __log_nsec = 27;
+ /* Max sleep is 2**27nsec ~ 60msec */
+ __ts.tv_sec = 0;
+ __ts.tv_nsec = 1 << __log_nsec;
+ nanosleep(&__ts, 0);
+ }
+}
+
+template <bool __threads, int __inst>
+inline void
+__default_alloc_template<__threads, __inst>::_S_unlock(
+ volatile unsigned long* __lock)
+{
+# if defined(__GNUC__) && __mips >= 3
+ asm("sync");
+ *__lock = 0;
+# elif __mips >= 3 && (defined (_ABIN32) || defined(_ABI64))
+ __lock_release(__lock);
+# else
+ *__lock = 0;
+ // This is not sufficient on many multiprocessors, since
+ // writes to protected variables and the lock may be reordered.
+# endif
+}
+#endif
+
+template <bool __threads, int __inst>
+char* __default_alloc_template<__threads, __inst>::_S_start_free = 0;
+
+template <bool __threads, int __inst>
+char* __default_alloc_template<__threads, __inst>::_S_end_free = 0;
+
+template <bool __threads, int __inst>
+size_t __default_alloc_template<__threads, __inst>::_S_heap_size = 0;
+
+template <bool __threads, int __inst>
+typename __default_alloc_template<__threads, __inst>::_Obj* __VOLATILE
+__default_alloc_template<__threads, __inst> ::_S_free_list[
+ _NFREELISTS
+] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
+// The 16 zeros are necessary to make version 4.1 of the SunPro
+// compiler happy. Otherwise it appears to allocate too little
+// space for the array.
+
+# ifdef __STL_WIN32THREADS
+ // Create one to get critical section initialized.
+ // We do this onece per file, but only the first constructor
+ // does anything.
+ static alloc __node_allocator_dummy_instance;
+# endif
+
+#endif /* ! __USE_MALLOC */
+
+// This implements allocators as specified in the C++ standard.
+//
+// Note that standard-conforming allocators use many language features
+// that are not yet widely implemented. In particular, they rely on
+// member templates, partial specialization, partial ordering of function
+// templates, the typename keyword, and the use of the template keyword
+// to refer to a template member of a dependent type.
+
+#ifdef __STL_USE_STD_ALLOCATORS
+
+template <class _Tp>
+class allocator {
+ typedef alloc _Alloc; // The underlying allocator.
+public:
+ typedef size_t size_type;
+ typedef ptrdiff_t difference_type;
+ typedef _Tp* pointer;
+ typedef const _Tp* const_pointer;
+ typedef _Tp& reference;
+ typedef const _Tp& const_reference;
+ typedef _Tp value_type;
+
+ template <class _Tp1> struct rebind {
+ typedef allocator<_Tp1> other;
+ };
+
+ allocator() __STL_NOTHROW {}
+ allocator(const allocator&) __STL_NOTHROW {}
+ template <class _Tp1> allocator(const allocator<_Tp1>&) __STL_NOTHROW {}
+ ~allocator() __STL_NOTHROW {}
+
+ pointer address(reference __x) const { return &__x; }
+ const_pointer address(const_reference __x) const { return &__x; }
+
+ // __n is permitted to be 0. The C++ standard says nothing about what
+ // the return value is when __n == 0.
+ _Tp* allocate(size_type __n, const void* = 0) {
+ return __n != 0 ? static_cast<_Tp*>(_Alloc::allocate(__n * sizeof(_Tp)))
+ : 0;
+ }
+
+ // __p is not permitted to be a null pointer.
+ void deallocate(pointer __p, size_type __n)
+ { _Alloc::deallocate(__p, __n * sizeof(_Tp)); }
+
+ size_type max_size() const __STL_NOTHROW
+ { return size_t(-1) / sizeof(_Tp); }
+
+ void construct(pointer __p, const _Tp& __val) { new(__p) _Tp(__val); }
+ void destroy(pointer __p) { __p->~_Tp(); }
+};
+
+template<>
+class allocator<void> {
+ typedef size_t size_type;
+ typedef ptrdiff_t ...
[truncated message content] |
|
From: <rom...@us...> - 2009-01-12 22:55:23
|
Revision: 1563
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1563&view=rev
Author: roman_yakovenko
Date: 2009-01-12 22:02:33 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
changing treatment of opaque types
Modified Paths:
--------------
pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py
pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py
Modified: pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py
===================================================================
--- pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py 2009-01-12 21:48:25 UTC (rev 1562)
+++ pyplusplus_dev/pyplusplus/creators_factory/bpcreator.py 2009-01-12 22:02:33 UTC (rev 1563)
@@ -126,6 +126,10 @@
if isinstance( decl, declarations.namespace_t ):
continue
+
+ if isinstance( decl, declarations.class_types ):
+ if decl.opaque:
+ continue
if not decl.exportable:
#leave only decls that user wants to export and that could be exported
Modified: pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py
===================================================================
--- pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2009-01-12 21:48:25 UTC (rev 1562)
+++ pyplusplus_dev/pyplusplus/decl_wrappers/class_wrapper.py 2009-01-12 22:02:33 UTC (rev 1563)
@@ -137,15 +137,14 @@
def _get_opaque( self ):
return self._opaque
-
def _set_opaque( self, value ):
self._opaque = value
- self.ignore = value #don't expose opaque type
-
opaque = property( _get_opaque, _set_opaque
- , doc="If True, Py++ will treat return types and arguments T* as opaque types." \
- +"Thus it will be able to generate code, that uses " \
- +" BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID macro in a right places." )
+ , doc="If True, Py++ will treat return types and arguments T* as opaque types. "
+ +"nFor Boost.Python code generator it means that macro BOOST_PYTHON_OPAQUE_SPECIALIZED_TYPE_ID everywhere it needed. "
+ +"For ctypes code generator it means that the class will be introduced, but without fields. "
+ +"For both code generators it means: you will only be able to get and pass pointers around. "
+ +"Other functionality will not be available." )
@property
def class_var_name(self):
@@ -731,4 +730,4 @@
self._no_init = value
no_init = property( _get_no_init, _set_no_init
- , doc="If True, class will be registered with 'boost::python::no_init'" )
\ No newline at end of file
+ , doc="If True, class will be registered with 'boost::python::no_init'" )
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-12 22:27:18
|
Revision: 1562
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1562&view=rev
Author: roman_yakovenko
Date: 2009-01-12 21:48:25 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
improving ctypes code generator - adding support for opaque types
Modified Paths:
--------------
pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
pyplusplus_dev/pyplusplus/code_creators/__init__.py
pyplusplus_dev/pyplusplus/code_creators/mem_fun_introduction.py
pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py
pyplusplus_dev/pyplusplus/decl_wrappers/decl_wrapper.py
pyplusplus_dev/unittests/ctypes_pof_tester.py
pyplusplus_dev/unittests/sconstruct
Added Paths:
-----------
pyplusplus_dev/unittests/data/ctypes/opaque/
pyplusplus_dev/unittests/data/ctypes/opaque/opaque.cpp
pyplusplus_dev/unittests/data/ctypes/opaque/opaque.h
pyplusplus_dev/unittests/data/ctypes/opaque/sconscript
Modified: pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-12 19:04:19 UTC (rev 1561)
+++ pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-12 21:48:25 UTC (rev 1562)
@@ -26,7 +26,7 @@
f.alias = f.name[2:]
#there is a bug in "include" algorithm - I need to wrote DFS
-mb.class_( '_IO_marker' ).include()
+mb.class_( '_IO_FILE' ).opaque = True
#include should work as expected - include only exported function
Modified: pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-12 19:04:19 UTC (rev 1561)
+++ pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-12 21:48:25 UTC (rev 1562)
@@ -617,19 +617,217 @@
"__gmpf_init_set_str" : "extern int __gmpf_init_set_str(mpf_ptr arg0, char const * arg1, int arg2) [free function]",
}
+class std:
+ """namespace std"""
+
+class __gnu_cxx:
+ """namespace __gnu_cxx"""
+
+class __cxxabiv1:
+ """namespace __cxxabiv1"""
+
class gmp_randalg_t( ctypes_utils.Enumeration ):
GMP_RAND_ALG_DEFAULT = 0
GMP_RAND_ALG_LC = 0
+class (ctypes.Structure):
+ """class """
+
+ class (ctypes.Structure):
+ """class """
+
+class _G_fpos64_t(ctypes.Structure):
+ """class _G_fpos64_t"""
+
+class _G_fpos_t(ctypes.Structure):
+ """class _G_fpos_t"""
+
class _IO_FILE(ctypes.Structure):
"""class _IO_FILE"""
+
+ def __init__( self, *args, **keywd ):
+ raise RuntimeError( "Unable to create instance of opaque type." )
+class _IO_cookie_io_functions_t(ctypes.Structure):
+ """class _IO_cookie_io_functions_t"""
+
class _IO_marker(ctypes.Structure):
"""class _IO_marker"""
+class __base_class_type_info_pseudo(ctypes.Structure):
+ """class __base_class_type_info_pseudo"""
+
+class __class_type_info_pseudo(ctypes.Structure):
+ """class __class_type_info_pseudo"""
+
+class __forced_unwind(ctypes.Structure):
+ """class __cxxabiv1::__forced_unwind"""
+
+
+__cxxabiv1.__forced_unwind = __forced_unwind
+
+class __fsid_t(ctypes.Structure):
+ """class __fsid_t"""
+
class __gmp_randstate_struct(ctypes.Structure):
"""class __gmp_randstate_struct"""
+
+ class (ctypes.Structure):
+ """class __gmp_randstate_struct"""
+class __add_unsigned_less__char__greater_(ctypes.Structure):
+ """class __gnu_cxx::__add_unsigned< char >"""
+
+
+__gnu_cxx.__add_unsigned_less__char__greater_ = __add_unsigned_less__char__greater_
+
+class __add_unsigned_less__int__greater_(ctypes.Structure):
+ """class __gnu_cxx::__add_unsigned< int >"""
+
+
+__gnu_cxx.__add_unsigned_less__int__greater_ = __add_unsigned_less__int__greater_
+
+class __add_unsigned_less__long_long__greater_(ctypes.Structure):
+ """class __gnu_cxx::__add_unsigned< long long >"""
+
+
+__gnu_cxx.__add_unsigned_less__long_long__greater_ = __add_unsigned_less__long_long__greater_
+
+class __add_unsigned_less__long__greater_(ctypes.Structure):
+ """class __gnu_cxx::__add_unsigned< long >"""
+
+
+__gnu_cxx.__add_unsigned_less__long__greater_ = __add_unsigned_less__long__greater_
+
+class __add_unsigned_less__short__greater_(ctypes.Structure):
+ """class __gnu_cxx::__add_unsigned< short >"""
+
+
+__gnu_cxx.__add_unsigned_less__short__greater_ = __add_unsigned_less__short__greater_
+
+class __add_unsigned_less__signed_char__greater_(ctypes.Structure):
+ """class __gnu_cxx::__add_unsigned< signed char >"""
+
+
+__gnu_cxx.__add_unsigned_less__signed_char__greater_ = __add_unsigned_less__signed_char__greater_
+
+class __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__int__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__int__greater___greater_(ctypes.Structure):
+ """class __gnu_cxx::__conditional_type< true, __gnu_cxx::__numeric_traits_integer< int >, __gnu_cxx::__numeric_traits_floating< int > >"""
+
+
+__gnu_cxx.__conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__int__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__int__greater___greater_ = __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__int__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__int__greater___greater_
+
+class __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__short__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__short__greater___greater_(ctypes.Structure):
+ """class __gnu_cxx::__conditional_type< true, __gnu_cxx::__numeric_traits_integer< short >, __gnu_cxx::__numeric_traits_floating< short > >"""
+
+
+__gnu_cxx.__conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__short__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__short__greater___greater_ = __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__short__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__short__greater___greater_
+
+class __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__unsigned_long__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__unsigned_long__greater___greater_(ctypes.Structure):
+ """class __gnu_cxx::__conditional_type< true, __gnu_cxx::__numeric_traits_integer< unsigned long >, __gnu_cxx::__numeric_traits_floating< unsigned long > >"""
+
+
+__gnu_cxx.__conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__unsigned_long__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__unsigned_long__greater___greater_ = __conditional_type_less__true_comma____gnu_cxx_scope___numeric_traits_integer_less__unsigned_long__greater__comma____gnu_cxx_scope___numeric_traits_floating_less__unsigned_long__greater___greater_
+
+class __conditional_type_less__true_comma__unsigned_long_comma__unsigned_long_long__greater_(ctypes.Structure):
+ """class __gnu_cxx::__conditional_type< true, unsigned long, unsigned long long >"""
+
+
+__gnu_cxx.__conditional_type_less__true_comma__unsigned_long_comma__unsigned_long_long__greater_ = __conditional_type_less__true_comma__unsigned_long_comma__unsigned_long_long__greater_
+
+class __type(ctypes.Structure):
+ """class __gnu_cxx::__numeric_traits_integer< int >"""
+
+
+__gnu_cxx.__type = __type
+
+class __numeric_traits_less__int__greater_(ctypes.Structure):
+ """class __gnu_cxx::__numeric_traits< int >"""
+
+
+__gnu_cxx.__numeric_traits_less__int__greater_ = __numeric_traits_less__int__greater_
+
+class __type(ctypes.Structure):
+ """class __gnu_cxx::__numeric_traits_integer< short >"""
+
+
+__gnu_cxx.__type = __type
+
+class __numeric_traits_less__short__greater_(ctypes.Structure):
+ """class __gnu_cxx::__numeric_traits< short >"""
+
+
+__gnu_cxx.__numeric_traits_less__short__greater_ = __numeric_traits_less__short__greater_
+
+class __type(ctypes.Structure):
+ """class __gnu_cxx::__numeric_traits_integer< unsigned long >"""
+
+
+__gnu_cxx.__type = __type
+
+class __numeric_traits_less__unsigned_long__greater_(ctypes.Structure):
+ """class __gnu_cxx::__numeric_traits< unsigned long >"""
+
+
+__gnu_cxx.__numeric_traits_less__unsigned_long__greater_ = __numeric_traits_less__unsigned_long__greater_
+
+class __remove_unsigned_less__char__greater_(ctypes.Structure):
+ """class __gnu_cxx::__remove_unsigned< char >"""
+
+
+__gnu_cxx.__remove_unsigned_less__char__greater_ = __remove_unsigned_less__char__greater_
+
+class __remove_unsigned_less__unsigned_char__greater_(ctypes.Structure):
+ """class __gnu_cxx::__remove_unsigned< unsigned char >"""
+
+
+__gnu_cxx.__remove_unsigned_less__unsigned_char__greater_ = __remove_unsigned_less__unsigned_char__greater_
+
+class __remove_unsigned_less__unsigned_int__greater_(ctypes.Structure):
+ """class __gnu_cxx::__remove_unsigned< unsigned int >"""
+
+
+__gnu_cxx.__remove_unsigned_less__unsigned_int__greater_ = __remove_unsigned_less__unsigned_int__greater_
+
+class __remove_unsigned_less__unsigned_long_long__greater_(ctypes.Structure):
+ """class __gnu_cxx::__remove_unsigned< unsigned long long >"""
+
+
+__gnu_cxx.__remove_unsigned_less__unsigned_long_long__greater_ = __remove_unsigned_less__unsigned_long_long__greater_
+
+class __remove_unsigned_less__unsigned_long__greater_(ctypes.Structure):
+ """class __gnu_cxx::__remove_unsigned< unsigned long >"""
+
+
+__gnu_cxx.__remove_unsigned_less__unsigned_long__greater_ = __remove_unsigned_less__unsigned_long__greater_
+
+class __remove_unsigned_less__unsigned_short__greater_(ctypes.Structure):
+ """class __gnu_cxx::__remove_unsigned< unsigned short >"""
+
+
+__gnu_cxx.__remove_unsigned_less__unsigned_short__greater_ = __remove_unsigned_less__unsigned_short__greater_
+
+class new_allocator_less__char__greater_(ctypes.Structure):
+ """class __gnu_cxx::new_allocator< char >"""
+
+
+__gnu_cxx.new_allocator_less__char__greater_ = new_allocator_less__char__greater_
+
+class new_allocator_less__wchar_t__greater_(ctypes.Structure):
+ """class __gnu_cxx::new_allocator< wchar_t >"""
+
+
+__gnu_cxx.new_allocator_less__wchar_t__greater_ = new_allocator_less__wchar_t__greater_
+
+class __locale_struct(ctypes.Structure):
+ """class __locale_struct"""
+
+class __mbstate_t(ctypes.Structure):
+ """class __mbstate_t"""
+
+ class (ctypes.Structure):
+ """class __mbstate_t"""
+
class __mpf_struct(ctypes.Structure):
"""class __mpf_struct"""
@@ -639,38 +837,1494 @@
class __mpz_struct(ctypes.Structure):
"""class __mpz_struct"""
-_IO_FILE._fields_ = [ #class _IO_FILE
- ("_flags", ctypes.c_int),
- ("_IO_read_ptr", ctypes.c_char_p),
- ("_IO_read_end", ctypes.c_char_p),
- ("_IO_read_base", ctypes.c_char_p),
- ("_IO_write_base", ctypes.c_char_p),
- ("_IO_write_ptr", ctypes.c_char_p),
- ("_IO_write_end", ctypes.c_char_p),
- ("_IO_buf_base", ctypes.c_char_p),
- ("_IO_buf_end", ctypes.c_char_p),
- ("_IO_save_base", ctypes.c_char_p),
- ("_IO_backup_base", ctypes.c_char_p),
- ("_IO_save_end", ctypes.c_char_p),
- ("_markers", ctypes.POINTER( _IO_marker )),
- ("_chain", ctypes.POINTER( _IO_FILE )),
- ("_fileno", ctypes.c_int),
- ("_flags2", ctypes.c_int),
- ("_old_offset", ctypes.c_long),
- ("_cur_column", ctypes.c_ushort),
- ("_vtable_offset", ctypes.c_byte),
- ("_shortbuf", ( ctypes.c_char * 1 )),
- ("_lock", ctypes.c_void_p),
- ("_offset", ctypes.c_longlong),
- ("__pad1", ctypes.c_void_p),
- ("__pad2", ctypes.c_void_p),
- ("__pad3", ctypes.c_void_p),
- ("__pad4", ctypes.c_void_p),
- ("__pad5", ctypes.c_uint),
- ("_mode", ctypes.c_int),
- ("_unused2", ( ctypes.c_char * 40 )),
+class __pthread_cleanup_class(ctypes.Structure):
+ """class __pthread_cleanup_class"""
+
+class __pthread_cleanup_frame(ctypes.Structure):
+ """class __pthread_cleanup_frame"""
+
+class __pthread_internal_slist(ctypes.Structure):
+ """class __pthread_internal_slist"""
+
+class __sched_param(ctypes.Structure):
+ """class __sched_param"""
+
+class __si_class_type_info_pseudo(ctypes.Structure):
+ """class __si_class_type_info_pseudo"""
+
+class __sigset_t(ctypes.Structure):
+ """class __sigset_t"""
+
+class __type_info_pseudo(ctypes.Structure):
+ """class __type_info_pseudo"""
+
+class __vmi_class_type_info_pseudo1(ctypes.Structure):
+ """class __vmi_class_type_info_pseudo1"""
+
+class __vmi_class_type_info_pseudo2(ctypes.Structure):
+ """class __vmi_class_type_info_pseudo2"""
+
+class _pthread_cleanup_buffer(ctypes.Structure):
+ """class _pthread_cleanup_buffer"""
+
+class cpu_set_t(ctypes.Structure):
+ """class cpu_set_t"""
+
+class itimerspec(ctypes.Structure):
+ """class itimerspec"""
+
+class lconv(ctypes.Structure):
+ """class lconv"""
+
+class pthread_attr_t(ctypes.Structure):
+ """class pthread_attr_t"""
+
+class pthread_barrier_t(ctypes.Structure):
+ """class pthread_barrier_t"""
+
+class pthread_barrierattr_t(ctypes.Structure):
+ """class pthread_barrierattr_t"""
+
+class pthread_cond_t(ctypes.Structure):
+ """class pthread_cond_t"""
+
+ class (ctypes.Structure):
+ """class pthread_cond_t"""
+
+class pthread_condattr_t(ctypes.Structure):
+ """class pthread_condattr_t"""
+
+class pthread_mutex_t(ctypes.Structure):
+ """class pthread_mutex_t"""
+
+ class __pthread_mutex_s(ctypes.Structure):
+ """class pthread_mutex_t::__pthread_mutex_s"""
+
+ class (ctypes.Structure):
+ """class pthread_mutex_t::__pthread_mutex_s"""
+
+class pthread_mutexattr_t(ctypes.Structure):
+ """class pthread_mutexattr_t"""
+
+class pthread_rwlock_t(ctypes.Structure):
+ """class pthread_rwlock_t"""
+
+ class (ctypes.Structure):
+ """class pthread_rwlock_t"""
+
+class pthread_rwlockattr_t(ctypes.Structure):
+ """class pthread_rwlockattr_t"""
+
+class sched_param(ctypes.Structure):
+ """class sched_param"""
+
+class __copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_(ctypes.Structure):
+ """class std::__copy_move< false, false, std::random_access_iterator_tag >"""
+
+
+std.__copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_ = __copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_
+
+class __copy_move_backward_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_(ctypes.Structure):
+ """class std::__copy_move_backward< false, false, std::random_access_iterator_tag >"""
+
+
+std.__copy_move_backward_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_ = __copy_move_backward_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_
+
+class ctype_base(ctypes.Structure):
+ """class std::ctype_base"""
+
+
+std.ctype_base = ctype_base
+
+class __ctype_abstract_base_less__wchar_t__greater_(ctypes.Structure):
+ """class std::__ctype_abstract_base< wchar_t >"""
+
+
+std.__ctype_abstract_base_less__wchar_t__greater_ = __ctype_abstract_base_less__wchar_t__greater_
+
+class __equal_less__true__greater_(ctypes.Structure):
+ """class std::__equal< true >"""
+
+
+std.__equal_less__true__greater_ = __equal_less__true__greater_
+
+class __false_type(ctypes.Structure):
+ """class std::__false_type"""
+
+
+std.__false_type = __false_type
+
+class __is_byte_less__char__greater_(ctypes.Structure):
+ """class std::__is_byte< char >"""
+
+
+std.__is_byte_less__char__greater_ = __is_byte_less__char__greater_
+
+class __is_byte_less__signed_char__greater_(ctypes.Structure):
+ """class std::__is_byte< signed char >"""
+
+
+std.__is_byte_less__signed_char__greater_ = __is_byte_less__signed_char__greater_
+
+class __is_byte_less__unsigned_char__greater_(ctypes.Structure):
+ """class std::__is_byte< unsigned char >"""
+
+
+std.__is_byte_less__unsigned_char__greater_ = __is_byte_less__unsigned_char__greater_
+
+class __is_char_less__char__greater_(ctypes.Structure):
+ """class std::__is_char< char >"""
+
+
+std.__is_char_less__char__greater_ = __is_char_less__char__greater_
+
+class __is_char_less__wchar_t__greater_(ctypes.Structure):
+ """class std::__is_char< wchar_t >"""
+
+
+std.__is_char_less__wchar_t__greater_ = __is_char_less__wchar_t__greater_
+
+class __is_floating_less__double__greater_(ctypes.Structure):
+ """class std::__is_floating< double >"""
+
+
+std.__is_floating_less__double__greater_ = __is_floating_less__double__greater_
+
+class __is_floating_less__float__greater_(ctypes.Structure):
+ """class std::__is_floating< float >"""
+
+
+std.__is_floating_less__float__greater_ = __is_floating_less__float__greater_
+
+class __is_floating_less__long_double__greater_(ctypes.Structure):
+ """class std::__is_floating< long double >"""
+
+
+std.__is_floating_less__long_double__greater_ = __is_floating_less__long_double__greater_
+
+class __is_integer_less__bool__greater_(ctypes.Structure):
+ """class std::__is_integer< bool >"""
+
+
+std.__is_integer_less__bool__greater_ = __is_integer_less__bool__greater_
+
+class __is_integer_less__char__greater_(ctypes.Structure):
+ """class std::__is_integer< char >"""
+
+
+std.__is_integer_less__char__greater_ = __is_integer_less__char__greater_
+
+class __is_integer_less__int__greater_(ctypes.Structure):
+ """class std::__is_integer< int >"""
+
+
+std.__is_integer_less__int__greater_ = __is_integer_less__int__greater_
+
+class __is_integer_less__long_long__greater_(ctypes.Structure):
+ """class std::__is_integer< long long >"""
+
+
+std.__is_integer_less__long_long__greater_ = __is_integer_less__long_long__greater_
+
+class __is_integer_less__long__greater_(ctypes.Structure):
+ """class std::__is_integer< long >"""
+
+
+std.__is_integer_less__long__greater_ = __is_integer_less__long__greater_
+
+class __is_integer_less__short__greater_(ctypes.Structure):
+ """class std::__is_integer< short >"""
+
+
+std.__is_integer_less__short__greater_ = __is_integer_less__short__greater_
+
+class __is_integer_less__signed_char__greater_(ctypes.Structure):
+ """class std::__is_integer< signed char >"""
+
+
+std.__is_integer_less__signed_char__greater_ = __is_integer_less__signed_char__greater_
+
+class __is_integer_less__unsigned_char__greater_(ctypes.Structure):
+ """class std::__is_integer< unsigned char >"""
+
+
+std.__is_integer_less__unsigned_char__greater_ = __is_integer_less__unsigned_char__greater_
+
+class __is_integer_less__unsigned_int__greater_(ctypes.Structure):
+ """class std::__is_integer< unsigned int >"""
+
+
+std.__is_integer_less__unsigned_int__greater_ = __is_integer_less__unsigned_int__greater_
+
+class __is_integer_less__unsigned_long_long__greater_(ctypes.Structure):
+ """class std::__is_integer< unsigned long long >"""
+
+
+std.__is_integer_less__unsigned_long_long__greater_ = __is_integer_less__unsigned_long_long__greater_
+
+class __is_integer_less__unsigned_long__greater_(ctypes.Structure):
+ """class std::__is_integer< unsigned long >"""
+
+
+std.__is_integer_less__unsigned_long__greater_ = __is_integer_less__unsigned_long__greater_
+
+class __is_integer_less__unsigned_short__greater_(ctypes.Structure):
+ """class std::__is_integer< unsigned short >"""
+
+
+std.__is_integer_less__unsigned_short__greater_ = __is_integer_less__unsigned_short__greater_
+
+class __is_integer_less__wchar_t__greater_(ctypes.Structure):
+ """class std::__is_integer< wchar_t >"""
+
+
+std.__is_integer_less__wchar_t__greater_ = __is_integer_less__wchar_t__greater_
+
+class __is_void_less__void__greater_(ctypes.Structure):
+ """class std::__is_void< void >"""
+
+
+std.__is_void_less__void__greater_ = __is_void_less__void__greater_
+
+class __iter_swap_less__true__greater_(ctypes.Structure):
+ """class std::__iter_swap< true >"""
+
+
+std.__iter_swap_less__true__greater_ = __iter_swap_less__true__greater_
+
+class __lc_rai_less__std_scope_random_access_iterator_tag_comma__std_scope_random_access_iterator_tag__greater_(ctypes.Structure):
+ """class std::__lc_rai< std::random_access_iterator_tag, std::random_access_iterator_tag >"""
+
+
+std.__lc_rai_less__std_scope_random_access_iterator_tag_comma__std_scope_random_access_iterator_tag__greater_ = __lc_rai_less__std_scope_random_access_iterator_tag_comma__std_scope_random_access_iterator_tag__greater_
+
+class __lexicographical_compare_less__true__greater_(ctypes.Structure):
+ """class std::__lexicographical_compare< true >"""
+
+
+std.__lexicographical_compare_less__true__greater_ = __lexicographical_compare_less__true__greater_
+
+class __num_base(ctypes.Structure):
+ """class std::__num_base"""
+
+
+std.__num_base = __num_base
+
+class __true_type(ctypes.Structure):
+ """class std::__true_type"""
+
+
+std.__true_type = __true_type
+
+class __truth_type_less__true__greater_(ctypes.Structure):
+ """class std::__truth_type< true >"""
+
+
+std.__truth_type_less__true__greater_ = __truth_type_less__true__greater_
+
+class allocator_less__char__greater_(ctypes.Structure):
+ """class std::allocator< char >"""
+
+ class rebind_less__char__greater_(ctypes.Structure):
+ """class std::allocator< char >::rebind< char >"""
+
+std.allocator_less__char__greater_ = allocator_less__char__greater_
+
+class allocator_less__void__greater_(ctypes.Structure):
+ """class std::allocator< void >"""
+
+
+std.allocator_less__void__greater_ = allocator_less__void__greater_
+
+class allocator_less__wchar_t__greater_(ctypes.Structure):
+ """class std::allocator< wchar_t >"""
+
+ class rebind_less__char__greater_(ctypes.Structure):
+ """class std::allocator< wchar_t >::rebind< char >"""
+
+ class rebind_less__wchar_t__greater_(ctypes.Structure):
+ """class std::allocator< wchar_t >::rebind< wchar_t >"""
+
+std.allocator_less__wchar_t__greater_ = allocator_less__wchar_t__greater_
+
+class exception(ctypes.Structure):
+ """class std::exception"""
+
+
+std.exception = exception
+
+class bad_alloc(ctypes.Structure):
+ """class std::bad_alloc"""
+
+
+std.bad_alloc = bad_alloc
+
+class bad_exception(ctypes.Structure):
+ """class std::bad_exception"""
+
+
+std.bad_exception = bad_exception
+
+class ios_base(ctypes.Structure):
+ """class std::ios_base"""
+
+ class Init(ctypes.Structure):
+ """class std::ios_base::Init"""
+
+ class _Callback_list(ctypes.Structure):
+ """class std::ios_base::_Callback_list"""
+
+ class _Words(ctypes.Structure):
+ """class std::ios_base::_Words"""
+
+ class failure(ctypes.Structure):
+ """class std::ios_base::failure"""
+
+std.ios_base = ios_base
+
+class basic_ios_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class std::basic_ios< char, std::char_traits< char > >"""
+
+
+std.basic_ios_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ios_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class basic_ios_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class std::basic_ios< wchar_t, std::char_traits< wchar_t > >"""
+
+
+std.basic_ios_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ios_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class std::basic_istream< char, std::char_traits< char > >"""
+
+ class sentry(ctypes.Structure):
+ """class std::basic_istream< char, std::char_traits< char > >::sentry"""
+
+std.basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class basic_ostream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class std::basic_ostream< char, std::char_traits< char > >"""
+
+ class sentry(ctypes.Structure):
+ """class std::basic_ostream< char, std::char_traits< char > >::sentry"""
+
+std.basic_ostream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ostream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class iostream(ctypes.Structure):
+ """class std::basic_iostream< char, std::char_traits< char > >"""
+
+
+std.iostream = iostream
+
+class basic_istream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class std::basic_istream< wchar_t, std::char_traits< wchar_t > >"""
+
+ class sentry(ctypes.Structure):
+ """class std::basic_istream< wchar_t, std::char_traits< wchar_t > >::sentry"""
+
+std.basic_istream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_istream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class std::basic_ostream< wchar_t, std::char_traits< wchar_t > >"""
+
+ class sentry(ctypes.Structure):
+ """class std::basic_ostream< wchar_t, std::char_traits< wchar_t > >::sentry"""
+
+std.basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class wiostream(ctypes.Structure):
+ """class std::basic_iostream< wchar_t, std::char_traits< wchar_t > >"""
+
+
+std.wiostream = wiostream
+
+class basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class std::basic_streambuf< char, std::char_traits< char > >"""
+
+
+std.basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class std::basic_streambuf< wchar_t, std::char_traits< wchar_t > >"""
+
+
+std.basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class string(ctypes.Structure):
+ """class std::string"""
+
+ class _Alloc_hider(ctypes.Structure):
+ """class std::string::_Alloc_hider"""
+
+ class _Rep_base(ctypes.Structure):
+ """class std::string::_Rep_base"""
+
+ class _Rep(ctypes.Structure):
+ """class std::string::_Rep"""
+
+std.string = string
+
+class wstring(ctypes.Structure):
+ """class std::wstring"""
+
+ class _Alloc_hider(ctypes.Structure):
+ """class std::wstring::_Alloc_hider"""
+
+ class _Rep_base(ctypes.Structure):
+ """class std::wstring::_Rep_base"""
+
+ class _Rep(ctypes.Structure):
+ """class std::wstring::_Rep"""
+
+std.wstring = wstring
+
+class input_iterator_tag(ctypes.Structure):
+ """class std::input_iterator_tag"""
+
+
+std.input_iterator_tag = input_iterator_tag
+
+class forward_iterator_tag(ctypes.Structure):
+ """class std::forward_iterator_tag"""
+
+
+std.forward_iterator_tag = forward_iterator_tag
+
+class bidirectional_iterator_tag(ctypes.Structure):
+ """class std::bidirectional_iterator_tag"""
+
+
+std.bidirectional_iterator_tag = bidirectional_iterator_tag
+
+class traits_type(ctypes.Structure):
+ """class std::char_traits< char >"""
+
+
+std.traits_type = traits_type
+
+class traits_type(ctypes.Structure):
+ """class std::char_traits< wchar_t >"""
+
+
+std.traits_type = traits_type
+
+class collate_less__char__greater_(ctypes.Structure):
+ """class std::collate< char >"""
+
+
+std.collate_less__char__greater_ = collate_less__char__greater_
+
+class collate_less__wchar_t__greater_(ctypes.Structure):
+ """class std::collate< wchar_t >"""
+
+
+std.collate_less__wchar_t__greater_ = collate_less__wchar_t__greater_
+
+class collate_byname_less__char__greater_(ctypes.Structure):
+ """class std::collate_byname< char >"""
+
+
+std.collate_byname_less__char__greater_ = collate_byname_less__char__greater_
+
+class collate_byname_less__wchar_t__greater_(ctypes.Structure):
+ """class std::collate_byname< wchar_t >"""
+
+
+std.collate_byname_less__wchar_t__greater_ = collate_byname_less__wchar_t__greater_
+
+class __ctype_type(ctypes.Structure):
+ """class std::ctype< char >"""
+
+
+std.__ctype_type = __ctype_type
+
+class __ctype_type(ctypes.Structure):
+ """class std::ctype< wchar_t >"""
+
+
+std.__ctype_type = __ctype_type
+
+class ctype_byname_less__char__greater_(ctypes.Structure):
+ """class std::ctype_byname< char >"""
+
+
+std.ctype_byname_less__char__greater_ = ctype_byname_less__char__greater_
+
+class ctype_byname_less__wchar_t__greater_(ctypes.Structure):
+ """class std::ctype_byname< wchar_t >"""
+
+
+std.ctype_byname_less__wchar_t__greater_ = ctype_byname_less__wchar_t__greater_
+
+class iterator_less__std_scope_output_iterator_tag_comma__void_comma__void_comma__void_comma__void__greater_(ctypes.Structure):
+ """class std::iterator< std::output_iterator_tag, void, void, void, void >"""
+
+
+std.iterator_less__std_scope_output_iterator_tag_comma__void_comma__void_comma__void_comma__void__greater_ = iterator_less__std_scope_output_iterator_tag_comma__void_comma__void_comma__void_comma__void__greater_
+
+class locale(ctypes.Structure):
+ """class std::locale"""
+
+ class _Impl(ctypes.Structure):
+ """class std::locale::_Impl"""
+
+ class facet(ctypes.Structure):
+ """class std::locale::facet"""
+
+ class id(ctypes.Structure):
+ """class std::locale::id"""
+
+std.locale = locale
+
+class nothrow_t(ctypes.Structure):
+ """class std::nothrow_t"""
+
+
+std.nothrow_t = nothrow_t
+
+class __num_get_type(ctypes.Structure):
+ """class std::num_get< char, std::istreambuf_iterator< char, std::char_traits< char > > >"""
+
+
+std.__num_get_type = __num_get_type
+
+class __num_get_type(ctypes.Structure):
+ """class std::num_get< wchar_t, std::istreambuf_iterator< wchar_t, std::char_traits< wchar_t > > >"""
+
+
+std.__num_get_type = __num_get_type
+
+class __num_put_type(ctypes.Structure):
+ """class std::num_put< char, std::ostreambuf_iterator< char, std::char_traits< char > > >"""
+
+
+std.__num_put_type = __num_put_type
+
+class __num_put_type(ctypes.Structure):
+ """class std::num_put< wchar_t, std::ostreambuf_iterator< wchar_t, std::char_traits< wchar_t > > >"""
+
+
+std.__num_put_type = __num_put_type
+
+class numpunct_less__char__greater_(ctypes.Structure):
+ """class std::numpunct< char >"""
+
+
+std.numpunct_less__char__greater_ = numpunct_less__char__greater_
+
+class numpunct_less__wchar_t__greater_(ctypes.Structure):
+ """class std::numpunct< wchar_t >"""
+
+
+std.numpunct_less__wchar_t__greater_ = numpunct_less__wchar_t__greater_
+
+class numpunct_byname_less__char__greater_(ctypes.Structure):
+ """class std::numpunct_byname< char >"""
+
+
+std.numpunct_byname_less__char__greater_ = numpunct_byname_less__char__greater_
+
+class numpunct_byname_less__wchar_t__greater_(ctypes.Structure):
+ """class std::numpunct_byname< wchar_t >"""
+
+
+std.numpunct_byname_less__wchar_t__greater_ = numpunct_byname_less__wchar_t__greater_
+
+class output_iterator_tag(ctypes.Structure):
+ """class std::output_iterator_tag"""
+
+
+std.output_iterator_tag = output_iterator_tag
+
+class random_access_iterator_tag(ctypes.Structure):
+ """class std::random_access_iterator_tag"""
+
+
+std.random_access_iterator_tag = random_access_iterator_tag
+
+class timespec(ctypes.Structure):
+ """class timespec"""
+
+class tm(ctypes.Structure):
+ """class tm"""
+
+class basic_istringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_istringstream< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
+ _fields_ = []
+std.basic_istringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_istringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
+
+class basic_ifstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_ifstream< char, std::char_traits< char > >"""
+ _fields_ = []
+std.basic_ifstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ifstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class money_base(ctypes.Structure):
+ """class declaration std::money_base"""
+ _fields_ = []
+std.money_base = money_base
+
+class time_base(ctypes.Structure):
+ """class declaration std::time_base"""
+ _fields_ = []
+std.time_base = time_base
+
+class basic_istringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_istringstream< char, std::char_traits< char >, std::allocator< char > >"""
+ _fields_ = []
+std.basic_istringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_istringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
+
+class basic_stringbuf_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_stringbuf< char, std::char_traits< char >, std::allocator< char > >"""
+ _fields_ = []
+std.basic_stringbuf_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_stringbuf_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
+
+class basic_ostringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_ostringstream< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
+ _fields_ = []
+std.basic_ostringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_ostringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
+
+class messages_base(ctypes.Structure):
+ """class declaration std::messages_base"""
+ _fields_ = []
+std.messages_base = messages_base
+
+class basic_stringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_stringstream< char, std::char_traits< char >, std::allocator< char > >"""
+ _fields_ = []
+std.basic_stringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_stringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
+
+class __numpunct_cache_less__wchar_t__greater_(ctypes.Structure):
+ """class declaration std::__numpunct_cache< wchar_t >"""
+ _fields_ = []
+std.__numpunct_cache_less__wchar_t__greater_ = __numpunct_cache_less__wchar_t__greater_
+
+class __numpunct_cache_less__char__greater_(ctypes.Structure):
+ """class declaration std::__numpunct_cache< char >"""
+ _fields_ = []
+std.__numpunct_cache_less__char__greater_ = __numpunct_cache_less__char__greater_
+
+class basic_stringbuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_stringbuf< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
+ _fields_ = []
+std.basic_stringbuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_stringbuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
+
+class basic_ofstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_ofstream< wchar_t, std::char_traits< wchar_t > >"""
+ _fields_ = []
+std.basic_ofstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ofstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class basic_ofstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_ofstream< char, std::char_traits< char > >"""
+ _fields_ = []
+std.basic_ofstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_ofstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class basic_stringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_stringstream< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > >"""
+ _fields_ = []
+std.basic_stringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_ = basic_stringstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater_
+
+class basic_ostringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_ostringstream< char, std::char_traits< char >, std::allocator< char > >"""
+ _fields_ = []
+std.basic_ostringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_ = basic_ostringstream_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater_
+
+class basic_fstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_fstream< wchar_t, std::char_traits< wchar_t > >"""
+ _fields_ = []
+std.basic_fstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_fstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class basic_fstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_fstream< char, std::char_traits< char > >"""
+ _fields_ = []
+std.basic_fstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_fstream_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class istreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::istreambuf_iterator< wchar_t, std::char_traits< wchar_t > >"""
+ _fields_ = []
+std.istreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = istreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class istreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::istreambuf_iterator< char, std::char_traits< char > >"""
+ _fields_ = []
+std.istreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = istreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class basic_ifstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_ifstream< wchar_t, std::char_traits< wchar_t > >"""
+ _fields_ = []
+std.basic_ifstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_ifstream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class basic_filebuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_filebuf< wchar_t, std::char_traits< wchar_t > >"""
+ _fields_ = []
+std.basic_filebuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = basic_filebuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class basic_filebuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::basic_filebuf< char, std::char_traits< char > >"""
+ _fields_ = []
+std.basic_filebuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = basic_filebuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_(ctypes.Structure):
+ """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< const wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > > >"""
+ _fields_ = []
+std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_
+
+class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_(ctypes.Structure):
+ """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > > >"""
+ _fields_ = []
+std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater___greater_
+
+class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_(ctypes.Structure):
+ """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< const char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > > >"""
+ _fields_ = []
+std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_
+
+class reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_(ctypes.Structure):
+ """class declaration std::reverse_iterator< __gnu_cxx::__normal_iterator< char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > > >"""
+ _fields_ = []
+std.reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_ = reverse_iterator_less____gnu_cxx_scope___normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater___greater_
+
+class fpos_less____mbstate_t__greater_(ctypes.Structure):
+ """class declaration std::fpos< __mbstate_t >"""
+ _fields_ = []
+std.fpos_less____mbstate_t__greater_ = fpos_less____mbstate_t__greater_
+
+class codecvt_base(ctypes.Structure):
+ """class declaration std::codecvt_base"""
+ _fields_ = []
+std.codecvt_base = codecvt_base
+
+class codecvt_less__wchar_t_comma__char_comma____mbstate_t__greater_(ctypes.Structure):
+ """class declaration std::codecvt< wchar_t, char, __mbstate_t >"""
+ _fields_ = []
+std.codecvt_less__wchar_t_comma__char_comma____mbstate_t__greater_ = codecvt_less__wchar_t_comma__char_comma____mbstate_t__greater_
+
+class codecvt_less__char_comma__char_comma____mbstate_t__greater_(ctypes.Structure):
+ """class declaration std::codecvt< char, char, __mbstate_t >"""
+ _fields_ = []
+std.codecvt_less__char_comma__char_comma____mbstate_t__greater_ = codecvt_less__char_comma__char_comma____mbstate_t__greater_
+
+class __iter_swap_less___obrace__obrace_std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_greater__scope___value__ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__Iter_greater__scope_reference_greater__scope___value_cbrace___ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_reference_greater__scope___value_cbrace___greater_(ctypes.Structure):
+ """class declaration std::__iter_swap< ((std::__are_same<typename std::iterator_traits<_Iter>::value_type,typename std::iterator_traits<_ForwardIterator2>::value_type>::__value && std::__are_same<typename std::iterator_traits<_Iter>::value_type&,typename std::iterator_traits<_Iter>::reference>::__value) && std::__are_same<typename std::iterator_traits<_ForwardIterator2>::value_type&,typename std::iterator_traits<_ForwardIterator2>::reference>::__value) >"""
+ _fields_ = []
+std.__iter_swap_less___obrace__obrace_std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_greater__scope___value__ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__Iter_greater__scope_reference_greater__scope___value_cbrace___ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_reference_greater__scope___value_cbrace___greater_ = __iter_swap_less___obrace__obrace_std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_greater__scope___value__ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__Iter_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__Iter_greater__scope_reference_greater__scope___value_cbrace___ref__ref__std_scope___are_same_less_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_value_type_ref__comma_typename_std_scope_iterator_traits_less__ForwardIterator2_greater__scope_reference_greater__scope___value_cbrace___greater_
+
+class ostreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_(ctypes.Structure):
+ """class declaration std::ostreambuf_iterator< wchar_t, std::char_traits< wchar_t > >"""
+ _fields_ = []
+std.ostreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_ = ostreambuf_iterator_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_
+
+class ostreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_(ctypes.Structure):
+ """class declaration std::ostreambuf_iterator< char, std::char_traits< char > >"""
+ _fields_ = []
+std.ostreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_ = ostreambuf_iterator_less__char_comma__std_scope_char_traits_less__char__greater___greater_
+
+class obstack(ctypes.Structure):
+ """class declaration obstack"""
+ _fields_ = []
+
+class sigevent(ctypes.Structure):
+ """class declaration sigevent"""
+ _fields_ = []
+
+class __numeric_traits_floating_less__short_int__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__numeric_traits_floating< short int >"""
+ _fields_ = []
+__gnu_cxx.__numeric_traits_floating_less__short_int__greater_ = __numeric_traits_floating_less__short_int__greater_
+
+class __numeric_traits_floating_less__long_unsigned_int__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__numeric_traits_floating< long unsigned int >"""
+ _fields_ = []
+__gnu_cxx.__numeric_traits_floating_less__long_unsigned_int__greater_ = __numeric_traits_floating_less__long_unsigned_int__greater_
+
+class __numeric_traits_floating_less__int__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__numeric_traits_floating< int >"""
+ _fields_ = []
+__gnu_cxx.__numeric_traits_floating_less__int__greater_ = __numeric_traits_floating_less__int__greater_
+
+class __add_unsigned_less__wchar_t__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__add_unsigned< wchar_t >"""
+ _fields_ = []
+__gnu_cxx.__add_unsigned_less__wchar_t__greater_ = __add_unsigned_less__wchar_t__greater_
+
+class __add_unsigned_less__bool__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__add_unsigned< bool >"""
+ _fields_ = []
+__gnu_cxx.__add_unsigned_less__bool__greater_ = __add_unsigned_less__bool__greater_
+
+class __enable_if_less__!_std_scope___is_char_less__CharT2_greater__scope___value_comma__int__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__enable_if< ! std::__is_char<_CharT2>::__value, int >"""
+ _fields_ = []
+__gnu_cxx.__enable_if_less__!_std_scope___is_char_less__CharT2_greater__scope___value_comma__int__greater_ = __enable_if_less__!_std_scope___is_char_less__CharT2_greater__scope___value_comma__int__greater_
+
+class __enable_if_less__!_std_scope___is_scalar_less__Tp_greater__scope___value_comma__void__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__enable_if< ! std::__is_scalar<_Tp>::__value, void >"""
+ _fields_ = []
+__gnu_cxx.__enable_if_less__!_std_scope___is_scalar_less__Tp_greater__scope___value_comma__void__greater_ = __enable_if_less__!_std_scope___is_scalar_less__Tp_greater__scope___value_comma__void__greater_
+
+class __remove_unsigned_less__wchar_t__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__remove_unsigned< wchar_t >"""
+ _fields_ = []
+__gnu_cxx.__remove_unsigned_less__wchar_t__greater_ = __remove_unsigned_less__wchar_t__greater_
+
+class __remove_unsigned_less__bool__greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__remove_unsigned< bool >"""
+ _fields_ = []
+__gnu_cxx.__remove_unsigned_less__bool__greater_ = __remove_unsigned_less__bool__greater_
+
+class __normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__normal_iterator< wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > >"""
+ _fields_ = []
+__gnu_cxx.__normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_ = __normal_iterator_less__wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_
+
+class __normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__normal_iterator< const wchar_t*, std::basic_string< wchar_t, std::char_traits< wchar_t >, std::allocator< wchar_t > > >"""
+ _fields_ = []
+__gnu_cxx.__normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_ = __normal_iterator_less__const_wchar_t_ptr__comma__std_scope_basic_string_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater__comma__std_scope_allocator_less__wchar_t__greater___greater___greater_
+
+class __normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__normal_iterator< char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > >"""
+ _fields_ = []
+__gnu_cxx.__normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_ = __normal_iterator_less__char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_
+
+class __normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_(ctypes.Structure):
+ """class declaration __gnu_cxx::__normal_iterator< const char*, std::basic_string< char, std::char_traits< char >, std::allocator< char > > >"""
+ _fields_ = []
+__gnu_cxx.__normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_ = __normal_iterator_less__const_char_ptr__comma__std_scope_basic_string_less__char_comma__std_scope_char_traits_less__char__greater__comma__std_scope_allocator_less__char__greater___greater___greater_
+
+class _IO_jump_t(ctypes.Structure):
+ """class declaration _IO_jump_t"""
+ _fields_ = []
+
+class __jmp_buf_tag(ctypes.Structure):
+ """class declaration __jmp_buf_tag"""
+ _fields_ = []
+
+class locale_data(ctypes.Structure):
+ """class declaration locale_data"""
+ _fields_ = []
+
+class _IO_cookie_file(ctypes.Structure):
+ """class declaration _IO_cookie_file"""
+ _fields_ = []
+
+class _IO_FILE_plus(ctypes.Structure):
+ """class declaration _IO_FILE_plus"""
+ _fields_ = []
+
+std.collate_byname_less__wchar_t__greater_._fields_ = [ #class std::collate_byname< wchar_t >
+ ("__empty__", ctypes.c_char * 4)
]
+std.collate_byname_less__char__greater_._fields_ = [ #class std::collate_byname< char >
+ ("__empty__", ctypes.c_char * 4)
+]
+
+std.bad_exception._fields_ = [ #class std::bad_exception
+ ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
+ ("__empty__", ctypes.c_char * 4)
+]
+
+std.wstring._fields_ = [ #class std::wstring
+ ("npos", ctypes.c_uint),
+ ("_M_dataplus", std.wstring._Alloc_hider),
+]
+
+std.wstring._Rep_base._fields_ = [ #class std::wstring::_Rep_base
+ ("_M_length", ctypes.c_uint),
+ ("_M_capacity", ctypes.c_uint),
+ ("_M_refcount", ctypes.c_int),
+]
+
+std.wstring._Rep._fields_ = [ #class std::wstring::_Rep
+ ("_S_max_size", ctypes.c_uint),
+ ("_S_terminal", ctypes.c_wchar),
+ ("_S_empty_rep_storage", ( ctypes.c_uint * 4 )),
+]
+
+std.wstring._Alloc_hider._fields_ = [ #class std::wstring::_Alloc_hider
+ ("_M_p", ctypes.c_wchar_p),
+]
+
+std.basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_._fields_ = [ #class std::basic_istream< char, std::char_traits< char > >
+ ("_M_gcount", ctypes.c_int),
+]
+
+std.basic_istream_less__char_comma__std_scope_char_traits_less__char__greater___greater_.sentry._fields_ = [ #class std::basic_istream< char, std::char_traits< char > >::sentry
+ ("_M_ok", ctypes.c_bool),
+]
+
+std.basic_streambuf_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_._fields_ = [ #class std::basic_streambuf< wchar_t, std::char_traits< wchar_t > >
+ ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
+ ("_M_in_beg", ctypes.c_wchar_p),
+ ("_M_in_cur", ctypes.c_wchar_p),
+ ("_M_in_end", ctypes.c_wchar_p),
+ ("_M_out_beg", ctypes.c_wchar_p),
+ ("_M_out_cur", ctypes.c_wchar_p),
+ ("_M_out_end", ctypes.c_wchar_p),
+ ("_M_buf_locale", std.locale),
+]
+
+std.basic_streambuf_less__char_comma__std_scope_char_traits_less__char__greater___greater_._fields_ = [ #class std::basic_streambuf< char, std::char_traits< char > >
+ ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
+ ("_M_in_beg", ctypes.c_char_p),
+ ("_M_in_cur", ctypes.c_char_p),
+ ("_M_in_end", ctypes.c_char_p),
+ ("_M_out_beg", ctypes.c_char_p),
+ ("_M_out_cur", ctypes.c_char_p),
+ ("_M_out_end", ctypes.c_char_p),
+ ("_M_buf_locale", std.locale),
+]
+
+std.input_iterator_tag._fields_ = [ #class std::input_iterator_tag
+ ("__empty__", ctypes.c_char * 4)
+]
+
+std.__copy_move_less__false_comma__false_comma__std_scope_random_access_iterator_tag__greater_._fields_ = [ #class std::__copy_move< false, false, std::random_access_iterator_tag >
+ ("__empty__", ctypes.c_char * 4)
+]
+
+std.__false_type._fields_ = [ #class std::__false_type
+ ("__empty__", ctypes.c_char * 4)
+]
+
+std.collate_less__wchar_t__greater_._fields_ = [ #class std::collate< wchar_t >
+ ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
+ ("_M_c_locale_collate", ctypes.POINTER( __locale_struct )),
+ ("id", std.locale.id),
+]
+
+std.collate_less__char__greater_._fields_ = [ #class std::collate< char >
+ ("_vtable_", ctypes.POINTER(ctypes.c_void_p)),
+ ("_M_c_locale_collate", ctypes.POINTER( __locale_struct )),
+ ("id", std.locale.id),
+]
+
+std.__lexicographical_compare_less__true__greater_._fields_ = [ #class std::__lexicographical_compare< true >
+ ("__empty__", ctypes.c_char * 4)
+]
+
+std.basic_ostream_less__wchar_t_comma__std_scope_char_traits_less__wchar_t__greater___greater_...
[truncated message content] |
|
From: <rom...@us...> - 2009-01-12 19:04:25
|
Revision: 1561
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1561&view=rev
Author: roman_yakovenko
Date: 2009-01-12 19:04:19 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
ignore *.pyc files
Property Changed:
----------------
developer_scripts/
Property changes on: developer_scripts
___________________________________________________________________
Added: svn:ignore
+ *.pyc
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-12 15:57:27
|
Revision: 1560
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1560&view=rev
Author: roman_yakovenko
Date: 2009-01-12 15:57:21 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
updating web interface
Modified Paths:
--------------
ui/web/main.py
ui/web/templates/generator_tmpl.html
Modified: ui/web/main.py
===================================================================
--- ui/web/main.py 2009-01-12 15:46:44 UTC (rev 1559)
+++ ui/web/main.py 2009-01-12 15:57:21 UTC (rev 1560)
@@ -13,9 +13,12 @@
class generator:
def GET(self, name=None):
- form = forms.generator_t(action='/generated.html')
- return render.generator(form)
+ generator = web.template.frender('templates/generator_tmpl.html')
+ return generator()
+ #~ form = forms.generator_t(action='/generated.html')
+ #~ return render.generator(form)
+
class generated:
def POST(self, r_url=None ):
form = forms.generator_t( action='', code_generator=code_generator.manager_t() )
Modified: ui/web/templates/generator_tmpl.html
===================================================================
--- ui/web/templates/generator_tmpl.html 2009-01-12 15:46:44 UTC (rev 1559)
+++ ui/web/templates/generator_tmpl.html 2009-01-12 15:57:21 UTC (rev 1560)
@@ -2,11 +2,11 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="shortcut icon" href="/static/favicon.ico" />
- <link rel="icon" href="/static/favicon.ico" />
- <link rel="stylesheet" href="/static/tabber.css" type="text/css" media="screen"/>
- <link rel="stylesheet" href="/static/generator.css" type="text/css" media="screen"/>
- <script type="text/javascript" src="tabber.js"></script>
+ <link rel="shortcut icon" href="static/favicon.ico" />
+ <link rel="icon" href="static/favicon.ico" />
+ <link rel="stylesheet" href="static/tabber.css" type="text/css" media="screen"/>
+ <link rel="stylesheet" href="static/generator.css" type="text/css" media="screen"/>
+ <script type="text/javascript" src="static/tabber.js"></script>
<title>pygccxml & py++ demo</title>
</head>
<body>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <rom...@us...> - 2009-01-12 15:46:52
|
Revision: 1559
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1559&view=rev
Author: roman_yakovenko
Date: 2009-01-12 15:46:44 +0000 (Mon, 12 Jan 2009)
Log Message:
-----------
updating web interface
Modified Paths:
--------------
ui/web/static/generator.css
ui/web/templates/generator_tmpl.html
ui/web/web.zip
Added Paths:
-----------
ui/web/static/tabber.css
ui/web/static/tabber.js
Removed Paths:
-------------
ui/web/templates/generated.html
ui/web/templates/generator.html
Modified: ui/web/static/generator.css
===================================================================
--- ui/web/static/generator.css 2009-01-11 21:17:40 UTC (rev 1558)
+++ ui/web/static/generator.css 2009-01-12 15:46:44 UTC (rev 1559)
@@ -11,3 +11,21 @@
border: 2px solid #000000;
padding: 3px 2px;
}
+
+form{
+ max-width: 19cm;
+}
+
+textarea{
+ margin-top: 3px;
+ margin-right: 5px;
+ margin-left: 5px;
+ margin-bottom: 3px;
+}
+
+input{
+ margin-top: 5px;
+ margin-right: 5px;
+ margin-left: 5px;
+ margin-bottom: 5px;
+}
Added: ui/web/static/tabber.css
===================================================================
--- ui/web/static/tabber.css (rev 0)
+++ ui/web/static/tabber.css 2009-01-12 15:46:44 UTC (rev 1559)
@@ -0,0 +1,99 @@
+/* $Id: example.css,v 1.5 2006/03/27 02:44:36 pat Exp $ */
+
+/*--------------------------------------------------
+ REQUIRED to hide the non-active tab content.
+ But do not hide them in the print stylesheet!
+ --------------------------------------------------*/
+.tabberlive .tabbertabhide {
+ display:none;
+}
+
+/*--------------------------------------------------
+ .tabber = before the tabber interface is set up
+ .tabberlive = after the tabber interface is set up
+ --------------------------------------------------*/
+.tabber {
+}
+.tabberlive {
+ margin-top:1em;
+}
+
+/*--------------------------------------------------
+ ul.tabbernav = the tab navigation list
+ li.tabberactive = the active tab
+ --------------------------------------------------*/
+ul.tabbernav
+{
+ margin:0;
+ padding: 3px 0;
+ border-bottom: 1px solid #778;
+ font: bold 12px Verdana, sans-serif;
+}
+
+ul.tabbernav li
+{
+ list-style: none;
+ margin: 0;
+ display: inline;
+}
+
+ul.tabbernav li a
+{
+ padding: 3px 0.5em;
+ margin-right: 3px;
+ border: 1px solid #778;
+ border-bottom: none;
+ background: #DDE;
+ text-decoration: none;
+}
+
+ul.tabbernav li a:link { color: #448; }
+ul.tabbernav li a:visited { color: #667; }
+
+ul.tabbernav li a:hover
+{
+ color: #000;
+ background: #AAE;
+ border-color: #227;
+}
+
+ul.tabbernav li.tabberactive a
+{
+ background-color: #fff;
+ border-bottom: 1px solid #fff;
+}
+
+ul.tabbernav li.tabberactive a:hover
+{
+ color: #000;
+ background: white;
+ border-bottom: 1px solid white;
+}
+
+/*--------------------------------------------------
+ .tabbertab = the tab content
+ Add style only after the tabber interface is set up (.tabberlive)
+ --------------------------------------------------*/
+.tabberlive .tabbertab {
+ padding:5px;
+ border:1px solid #aaa;
+ border-top:0;
+
+ /* If you don't want the tab size changing whenever a tab is changed
+ you can set a fixed height */
+
+ /* height:200px; */
+
+ /* If you set a fix height set overflow to auto and you will get a
+ scrollbar when necessary */
+
+ /* overflow:auto; */
+}
+
+/* If desired, hide the heading since a heading is provided by the tab */
+.tabberlive .tabbertab h2 {
+ display:none;
+}
+.tabberlive .tabbertab h3 {
+ display:none;
+}
Added: ui/web/static/tabber.js
===================================================================
--- ui/web/static/tabber.js (rev 0)
+++ ui/web/static/tabber.js 2009-01-12 15:46:44 UTC (rev 1559)
@@ -0,0 +1,523 @@
+/*==================================================
+ $Id: tabber.js,v 1.9 2006/04/27 20:51:51 pat Exp $
+ tabber.js by Patrick Fitzgerald pa...@ba...
+
+ Documentation can be found at the following URL:
+ http://www.barelyfitz.com/projects/tabber/
+
+ License (http://www.opensource.org/licenses/mit-license.php)
+
+ Copyright (c) 2006 Patrick Fitzgerald
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation files
+ (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge,
+ publish, distribute, sublicense, and/or sell copies of the Software,
+ and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+ BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+ ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ SOFTWARE.
+ ==================================================*/
+
+function tabberObj(argsObj)
+{
+ var arg; /* name of an argument to override */
+
+ /* Element for the main tabber div. If you supply this in argsObj,
+ then the init() method will be called.
+ */
+ this.div = null;
+
+ /* Class of the main tabber div */
+ this.classMain = "tabber";
+
+ /* Rename classMain to classMainLive after tabifying
+ (so a different style can be applied)
+ */
+ this.classMainLive = "tabberlive";
+
+ /* Class of each DIV that contains a tab */
+ this.classTab = "tabbertab";
+
+ /* Class to indicate which tab should be active on startup */
+ this.classTabDefault = "tabbertabdefault";
+
+ /* Class for the navigation UL */
+ this.classNav = "tabbernav";
+
+ /* When a tab is to be hidden, instead of setting display='none', we
+ set the class of the div to classTabHide. In your screen
+ stylesheet you should set classTabHide to display:none. In your
+ print stylesheet you should set display:block to ensure that all
+ the information is printed.
+ */
+ this.classTabHide = "tabbertabhide";
+
+ /* Class to set the navigation LI when the tab is active, so you can
+ use a different style on the active tab.
+ */
+ this.classNavActive = "tabberactive";
+
+ /* Elements that might contain the title for the tab, only used if a
+ title is not specified in the TITLE attribute of DIV classTab.
+ */
+ this.titleElements = ['h2','h3','h4','h5','h6'];
+
+ /* Should we strip out the HTML from the innerHTML of the title elements?
+ This should usually be true.
+ */
+ this.titleElementsStripHTML = true;
+
+ /* If the user specified the tab names using a TITLE attribute on
+ the DIV, then the browser will display a tooltip whenever the
+ mouse is over the DIV. To prevent this tooltip, we can remove the
+ TITLE attribute after getting the tab name.
+ */
+ this.removeTitle = true;
+
+ /* If you want to add an id to each link set this to true */
+ this.addLinkId = false;
+
+ /* If addIds==true, then you can set a format for the ids.
+ <tabberid> will be replaced with the id of the main tabber div.
+ <tabnumberzero> will be replaced with the tab number
+ (tab numbers starting at zero)
+ <tabnumberone> will be replaced with the tab number
+ (tab numbers starting at one)
+ <tabtitle> will be replaced by the tab title
+ (with all non-alphanumeric characters removed)
+ */
+ this.linkIdFormat = '<tabberid>nav<tabnumberone>';
+
+ /* You can override the defaults listed above by passing in an object:
+ var mytab = new tabber({property:value,property:value});
+ */
+ for (arg in argsObj) { this[arg] = argsObj[arg]; }
+
+ /* Create regular expressions for the class names; Note: if you
+ change the class names after a new object is created you must
+ also change these regular expressions.
+ */
+ this.REclassMain = new RegExp('\\b' + this.classMain + '\\b', 'gi');
+ this.REclassMainLive = new RegExp('\\b' + this.classMainLive + '\\b', 'gi');
+ this.REclassTab = new RegExp('\\b' + this.classTab + '\\b', 'gi');
+ this.REclassTabDefault = new RegExp('\\b' + this.classTabDefault + '\\b', 'gi');
+ this.REclassTabHide = new RegExp('\\b' + this.classTabHide + '\\b', 'gi');
+
+ /* Array of objects holding info about each tab */
+ this.tabs = new Array();
+
+ /* If the main tabber div was specified, call init() now */
+ if (this.div) {
+
+ this.init(this.div);
+
+ /* We don't need the main div anymore, and to prevent a memory leak
+ in IE, we must remove the circular reference between the div
+ and the tabber object. */
+ this.div = null;
+ }
+}
+
+
+/*--------------------------------------------------
+ Methods for tabberObj
+ --------------------------------------------------*/
+
+
+tabberObj.prototype.init = function(e)
+{
+ /* Set up the tabber interface.
+
+ e = element (the main containing div)
+
+ Example:
+ init(document.getElementById('mytabberdiv'))
+ */
+
+ var
+ childNodes, /* child nodes of the tabber div */
+ i, i2, /* loop indices */
+ t, /* object to store info about a single tab */
+ defaultTab=0, /* which tab to select by default */
+ DOM_ul, /* tabbernav list */
+ DOM_li, /* tabbernav list item */
+ DOM_a, /* tabbernav link */
+ aId, /* A unique id for DOM_a */
+ headingElement; /* searching for text to use in the tab */
+
+ /* Verify that the browser supports DOM scripting */
+ if (!document.getElementsByTagName) { return false; }
+
+ /* If the main DIV has an ID then save it. */
+ if (e.id) {
+ this.id = e.id;
+ }
+
+ /* Clear the tabs array (but it should normally be empty) */
+ this.tabs.length = 0;
+
+ /* Loop through an array of all the child nodes within our tabber element. */
+ childNodes = e.childNodes;
+ for(i=0; i < childNodes.length; i++) {
+
+ /* Find the nodes where class="tabbertab" */
+ if(childNodes[i].className &&
+ childNodes[i].className.match(this.REclassTab)) {
+
+ /* Create a new object to save info about this tab */
+ t = new Object();
+
+ /* Save a pointer to the div for this tab */
+ t.div = childNodes[i];
+
+ /* Add the new object to the array of tabs */
+ this.tabs[this.tabs.length] = t;
+
+ /* If the class name contains classTabDefault,
+ then select this tab by default.
+ */
+ if (childNodes[i].className.match(this.REclassTabDefault)) {
+ defaultTab = this.tabs.length-1;
+ }
+ }
+ }
+
+ /* Create a new UL list to hold the tab headings */
+ DOM_ul = document.createElement("ul");
+ DOM_ul.className = this.classNav;
+
+ /* Loop through each tab we found */
+ for (i=0; i < this.tabs.length; i++) {
+
+ t = this.tabs[i];
+
+ /* Get the label to use for this tab:
+ From the title attribute on the DIV,
+ Or from one of the this.titleElements[] elements,
+ Or use an automatically generated number.
+ */
+ t.headingText = t.div.title;
+
+ /* Remove the title attribute to prevent a tooltip from appearing */
+ if (this.removeTitle) { t.div.title = ''; }
+
+ if (!t.headingText) {
+
+ /* Title was not defined in the title of the DIV,
+ So try to get the title from an element within the DIV.
+ Go through the list of elements in this.titleElements
+ (typically heading elements ['h2','h3','h4'])
+ */
+ for (i2=0; i2<this.titleElements.length; i2++) {
+ headingElement = t.div.getElementsByTagName(this.titleElements[i2])[0];
+ if (headingElement) {
+ t.headingText = headingElement.innerHTML;
+ if (this.titleElementsStripHTML) {
+ t.headingText.replace(/<br>/gi," ");
+ t.headingText = t.headingText.replace(/<[^>]+>/g,"");
+ }
+ break;
+ }
+ }
+ }
+
+ if (!t.headingText) {
+ /* Title was not found (or is blank) so automatically generate a
+ number for the tab.
+ */
+ t.headingText = i + 1;
+ }
+
+ /* Create a list element for the tab */
+ DOM_li = document.createElement("li");
+
+ /* Save a reference to this list item so we can later change it to
+ the "active" class */
+ t.li = DOM_li;
+
+ /* Create a link to activate the tab */
+ DOM_a = document.createElement("a");
+ DOM_a.appendChild(document.createTextNode(t.headingText));
+ DOM_a.href = "javascript:void(null);";
+ DOM_a.title = t.headingText;
+ DOM_a.onclick = this.navClick;
+
+ /* Add some properties to the link so we can identify which tab
+ was clicked. Later the navClick method will need this.
+ */
+ DOM_a.tabber = this;
+ DOM_a.tabberIndex = i;
+
+ /* Do we need to add an id to DOM_a? */
+ if (this.addLinkId && this.linkIdFormat) {
+
+ /* Determine the id name */
+ aId = this.linkIdFormat;
+ aId = aId.replace(/<tabberid>/gi, this.id);
+ aId = aId.replace(/<tabnumberzero>/gi, i);
+ aId = aId.replace(/<tabnumberone>/gi, i+1);
+ aId = aId.replace(/<tabtitle>/gi, t.headingText.replace(/[^a-zA-Z0-9\-]/gi, ''));
+
+ DOM_a.id = aId;
+ }
+
+ /* Add the link to the list element */
+ DOM_li.appendChild(DOM_a);
+
+ /* Add the list element to the list */
+ DOM_ul.appendChild(DOM_li);
+ }
+
+ /* Add the UL list to the beginning of the tabber div */
+ e.insertBefore(DOM_ul, e.firstChild);
+
+ /* Make the tabber div "live" so different CSS can be applied */
+ e.className = e.className.replace(this.REclassMain, this.classMainLive);
+
+ /* Activate the default tab, and do not call the onclick handler */
+ this.tabShow(defaultTab);
+
+ /* If the user specified an onLoad function, call it now. */
+ if (typeof this.onLoad == 'function') {
+ this.onLoad({tabber:this});
+ }
+
+ return this;
+};
+
+
+tabberObj.prototype.navClick = function(event)
+{
+ /* This method should only be called by the onClick event of an <A>
+ element, in which case we will determine which tab was clicked by
+ examining a property that we previously attached to the <A>
+ element.
+
+ Since this was triggered from an onClick event, the variable
+ "this" refers to the <A> element that triggered the onClick
+ event (and not to the tabberObj).
+
+ When tabberObj was initialized, we added some extra properties
+ to the <A> element, for the purpose of retrieving them now. Get
+ the tabberObj object, plus the tab number that was clicked.
+ */
+
+ var
+ rVal, /* Return value from the user onclick function */
+ a, /* element that triggered the onclick event */
+ self, /* the tabber object */
+ tabberIndex, /* index of the tab that triggered the event */
+ onClickArgs; /* args to send the onclick function */
+
+ a = this;
+ if (!a.tabber) { return false; }
+
+ self = a.tabber;
+ tabberIndex = a.tabberIndex;
+
+ /* Remove focus from the link because it looks ugly.
+ I don't know if this is a good idea...
+ */
+ a.blur();
+
+ /* If the user specified an onClick function, call it now.
+ If the function returns false then do not continue.
+ */
+ if (typeof self.onClick == 'function') {
+
+ onClickArgs = {'tabber':self, 'index':tabberIndex, 'event':event};
+
+ /* IE uses a different way to access the event object */
+ if (!event) { onClickArgs.event = window.event; }
+
+ rVal = self.onClick(onClickArgs);
+ if (rVal === false) { return false; }
+ }
+
+ self.tabShow(tabberIndex);
+
+ return false;
+};
+
+
+tabberObj.prototype.tabHideAll = function()
+{
+ var i; /* counter */
+
+ /* Hide all tabs and make all navigation links inactive */
+ for (i = 0; i < this.tabs.length; i++) {
+ this.tabHide(i);
+ }
+};
+
+
+tabberObj.prototype.tabHide = function(tabberIndex)
+{
+ var div;
+
+ if (!this.tabs[tabberIndex]) { return false; }
+
+ /* Hide a single tab and make its navigation link inactive */
+ div = this.tabs[tabberIndex].div;
+
+ /* Hide the tab contents by adding classTabHide to the div */
+ if (!div.className.match(this.REclassTabHide)) {
+ div.className += ' ' + this.classTabHide;
+ }
+ this.navClearActive(tabberIndex);
+
+ return this;
+};
+
+
+tabberObj.prototype.tabShow = function(tabberIndex)
+{
+ /* Show the tabberIndex tab and hide all the other tabs */
+
+ var div;
+
+ if (!this.tabs[tabberIndex]) { return false; }
+
+ /* Hide all the tabs first */
+ this.tabHideAll();
+
+ /* Get the div that holds this tab */
+ div = this.tabs[tabberIndex].div;
+
+ /* Remove classTabHide from the div */
+ div.className = div.className.replace(this.REclassTabHide, '');
+
+ /* Mark this tab navigation link as "active" */
+ this.navSetActive(tabberIndex);
+
+ /* If the user specified an onTabDisplay function, call it now. */
+ if (typeof this.onTabDisplay == 'function') {
+ this.onTabDisplay({'tabber':this, 'index':tabberIndex});
+ }
+
+ return this;
+};
+
+tabberObj.prototype.navSetActive = function(tabberIndex)
+{
+ /* Note: this method does *not* enforce the rule
+ that only one nav item can be active at a time.
+ */
+
+ /* Set classNavActive for the navigation list item */
+ this.tabs[tabberIndex].li.className = this.classNavActive;
+
+ return this;
+};
+
+
+tabberObj.prototype.navClearActive = function(tabberIndex)
+{
+ /* Note: this method does *not* enforce the rule
+ that one nav should always be active.
+ */
+
+ /* Remove classNavActive from the navigation list item */
+ this.tabs[tabberIndex].li.className = '';
+
+ return this;
+};
+
+
+/*==================================================*/
+
+
+function tabberAutomatic(tabberArgs)
+{
+ /* This function finds all DIV elements in the document where
+ class=tabber.classMain, then converts them to use the tabber
+ interface.
+
+ tabberArgs = an object to send to "new tabber()"
+ */
+ var
+ tempObj, /* Temporary tabber object */
+ divs, /* Array of all divs on the page */
+ i; /* Loop index */
+
+ if (!tabberArgs) { tabberArgs = {}; }
+
+ /* Create a tabber object so we can get the value of classMain */
+ tempObj = new tabberObj(tabberArgs);
+
+ /* Find all DIV elements in the document that have class=tabber */
+
+ /* First get an array of all DIV elements and loop through them */
+ divs = document.getElementsByTagName("div");
+ for (i=0; i < divs.length; i++) {
+
+ /* Is this DIV the correct class? */
+ if (divs[i].className &&
+ divs[i].className.match(tempObj.REclassMain)) {
+
+ /* Now tabify the DIV */
+ tabberArgs.div = divs[i];
+ divs[i].tabber = new tabberObj(tabberArgs);
+ }
+ }
+
+ return this;
+}
+
+
+/*==================================================*/
+
+
+function tabberAutomaticOnLoad(tabberArgs)
+{
+ /* This function adds tabberAutomatic to the window.onload event,
+ so it will run after the document has finished loading.
+ */
+ var oldOnLoad;
+
+ if (!tabberArgs) { tabberArgs = {}; }
+
+ /* Taken from: http://simon.incutio.com/archive/2004/05/26/addLoadEvent */
+
+ oldOnLoad = window.onload;
+ if (typeof window.onload != 'function') {
+ window.onload = function() {
+ tabberAutomatic(tabberArgs);
+ };
+ } else {
+ window.onload = function() {
+ oldOnLoad();
+ tabberAutomatic(tabberArgs);
+ };
+ }
+}
+
+
+/*==================================================*/
+
+
+/* Run tabberAutomaticOnload() unless the "manualStartup" option was specified */
+
+if (typeof tabberOptions == 'undefined') {
+
+ tabberAutomaticOnLoad();
+
+} else {
+
+ if (!tabberOptions['manualStartup']) {
+ tabberAutomaticOnLoad(tabberOptions);
+ }
+
+}
Deleted: ui/web/templates/generated.html
===================================================================
--- ui/web/templates/generated.html 2009-01-11 21:17:40 UTC (rev 1558)
+++ ui/web/templates/generated.html 2009-01-12 15:46:44 UTC (rev 1559)
@@ -1,36 +0,0 @@
-$def with (code, warnings)
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="shortcut icon" href="/static/favicon.ico" />
- <link rel="icon" href="/static/favicon.ico" />
- <!--link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/static/generator.css"-->
- <title>pygccxml & py++ demo - generated code</title>
-</head>
-<body>
- <h2>pygccxml & py++ demo - generated code</h2>
- <span style="width:80%; float:left;">
- <label>Generated code:</label>
- <br/>
- <textarea name="generated_code" rows="20" readonly="true" style="width:100%;">$:code</textarea>
- </span>
- <a> </a>
- <span style="float : left; padding-left : 10px; width : 18%;">
- <br/>
- <label style="width:100%;">What is ... ?</label>
- <dt>
- <dd><a href="http://www.language-binding.net">py++</a></dd>
- <dd><a href="http://www.language-binding.net">pygccxml</a></dd>
- </dt>
- <label style="width:100%;">Adsense placeholder</label>
- <textarea name="adsense" rows="15" style="width:100;">jjjjjjjjjjjjjjjjjjjjjjjjjj</textarea>
- </span>
- <span style="width:100%;">
- <br/>
- <label>Warnings:</label>
- <br/>
- <textarea name="warnings" rows="15" readonly="true" style="width:100%;">$:warnings</textarea>
- </span>
-</body>
-</html>
Deleted: ui/web/templates/generator.html
===================================================================
--- ui/web/templates/generator.html 2009-01-11 21:17:40 UTC (rev 1558)
+++ ui/web/templates/generator.html 2009-01-12 15:46:44 UTC (rev 1559)
@@ -1,26 +0,0 @@
-$def with (generator_form)
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="shortcut icon" href="/static/favicon.ico" />
- <link rel="icon" href="/static/favicon.ico" />
- <!--link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="/static/generator.css"-->
- <title>pygccxml & py++ demo</title>
-</head>
-<body>
- <h2>pygccxml & py++ demo</h2>
- $:generator_form.render()
- <a> </a>
- <span style="float : left; padding-left : 10px; width : 18%;">
- <br/>
- <label style="width:100;">What is ... ?</label>
- <dt>
- <dd><a href="http://www.language-binding.net">py++</a></dd>
- <dd><a href="http://www.language-binding.net">pygccxml</a></dd>
- </dt>
- <label style="width:100;">Adsense placeholder</label>
- <textarea name="adsense" rows="15" style="width:100;">jjjjjjjjjjjjjjjjjjjjjjjjjj</textarea>
- </span>
-</body>
-</html>
Modified: ui/web/templates/generator_tmpl.html
===================================================================
--- ui/web/templates/generator_tmpl.html 2009-01-11 21:17:40 UTC (rev 1558)
+++ ui/web/templates/generator_tmpl.html 2009-01-12 15:46:44 UTC (rev 1559)
@@ -1,34 +1,79 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link rel="shortcut icon" href="/static/favicon.ico" />
- <link rel="icon" href="/static/favicon.ico" />
- <title>pygccxml & py++ demo</title>
-</head>
-<body>
- <h2>pygccxml & py++ demo</h2>
- <form action="/generated.html" method="post" id="SourceCodeForm" style="width:80%; float:left;">
- <label>Source code:</label>
- <br/>
- <textarea name="source_code" rows="20" style="width:100%;"></textarea>
- <br/>
- <input type="submit" name="show_decls" value="Show declarations" />
- <a></a>
- <input type="submit" name="generate_bp" value="Generate Boost.Python code" />
- <a></a>
- <input type="submit" name="generate_pypp" value="Generate Py++ code" />
- </form>
- <a> </a>
- <span style="float : left; padding-left : 10px; width : 18%;">
- <br/>
- <label style="width:100;">What is ... ?</label>
- <dt>
- <dd><a href="http://www.language-binding.net">py++</a></dd>
- <dd><a href="http://www.language-binding.net">pygccxml</a></dd>
- </dt>
- <label style="width:100;">Adsense placeholder</label>
- <textarea name="adsense" rows="15" style="width:100;">jjjjjjjjjjjjjjjjjjjjjjjjjj</textarea>
- </span>
-</body>
-</html>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+ <link rel="shortcut icon" href="/static/favicon.ico" />
+ <link rel="icon" href="/static/favicon.ico" />
+ <link rel="stylesheet" href="/static/tabber.css" type="text/css" media="screen"/>
+ <link rel="stylesheet" href="/static/generator.css" type="text/css" media="screen"/>
+ <script type="text/javascript" src="tabber.js"></script>
+ <title>pygccxml & py++ demo</title>
+</head>
+<body>
+ <h2>pygccxml & py++ demo</h2>
+ <form action="/generated.html" method="post" id="SourceCodeForm">
+ <p>In the following tabs you can configurate GCC-XML compiler. It is not a must</p>
+ <div class="tabber">
+ <div class="tabbertab">
+ <h2>Include directories</h2>
+ <p>List include directories( each directory on the new line ):</p>
+ <textarea name="COMPILER_INCLUDE_DIRECTORIES" rows="5" cols="80" style="margin-left: 5mm" ></textarea>
+ </div>
+ <div class="tabbertab">
+ <h2>Preprocessor definitions</h2>
+ <p>Configure preprocessor ( define -D"HAS_XYZ=1" or undefine -U"_DEBUG" ):</p>
+ <textarea name="COMPILER_PREPROCESSOR_DEFINITIONS" rows="5" cols="80" style="margin-left: 5mm" ></textarea>
+ </div>
+ <div class="tabbertab">
+ <h2>Advance</h2>
+ <p>Define GCC-XML command line arguments:</p>
+ <textarea name="COMPILER_CMD_ARGS" rows="5" cols="80" style="margin-left: 5mm"></textarea>
+ </div>
+ </div>
+ <p>Add some text that describes purpose of the "Text" and "File"</p>
+ <div class="tabber">
+ <div class="tabbertab">
+ <h2>pygccxml demonstration</h2>
+ <p></p>
+ <input type="radio" name="GCCXML_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
+ <input type="file" name="GCCXML_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="radio" name="GCCXML_TAKE_CODE_FROM" value="text"/>Code:<br/>
+ <textarea name="GCCXML_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
+ <br/>
+ <hr />
+ <input type="submit" name="VIEW_XML" value="View XML" />
+ <a></a>
+ <input type="submit" name="VIEW_DECLS" value="View declarations tree" />
+ </div>
+ <div class="tabbertab">
+ <h2>Boost.Python code generator</h2>
+ <p></p>
+ <input type="radio" name="BP_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
+ <input type="file" name="BP_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="radio" name="BP_TAKE_CODE_FROM" value="text"/>Code:<br/>
+ <textarea name="BP_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
+ <br/>
+ <hr />
+ <input type="submit" name="GENERATE_BP_CODE" value="Generate code" />
+ <a></a>
+ <input type="submit" name="GENERATE_BP_PYPP_CODE" value="Generate Py++ code" />
+ </div>
+ <div class="tabbertab">
+ <h2>ctypes code generator</h2>
+ <p></p>
+ <a>Dynamic/shared library path:</a>
+ <input type="file" name="CTYPES_SHLIB_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="radio" name="CTYPES_TAKE_CODE_FROM" value="file" checked="checked" />Header file:<br/>
+ <input type="file" name="CTYPES_FILE_NAME" size="90" style="margin-left: 5mm" /><br/>
+ <input type="radio" name="CTYPES_TAKE_CODE_FROM" value="text"/>Code:<br/>
+ <textarea name="CTYPES_SOURCE_CODE" rows="15" cols="80" style="margin-left: 5mm"></textarea>
+ <br/>
+ <hr />
+ <input type="submit" name="GENERATE_CTYPES_CODE" value="Generate code" />
+ <a></a>
+ <input type="submit" name="GENERATE_CTYPES_PYPP_CODE" value="Generate Py++ code" />
+ </div>
+ </div>
+ </form>
+</body>
+</html>
Modified: ui/web/web.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...> - 2009-01-11 21:17:48
|
Revision: 1558
http://pygccxml.svn.sourceforge.net/pygccxml/?rev=1558&view=rev
Author: roman_yakovenko
Date: 2009-01-11 21:17:40 +0000 (Sun, 11 Jan 2009)
Log Message:
-----------
gmplis almost works
Modified Paths:
--------------
pygccxml_dev/pygccxml/declarations/dependencies.py
pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
pyplusplus_dev/examples/gmplib_dev/pygmplib/ctypes_utils.py
pyplusplus_dev/examples/gmplib_dev/test.py
pyplusplus_dev/pyplusplus/code_repository/ctypes_utils.py
pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py
pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py
Modified: pygccxml_dev/pygccxml/declarations/dependencies.py
===================================================================
--- pygccxml_dev/pygccxml/declarations/dependencies.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pygccxml_dev/pygccxml/declarations/dependencies.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -61,7 +61,7 @@
return None
@staticmethod
- def they_depend_on_me( decl ):
+ def i_depend_on_them( decl ):
"""returns set of declarations. every item in the returned set, depends on a
declaration from the input"""
import class_declaration #prevent cyclic imports
@@ -76,7 +76,7 @@
return to_be_included
@staticmethod
- def they_depend_on_us( decls ):
+ def we_depend_on_them( decls ):
"""returns set of declarations. every item in the returned set, depends on a
declaration from the input"""
import class_declaration #prevent cyclic imports
Modified: pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/examples/gmplib_dev/dev/generate_code.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -24,8 +24,12 @@
#introduces define, which aliass __gmpy to gmpy
for f in mb.calldefs( lambda x: x.name.startswith('__gmp') ):
f.alias = f.name[2:]
-#enums
+#there is a bug in "include" algorithm - I need to wrote DFS
+mb.class_( '_IO_marker' ).include()
+
+#include should work as expected - include only exported function
+
#~ mb.print_declarations()
mb.build_code_creator( project_env.gmp.shared_library_file )
mb.write_module( os.path.join( project_env.gmp.generated_code_dir, '__init__.py' ) )
Modified: pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/examples/gmplib_dev/pygmplib/__init__.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -617,9 +617,16 @@
"__gmpf_init_set_str" : "extern int __gmpf_init_set_str(mpf_ptr arg0, char const * arg1, int arg2) [free function]",
}
+class gmp_randalg_t( ctypes_utils.Enumeration ):
+ GMP_RAND_ALG_DEFAULT = 0
+ GMP_RAND_ALG_LC = 0
+
class _IO_FILE(ctypes.Structure):
"""class _IO_FILE"""
+class _IO_marker(ctypes.Structure):
+ """class _IO_marker"""
+
class __gmp_randstate_struct(ctypes.Structure):
"""class __gmp_randstate_struct"""
@@ -682,10 +689,16 @@
("_mp_den", __mpz_struct),
]
+_IO_marker._fields_ = [ #class _IO_marker
+ ("_next", ctypes.POINTER( _IO_marker )),
+ ("_sbuf", ctypes.POINTER( _IO_FILE )),
+ ("_pos", ctypes.c_int),
+]
+
__gmp_randstate_struct._fields_ = [ #class __gmp_randstate_struct
("_mp_seed", ( __mpz_struct * 1 )),
("_mp_alg", gmp_randalg_t),
- ("_mp_algdata", __gmp_randstate_struct.),
+ ("_mp_algdata", ctypes.c_int),
]
gmpq_add_type = ctypes.CFUNCTYPE( None, ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ), ctypes.POINTER( __mpq_struct ) )
Modified: pyplusplus_dev/examples/gmplib_dev/pygmplib/ctypes_utils.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/pygmplib/ctypes_utils.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/examples/gmplib_dev/pygmplib/ctypes_utils.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -129,3 +129,7 @@
def multi_method( self, restype=None ):
return multi_method_registry_t( self, restype )
+
+#take a look on http://code.activestate.com/recipes/413486/
+Enumeration = ctypes.c_int
+
Modified: pyplusplus_dev/examples/gmplib_dev/test.py
===================================================================
--- pyplusplus_dev/examples/gmplib_dev/test.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/examples/gmplib_dev/test.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -1,4 +1,15 @@
+import ctypes
import pygmplib as gmp
-mpz = gmp.__mpz_struct()
+integ1 = ctypes.pointer( gmp.__mpz_struct() )
+integ2 = ctypes.pointer( gmp.__mpz_struct() )
+gmp.gmpz_init_set_ui( integ1, ctypes.c_ulong( 1900 ) )
+print 'integ1 : ', gmp.gmpz_get_si( integ1 )
+gmp.gmpz_init_set_ui( integ2, ctypes.c_ulong( 77 ) )
+print 'integ2 : ', gmp.gmpz_get_si( integ2 )
+
+gmp.gmpz_add( integ1, integ1, integ2 )
+
+print 'integ1 : ', gmp.gmpz_get_si( integ1 )
+
Modified: pyplusplus_dev/pyplusplus/code_repository/ctypes_utils.py
===================================================================
--- pyplusplus_dev/pyplusplus/code_repository/ctypes_utils.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/pyplusplus/code_repository/ctypes_utils.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -137,6 +137,5 @@
#take a look on http://code.activestate.com/recipes/413486/
-class Enumeration( object ):
- pass
+Enumeration = ctypes.c_int
"""
Modified: pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py
===================================================================
--- pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/pyplusplus/creators_factory/ctypes_creator.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -29,6 +29,7 @@
self.__library_path = library_path
self.__exported_symbols = exported_symbols
+ self.__exported_decls = set( exported_symbols.itervalues() )
self.module = code_creators.ctypes_module_t( global_ns )
self.__dependencies_manager = dependencies_manager.manager_t(self.decl_logger)
@@ -68,6 +69,8 @@
def __should_generate_code( self, decl ):
if decl.ignore or decl.already_exposed:
return False
+ if isinstance( decl, declarations.calldef_t ):
+ return decl in self.__exported_decls
return True
Modified: pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py
===================================================================
--- pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2009-01-11 19:18:50 UTC (rev 1557)
+++ pyplusplus_dev/pyplusplus/module_builder/ctypes_builder.py 2009-01-11 21:17:40 UTC (rev 1558)
@@ -79,33 +79,38 @@
return decls_package.matcher.get_single( decls_package.namespace_matcher_t( name='::' )
, decls )
+ def __include_dependencies( self, decl):
+ i_depend_on_them = decls_package.dependency_info_t.i_depend_on_them
+ decls_traits = ( decls_package.class_traits, decls_package.class_declaration_traits, decls_package.enum_traits )
+ for dependency in i_depend_on_them( decl ):
+ self.logger.debug( 'discovered dependency %s' % str(dependency) )
+ for traits in decls_traits:
+ if not traits.is_my_case( dependency ):
+ continue
+ self.logger.debug( 'discovered dependency %s - included' % str(dependency) )
+ dd = traits.get_declaration( dependency )
+ dd.ignore = False
+
+ def __include_parent_classes( self, decl ):
+ self.logger.debug( 'including decl %s' % str(decl) )
+ parent = decl.parent
+ while True:
+ if isinstance( parent, decls_package.namespace_t ):
+ break
+ else:
+ self.logger.debug( 'including parent class %s' % str(parent) )
+ parent.ignore = False
+ parent = parent.parent
+
def __include_declarations( self ):
self.global_ns.exclude()
#include exported declarations
included_decls = set( self.__blob2decl.itervalues() )
-
- they_depend_on_me = decls_package.dependency_info_t.they_depend_on_me
+ #include dependencies
for d in included_decls:
d.include()
- self.logger.debug( 'including decl %s' % str(d) )
- parent = d.parent
- while True:
- if isinstance( parent, decls_package.namespace_t ):
- break
- else:
- self.logger.debug( 'including parent class %s' % str(parent) )
- parent.ignore = False
- parent = parent.parent
- for dependency in they_depend_on_me( d ):
- self.logger.debug( 'discovered dependency %s' % str(dependency) )
- #include declarations, on which exported declarations depend
- #I need this for classes, referenced by function arguments
- decls_traits = ( decls_package.class_traits, decls_package.class_declaration_traits, decls_package.enum_traits )
- for traits in decls_traits:
- if traits.is_my_case( dependency ):
- self.logger.debug( 'discovered dependency %s - included' % str(dependency) )
- traits.get_declaration( dependency ).ignore = False
-
+ self.__include_parent_classes( d )
+ self.__include_dependencies( d )
self.logger.debug( 'including decl %s - done' % str(d) )
def build_code_creator( self, library_path, doc_extractor=None ):
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|