--- a/src/mpi/bindings/modulegen__gcc_LP64.py Thu Aug 15 09:51:32 2013 -0700
+++ b/src/mpi/bindings/modulegen__gcc_LP64.py Thu Aug 15 14:45:42 2013 -0400
@@ -42,6 +42,8 @@
module.add_class('CallbackBase', import_from_module='ns.core')
## event-id.h (module 'core'): ns3::EventId [class]
module.add_class('EventId', import_from_module='ns.core')
+ ## hash.h (module 'core'): ns3::Hasher [class]
+ module.add_class('Hasher', import_from_module='ns.core')
## distributed-simulator-impl.h (module 'mpi'): ns3::LbtsMessage [class]
module.add_class('LbtsMessage')
## mpi-interface.h (module 'mpi'): ns3::MpiInterface [class]
@@ -114,6 +116,8 @@
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::CallbackImplBase', 'ns3::empty', 'ns3::DefaultDeleter<ns3::CallbackImplBase>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::EventImpl', 'ns3::empty', 'ns3::DefaultDeleter<ns3::EventImpl>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> > [class]
+ module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::Hash::Implementation', 'ns3::empty', 'ns3::DefaultDeleter<ns3::Hash::Implementation>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> > [class]
module.add_class('SimpleRefCount', automatic_type_narrowing=True, import_from_module='ns.core', template_parameters=['ns3::NixVector', 'ns3::empty', 'ns3::DefaultDeleter<ns3::NixVector>'], parent=root_module['ns3::empty'], memory_policy=cppclass.ReferenceCountingMethodsPolicy(incref_method='Ref', decref_method='Unref', peekref_method='GetReferenceCount'))
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> > [class]
@@ -172,11 +176,47 @@
nested_module = module.add_cpp_namespace('FatalImpl')
register_types_ns3_FatalImpl(nested_module)
+
+ ## Register a nested module for the namespace Hash
+
+ nested_module = module.add_cpp_namespace('Hash')
+ register_types_ns3_Hash(nested_module)
+
def register_types_ns3_FatalImpl(module):
root_module = module.get_root()
+def register_types_ns3_Hash(module):
+ root_module = module.get_root()
+
+ ## hash-function.h (module 'core'): ns3::Hash::Implementation [class]
+ module.add_class('Implementation', import_from_module='ns.core', parent=root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> >'])
+ typehandlers.add_type_alias('uint32_t ( * ) ( char const *, size_t ) *', 'ns3::Hash::Hash32Function_ptr')
+ typehandlers.add_type_alias('uint32_t ( * ) ( char const *, size_t ) **', 'ns3::Hash::Hash32Function_ptr*')
+ typehandlers.add_type_alias('uint32_t ( * ) ( char const *, size_t ) *&', 'ns3::Hash::Hash32Function_ptr&')
+ typehandlers.add_type_alias('uint64_t ( * ) ( char const *, size_t ) *', 'ns3::Hash::Hash64Function_ptr')
+ typehandlers.add_type_alias('uint64_t ( * ) ( char const *, size_t ) **', 'ns3::Hash::Hash64Function_ptr*')
+ typehandlers.add_type_alias('uint64_t ( * ) ( char const *, size_t ) *&', 'ns3::Hash::Hash64Function_ptr&')
+
+ ## Register a nested module for the namespace Function
+
+ nested_module = module.add_cpp_namespace('Function')
+ register_types_ns3_Hash_Function(nested_module)
+
+
+def register_types_ns3_Hash_Function(module):
+ root_module = module.get_root()
+
+ ## hash-fnv.h (module 'core'): ns3::Hash::Function::Fnv1a [class]
+ module.add_class('Fnv1a', import_from_module='ns.core', parent=root_module['ns3::Hash::Implementation'])
+ ## hash-function.h (module 'core'): ns3::Hash::Function::Hash32 [class]
+ module.add_class('Hash32', import_from_module='ns.core', parent=root_module['ns3::Hash::Implementation'])
+ ## hash-function.h (module 'core'): ns3::Hash::Function::Hash64 [class]
+ module.add_class('Hash64', import_from_module='ns.core', parent=root_module['ns3::Hash::Implementation'])
+ ## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3 [class]
+ module.add_class('Murmur3', import_from_module='ns.core', parent=root_module['ns3::Hash::Implementation'])
+
def register_methods(root_module):
register_Ns3AttributeConstructionList_methods(root_module, root_module['ns3::AttributeConstructionList'])
register_Ns3AttributeConstructionListItem_methods(root_module, root_module['ns3::AttributeConstructionList::Item'])
@@ -189,6 +229,7 @@
register_Ns3ByteTagListIteratorItem_methods(root_module, root_module['ns3::ByteTagList::Iterator::Item'])
register_Ns3CallbackBase_methods(root_module, root_module['ns3::CallbackBase'])
register_Ns3EventId_methods(root_module, root_module['ns3::EventId'])
+ register_Ns3Hasher_methods(root_module, root_module['ns3::Hasher'])
register_Ns3LbtsMessage_methods(root_module, root_module['ns3::LbtsMessage'])
register_Ns3MpiInterface_methods(root_module, root_module['ns3::MpiInterface'])
register_Ns3ObjectBase_methods(root_module, root_module['ns3::ObjectBase'])
@@ -222,6 +263,7 @@
register_Ns3SimpleRefCount__Ns3AttributeValue_Ns3Empty_Ns3DefaultDeleter__lt__ns3AttributeValue__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::AttributeValue, ns3::empty, ns3::DefaultDeleter<ns3::AttributeValue> >'])
register_Ns3SimpleRefCount__Ns3CallbackImplBase_Ns3Empty_Ns3DefaultDeleter__lt__ns3CallbackImplBase__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::CallbackImplBase, ns3::empty, ns3::DefaultDeleter<ns3::CallbackImplBase> >'])
register_Ns3SimpleRefCount__Ns3EventImpl_Ns3Empty_Ns3DefaultDeleter__lt__ns3EventImpl__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::EventImpl, ns3::empty, ns3::DefaultDeleter<ns3::EventImpl> >'])
+ register_Ns3SimpleRefCount__Ns3HashImplementation_Ns3Empty_Ns3DefaultDeleter__lt__ns3HashImplementation__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> >'])
register_Ns3SimpleRefCount__Ns3NixVector_Ns3Empty_Ns3DefaultDeleter__lt__ns3NixVector__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >'])
register_Ns3SimpleRefCount__Ns3Packet_Ns3Empty_Ns3DefaultDeleter__lt__ns3Packet__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::Packet, ns3::empty, ns3::DefaultDeleter<ns3::Packet> >'])
register_Ns3SimpleRefCount__Ns3TraceSourceAccessor_Ns3Empty_Ns3DefaultDeleter__lt__ns3TraceSourceAccessor__gt___methods(root_module, root_module['ns3::SimpleRefCount< ns3::TraceSourceAccessor, ns3::empty, ns3::DefaultDeleter<ns3::TraceSourceAccessor> >'])
@@ -246,6 +288,11 @@
register_Ns3TimeValue_methods(root_module, root_module['ns3::TimeValue'])
register_Ns3TypeIdChecker_methods(root_module, root_module['ns3::TypeIdChecker'])
register_Ns3TypeIdValue_methods(root_module, root_module['ns3::TypeIdValue'])
+ register_Ns3HashImplementation_methods(root_module, root_module['ns3::Hash::Implementation'])
+ register_Ns3HashFunctionFnv1a_methods(root_module, root_module['ns3::Hash::Function::Fnv1a'])
+ register_Ns3HashFunctionHash32_methods(root_module, root_module['ns3::Hash::Function::Hash32'])
+ register_Ns3HashFunctionHash64_methods(root_module, root_module['ns3::Hash::Function::Hash64'])
+ register_Ns3HashFunctionMurmur3_methods(root_module, root_module['ns3::Hash::Function::Murmur3'])
return
def register_Ns3AttributeConstructionList_methods(root_module, cls):
@@ -701,13 +748,42 @@
is_const=True)
return
+def register_Ns3Hasher_methods(root_module, cls):
+ ## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Hasher const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Hasher const &', 'arg0')])
+ ## hash.h (module 'core'): ns3::Hasher::Hasher() [constructor]
+ cls.add_constructor([])
+ ## hash.h (module 'core'): ns3::Hasher::Hasher(ns3::Ptr<ns3::Hash::Implementation> hp) [constructor]
+ cls.add_constructor([param('ns3::Ptr< ns3::Hash::Implementation >', 'hp')])
+ ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')])
+ ## hash.h (module 'core'): uint32_t ns3::Hasher::GetHash32(std::string const s) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('std::string const', 's')])
+ ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash64',
+ 'uint64_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')])
+ ## hash.h (module 'core'): uint64_t ns3::Hasher::GetHash64(std::string const s) [member function]
+ cls.add_method('GetHash64',
+ 'uint64_t',
+ [param('std::string const', 's')])
+ ## hash.h (module 'core'): ns3::Hasher & ns3::Hasher::clear() [member function]
+ cls.add_method('clear',
+ 'ns3::Hasher &',
+ [])
+ return
+
def register_Ns3LbtsMessage_methods(root_module, cls):
## distributed-simulator-impl.h (module 'mpi'): ns3::LbtsMessage::LbtsMessage(ns3::LbtsMessage const & arg0) [copy constructor]
cls.add_constructor([param('ns3::LbtsMessage const &', 'arg0')])
## distributed-simulator-impl.h (module 'mpi'): ns3::LbtsMessage::LbtsMessage() [constructor]
cls.add_constructor([])
- ## distributed-simulator-impl.h (module 'mpi'): ns3::LbtsMessage::LbtsMessage(uint32_t rxc, uint32_t txc, uint32_t id, ns3::Time const & t) [constructor]
- cls.add_constructor([param('uint32_t', 'rxc'), param('uint32_t', 'txc'), param('uint32_t', 'id'), param('ns3::Time const &', 't')])
+ ## distributed-simulator-impl.h (module 'mpi'): ns3::LbtsMessage::LbtsMessage(uint32_t rxc, uint32_t txc, uint32_t id, bool isFinished, ns3::Time const & t) [constructor]
+ cls.add_constructor([param('uint32_t', 'rxc'), param('uint32_t', 'txc'), param('uint32_t', 'id'), param('bool', 'isFinished'), param('ns3::Time const &', 't')])
## distributed-simulator-impl.h (module 'mpi'): uint32_t ns3::LbtsMessage::GetMyId() [member function]
cls.add_method('GetMyId',
'uint32_t',
@@ -724,6 +800,10 @@
cls.add_method('GetTxCount',
'uint32_t',
[])
+ ## distributed-simulator-impl.h (module 'mpi'): bool ns3::LbtsMessage::IsFinished() [member function]
+ cls.add_method('IsFinished',
+ 'bool',
+ [])
return
def register_Ns3MpiInterface_methods(root_module, cls):
@@ -1262,6 +1342,11 @@
'std::string',
[],
is_const=True)
+ ## type-id.h (module 'core'): uint32_t ns3::TypeId::GetHash() const [member function]
+ cls.add_method('GetHash',
+ 'uint32_t',
+ [],
+ is_const=True)
## type-id.h (module 'core'): std::string ns3::TypeId::GetName() const [member function]
cls.add_method('GetName',
'std::string',
@@ -1321,6 +1406,16 @@
'bool',
[param('std::string', 'name'), param('ns3::TypeId::AttributeInformation *', 'info', transfer_ownership=False)],
is_const=True)
+ ## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::LookupByHash(uint32_t hash) [member function]
+ cls.add_method('LookupByHash',
+ 'ns3::TypeId',
+ [param('uint32_t', 'hash')],
+ is_static=True)
+ ## type-id.h (module 'core'): static bool ns3::TypeId::LookupByHashFailSafe(uint32_t hash, ns3::TypeId * tid) [member function]
+ cls.add_method('LookupByHashFailSafe',
+ 'bool',
+ [param('uint32_t', 'hash'), param('ns3::TypeId *', 'tid')],
+ is_static=True)
## type-id.h (module 'core'): static ns3::TypeId ns3::TypeId::LookupByName(std::string name) [member function]
cls.add_method('LookupByName',
'ns3::TypeId',
@@ -1748,6 +1843,18 @@
is_static=True)
return
+def register_Ns3SimpleRefCount__Ns3HashImplementation_Ns3Empty_Ns3DefaultDeleter__lt__ns3HashImplementation__gt___methods(root_module, cls):
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> >::SimpleRefCount() [constructor]
+ cls.add_constructor([])
+ ## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> >::SimpleRefCount(ns3::SimpleRefCount<ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> > const & o) [copy constructor]
+ cls.add_constructor([param('ns3::SimpleRefCount< ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter< ns3::Hash::Implementation > > const &', 'o')])
+ ## simple-ref-count.h (module 'core'): static void ns3::SimpleRefCount<ns3::Hash::Implementation, ns3::empty, ns3::DefaultDeleter<ns3::Hash::Implementation> >::Cleanup() [member function]
+ cls.add_method('Cleanup',
+ 'void',
+ [],
+ is_static=True)
+ return
+
def register_Ns3SimpleRefCount__Ns3NixVector_Ns3Empty_Ns3DefaultDeleter__lt__ns3NixVector__gt___methods(root_module, cls):
## simple-ref-count.h (module 'core'): ns3::SimpleRefCount<ns3::NixVector, ns3::empty, ns3::DefaultDeleter<ns3::NixVector> >::SimpleRefCount() [constructor]
cls.add_constructor([])
@@ -2020,13 +2127,13 @@
'bool',
[],
is_const=True)
- ## nstime.h (module 'core'): static ns3::Time ns3::Time::MAX() [member function]
- cls.add_method('MAX',
+ ## nstime.h (module 'core'): static ns3::Time ns3::Time::Max() [member function]
+ cls.add_method('Max',
'ns3::Time',
[],
is_static=True)
- ## nstime.h (module 'core'): static ns3::Time ns3::Time::MIN() [member function]
- cls.add_method('MIN',
+ ## nstime.h (module 'core'): static ns3::Time ns3::Time::Min() [member function]
+ cls.add_method('Min',
'ns3::Time',
[],
is_static=True)
@@ -2765,14 +2872,127 @@
[param('ns3::TypeId const &', 'value')])
return
+def register_Ns3HashImplementation_methods(root_module, cls):
+ ## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation(ns3::Hash::Implementation const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Hash::Implementation const &', 'arg0')])
+ ## hash-function.h (module 'core'): ns3::Hash::Implementation::Implementation() [constructor]
+ cls.add_constructor([])
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Implementation::GetHash32(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_pure_virtual=True, is_virtual=True)
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Implementation::GetHash64(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash64',
+ 'uint64_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-function.h (module 'core'): void ns3::Hash::Implementation::clear() [member function]
+ cls.add_method('clear',
+ 'void',
+ [],
+ is_pure_virtual=True, is_virtual=True)
+ return
+
+def register_Ns3HashFunctionFnv1a_methods(root_module, cls):
+ ## hash-fnv.h (module 'core'): ns3::Hash::Function::Fnv1a::Fnv1a(ns3::Hash::Function::Fnv1a const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Hash::Function::Fnv1a const &', 'arg0')])
+ ## hash-fnv.h (module 'core'): ns3::Hash::Function::Fnv1a::Fnv1a() [constructor]
+ cls.add_constructor([])
+ ## hash-fnv.h (module 'core'): uint32_t ns3::Hash::Function::Fnv1a::GetHash32(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-fnv.h (module 'core'): uint64_t ns3::Hash::Function::Fnv1a::GetHash64(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash64',
+ 'uint64_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-fnv.h (module 'core'): void ns3::Hash::Function::Fnv1a::clear() [member function]
+ cls.add_method('clear',
+ 'void',
+ [],
+ is_virtual=True)
+ return
+
+def register_Ns3HashFunctionHash32_methods(root_module, cls):
+ ## hash-function.h (module 'core'): ns3::Hash::Function::Hash32::Hash32(ns3::Hash::Function::Hash32 const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Hash::Function::Hash32 const &', 'arg0')])
+ ## hash-function.h (module 'core'): ns3::Hash::Function::Hash32::Hash32(ns3::Hash::Hash32Function_ptr hp) [constructor]
+ cls.add_constructor([param('ns3::Hash::Hash32Function_ptr', 'hp')])
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash32::GetHash32(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-function.h (module 'core'): void ns3::Hash::Function::Hash32::clear() [member function]
+ cls.add_method('clear',
+ 'void',
+ [],
+ is_virtual=True)
+ return
+
+def register_Ns3HashFunctionHash64_methods(root_module, cls):
+ ## hash-function.h (module 'core'): ns3::Hash::Function::Hash64::Hash64(ns3::Hash::Function::Hash64 const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Hash::Function::Hash64 const &', 'arg0')])
+ ## hash-function.h (module 'core'): ns3::Hash::Function::Hash64::Hash64(ns3::Hash::Hash64Function_ptr hp) [constructor]
+ cls.add_constructor([param('ns3::Hash::Hash64Function_ptr', 'hp')])
+ ## hash-function.h (module 'core'): uint32_t ns3::Hash::Function::Hash64::GetHash32(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-function.h (module 'core'): uint64_t ns3::Hash::Function::Hash64::GetHash64(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash64',
+ 'uint64_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-function.h (module 'core'): void ns3::Hash::Function::Hash64::clear() [member function]
+ cls.add_method('clear',
+ 'void',
+ [],
+ is_virtual=True)
+ return
+
+def register_Ns3HashFunctionMurmur3_methods(root_module, cls):
+ ## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3::Murmur3(ns3::Hash::Function::Murmur3 const & arg0) [copy constructor]
+ cls.add_constructor([param('ns3::Hash::Function::Murmur3 const &', 'arg0')])
+ ## hash-murmur3.h (module 'core'): ns3::Hash::Function::Murmur3::Murmur3() [constructor]
+ cls.add_constructor([])
+ ## hash-murmur3.h (module 'core'): uint32_t ns3::Hash::Function::Murmur3::GetHash32(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash32',
+ 'uint32_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-murmur3.h (module 'core'): uint64_t ns3::Hash::Function::Murmur3::GetHash64(char const * buffer, size_t const size) [member function]
+ cls.add_method('GetHash64',
+ 'uint64_t',
+ [param('char const *', 'buffer'), param('size_t const', 'size')],
+ is_virtual=True)
+ ## hash-murmur3.h (module 'core'): void ns3::Hash::Function::Murmur3::clear() [member function]
+ cls.add_method('clear',
+ 'void',
+ [],
+ is_virtual=True)
+ return
+
def register_functions(root_module):
module = root_module
register_functions_ns3_FatalImpl(module.get_submodule('FatalImpl'), root_module)
+ register_functions_ns3_Hash(module.get_submodule('Hash'), root_module)
return
def register_functions_ns3_FatalImpl(module, root_module):
return
+def register_functions_ns3_Hash(module, root_module):
+ register_functions_ns3_Hash_Function(module.get_submodule('Function'), root_module)
+ return
+
+def register_functions_ns3_Hash_Function(module, root_module):
+ return
+
def main():
out = FileCodeSink(sys.stdout)
root_module = module_init()