Correctly mangle the html section names to prevent name clashes in the pdf document

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11922 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2010-03-06 20:42:53 +00:00
commit c979cf55b0
5 changed files with 484 additions and 484 deletions

View file

@ -9,35 +9,35 @@
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
<li><a href="#csharp_introduction">Introduction</a> <li><a href="#CSharp_introduction">Introduction</a>
<li><a href="#csharp_differences_java">Differences to the Java module</a> <li><a href="#CSharp_differences_java">Differences to the Java module</a>
<li><a href="#CSharp_arrays">C# Arrays</a> <li><a href="#CSharp_arrays">C# Arrays</a>
<ul> <ul>
<li><a href="#CSharp_arrays_swig_library">The SWIG C arrays library</a> <li><a href="#CSharp_arrays_swig_library">The SWIG C arrays library</a>
<li><a href="#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a> <li><a href="#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a>
<li><a href="#CSharp_arrays_pinning">Managed arrays using pinning</a> <li><a href="#CSharp_arrays_pinning">Managed arrays using pinning</a>
</ul> </ul>
<li><a href="#csharp_exceptions">C# Exceptions</a> <li><a href="#CSharp_exceptions">C# Exceptions</a>
<ul> <ul>
<li><a href="#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a> <li><a href="#CSharp_exception_example_check_typemap">C# exception example using "check" typemap</a>
<li><a href="#csharp_exception_example_percent_exception">C# exception example using %exception</a> <li><a href="#CSharp_exception_example_percent_exception">C# exception example using %exception</a>
<li><a href="#csharp_exception_example_exception_specifications">C# exception example using exception specifications</a> <li><a href="#CSharp_exception_example_exception_specifications">C# exception example using exception specifications</a>
<li><a href="#csharp_custom_application_exception">Custom C# ApplicationException example</a> <li><a href="#CSharp_custom_application_exception">Custom C# ApplicationException example</a>
</ul> </ul>
<li><a href="#csharp_directors">C# Directors</a> <li><a href="#CSharp_directors">C# Directors</a>
<ul> <ul>
<li><a href="#csharp_directors_example">Directors example</a> <li><a href="#CSharp_directors_example">Directors example</a>
<li><a href="#csharp_directors_implementation">Directors implementation</a> <li><a href="#CSharp_directors_implementation">Directors implementation</a>
<li><a href="#csharp_director_caveats">Director caveats</a> <li><a href="#CSharp_director_caveats">Director caveats</a>
</ul> </ul>
<li><a href="#csharp_typemap_examples">C# Typemap examples</a> <li><a href="#CSharp_typemap_examples">C# Typemap examples</a>
<ul> <ul>
<li><a href="#csharp_memory_management_member_variables">Memory management when returning references to member variables</a> <li><a href="#CSharp_memory_management_member_variables">Memory management when returning references to member variables</a>
<li><a href="#csharp_memory_management_objects">Memory management for objects passed to the C++ layer</a> <li><a href="#CSharp_memory_management_objects">Memory management for objects passed to the C++ layer</a>
<li><a href="#csharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a> <li><a href="#CSharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a>
<li><a href="#csharp_date_properties">A date example demonstrating marshalling of C# properties</a> <li><a href="#CSharp_date_properties">A date example demonstrating marshalling of C# properties</a>
<li><a href="#csharp_partial_classes">Turning wrapped classes into partial classes</a> <li><a href="#CSharp_partial_classes">Turning wrapped classes into partial classes</a>
<li><a href="#csharp_extending_proxy_class">Extending proxy classes with additional C# code</a> <li><a href="#CSharp_extending_proxy_class">Extending proxy classes with additional C# code</a>
</ul> </ul>
</ul> </ul>
</div> </div>
@ -45,7 +45,7 @@
<H2><a name="csharp_introduction"></a>18.1 Introduction</H2> <H2><a name="CSharp_introduction"></a>18.1 Introduction</H2>
<p> <p>
@ -65,7 +65,7 @@ The <a href="http://msdn.microsoft.com">Microsoft Developer Network (MSDN)</a> h
Monodoc, available from the Mono project, has a very useful section titled <a href="http://www.mono-project.com/Interop_with_Native_Libraries">Interop with native libraries</a>. Monodoc, available from the Mono project, has a very useful section titled <a href="http://www.mono-project.com/Interop_with_Native_Libraries">Interop with native libraries</a>.
</p> </p>
<H2><a name="csharp_differences_java"></a>18.2 Differences to the Java module</H2> <H2><a name="CSharp_differences_java"></a>18.2 Differences to the Java module</H2>
<p> <p>
@ -137,7 +137,7 @@ If it was used, it would generate an illegal runtime initialisation via a PInvok
C# doesn't support the notion of throws clauses. C# doesn't support the notion of throws clauses.
Therefore there is no 'throws' typemap attribute support for adding exception classes to a throws clause. Therefore there is no 'throws' typemap attribute support for adding exception classes to a throws clause.
Likewise there is no need for an equivalent to <tt>%javaexception</tt>. Likewise there is no need for an equivalent to <tt>%javaexception</tt>.
In fact, throwing C# exceptions works quite differently, see <a href="CSharp.html#csharp_exceptions">C# Exceptions</a> below. In fact, throwing C# exceptions works quite differently, see <a href="CSharp.html#CSharp_exceptions">C# Exceptions</a> below.
</li> </li>
<li> <li>
@ -215,10 +215,10 @@ $jnicall -&gt; $imcall
<p> <p>
Unlike the "javain" typemap, the "csin" typemap does not support the 'pgcpp' attribute as the C# module does not have a premature garbage collection prevention parameter. Unlike the "javain" typemap, the "csin" typemap does not support the 'pgcpp' attribute as the C# module does not have a premature garbage collection prevention parameter.
The "csin" typemap supports additional optional attributes called 'cshin' and 'terminator'. The "csin" typemap supports additional optional attributes called 'cshin' and 'terminator'.
The 'cshin' attribute should contain the parameter type and name whenever a <a href="Java.html#java_constructor_helper_function">constructor helper function</a> is generated due to the 'pre' or 'post' attributes. The 'cshin' attribute should contain the parameter type and name whenever a <a href="Java.html#Java_constructor_helper_function">constructor helper function</a> is generated due to the 'pre' or 'post' attributes.
The 'terminator' attribute normally just contains a closing brace for when the 'pre' attribute contains an opening brace, such as when a C# <tt>using</tt> or <tt>fixed</tt> block is started. The 'terminator' attribute normally just contains a closing brace for when the 'pre' attribute contains an opening brace, such as when a C# <tt>using</tt> or <tt>fixed</tt> block is started.
Note that 'pre', 'post', 'terminator' and 'cshin' attributes are not used for marshalling the property set. Note that 'pre', 'post', 'terminator' and 'cshin' attributes are not used for marshalling the property set.
Please see the <a href="#csharp_date_marshalling">Date marshalling example</a> and <a href="#csharp_date_properties">Date marshalling of properties example</a> for further understanding of these "csin" applicable attributes. Please see the <a href="#CSharp_date_marshalling">Date marshalling example</a> and <a href="#CSharp_date_properties">Date marshalling of properties example</a> for further understanding of these "csin" applicable attributes.
</p> </p>
</li> </li>
@ -255,7 +255,7 @@ public static extern IntPtr function(string jarg1);
Support for type attributes. Support for type attributes.
The 'imtype' and 'cstype' typemaps can have an optional <tt>inattributes</tt> and <tt>outattributes</tt> typemap attribute. The 'imtype' and 'cstype' typemaps can have an optional <tt>inattributes</tt> and <tt>outattributes</tt> typemap attribute.
The 'imtype' typemap can also have an optional <tt>directorinattributes</tt> and <tt>directoroutattributes</tt> The 'imtype' typemap can also have an optional <tt>directorinattributes</tt> and <tt>directoroutattributes</tt>
typemap attribute which attaches to director delegates, an implementation detail of directors, see <a href="#csharp_directors_implementation">directors implementation</a>. typemap attribute which attaches to director delegates, an implementation detail of directors, see <a href="#CSharp_directors_implementation">directors implementation</a>.
Note that there are C# attributes and typemap attributes, don't get confused between the two!! Note that there are C# attributes and typemap attributes, don't get confused between the two!!
The C# attributes specified in these typemap attributes are generated wherever the type is used in the C# wrappers. The C# attributes specified in these typemap attributes are generated wherever the type is used in the C# wrappers.
These can be used to specify any C# attribute associated with a C/C++ type, but are more typically used for the C# <tt>MarshalAs</tt> attribute. These can be used to specify any C# attribute associated with a C/C++ type, but are more typically used for the C# <tt>MarshalAs</tt> attribute.
@ -406,7 +406,7 @@ This feature is useful for some obscure cases where SWIG might get the <tt>virtu
</li> </li>
<li> <li>
<a name="csharp_module_directive"></a> <a name="CSharp_module_directive"></a>
<p> <p>
The name of the intermediary class can be changed from its default, that is, the module name with PINVOKE appended after it. The name of the intermediary class can be changed from its default, that is, the module name with PINVOKE appended after it.
The module directive attribute <tt>imclassname</tt> is used to achieve this: The module directive attribute <tt>imclassname</tt> is used to achieve this:
@ -441,7 +441,7 @@ if specified, otherwise it is equivalent to the <b>$module</b> special variable.
<p> <p>
<b><tt>$imclassname</tt></b><br> <b><tt>$imclassname</tt></b><br>
This special variable expands to the intermediary class name. For C# this is usually the same as '$modulePINVOKE' ('$moduleJNI' for Java), This special variable expands to the intermediary class name. For C# this is usually the same as '$modulePINVOKE' ('$moduleJNI' for Java),
unless the imclassname attribute is specified in the <a href="CSharp.html#csharp_module_directive">%module directive</a>. unless the imclassname attribute is specified in the <a href="CSharp.html#CSharp_module_directive">%module directive</a>.
</p> </p>
<p> <p>
@ -721,7 +721,7 @@ public static extern void myArrayCopy(IntPtr jarg1, IntPtr jarg2, int jarg3);
<H2><a name="csharp_exceptions"></a>18.4 C# Exceptions</H2> <H2><a name="CSharp_exceptions"></a>18.4 C# Exceptions</H2>
<p> <p>
@ -818,7 +818,7 @@ set so should only be used when a C# exception is not created.
</p> </p>
<H3><a name="csharp_exception_example_check_typemap"></a>18.4.1 C# exception example using "check" typemap</H3> <H3><a name="CSharp_exception_example_check_typemap"></a>18.4.1 C# exception example using "check" typemap</H3>
<p> <p>
@ -1000,7 +1000,7 @@ method and C# code does not handle pending exceptions via the canthrow attribute
Actually it will issue this warning for any function beginning with <tt>SWIG_CSharpSetPendingException</tt>. Actually it will issue this warning for any function beginning with <tt>SWIG_CSharpSetPendingException</tt>.
</P> </P>
<H3><a name="csharp_exception_example_percent_exception"></a>18.4.2 C# exception example using %exception</H3> <H3><a name="CSharp_exception_example_percent_exception"></a>18.4.2 C# exception example using %exception</H3>
<p> <p>
@ -1065,7 +1065,7 @@ The managed code generated does check for the pending exception as mentioned ear
</pre> </pre>
</div> </div>
<H3><a name="csharp_exception_example_exception_specifications"></a>18.4.3 C# exception example using exception specifications</H3> <H3><a name="CSharp_exception_example_exception_specifications"></a>18.4.3 C# exception example using exception specifications</H3>
<p> <p>
@ -1122,7 +1122,7 @@ SWIGEXPORT void SWIGSTDCALL CSharp_evensonly(int jarg1) {
Multiple catch handlers are generated should there be more than one exception specifications declared. Multiple catch handlers are generated should there be more than one exception specifications declared.
</p> </p>
<H3><a name="csharp_custom_application_exception"></a>18.4.4 Custom C# ApplicationException example</H3> <H3><a name="CSharp_custom_application_exception"></a>18.4.4 Custom C# ApplicationException example</H3>
<p> <p>
@ -1256,7 +1256,7 @@ try {
</pre> </pre>
</div> </div>
<H2><a name="csharp_directors"></a>18.5 C# Directors</H2> <H2><a name="CSharp_directors"></a>18.5 C# Directors</H2>
<p> <p>
@ -1266,10 +1266,10 @@ Essentially, it enables unmanaged C++ code to call back into managed code for vi
<p> <p>
The following sections provide information on the C# director implementation and contain most of the information required to use the C# directors. The following sections provide information on the C# director implementation and contain most of the information required to use the C# directors.
However, the <a href="Java.html#java_directors">Java directors</a> section should also be read in order to gain more insight into directors. However, the <a href="Java.html#Java_directors">Java directors</a> section should also be read in order to gain more insight into directors.
</p> </p>
<H3><a name="csharp_directors_example"></a>18.5.1 Directors example</H3> <H3><a name="CSharp_directors_example"></a>18.5.1 Directors example</H3>
<p> <p>
@ -1390,7 +1390,7 @@ CSharpDerived - UIntMethod(123)
</pre> </pre>
</div> </div>
<H3><a name="csharp_directors_implementation"></a>18.5.2 Directors implementation</H3> <H3><a name="CSharp_directors_implementation"></a>18.5.2 Directors implementation</H3>
<p> <p>
@ -1576,7 +1576,7 @@ void SwigDirector_Base::BaseBoolMethod(Base const &amp;b, bool flag) {
</pre> </pre>
</div> </div>
<H3><a name="csharp_director_caveats"></a>18.5.3 Director caveats</H3> <H3><a name="CSharp_director_caveats"></a>18.5.3 Director caveats</H3>
<p> <p>
@ -1624,7 +1624,7 @@ However, a call from C# to <tt>CSharpDefaults.DefaultMethod()</tt> will of cours
should pass the call on to <tt>CSharpDefaults.DefaultMethod(int)</tt>using the C++ default value, as shown above. should pass the call on to <tt>CSharpDefaults.DefaultMethod(int)</tt>using the C++ default value, as shown above.
</p> </p>
<H2><a name="csharp_typemap_examples"></a>18.6 C# Typemap examples</H2> <H2><a name="CSharp_typemap_examples"></a>18.6 C# Typemap examples</H2>
This section includes a few examples of typemaps. For more examples, you This section includes a few examples of typemaps. For more examples, you
@ -1632,12 +1632,12 @@ might look at the files "<tt>csharp.swg</tt>" and "<tt>typemaps.i</tt>" in
the SWIG library. the SWIG library.
<H3><a name="csharp_memory_management_member_variables"></a>18.6.1 Memory management when returning references to member variables</H3> <H3><a name="CSharp_memory_management_member_variables"></a>18.6.1 Memory management when returning references to member variables</H3>
<p> <p>
This example shows how to prevent premature garbage collection of objects when the underlying C++ class returns a pointer or reference to a member variable. This example shows how to prevent premature garbage collection of objects when the underlying C++ class returns a pointer or reference to a member variable.
The example is a direct equivalent to this <a href="Java.html#java_memory_management_objects">Java equivalent</a>. The example is a direct equivalent to this <a href="Java.html#Java_memory_management_objects">Java equivalent</a>.
</p> </p>
<p> <p>
@ -1756,11 +1756,11 @@ public class Bike : IDisposable {
Note the <tt>addReference</tt> call. Note the <tt>addReference</tt> call.
</p> </p>
<H3><a name="csharp_memory_management_objects"></a>18.6.2 Memory management for objects passed to the C++ layer</H3> <H3><a name="CSharp_memory_management_objects"></a>18.6.2 Memory management for objects passed to the C++ layer</H3>
<p> <p>
The example is a direct equivalent to this <a href="Java.html#java_memory_management_objects">Java equivalent</a>. The example is a direct equivalent to this <a href="Java.html#Java_memory_management_objects">Java equivalent</a>.
Managing memory can be tricky when using C++ and C# proxy classes. Managing memory can be tricky when using C++ and C# proxy classes.
The previous example shows one such case and this example looks at memory management for a class passed to a C++ method which expects the object to remain in scope The previous example shows one such case and this example looks at memory management for a class passed to a C++ method which expects the object to remain in scope
after the function has returned. Consider the following two C++ classes: after the function has returned. Consider the following two C++ classes:
@ -1875,14 +1875,14 @@ The 'cscode' typemap simply adds in the specified code into the C# proxy class.
</div> </div>
<H3><a name="csharp_date_marshalling"></a>18.6.3 Date marshalling using the csin typemap and associated attributes</H3> <H3><a name="CSharp_date_marshalling"></a>18.6.3 Date marshalling using the csin typemap and associated attributes</H3>
<p> <p>
The <a href="Java.html#nan_exception_typemap">NaN Exception example</a> is a simple example of the "javain" typemap and its 'pre' attribute. The <a href="Java.html#Java_nan_exception_typemap">NaN Exception example</a> is a simple example of the "javain" typemap and its 'pre' attribute.
This example demonstrates how a C++ date class, say <tt>CDate</tt>, can be mapped onto the standard .NET date class, This example demonstrates how a C++ date class, say <tt>CDate</tt>, can be mapped onto the standard .NET date class,
<tt>System.DateTime</tt> by using the 'pre', 'post' and 'pgcppname' attributes of the "csin" typemap (the C# equivalent to the "javain" typemap). <tt>System.DateTime</tt> by using the 'pre', 'post' and 'pgcppname' attributes of the "csin" typemap (the C# equivalent to the "javain" typemap).
The example is an equivalent to the <a href="Java.html#java_date_marshalling">Java Date marshalling example</a>. The example is an equivalent to the <a href="Java.html#Java_date_marshalling">Java Date marshalling example</a>.
The idea is that the <tt>System.DateTime</tt> is used wherever the C++ API uses a <tt>CDate</tt>. The idea is that the <tt>System.DateTime</tt> is used wherever the C++ API uses a <tt>CDate</tt>.
Let's assume the code being wrapped is as follows: Let's assume the code being wrapped is as follows:
</p> </p>
@ -2159,7 +2159,7 @@ public class example {
</pre> </pre>
</div> </div>
<H3><a name="csharp_date_properties"></a>18.6.4 A date example demonstrating marshalling of C# properties</H3> <H3><a name="CSharp_date_properties"></a>18.6.4 A date example demonstrating marshalling of C# properties</H3>
<p> <p>
@ -2260,7 +2260,7 @@ Some points to note:
</ul> </ul>
<H3><a name="csharp_partial_classes"></a>18.6.5 Turning wrapped classes into partial classes</H3> <H3><a name="CSharp_partial_classes"></a>18.6.5 Turning wrapped classes into partial classes</H3>
<p> <p>
@ -2360,7 +2360,7 @@ demonstrating that the class contains methods calling both unmanaged code - <tt>
The following example is an alternative approach to adding managed code to the generated proxy class. The following example is an alternative approach to adding managed code to the generated proxy class.
</p> </p>
<H3><a name="csharp_extending_proxy_class"></a>18.6.6 Extending proxy classes with additional C# code</H3> <H3><a name="CSharp_extending_proxy_class"></a>18.6.6 Extending proxy classes with additional C# code</H3>
<p> <p>

View file

@ -623,35 +623,35 @@
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
<li><a href="CSharp.html#csharp_introduction">Introduction</a> <li><a href="CSharp.html#CSharp_introduction">Introduction</a>
<li><a href="CSharp.html#csharp_differences_java">Differences to the Java module</a> <li><a href="CSharp.html#CSharp_differences_java">Differences to the Java module</a>
<li><a href="CSharp.html#CSharp_arrays">C# Arrays</a> <li><a href="CSharp.html#CSharp_arrays">C# Arrays</a>
<ul> <ul>
<li><a href="CSharp.html#CSharp_arrays_swig_library">The SWIG C arrays library</a> <li><a href="CSharp.html#CSharp_arrays_swig_library">The SWIG C arrays library</a>
<li><a href="CSharp.html#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a> <li><a href="CSharp.html#CSharp_arrays_pinvoke_default_array_marshalling">Managed arrays using P/Invoke default array marshalling</a>
<li><a href="CSharp.html#CSharp_arrays_pinning">Managed arrays using pinning</a> <li><a href="CSharp.html#CSharp_arrays_pinning">Managed arrays using pinning</a>
</ul> </ul>
<li><a href="CSharp.html#csharp_exceptions">C# Exceptions</a> <li><a href="CSharp.html#CSharp_exceptions">C# Exceptions</a>
<ul> <ul>
<li><a href="CSharp.html#csharp_exception_example_check_typemap">C# exception example using "check" typemap</a> <li><a href="CSharp.html#CSharp_exception_example_check_typemap">C# exception example using "check" typemap</a>
<li><a href="CSharp.html#csharp_exception_example_percent_exception">C# exception example using %exception</a> <li><a href="CSharp.html#CSharp_exception_example_percent_exception">C# exception example using %exception</a>
<li><a href="CSharp.html#csharp_exception_example_exception_specifications">C# exception example using exception specifications</a> <li><a href="CSharp.html#CSharp_exception_example_exception_specifications">C# exception example using exception specifications</a>
<li><a href="CSharp.html#csharp_custom_application_exception">Custom C# ApplicationException example</a> <li><a href="CSharp.html#CSharp_custom_application_exception">Custom C# ApplicationException example</a>
</ul> </ul>
<li><a href="CSharp.html#csharp_directors">C# Directors</a> <li><a href="CSharp.html#CSharp_directors">C# Directors</a>
<ul> <ul>
<li><a href="CSharp.html#csharp_directors_example">Directors example</a> <li><a href="CSharp.html#CSharp_directors_example">Directors example</a>
<li><a href="CSharp.html#csharp_directors_implementation">Directors implementation</a> <li><a href="CSharp.html#CSharp_directors_implementation">Directors implementation</a>
<li><a href="CSharp.html#csharp_director_caveats">Director caveats</a> <li><a href="CSharp.html#CSharp_director_caveats">Director caveats</a>
</ul> </ul>
<li><a href="CSharp.html#csharp_typemap_examples">C# Typemap examples</a> <li><a href="CSharp.html#CSharp_typemap_examples">C# Typemap examples</a>
<ul> <ul>
<li><a href="CSharp.html#csharp_memory_management_member_variables">Memory management when returning references to member variables</a> <li><a href="CSharp.html#CSharp_memory_management_member_variables">Memory management when returning references to member variables</a>
<li><a href="CSharp.html#csharp_memory_management_objects">Memory management for objects passed to the C++ layer</a> <li><a href="CSharp.html#CSharp_memory_management_objects">Memory management for objects passed to the C++ layer</a>
<li><a href="CSharp.html#csharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a> <li><a href="CSharp.html#CSharp_date_marshalling">Date marshalling using the csin typemap and associated attributes</a>
<li><a href="CSharp.html#csharp_date_properties">A date example demonstrating marshalling of C# properties</a> <li><a href="CSharp.html#CSharp_date_properties">A date example demonstrating marshalling of C# properties</a>
<li><a href="CSharp.html#csharp_partial_classes">Turning wrapped classes into partial classes</a> <li><a href="CSharp.html#CSharp_partial_classes">Turning wrapped classes into partial classes</a>
<li><a href="CSharp.html#csharp_extending_proxy_class">Extending proxy classes with additional C# code</a> <li><a href="CSharp.html#CSharp_extending_proxy_class">Extending proxy classes with additional C# code</a>
</ul> </ul>
</ul> </ul>
</div> </div>
@ -735,139 +735,139 @@
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
<li><a href="Java.html#java_overview">Overview</a> <li><a href="Java.html#Java_overview">Overview</a>
<li><a href="Java.html#java_preliminaries">Preliminaries</a> <li><a href="Java.html#Java_preliminaries">Preliminaries</a>
<ul> <ul>
<li><a href="Java.html#running_swig">Running SWIG</a> <li><a href="Java.html#Java_running_swig">Running SWIG</a>
<li><a href="Java.html#java_commandline">Additional Commandline Options</a> <li><a href="Java.html#Java_commandline">Additional Commandline Options</a>
<li><a href="Java.html#getting_right_headers">Getting the right header files</a> <li><a href="Java.html#Java_getting_right_headers">Getting the right header files</a>
<li><a href="Java.html#compiling_dynamic">Compiling a dynamic module</a> <li><a href="Java.html#Java_compiling_dynamic">Compiling a dynamic module</a>
<li><a href="Java.html#using_module">Using your module</a> <li><a href="Java.html#Java_using_module">Using your module</a>
<li><a href="Java.html#dynamic_linking_problems">Dynamic linking problems</a> <li><a href="Java.html#Java_dynamic_linking_problems">Dynamic linking problems</a>
<li><a href="Java.html#compilation_problems_cpp">Compilation problems and compiling with C++</a> <li><a href="Java.html#Java_compilation_problems_cpp">Compilation problems and compiling with C++</a>
<li><a href="Java.html#building_windows">Building on Windows</a> <li><a href="Java.html#Java_building_windows">Building on Windows</a>
<ul> <ul>
<li><a href="Java.html#visual_studio">Running SWIG from Visual Studio</a> <li><a href="Java.html#Java_visual_studio">Running SWIG from Visual Studio</a>
<li><a href="Java.html#nmake">Using NMAKE</a> <li><a href="Java.html#Java_nmake">Using NMAKE</a>
</ul> </ul>
</ul> </ul>
<li><a href="Java.html#java_basic_tour">A tour of basic C/C++ wrapping</a> <li><a href="Java.html#Java_basic_tour">A tour of basic C/C++ wrapping</a>
<ul> <ul>
<li><a href="Java.html#module_packages_classes">Modules, packages and generated Java classes</a> <li><a href="Java.html#Java_module_packages_classes">Modules, packages and generated Java classes</a>
<li><a href="Java.html#functions">Functions</a> <li><a href="Java.html#Java_functions">Functions</a>
<li><a href="Java.html#global_variables">Global variables</a> <li><a href="Java.html#Java_global_variables">Global variables</a>
<li><a href="Java.html#constants">Constants</a> <li><a href="Java.html#Java_constants">Constants</a>
<li><a href="Java.html#enumerations">Enumerations</a> <li><a href="Java.html#Java_enumerations">Enumerations</a>
<ul> <ul>
<li><a href="Java.html#anonymous_enums">Anonymous enums</a> <li><a href="Java.html#Java_anonymous_enums">Anonymous enums</a>
<li><a href="Java.html#typesafe_enums">Typesafe enums</a> <li><a href="Java.html#Java_typesafe_enums">Typesafe enums</a>
<li><a href="Java.html#proper_enums">Proper Java enums</a> <li><a href="Java.html#Java_proper_enums">Proper Java enums</a>
<li><a href="Java.html#typeunsafe_enums">Type unsafe enums</a> <li><a href="Java.html#Java_typeunsafe_enums">Type unsafe enums</a>
<li><a href="Java.html#simple_enums">Simple enums</a> <li><a href="Java.html#Java_simple_enums">Simple enums</a>
</ul> </ul>
<li><a href="Java.html#pointers">Pointers</a> <li><a href="Java.html#Java_pointers">Pointers</a>
<li><a href="Java.html#structures">Structures</a> <li><a href="Java.html#Java_structures">Structures</a>
<li><a href="Java.html#classes">C++ classes</a> <li><a href="Java.html#Java_classes">C++ classes</a>
<li><a href="Java.html#inheritance">C++ inheritance</a> <li><a href="Java.html#Java_inheritance">C++ inheritance</a>
<li><a href="Java.html#pointers_refs_arrays">Pointers, references, arrays and pass by value</a> <li><a href="Java.html#Java_pointers_refs_arrays">Pointers, references, arrays and pass by value</a>
<ul> <ul>
<li><a href="Java.html#null_pointers">Null pointers</a> <li><a href="Java.html#Java_null_pointers">Null pointers</a>
</ul> </ul>
<li><a href="Java.html#overloaded_functions">C++ overloaded functions</a> <li><a href="Java.html#Java_overloaded_functions">C++ overloaded functions</a>
<li><a href="Java.html#java_default_arguments">C++ default arguments</a> <li><a href="Java.html#Java_default_arguments">C++ default arguments</a>
<li><a href="Java.html#namespaces">C++ namespaces</a> <li><a href="Java.html#Java_namespaces">C++ namespaces</a>
<li><a href="Java.html#templates">C++ templates</a> <li><a href="Java.html#Java_templates">C++ templates</a>
<li><a href="Java.html#smart_pointers">C++ Smart Pointers</a> <li><a href="Java.html#Java_smart_pointers">C++ Smart Pointers</a>
</ul> </ul>
<li><a href="Java.html#further_details">Further details on the generated Java classes</a> <li><a href="Java.html#Java_further_details">Further details on the generated Java classes</a>
<ul> <ul>
<li><a href="Java.html#imclass">The intermediary JNI class</a> <li><a href="Java.html#Java_imclass">The intermediary JNI class</a>
<ul> <ul>
<li><a href="Java.html#imclass_pragmas">The intermediary JNI class pragmas</a> <li><a href="Java.html#Java_imclass_pragmas">The intermediary JNI class pragmas</a>
</ul> </ul>
<li><a href="Java.html#java_module_class">The Java module class</a> <li><a href="Java.html#Java_module_class">The Java module class</a>
<ul> <ul>
<li><a href="Java.html#module_class_pragmas">The Java module class pragmas</a> <li><a href="Java.html#Java_module_class_pragmas">The Java module class pragmas</a>
</ul> </ul>
<li><a href="Java.html#java_proxy_classes">Java proxy classes</a> <li><a href="Java.html#Java_proxy_classes">Java proxy classes</a>
<ul> <ul>
<li><a href="Java.html#memory_management">Memory management</a> <li><a href="Java.html#Java_memory_management">Memory management</a>
<li><a href="Java.html#inheritance_mirroring">Inheritance</a> <li><a href="Java.html#Java_inheritance_mirroring">Inheritance</a>
<li><a href="Java.html#proxy_classes_gc">Proxy classes and garbage collection</a> <li><a href="Java.html#Java_proxy_classes_gc">Proxy classes and garbage collection</a>
<li><a href="Java.html#java_pgcpp">The premature garbage collection prevention parameter for proxy class marshalling</a> <li><a href="Java.html#Java_pgcpp">The premature garbage collection prevention parameter for proxy class marshalling</a>
<li><a href="Java.html#java_multithread_libraries">Single threaded applications and thread safety</a> <li><a href="Java.html#Java_multithread_libraries">Single threaded applications and thread safety</a>
</ul> </ul>
<li><a href="Java.html#type_wrapper_classes">Type wrapper classes</a> <li><a href="Java.html#Java_type_wrapper_classes">Type wrapper classes</a>
<li><a href="Java.html#enum_classes">Enum classes</a> <li><a href="Java.html#Java_enum_classes">Enum classes</a>
<ul> <ul>
<li><a href="Java.html#typesafe_enums_classes">Typesafe enum classes</a> <li><a href="Java.html#Java_typesafe_enums_classes">Typesafe enum classes</a>
<li><a href="Java.html#proper_enums_classes">Proper Java enum classes</a> <li><a href="Java.html#Java_proper_enums_classes">Proper Java enum classes</a>
<li><a href="Java.html#typeunsafe_enums_classes">Type unsafe enum classes</a> <li><a href="Java.html#Java_typeunsafe_enums_classes">Type unsafe enum classes</a>
</ul> </ul>
</ul> </ul>
<li><a href="Java.html#java_directors">Cross language polymorphism using directors</a> <li><a href="Java.html#Java_directors">Cross language polymorphism using directors</a>
<ul> <ul>
<li><a href="Java.html#java_enabling_directors">Enabling directors</a> <li><a href="Java.html#Java_enabling_directors">Enabling directors</a>
<li><a href="Java.html#java_directors_classes">Director classes</a> <li><a href="Java.html#Java_directors_classes">Director classes</a>
<li><a href="Java.html#java_directors_overhead">Overhead and code bloat</a> <li><a href="Java.html#Java_directors_overhead">Overhead and code bloat</a>
<li><a href="Java.html#java_directors_example">Simple directors example</a> <li><a href="Java.html#Java_directors_example">Simple directors example</a>
<li><a href="Java.html#java_directors_threading">Director threading issues</a> <li><a href="Java.html#Java_directors_threading">Director threading issues</a>
</ul> </ul>
<li><a href="Java.html#java_allprotected">Accessing protected members</a> <li><a href="Java.html#Java_allprotected">Accessing protected members</a>
<li><a href="Java.html#common_customization">Common customization features</a> <li><a href="Java.html#Java_common_customization">Common customization features</a>
<ul> <ul>
<li><a href="Java.html#helper_functions">C/C++ helper functions</a> <li><a href="Java.html#Java_helper_functions">C/C++ helper functions</a>
<li><a href="Java.html#class_extension">Class extension with %extend</a> <li><a href="Java.html#Java_class_extension">Class extension with %extend</a>
<li><a href="Java.html#exception_handling">Exception handling with %exception and %javaexception</a> <li><a href="Java.html#Java_exception_handling">Exception handling with %exception and %javaexception</a>
<li><a href="Java.html#method_access">Method access with %javamethodmodifiers</a> <li><a href="Java.html#Java_method_access">Method access with %javamethodmodifiers</a>
</ul> </ul>
<li><a href="Java.html#tips_techniques">Tips and techniques</a> <li><a href="Java.html#Java_tips_techniques">Tips and techniques</a>
<ul> <ul>
<li><a href="Java.html#input_output_parameters">Input and output parameters using primitive pointers and references</a> <li><a href="Java.html#Java_input_output_parameters">Input and output parameters using primitive pointers and references</a>
<li><a href="Java.html#simple_pointers">Simple pointers</a> <li><a href="Java.html#Java_simple_pointers">Simple pointers</a>
<li><a href="Java.html#c_arrays">Wrapping C arrays with Java arrays</a> <li><a href="Java.html#Java_c_arrays">Wrapping C arrays with Java arrays</a>
<li><a href="Java.html#unbounded_c_arrays">Unbounded C Arrays</a> <li><a href="Java.html#Java_unbounded_c_arrays">Unbounded C Arrays</a>
<li><a href="Java.html#java_heap_allocations">Overriding new and delete to allocate from Java heap</a> <li><a href="Java.html#Java_heap_allocations">Overriding new and delete to allocate from Java heap</a>
</ul> </ul>
<li><a href="Java.html#java_typemaps">Java typemaps</a> <li><a href="Java.html#Java_typemaps">Java typemaps</a>
<ul> <ul>
<li><a href="Java.html#default_primitive_type_mappings">Default primitive type mappings</a> <li><a href="Java.html#Java_default_primitive_type_mappings">Default primitive type mappings</a>
<li><a href="Java.html#Java_default_non_primitive_typemaps">Default typemaps for non-primitive types</a> <li><a href="Java.html#Java_default_non_primitive_typemaps">Default typemaps for non-primitive types</a>
<li><a href="Java.html#jvm64">Sixty four bit JVMs</a> <li><a href="Java.html#Java_jvm64">Sixty four bit JVMs</a>
<li><a href="Java.html#what_is_typemap">What is a typemap?</a> <li><a href="Java.html#Java_what_is_typemap">What is a typemap?</a>
<li><a href="Java.html#typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a> <li><a href="Java.html#Java_typemaps_c_to_java_types">Typemaps for mapping C/C++ types to Java types</a>
<li><a href="Java.html#typemap_attributes">Java typemap attributes</a> <li><a href="Java.html#Java_typemap_attributes">Java typemap attributes</a>
<li><a href="Java.html#special_variables">Java special variables</a> <li><a href="Java.html#Java_special_variables">Java special variables</a>
<li><a href="Java.html#typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a> <li><a href="Java.html#Java_typemaps_for_c_and_cpp">Typemaps for both C and C++ compilation</a>
<li><a href="Java.html#java_code_typemaps">Java code typemaps</a> <li><a href="Java.html#Java_code_typemaps">Java code typemaps</a>
<li><a href="Java.html#java_directors_typemaps">Director specific typemaps</a> <li><a href="Java.html#Java_directors_typemaps">Director specific typemaps</a>
</ul> </ul>
<li><a href="Java.html#typemap_examples">Typemap Examples</a> <li><a href="Java.html#Java_typemap_examples">Typemap Examples</a>
<ul> <ul>
<li><a href="Java.html#simpler_enum_classes">Simpler Java enums for enums without initializers</a> <li><a href="Java.html#Java_simpler_enum_classes">Simpler Java enums for enums without initializers</a>
<li><a href="Java.html#exception_typemap">Handling C++ exception specifications as Java exceptions</a> <li><a href="Java.html#Java_exception_typemap">Handling C++ exception specifications as Java exceptions</a>
<li><a href="Java.html#nan_exception_typemap">NaN Exception - exception handling for a particular type</a> <li><a href="Java.html#Java_nan_exception_typemap">NaN Exception - exception handling for a particular type</a>
<li><a href="Java.html#converting_java_string_arrays">Converting Java String arrays to char ** </a> <li><a href="Java.html#Java_converting_java_string_arrays">Converting Java String arrays to char ** </a>
<li><a href="Java.html#expanding_java_object">Expanding a Java object to multiple arguments</a> <li><a href="Java.html#Java_expanding_java_object">Expanding a Java object to multiple arguments</a>
<li><a href="Java.html#using_typemaps_return_arguments">Using typemaps to return arguments</a> <li><a href="Java.html#Java_using_typemaps_return_arguments">Using typemaps to return arguments</a>
<li><a href="Java.html#adding_downcasts">Adding Java downcasts to polymorphic return types</a> <li><a href="Java.html#Java_adding_downcasts">Adding Java downcasts to polymorphic return types</a>
<li><a href="Java.html#adding_equals_method">Adding an equals method to the Java classes</a> <li><a href="Java.html#Java_adding_equals_method">Adding an equals method to the Java classes</a>
<li><a href="Java.html#void_pointers">Void pointers and a common Java base class</a> <li><a href="Java.html#Java_void_pointers">Void pointers and a common Java base class</a>
<li><a href="Java.html#struct_pointer_pointer">Struct pointer to pointer</a> <li><a href="Java.html#Java_struct_pointer_pointer">Struct pointer to pointer</a>
<li><a href="Java.html#java_memory_management_member_variables">Memory management when returning references to member variables</a> <li><a href="Java.html#Java_memory_management_member_variables">Memory management when returning references to member variables</a>
<li><a href="Java.html#java_memory_management_objects">Memory management for objects passed to the C++ layer</a> <li><a href="Java.html#Java_memory_management_objects">Memory management for objects passed to the C++ layer</a>
<li><a href="Java.html#java_date_marshalling">Date marshalling using the javain typemap and associated attributes</a> <li><a href="Java.html#Java_date_marshalling">Date marshalling using the javain typemap and associated attributes</a>
</ul> </ul>
<li><a href="Java.html#java_directors_faq">Living with Java Directors</a> <li><a href="Java.html#Java_directors_faq">Living with Java Directors</a>
<li><a href="Java.html#odds_ends">Odds and ends</a> <li><a href="Java.html#Java_odds_ends">Odds and ends</a>
<ul> <ul>
<li><a href="Java.html#javadoc_comments">JavaDoc comments</a> <li><a href="Java.html#Java_javadoc_comments">JavaDoc comments</a>
<li><a href="Java.html#functional_interface">Functional interface without proxy classes</a> <li><a href="Java.html#Java_functional_interface">Functional interface without proxy classes</a>
<li><a href="Java.html#using_own_jni_functions">Using your own JNI functions</a> <li><a href="Java.html#Java_using_own_jni_functions">Using your own JNI functions</a>
<li><a href="Java.html#performance">Performance concerns and hints</a> <li><a href="Java.html#Java_performance">Performance concerns and hints</a>
<li><a href="Java.html#java_debugging">Debugging</a> <li><a href="Java.html#Java_debugging">Debugging</a>
</ul> </ul>
<li><a href="Java.html#java_examples">Examples</a> <li><a href="Java.html#Java_examples">Examples</a>
</ul> </ul>
</div> </div>
<!-- INDEX --> <!-- INDEX -->
@ -957,38 +957,38 @@
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
<li><a href="Modula3.html#modula3_overview">Overview</a> <li><a href="Modula3.html#Modula3_modula3_overview">Overview</a>
<ul> <ul>
<li><a href="Modula3.html#whyscripting">Why not scripting ?</a> <li><a href="Modula3.html#Modula3_whyscripting">Why not scripting ?</a>
<li><a href="Modula3.html#whymodula3">Why Modula-3 ?</a> <li><a href="Modula3.html#Modula3_whymodula3">Why Modula-3 ?</a>
<li><a href="Modula3.html#whycpp">Why C / C++ ?</a> <li><a href="Modula3.html#Modula3_whycpp">Why C / C++ ?</a>
<li><a href="Modula3.html#whyswig">Why SWIG ?</a> <li><a href="Modula3.html#Modula3_whyswig">Why SWIG ?</a>
</ul> </ul>
<li><a href="Modula3.html#conception">Conception</a> <li><a href="Modula3.html#Modula3_conception">Conception</a>
<ul> <ul>
<li><a href="Modula3.html#cinterface">Interfaces to C libraries</a> <li><a href="Modula3.html#Modula3_cinterface">Interfaces to C libraries</a>
<li><a href="Modula3.html#cppinterface">Interfaces to C++ libraries</a> <li><a href="Modula3.html#Modula3_cppinterface">Interfaces to C++ libraries</a>
</ul> </ul>
<li><a href="Modula3.html#preliminaries">Preliminaries</a> <li><a href="Modula3.html#Modula3_preliminaries">Preliminaries</a>
<ul> <ul>
<li><a href="Modula3.html#compilers">Compilers</a> <li><a href="Modula3.html#Modula3_compilers">Compilers</a>
<li><a href="Modula3.html#commandline">Additional Commandline Options</a> <li><a href="Modula3.html#Modula3_commandline">Additional Commandline Options</a>
</ul> </ul>
<li><a href="Modula3.html#modula3_typemaps">Modula-3 typemaps</a> <li><a href="Modula3.html#Modula3_typemaps">Modula-3 typemaps</a>
<ul> <ul>
<li><a href="Modula3.html#inoutparam">Inputs and outputs</a> <li><a href="Modula3.html#Modula3_inoutparam">Inputs and outputs</a>
<li><a href="Modula3.html#ordinals">Subranges, Enumerations, Sets</a> <li><a href="Modula3.html#Modula3_ordinals">Subranges, Enumerations, Sets</a>
<li><a href="Modula3.html#class">Objects</a> <li><a href="Modula3.html#Modula3_class">Objects</a>
<li><a href="Modula3.html#imports">Imports</a> <li><a href="Modula3.html#Modula3_imports">Imports</a>
<li><a href="Modula3.html#exceptions">Exceptions</a> <li><a href="Modula3.html#Modula3_exceptions">Exceptions</a>
<li><a href="Modula3.html#typemap_example">Example</a> <li><a href="Modula3.html#Modula3_typemap_example">Example</a>
</ul> </ul>
<li><a href="Modula3.html#hints">More hints to the generator</a> <li><a href="Modula3.html#Modula3_hints">More hints to the generator</a>
<ul> <ul>
<li><a href="Modula3.html#features">Features</a> <li><a href="Modula3.html#Modula3_features">Features</a>
<li><a href="Modula3.html#pragmas">Pragmas</a> <li><a href="Modula3.html#Modula3_pragmas">Pragmas</a>
</ul> </ul>
<li><a href="Modula3.html#remarks">Remarks</a> <li><a href="Modula3.html#Modula3_remarks">Remarks</a>
</ul> </ul>
</div> </div>
<!-- INDEX --> <!-- INDEX -->

View file

@ -854,7 +854,7 @@ In the following example, <tt>MyExceptionClass</tt> is the name of the Java clas
</div> </div>
<p> <p>
Further details can be obtained from the <a href="Java.html#exception_handling">Java exception handling</a> section. Further details can be obtained from the <a href="Java.html#Java_exception_handling">Java exception handling</a> section.
</p> </p>
<H3><a name="Customization_feature_flags"></a>11.3.2 Feature flags</H3> <H3><a name="Customization_feature_flags"></a>11.3.2 Feature flags</H3>

File diff suppressed because it is too large Load diff

View file

@ -9,38 +9,38 @@
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
<li><a href="#modula3_overview">Overview</a> <li><a href="#Modula3_modula3_overview">Overview</a>
<ul> <ul>
<li><a href="#whyscripting">Why not scripting ?</a> <li><a href="#Modula3_whyscripting">Why not scripting ?</a>
<li><a href="#whymodula3">Why Modula-3 ?</a> <li><a href="#Modula3_whymodula3">Why Modula-3 ?</a>
<li><a href="#whycpp">Why C / C++ ?</a> <li><a href="#Modula3_whycpp">Why C / C++ ?</a>
<li><a href="#whyswig">Why SWIG ?</a> <li><a href="#Modula3_whyswig">Why SWIG ?</a>
</ul> </ul>
<li><a href="#conception">Conception</a> <li><a href="#Modula3_conception">Conception</a>
<ul> <ul>
<li><a href="#cinterface">Interfaces to C libraries</a> <li><a href="#Modula3_cinterface">Interfaces to C libraries</a>
<li><a href="#cppinterface">Interfaces to C++ libraries</a> <li><a href="#Modula3_cppinterface">Interfaces to C++ libraries</a>
</ul> </ul>
<li><a href="#preliminaries">Preliminaries</a> <li><a href="#Modula3_preliminaries">Preliminaries</a>
<ul> <ul>
<li><a href="#compilers">Compilers</a> <li><a href="#Modula3_compilers">Compilers</a>
<li><a href="#commandline">Additional Commandline Options</a> <li><a href="#Modula3_commandline">Additional Commandline Options</a>
</ul> </ul>
<li><a href="#modula3_typemaps">Modula-3 typemaps</a> <li><a href="#Modula3_typemaps">Modula-3 typemaps</a>
<ul> <ul>
<li><a href="#inoutparam">Inputs and outputs</a> <li><a href="#Modula3_inoutparam">Inputs and outputs</a>
<li><a href="#ordinals">Subranges, Enumerations, Sets</a> <li><a href="#Modula3_ordinals">Subranges, Enumerations, Sets</a>
<li><a href="#class">Objects</a> <li><a href="#Modula3_class">Objects</a>
<li><a href="#imports">Imports</a> <li><a href="#Modula3_imports">Imports</a>
<li><a href="#exceptions">Exceptions</a> <li><a href="#Modula3_exceptions">Exceptions</a>
<li><a href="#typemap_example">Example</a> <li><a href="#Modula3_typemap_example">Example</a>
</ul> </ul>
<li><a href="#hints">More hints to the generator</a> <li><a href="#Modula3_hints">More hints to the generator</a>
<ul> <ul>
<li><a href="#features">Features</a> <li><a href="#Modula3_features">Features</a>
<li><a href="#pragmas">Pragmas</a> <li><a href="#Modula3_pragmas">Pragmas</a>
</ul> </ul>
<li><a href="#remarks">Remarks</a> <li><a href="#Modula3_remarks">Remarks</a>
</ul> </ul>
</div> </div>
<!-- INDEX --> <!-- INDEX -->
@ -57,7 +57,7 @@ especially
<a href="Typemaps.html">typemaps</a>. <a href="Typemaps.html">typemaps</a>.
</p> </p>
<H2><a name="modula3_overview"></a>24.1 Overview</H2> <H2><a name="Modula3_modula3_overview"></a>24.1 Overview</H2>
<p> <p>
@ -90,7 +90,7 @@ So the introduction got a bit longer than it should ... ;-)
</p> </p>
<H3><a name="whyscripting"></a>24.1.1 Why not scripting ?</H3> <H3><a name="Modula3_whyscripting"></a>24.1.1 Why not scripting ?</H3>
<p> <p>
@ -126,7 +126,7 @@ are not advantages of the language itself
but can be provided by function libraries. but can be provided by function libraries.
</p> </p>
<H3><a name="whymodula3"></a>24.1.2 Why Modula-3 ?</H3> <H3><a name="Modula3_whymodula3"></a>24.1.2 Why Modula-3 ?</H3>
<p> <p>
@ -166,7 +166,7 @@ it's statically typed, too.
</p> </p>
<H3><a name="whycpp"></a>24.1.3 Why C / C++ ?</H3> <H3><a name="Modula3_whycpp"></a>24.1.3 Why C / C++ ?</H3>
<p> <p>
@ -179,7 +179,7 @@ Even more fortunately even non-C libraries may provide C header files.
This is where SWIG becomes helpful. This is where SWIG becomes helpful.
</p> </p>
<H3><a name="whyswig"></a>24.1.4 Why SWIG ?</H3> <H3><a name="Modula3_whyswig"></a>24.1.4 Why SWIG ?</H3>
<p> <p>
@ -252,10 +252,10 @@ integrate Modula-3 code into a C / C++ project.
</p> </p>
<H2><a name="conception"></a>24.2 Conception</H2> <H2><a name="Modula3_conception"></a>24.2 Conception</H2>
<H3><a name="cinterface"></a>24.2.1 Interfaces to C libraries</H3> <H3><a name="Modula3_cinterface"></a>24.2.1 Interfaces to C libraries</H3>
<p> <p>
@ -404,7 +404,7 @@ and the principal type must be renamed (<tt>%typemap</tt>).
</p> </p>
<H3><a name="cppinterface"></a>24.2.2 Interfaces to C++ libraries</H3> <H3><a name="Modula3_cppinterface"></a>24.2.2 Interfaces to C++ libraries</H3>
<p> <p>
@ -477,8 +477,8 @@ Is it possible to sub-class C++ classes with Modula-3 code?
This issue is addressed by directors, This issue is addressed by directors,
a feature that was experimentally added to some Language modules a feature that was experimentally added to some Language modules
like like
<a href="Java.html#java_directors">Java</a> and <a href="Java.html#Java_directors">Java</a> and
<a href="Python.html#directors">Python</a>. <a href="Python.html#Python_directors">Python</a>.
</li> </li>
<li> <li>
How to manage storage with the garbage collector of Modula-3? How to manage storage with the garbage collector of Modula-3?
@ -505,10 +505,10 @@ There is no C++ library I wrote a SWIG interface for,
so I'm not sure if this is possible or sensible, yet. so I'm not sure if this is possible or sensible, yet.
</p> </p>
<H2><a name="preliminaries"></a>24.3 Preliminaries</H2> <H2><a name="Modula3_preliminaries"></a>24.3 Preliminaries</H2>
<H3><a name="compilers"></a>24.3.1 Compilers</H3> <H3><a name="Modula3_compilers"></a>24.3.1 Compilers</H3>
<p> <p>
@ -522,7 +522,7 @@ For testing examples I use Critical Mass cm3.
</p> </p>
<H3><a name="commandline"></a>24.3.2 Additional Commandline Options</H3> <H3><a name="Modula3_commandline"></a>24.3.2 Additional Commandline Options</H3>
<p> <p>
@ -599,10 +599,10 @@ Instead generate templates for some basic typemaps.
</tr> </tr>
</table> </table>
<H2><a name="modula3_typemaps"></a>24.4 Modula-3 typemaps</H2> <H2><a name="Modula3_typemaps"></a>24.4 Modula-3 typemaps</H2>
<H3><a name="inoutparam"></a>24.4.1 Inputs and outputs</H3> <H3><a name="Modula3_inoutparam"></a>24.4.1 Inputs and outputs</H3>
<p> <p>
@ -818,7 +818,7 @@ consist of the following parts:
</table> </table>
<H3><a name="ordinals"></a>24.4.2 Subranges, Enumerations, Sets</H3> <H3><a name="Modula3_ordinals"></a>24.4.2 Subranges, Enumerations, Sets</H3>
<p> <p>
@ -870,7 +870,7 @@ that I'd like to automate.
</p> </p>
<H3><a name="class"></a>24.4.3 Objects</H3> <H3><a name="Modula3_class"></a>24.4.3 Objects</H3>
<p> <p>
@ -883,7 +883,7 @@ is not really useful, yet.
</p> </p>
<H3><a name="imports"></a>24.4.4 Imports</H3> <H3><a name="Modula3_imports"></a>24.4.4 Imports</H3>
<p> <p>
@ -918,7 +918,7 @@ IMPORT M3toC;
</pre></div> </pre></div>
<H3><a name="exceptions"></a>24.4.5 Exceptions</H3> <H3><a name="Modula3_exceptions"></a>24.4.5 Exceptions</H3>
<p> <p>
@ -942,7 +942,7 @@ you should declare
<tt>%typemap("m3wrapinconv:throws") blah * %{OSError.E%}</tt>. <tt>%typemap("m3wrapinconv:throws") blah * %{OSError.E%}</tt>.
</p> </p>
<H3><a name="typemap_example"></a>24.4.6 Example</H3> <H3><a name="Modula3_typemap_example"></a>24.4.6 Example</H3>
<p> <p>
@ -989,10 +989,10 @@ where almost everything is generated by a typemap:
</pre></div> </pre></div>
<H2><a name="hints"></a>24.5 More hints to the generator</H2> <H2><a name="Modula3_hints"></a>24.5 More hints to the generator</H2>
<H3><a name="features"></a>24.5.1 Features</H3> <H3><a name="Modula3_features"></a>24.5.1 Features</H3>
<table border summary="Modula-3 features"> <table border summary="Modula-3 features">
@ -1029,7 +1029,7 @@ where almost everything is generated by a typemap:
</tr> </tr>
</table> </table>
<H3><a name="pragmas"></a>24.5.2 Pragmas</H3> <H3><a name="Modula3_pragmas"></a>24.5.2 Pragmas</H3>
<table border summary="Modula-3 pragmas"> <table border summary="Modula-3 pragmas">
@ -1052,7 +1052,7 @@ where almost everything is generated by a typemap:
</tr> </tr>
</table> </table>
<H2><a name="remarks"></a>24.6 Remarks</H2> <H2><a name="Modula3_remarks"></a>24.6 Remarks</H2>
<ul> <ul>