Add Scilab to html docs

This commit is contained in:
William S Fulton 2015-01-27 19:00:31 +00:00
commit 2e8dfbcc3e
5 changed files with 169 additions and 98 deletions

View file

@ -1727,7 +1727,76 @@
</div> </div>
<!-- INDEX --> <!-- INDEX -->
<h3><a href="Tcl.html#Tcl">39 SWIG and Tcl</a></h3> <h3><a href="Scilab.html#Scilab">39 SWIG and Scilab</a></h3>
<!-- INDEX -->
<div class="sectiontoc">
<ul>
<li><a href="Scilab.html#Scilab_preliminaries">Preliminaries</a>
<li><a href="Scilab.html#Scilab_running_swig">Running SWIG</a>
<ul>
<li><a href="Scilab.html#Scilab_running_swig_generating_module">Generating the module</a>
<li><a href="Scilab.html#Scilab_running_swig_building_module">Building the module</a>
<li><a href="Scilab.html#Scilab_running_swig_loading_module">Loading the module</a>
<li><a href="Scilab.html#Scilab_running_swig_using_module">Using the module</a>
<li><a href="Scilab.html#Scilab_running_swig_options">Scilab command line options</a>
</ul>
<li><a href="Scilab.html#Scilab_wrapping">A basic tour of C/C++ wrapping</a>
<ul>
<li><a href="Scilab.html#Scilab_wrapping_overview">Overview</a>
<li><a href="Scilab.html#Scilab_wrapping_identifiers">Identifiers</a>
<li><a href="Scilab.html#Scilab_wrapping_functions">Functions</a>
<ul>
<li><a href="Scilab.html#Scilab_nn13">Argument passing</a>
<li><a href="Scilab.html#Scilab_nn14">Multiple output arguments</a>
</ul>
<li><a href="Scilab.html#Scilab_wrapping_global_variables">Global variables</a>
<li><a href="Scilab.html#Scilab_wrapping_constants_and_enums">Constants and enumerations</a>
<ul>
<li><a href="Scilab.html#Scilab_wrapping_constants">Constants</a>
<li><a href="Scilab.html#Scilab_wrapping_enums">Enumerations</a>
</ul>
<li><a href="Scilab.html#Scilab_wrapping_pointers">Pointers</a>
<ul>
<li><a href="Scilab.html#Scilab_wrapping_pointers_pointer_adresses">Utility functions</a>
<li><a href="Scilab.html#Scilab_wrapping_pointers_null_pointers">Null pointers</a>
</ul>
<li><a href="Scilab.html#Scilab_wrapping_structs">Structures</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_classes">C++ Classes</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_inheritance">C++ inheritance</a>
<li><a href="Scilab.html#Scilab_wrapping_pointers_references_values_arrays">Pointers, references, values, and arrays</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_templates">C++ templates</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_operators">C++ operators</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_namespaces">C++ namespaces</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_exceptions">C++ exceptions</a>
<li><a href="Scilab.html#Scilab_wrapping_cpp_stl">C++ STL</a>
</ul>
<li><a href="Scilab.html#Scilab_typemaps">Type mappings and libraries</a>
<ul>
<li><a href="Scilab.html#Scilab_typemaps_primitive_types">Default primitive type mappings</a>
<li><a href="Scilab.html#Scilab_typemaps_non-primitive_types">Default type mappings for non-primitive types</a>
<li><a href="Scilab.html#Scilab_typemaps_arrays">Arrays</a>
<li><a href="Scilab.html#Scilab_typemaps_pointer-to-pointers">Pointer-to-pointers</a>
<li><a href="Scilab.html#Scilab_typemaps_matrices">Matrices</a>
<li><a href="Scilab.html#Scilab_typemaps_stl">STL</a>
</ul>
<li><a href="Scilab.html#Scilab_module_initialization">Module initialization</a>
<li><a href="Scilab.html#Scilab_building_modes">Building modes</a>
<ul>
<li><a href="Scilab.html#Scilab_building_modes_nobuilder_mode">No-builder mode</a>
<li><a href="Scilab.html#Scilab_building_modes_builder_mode">Builder mode</a>
</ul>
<li><a href="Scilab.html#Scilab_generated_scripts">Generated scripts</a>
<ul>
<li><a href="Scilab.html#Scilab_generated_scripts_builder_script">Builder script</a>
<li><a href="Scilab.html#Scilab_generated_scripts_loader_script">Loader script</a>
</ul>
<li><a href="Scilab.html#Scilab_other_resources">Other resources</a>
</ul>
</div>
<!-- INDEX -->
<h3><a href="Tcl.html#Tcl">40 SWIG and Tcl</a></h3>
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
@ -1793,7 +1862,7 @@
</div> </div>
<!-- INDEX --> <!-- INDEX -->
<h3><a href="Extending.html#Extending">40 Extending SWIG to support new languages</a></h3> <h3><a href="Extending.html#Extending">41 Extending SWIG to support new languages</a></h3>
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">

View file

@ -6,7 +6,7 @@
</head> </head>
<body bgcolor="#ffffff"> <body bgcolor="#ffffff">
<H1><a name="Extending"></a>40 Extending SWIG to support new languages</H1> <H1><a name="Extending"></a>41 Extending SWIG to support new languages</H1>
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
@ -75,7 +75,7 @@
<H2><a name="Extending_nn2"></a>40.1 Introduction</H2> <H2><a name="Extending_nn2"></a>41.1 Introduction</H2>
<p> <p>
@ -91,7 +91,7 @@ Also, this chapter is not meant to be a hand-holding tutorial. As a starting po
you should probably look at one of SWIG's existing modules. you should probably look at one of SWIG's existing modules.
</p> </p>
<H2><a name="Extending_nn3"></a>40.2 Prerequisites</H2> <H2><a name="Extending_nn3"></a>41.2 Prerequisites</H2>
<p> <p>
@ -121,7 +121,7 @@ obvious, but almost all SWIG directives as well as the low-level generation of
wrapper code are driven by C++ datatypes. wrapper code are driven by C++ datatypes.
</p> </p>
<H2><a name="Extending_nn4"></a>40.3 The Big Picture</H2> <H2><a name="Extending_nn4"></a>41.3 The Big Picture</H2>
<p> <p>
@ -158,7 +158,7 @@ role in making the system work. For example, both typemaps and declaration anno
based on pattern matching and interact heavily with the underlying type system. based on pattern matching and interact heavily with the underlying type system.
</p> </p>
<H2><a name="Extending_nn5"></a>40.4 Execution Model</H2> <H2><a name="Extending_nn5"></a>41.4 Execution Model</H2>
<p> <p>
@ -203,7 +203,7 @@ latter stage of compilation.
The next few sections briefly describe some of these stages. The next few sections briefly describe some of these stages.
</p> </p>
<H3><a name="Extending_nn6"></a>40.4.1 Preprocessing</H3> <H3><a name="Extending_nn6"></a>41.4.1 Preprocessing</H3>
<p> <p>
@ -284,7 +284,7 @@ been expanded as well as everything else that goes into the low-level
construction of the wrapper code. construction of the wrapper code.
</p> </p>
<H3><a name="Extending_nn7"></a>40.4.2 Parsing</H3> <H3><a name="Extending_nn7"></a>41.4.2 Parsing</H3>
<p> <p>
@ -385,7 +385,7 @@ returning a <tt>foo</tt> and taking types <tt>a</tt> and <tt>b</tt> as
arguments). arguments).
</p> </p>
<H3><a name="Extending_nn8"></a>40.4.3 Parse Trees</H3> <H3><a name="Extending_nn8"></a>41.4.3 Parse Trees</H3>
<p> <p>
@ -640,7 +640,7 @@ $ swig -c++ -python -debug-module 4 example.i
</pre> </pre>
</div> </div>
<H3><a name="Extending_nn9"></a>40.4.4 Attribute namespaces</H3> <H3><a name="Extending_nn9"></a>41.4.4 Attribute namespaces</H3>
<p> <p>
@ -659,7 +659,7 @@ that matches the name of the target language. For example, <tt>python:foo</tt>
<tt>perl:foo</tt>. <tt>perl:foo</tt>.
</p> </p>
<H3><a name="Extending_nn10"></a>40.4.5 Symbol Tables</H3> <H3><a name="Extending_nn10"></a>41.4.5 Symbol Tables</H3>
<p> <p>
@ -750,7 +750,7 @@ example.i:5. Previous declaration is foo_i(int )
</pre> </pre>
</div> </div>
<H3><a name="Extending_nn11"></a>40.4.6 The %feature directive</H3> <H3><a name="Extending_nn11"></a>41.4.6 The %feature directive</H3>
<p> <p>
@ -806,7 +806,7 @@ For example, the exception code above is simply
stored without any modifications. stored without any modifications.
</p> </p>
<H3><a name="Extending_nn12"></a>40.4.7 Code Generation</H3> <H3><a name="Extending_nn12"></a>41.4.7 Code Generation</H3>
<p> <p>
@ -928,7 +928,7 @@ public :
The role of these functions is described shortly. The role of these functions is described shortly.
</p> </p>
<H3><a name="Extending_nn13"></a>40.4.8 SWIG and XML</H3> <H3><a name="Extending_nn13"></a>41.4.8 SWIG and XML</H3>
<p> <p>
@ -941,7 +941,7 @@ internal data structures, it may be useful to keep XML in the back of
your mind as a model. your mind as a model.
</p> </p>
<H2><a name="Extending_nn14"></a>40.5 Primitive Data Structures</H2> <H2><a name="Extending_nn14"></a>41.5 Primitive Data Structures</H2>
<p> <p>
@ -987,7 +987,7 @@ typedef Hash Typetab;
</pre> </pre>
</div> </div>
<H3><a name="Extending_nn15"></a>40.5.1 Strings</H3> <H3><a name="Extending_nn15"></a>41.5.1 Strings</H3>
<p> <p>
@ -1128,7 +1128,7 @@ Returns the number of replacements made (if any).
</div> </div>
<H3><a name="Extending_nn16"></a>40.5.2 Hashes</H3> <H3><a name="Extending_nn16"></a>41.5.2 Hashes</H3>
<p> <p>
@ -1205,7 +1205,7 @@ Returns the list of hash table keys.
</div> </div>
<H3><a name="Extending_nn17"></a>40.5.3 Lists</H3> <H3><a name="Extending_nn17"></a>41.5.3 Lists</H3>
<p> <p>
@ -1294,7 +1294,7 @@ If <tt>t</tt> is not a standard object, it is assumed to be a <tt>char *</tt>
and is used to create a String object. and is used to create a String object.
</div> </div>
<H3><a name="Extending_nn18"></a>40.5.4 Common operations</H3> <H3><a name="Extending_nn18"></a>41.5.4 Common operations</H3>
The following operations are applicable to all datatypes. The following operations are applicable to all datatypes.
@ -1349,7 +1349,7 @@ objects and report errors.
Gets the line number associated with <tt>x</tt>. Gets the line number associated with <tt>x</tt>.
</div> </div>
<H3><a name="Extending_nn19"></a>40.5.5 Iterating over Lists and Hashes</H3> <H3><a name="Extending_nn19"></a>41.5.5 Iterating over Lists and Hashes</H3>
To iterate over the elements of a list or a hash table, the following functions are used: To iterate over the elements of a list or a hash table, the following functions are used:
@ -1394,7 +1394,7 @@ for (j = First(j); j.item; j= Next(j)) {
</div> </div>
<H3><a name="Extending_nn20"></a>40.5.6 I/O</H3> <H3><a name="Extending_nn20"></a>41.5.6 I/O</H3>
Special I/O functions are used for all internal I/O. These operations Special I/O functions are used for all internal I/O. These operations
@ -1528,7 +1528,7 @@ Printf(f, "%s\n", s);
Similarly, the preprocessor and parser all operate on string-files. Similarly, the preprocessor and parser all operate on string-files.
</p> </p>
<H2><a name="Extending_nn21"></a>40.6 Navigating and manipulating parse trees</H2> <H2><a name="Extending_nn21"></a>41.6 Navigating and manipulating parse trees</H2>
Parse trees are built as collections of hash tables. Each node is a hash table in which Parse trees are built as collections of hash tables. Each node is a hash table in which
@ -1662,7 +1662,7 @@ Deletes a node from the parse tree. Deletion reconnects siblings and properly u
the parent so that sibling nodes are unaffected. the parent so that sibling nodes are unaffected.
</div> </div>
<H2><a name="Extending_nn22"></a>40.7 Working with attributes</H2> <H2><a name="Extending_nn22"></a>41.7 Working with attributes</H2>
<p> <p>
@ -1779,7 +1779,7 @@ the attribute is optional. <tt>Swig_restore()</tt> must always be called after
function. function.
</div> </div>
<H2><a name="Extending_nn23"></a>40.8 Type system</H2> <H2><a name="Extending_nn23"></a>41.8 Type system</H2>
<p> <p>
@ -1788,7 +1788,7 @@ pointers, references, and pointers to members. A detailed discussion of
type theory is impossible here. However, let's cover the highlights. type theory is impossible here. However, let's cover the highlights.
</p> </p>
<H3><a name="Extending_nn24"></a>40.8.1 String encoding of types</H3> <H3><a name="Extending_nn24"></a>41.8.1 String encoding of types</H3>
<p> <p>
@ -1889,7 +1889,7 @@ make the final type, the two parts are just joined together using
string concatenation. string concatenation.
</p> </p>
<H3><a name="Extending_nn25"></a>40.8.2 Type construction</H3> <H3><a name="Extending_nn25"></a>41.8.2 Type construction</H3>
<p> <p>
@ -2058,7 +2058,7 @@ Returns the prefix of a type. For example, if <tt>ty</tt> is
<tt>ty</tt> is unmodified. <tt>ty</tt> is unmodified.
</div> </div>
<H3><a name="Extending_nn26"></a>40.8.3 Type tests</H3> <H3><a name="Extending_nn26"></a>41.8.3 Type tests</H3>
<p> <p>
@ -2145,7 +2145,7 @@ Checks if <tt>ty</tt> is a varargs type.
Checks if <tt>ty</tt> is a templatized type. Checks if <tt>ty</tt> is a templatized type.
</div> </div>
<H3><a name="Extending_nn27"></a>40.8.4 Typedef and inheritance</H3> <H3><a name="Extending_nn27"></a>41.8.4 Typedef and inheritance</H3>
<p> <p>
@ -2247,7 +2247,7 @@ Fully reduces <tt>ty</tt> according to typedef rules. Resulting datatype
will consist only of primitive typenames. will consist only of primitive typenames.
</div> </div>
<H3><a name="Extending_nn28"></a>40.8.5 Lvalues</H3> <H3><a name="Extending_nn28"></a>41.8.5 Lvalues</H3>
<p> <p>
@ -2284,7 +2284,7 @@ Literal y; // type = 'Literal', ltype='p.char'
</pre> </pre>
</div> </div>
<H3><a name="Extending_nn29"></a>40.8.6 Output functions</H3> <H3><a name="Extending_nn29"></a>41.8.6 Output functions</H3>
<p> <p>
@ -2346,7 +2346,7 @@ SWIG, but is most commonly associated with type-descriptor objects
that appear in wrappers (e.g., <tt>SWIGTYPE_p_double</tt>). that appear in wrappers (e.g., <tt>SWIGTYPE_p_double</tt>).
</div> </div>
<H2><a name="Extending_nn30"></a>40.9 Parameters</H2> <H2><a name="Extending_nn30"></a>41.9 Parameters</H2>
<p> <p>
@ -2445,7 +2445,7 @@ included. Used to emit prototypes.
Returns the number of required (non-optional) arguments in <tt>p</tt>. Returns the number of required (non-optional) arguments in <tt>p</tt>.
</div> </div>
<H2><a name="Extending_nn31"></a>40.10 Writing a Language Module</H2> <H2><a name="Extending_nn31"></a>41.10 Writing a Language Module</H2>
<p> <p>
@ -2460,7 +2460,7 @@ describes the creation of a minimal Python module. You should be able to extra
this to other languages. this to other languages.
</p> </p>
<H3><a name="Extending_nn32"></a>40.10.1 Execution model</H3> <H3><a name="Extending_nn32"></a>41.10.1 Execution model</H3>
<p> <p>
@ -2470,7 +2470,7 @@ the parsing of command line options, all aspects of code generation are controll
different methods of the <tt>Language</tt> that must be defined by your module. different methods of the <tt>Language</tt> that must be defined by your module.
</p> </p>
<H3><a name="Extending_starting_out"></a>40.10.2 Starting out</H3> <H3><a name="Extending_starting_out"></a>41.10.2 Starting out</H3>
<p> <p>
@ -2578,7 +2578,7 @@ that activates your module. For example, <tt>swig -python foo.i</tt>. The
messages from your new module should appear. messages from your new module should appear.
</p> </p>
<H3><a name="Extending_nn34"></a>40.10.3 Command line options</H3> <H3><a name="Extending_nn34"></a>41.10.3 Command line options</H3>
<p> <p>
@ -2637,7 +2637,7 @@ to mark the option as valid. If you forget to do this, SWIG will terminate wit
unrecognized command line option error. unrecognized command line option error.
</p> </p>
<H3><a name="Extending_nn35"></a>40.10.4 Configuration and preprocessing</H3> <H3><a name="Extending_nn35"></a>41.10.4 Configuration and preprocessing</H3>
<p> <p>
@ -2686,7 +2686,7 @@ an implementation file <tt>python.cxx</tt> and a configuration file
<tt>python.swg</tt>. <tt>python.swg</tt>.
</p> </p>
<H3><a name="Extending_nn36"></a>40.10.5 Entry point to code generation</H3> <H3><a name="Extending_nn36"></a>41.10.5 Entry point to code generation</H3>
<p> <p>
@ -2744,7 +2744,7 @@ int Python::top(Node *n) {
</pre> </pre>
</div> </div>
<H3><a name="Extending_nn37"></a>40.10.6 Module I/O and wrapper skeleton</H3> <H3><a name="Extending_nn37"></a>41.10.6 Module I/O and wrapper skeleton</H3>
<!-- please report bugs in this section to mgossage --> <!-- please report bugs in this section to mgossage -->
@ -2892,7 +2892,7 @@ functionWrapper : void Shape_y_set(Shape *self,double y)
</pre> </pre>
</div> </div>
<H3><a name="Extending_nn38"></a>40.10.7 Low-level code generators</H3> <H3><a name="Extending_nn38"></a>41.10.7 Low-level code generators</H3>
<!-- please report bugs in this section to mgossage --> <!-- please report bugs in this section to mgossage -->
@ -3046,7 +3046,7 @@ but without the typemaps, there is still work to do.
</p> </p>
<H3><a name="Extending_configuration_files"></a>40.10.8 Configuration files</H3> <H3><a name="Extending_configuration_files"></a>41.10.8 Configuration files</H3>
<!-- please report bugs in this section to ttn --> <!-- please report bugs in this section to ttn -->
@ -3190,7 +3190,7 @@ politely displays the ignoring language message.
</dl> </dl>
<H3><a name="Extending_nn40"></a>40.10.9 Runtime support</H3> <H3><a name="Extending_nn40"></a>41.10.9 Runtime support</H3>
<p> <p>
@ -3199,7 +3199,7 @@ Discuss the kinds of functions typically needed for SWIG runtime support (e.g.
the SWIG files that implement those functions. the SWIG files that implement those functions.
</p> </p>
<H3><a name="Extending_nn41"></a>40.10.10 Standard library files</H3> <H3><a name="Extending_nn41"></a>41.10.10 Standard library files</H3>
<p> <p>
@ -3218,7 +3218,7 @@ The following are the minimum that are usually supported:
Please copy these and modify for any new language. Please copy these and modify for any new language.
</p> </p>
<H3><a name="Extending_nn42"></a>40.10.11 User examples</H3> <H3><a name="Extending_nn42"></a>41.10.11 User examples</H3>
<p> <p>
@ -3247,7 +3247,7 @@ during this process, see the section on <a href="#Extending_configuration_files"
files</a>. files</a>.
</p> </p>
<H3><a name="Extending_test_suite"></a>40.10.12 Test driven development and the test-suite</H3> <H3><a name="Extending_test_suite"></a>41.10.12 Test driven development and the test-suite</H3>
<p> <p>
@ -3306,7 +3306,7 @@ It is therefore essential that the runtime tests are written in a manner that di
but error/exception out with an error message on stderr on failure. but error/exception out with an error message on stderr on failure.
</p> </p>
<H4><a name="Extending_running_test_suite"></a>40.10.12.1 Running the test-suite</H4> <H4><a name="Extending_running_test_suite"></a>41.10.12.1 Running the test-suite</H4>
<p> <p>
@ -3498,7 +3498,7 @@ It can be run in the same way as the other language test-suites, replacing [lang
The test cases used and the way it works is described in <tt>Examples/test-suite/errors/Makefile.in</tt>. The test cases used and the way it works is described in <tt>Examples/test-suite/errors/Makefile.in</tt>.
</p> </p>
<H3><a name="Extending_nn43"></a>40.10.13 Documentation</H3> <H3><a name="Extending_nn43"></a>41.10.13 Documentation</H3>
<p> <p>
@ -3530,7 +3530,7 @@ Some topics that you'll want to be sure to address include:
if available. if available.
</ul> </ul>
<H3><a name="Extending_prerequisites"></a>40.10.14 Prerequisites for adding a new language module to the SWIG distribution</H3> <H3><a name="Extending_prerequisites"></a>41.10.14 Prerequisites for adding a new language module to the SWIG distribution</H3>
<p> <p>
@ -3587,7 +3587,7 @@ should be added should there be an area not already covered by
the existing tests. the existing tests.
</p> </p>
<H3><a name="Extending_coding_style_guidelines"></a>40.10.15 Coding style guidelines</H3> <H3><a name="Extending_coding_style_guidelines"></a>41.10.15 Coding style guidelines</H3>
<p> <p>
@ -3611,7 +3611,7 @@ The generated C/C++ code should also follow this style as close as possible. How
should be avoided as unlike the SWIG developers, users will never have consistent tab settings. should be avoided as unlike the SWIG developers, users will never have consistent tab settings.
</p> </p>
<H2><a name="Extending_debugging_options"></a>40.11 Debugging Options</H2> <H2><a name="Extending_debugging_options"></a>41.11 Debugging Options</H2>
<p> <p>
@ -3638,7 +3638,7 @@ There are various command line options which can aid debugging a SWIG interface
The complete list of command line options for SWIG are available by running <tt>swig -help</tt>. The complete list of command line options for SWIG are available by running <tt>swig -help</tt>.
</p> </p>
<H2><a name="Extending_nn46"></a>40.12 Guide to parse tree nodes</H2> <H2><a name="Extending_nn46"></a>41.12 Guide to parse tree nodes</H2>
<p> <p>
@ -4046,7 +4046,7 @@ extern "X" { ... } declaration.
</pre> </pre>
</div> </div>
<H2><a name="Extending_further_info"></a>40.13 Further Development Information</H2> <H2><a name="Extending_further_info"></a>41.13 Further Development Information</H2>
<p> <p>

View file

@ -55,6 +55,7 @@ Last update : SWIG-3.0.5 (in progress)
<li><a href="Python.html#Python">Python support</a></li> <li><a href="Python.html#Python">Python support</a></li>
<li><a href="R.html#R">R support</a></li> <li><a href="R.html#R">R support</a></li>
<li><a href="Ruby.html#Ruby">Ruby support</a></li> <li><a href="Ruby.html#Ruby">Ruby support</a></li>
<li><a href="Scilab.html#Scilab">Scilab support</a></li>
<li><a href="Tcl.html#Tcl">Tcl support</a></li> <li><a href="Tcl.html#Tcl">Tcl support</a></li>
</ul> </ul>

View file

@ -6,7 +6,7 @@
</head> </head>
<body bgcolor="#ffffff"> <body bgcolor="#ffffff">
<H1><a name="Tcl"></a>39 SWIG and Tcl</H1> <H1><a name="Tcl"></a>40 SWIG and Tcl</H1>
<!-- INDEX --> <!-- INDEX -->
<div class="sectiontoc"> <div class="sectiontoc">
<ul> <ul>
@ -83,7 +83,7 @@ Tcl 8.0 or a later release. Earlier releases of SWIG supported Tcl 7.x, but
this is no longer supported. this is no longer supported.
</p> </p>
<H2><a name="Tcl_nn2"></a>39.1 Preliminaries</H2> <H2><a name="Tcl_nn2"></a>40.1 Preliminaries</H2>
<p> <p>
@ -109,7 +109,7 @@ build a Tcl extension module. To finish building the module, you
need to compile this file and link it with the rest of your program. need to compile this file and link it with the rest of your program.
</p> </p>
<H3><a name="Tcl_nn3"></a>39.1.1 Getting the right header files</H3> <H3><a name="Tcl_nn3"></a>40.1.1 Getting the right header files</H3>
<p> <p>
@ -127,7 +127,7 @@ this is the case, you should probably make a symbolic link so that <tt>tcl.h</tt
header file. header file.
</p> </p>
<H3><a name="Tcl_nn4"></a>39.1.2 Compiling a dynamic module</H3> <H3><a name="Tcl_nn4"></a>40.1.2 Compiling a dynamic module</H3>
<p> <p>
@ -163,7 +163,7 @@ The name of the module is specified using the <tt>%module</tt> directive or the
<tt>-module</tt> command line option. <tt>-module</tt> command line option.
</p> </p>
<H3><a name="Tcl_nn5"></a>39.1.3 Static linking</H3> <H3><a name="Tcl_nn5"></a>40.1.3 Static linking</H3>
<p> <p>
@ -229,7 +229,7 @@ minimal in most situations (and quite frankly not worth the extra
hassle in the opinion of this author). hassle in the opinion of this author).
</p> </p>
<H3><a name="Tcl_nn6"></a>39.1.4 Using your module</H3> <H3><a name="Tcl_nn6"></a>40.1.4 Using your module</H3>
<p> <p>
@ -357,7 +357,7 @@ to the default system configuration (this requires root access and you will need
the man pages). the man pages).
</p> </p>
<H3><a name="Tcl_nn7"></a>39.1.5 Compilation of C++ extensions</H3> <H3><a name="Tcl_nn7"></a>40.1.5 Compilation of C++ extensions</H3>
<p> <p>
@ -440,7 +440,7 @@ erratic program behavior. If working with lots of software components, you
might want to investigate using a more formal standard such as COM. might want to investigate using a more formal standard such as COM.
</p> </p>
<H3><a name="Tcl_nn8"></a>39.1.6 Compiling for 64-bit platforms</H3> <H3><a name="Tcl_nn8"></a>40.1.6 Compiling for 64-bit platforms</H3>
<p> <p>
@ -467,7 +467,7 @@ also introduce problems on platforms that support more than one
linking standard (e.g., -o32 and -n32 on Irix). linking standard (e.g., -o32 and -n32 on Irix).
</p> </p>
<H3><a name="Tcl_nn9"></a>39.1.7 Setting a package prefix</H3> <H3><a name="Tcl_nn9"></a>40.1.7 Setting a package prefix</H3>
<p> <p>
@ -486,7 +486,7 @@ option will append the prefix to the name when creating a command and
call it "<tt>Foo_bar</tt>". call it "<tt>Foo_bar</tt>".
</p> </p>
<H3><a name="Tcl_nn10"></a>39.1.8 Using namespaces</H3> <H3><a name="Tcl_nn10"></a>40.1.8 Using namespaces</H3>
<p> <p>
@ -508,7 +508,7 @@ When the <tt>-namespace</tt> option is used, objects in the module
are always accessed with the namespace name such as <tt>Foo::bar</tt>. are always accessed with the namespace name such as <tt>Foo::bar</tt>.
</p> </p>
<H2><a name="Tcl_nn11"></a>39.2 Building Tcl/Tk Extensions under Windows 95/NT</H2> <H2><a name="Tcl_nn11"></a>40.2 Building Tcl/Tk Extensions under Windows 95/NT</H2>
<p> <p>
@ -519,7 +519,7 @@ covers the process of using SWIG with Microsoft Visual C++.
although the procedure may be similar with other compilers. although the procedure may be similar with other compilers.
</p> </p>
<H3><a name="Tcl_nn12"></a>39.2.1 Running SWIG from Developer Studio</H3> <H3><a name="Tcl_nn12"></a>40.2.1 Running SWIG from Developer Studio</H3>
<p> <p>
@ -577,7 +577,7 @@ MSDOS &gt; tclsh80
% %
</pre></div> </pre></div>
<H3><a name="Tcl_nn13"></a>39.2.2 Using NMAKE</H3> <H3><a name="Tcl_nn13"></a>40.2.2 Using NMAKE</H3>
<p> <p>
@ -640,7 +640,7 @@ to get you started. With a little practice, you'll be making lots of
Tcl extensions. Tcl extensions.
</p> </p>
<H2><a name="Tcl_nn14"></a>39.3 A tour of basic C/C++ wrapping</H2> <H2><a name="Tcl_nn14"></a>40.3 A tour of basic C/C++ wrapping</H2>
<p> <p>
@ -651,7 +651,7 @@ classes. This section briefly covers the essential aspects of this
wrapping. wrapping.
</p> </p>
<H3><a name="Tcl_nn15"></a>39.3.1 Modules</H3> <H3><a name="Tcl_nn15"></a>40.3.1 Modules</H3>
<p> <p>
@ -685,7 +685,7 @@ To fix this, supply an extra argument to <tt>load</tt> like this:
</pre> </pre>
</div> </div>
<H3><a name="Tcl_nn16"></a>39.3.2 Functions</H3> <H3><a name="Tcl_nn16"></a>40.3.2 Functions</H3>
<p> <p>
@ -710,7 +710,7 @@ like you think it does:
% %
</pre></div> </pre></div>
<H3><a name="Tcl_nn17"></a>39.3.3 Global variables</H3> <H3><a name="Tcl_nn17"></a>40.3.3 Global variables</H3>
<p> <p>
@ -790,7 +790,7 @@ extern char *path; // Read-only (due to %immutable)
</pre> </pre>
</div> </div>
<H3><a name="Tcl_nn18"></a>39.3.4 Constants and enums</H3> <H3><a name="Tcl_nn18"></a>40.3.4 Constants and enums</H3>
<p> <p>
@ -874,7 +874,7 @@ When an identifier name is given, it is used to perform an implicit hash-table l
conversion. This allows the <tt>global</tt> statement to be omitted. conversion. This allows the <tt>global</tt> statement to be omitted.
</p> </p>
<H3><a name="Tcl_nn19"></a>39.3.5 Pointers</H3> <H3><a name="Tcl_nn19"></a>40.3.5 Pointers</H3>
<p> <p>
@ -970,7 +970,7 @@ C-style cast may return a bogus result whereas as the C++-style cast will return
<tt>None</tt> if the conversion can't be performed. <tt>None</tt> if the conversion can't be performed.
</p> </p>
<H3><a name="Tcl_nn20"></a>39.3.6 Structures</H3> <H3><a name="Tcl_nn20"></a>40.3.6 Structures</H3>
<p> <p>
@ -1252,7 +1252,7 @@ Note: Tcl only destroys the underlying object if it has ownership. See the
memory management section that appears shortly. memory management section that appears shortly.
</p> </p>
<H3><a name="Tcl_nn21"></a>39.3.7 C++ classes</H3> <H3><a name="Tcl_nn21"></a>40.3.7 C++ classes</H3>
<p> <p>
@ -1319,7 +1319,7 @@ In Tcl, the static member is accessed as follows:
</pre> </pre>
</div> </div>
<H3><a name="Tcl_nn22"></a>39.3.8 C++ inheritance</H3> <H3><a name="Tcl_nn22"></a>40.3.8 C++ inheritance</H3>
<p> <p>
@ -1368,7 +1368,7 @@ For instance:
It is safe to use multiple inheritance with SWIG. It is safe to use multiple inheritance with SWIG.
</p> </p>
<H3><a name="Tcl_nn23"></a>39.3.9 Pointers, references, values, and arrays</H3> <H3><a name="Tcl_nn23"></a>40.3.9 Pointers, references, values, and arrays</H3>
<p> <p>
@ -1422,7 +1422,7 @@ to hold the result and a pointer is returned (Tcl will release this memory
when the return value is garbage collected). when the return value is garbage collected).
</p> </p>
<H3><a name="Tcl_nn24"></a>39.3.10 C++ overloaded functions</H3> <H3><a name="Tcl_nn24"></a>40.3.10 C++ overloaded functions</H3>
<p> <p>
@ -1545,7 +1545,7 @@ first declaration takes precedence.
Please refer to the "SWIG and C++" chapter for more information about overloading. Please refer to the "SWIG and C++" chapter for more information about overloading.
</p> </p>
<H3><a name="Tcl_nn25"></a>39.3.11 C++ operators</H3> <H3><a name="Tcl_nn25"></a>40.3.11 C++ operators</H3>
<p> <p>
@ -1647,7 +1647,7 @@ There are ways to make this operator appear as part of the class using the <tt>%
Keep reading. Keep reading.
</p> </p>
<H3><a name="Tcl_nn26"></a>39.3.12 C++ namespaces</H3> <H3><a name="Tcl_nn26"></a>40.3.12 C++ namespaces</H3>
<p> <p>
@ -1711,7 +1711,7 @@ utilizes thousands of small deeply nested namespaces each with
identical symbol names, well, then you get what you deserve. identical symbol names, well, then you get what you deserve.
</p> </p>
<H3><a name="Tcl_nn27"></a>39.3.13 C++ templates</H3> <H3><a name="Tcl_nn27"></a>40.3.13 C++ templates</H3>
<p> <p>
@ -1763,7 +1763,7 @@ More details can be found in the <a href="SWIGPlus.html#SWIGPlus">SWIG and C++</
examples will appear later. examples will appear later.
</p> </p>
<H3><a name="Tcl_nn28"></a>39.3.14 C++ Smart Pointers</H3> <H3><a name="Tcl_nn28"></a>40.3.14 C++ Smart Pointers</H3>
<p> <p>
@ -1847,7 +1847,7 @@ simply use the <tt>__deref__()</tt> method. For example:
</pre> </pre>
</div> </div>
<H2><a name="Tcl_nn29"></a>39.4 Further details on the Tcl class interface</H2> <H2><a name="Tcl_nn29"></a>40.4 Further details on the Tcl class interface</H2>
<p> <p>
@ -1860,7 +1860,7 @@ of low-level details were omitted. This section provides a brief overview
of how the proxy classes work. of how the proxy classes work.
</p> </p>
<H3><a name="Tcl_nn30"></a>39.4.1 Proxy classes</H3> <H3><a name="Tcl_nn30"></a>40.4.1 Proxy classes</H3>
<p> <p>
@ -1925,7 +1925,7 @@ function. This allows objects to be encapsulated objects that look a lot like
as shown in the last section. as shown in the last section.
</p> </p>
<H3><a name="Tcl_nn31"></a>39.4.2 Memory management</H3> <H3><a name="Tcl_nn31"></a>40.4.2 Memory management</H3>
<p> <p>
@ -2113,7 +2113,7 @@ typemaps--an advanced topic discussed later.
</p> </p>
<H2><a name="Tcl_nn32"></a>39.5 Input and output parameters</H2> <H2><a name="Tcl_nn32"></a>40.5 Input and output parameters</H2>
<p> <p>
@ -2301,7 +2301,7 @@ set c [lindex $dim 1]
</pre> </pre>
</div> </div>
<H2><a name="Tcl_nn33"></a>39.6 Exception handling </H2> <H2><a name="Tcl_nn33"></a>40.6 Exception handling </H2>
<p> <p>
@ -2435,7 +2435,7 @@ Since SWIG's exception handling is user-definable, you are not limited to C++ ex
See the chapter on "<a href="Customization.html#Customization">Customization Features</a>" for more examples. See the chapter on "<a href="Customization.html#Customization">Customization Features</a>" for more examples.
</p> </p>
<H2><a name="Tcl_nn34"></a>39.7 Typemaps</H2> <H2><a name="Tcl_nn34"></a>40.7 Typemaps</H2>
<p> <p>
@ -2452,7 +2452,7 @@ Typemaps are only used if you want to change some aspect of the primitive
C-Tcl interface. C-Tcl interface.
</p> </p>
<H3><a name="Tcl_nn35"></a>39.7.1 What is a typemap?</H3> <H3><a name="Tcl_nn35"></a>40.7.1 What is a typemap?</H3>
<p> <p>
@ -2569,7 +2569,7 @@ parameter is omitted):
</pre> </pre>
</div> </div>
<H3><a name="Tcl_nn36"></a>39.7.2 Tcl typemaps</H3> <H3><a name="Tcl_nn36"></a>40.7.2 Tcl typemaps</H3>
<p> <p>
@ -2707,7 +2707,7 @@ Initialize an argument to a value before any conversions occur.
Examples of these methods will appear shortly. Examples of these methods will appear shortly.
</p> </p>
<H3><a name="Tcl_nn37"></a>39.7.3 Typemap variables</H3> <H3><a name="Tcl_nn37"></a>40.7.3 Typemap variables</H3>
<p> <p>
@ -2778,7 +2778,7 @@ properly assigned.
The Tcl name of the wrapper function being created. The Tcl name of the wrapper function being created.
</div> </div>
<H3><a name="Tcl_nn38"></a>39.7.4 Converting a Tcl list to a char ** </H3> <H3><a name="Tcl_nn38"></a>40.7.4 Converting a Tcl list to a char ** </H3>
<p> <p>
@ -2840,7 +2840,7 @@ argv[2] = Larry
3 3
</pre></div> </pre></div>
<H3><a name="Tcl_nn39"></a>39.7.5 Returning values in arguments</H3> <H3><a name="Tcl_nn39"></a>40.7.5 Returning values in arguments</H3>
<p> <p>
@ -2882,7 +2882,7 @@ result, a Tcl function using these typemaps will work like this :
% %
</pre></div> </pre></div>
<H3><a name="Tcl_nn40"></a>39.7.6 Useful functions</H3> <H3><a name="Tcl_nn40"></a>40.7.6 Useful functions</H3>
<p> <p>
@ -2958,7 +2958,7 @@ int Tcl_IsShared(Tcl_Obj *obj);
</pre> </pre>
</div> </div>
<H3><a name="Tcl_nn41"></a>39.7.7 Standard typemaps</H3> <H3><a name="Tcl_nn41"></a>40.7.7 Standard typemaps</H3>
<p> <p>
@ -3043,7 +3043,7 @@ work)
</pre> </pre>
</div> </div>
<H3><a name="Tcl_nn42"></a>39.7.8 Pointer handling</H3> <H3><a name="Tcl_nn42"></a>40.7.8 Pointer handling</H3>
<p> <p>
@ -3119,7 +3119,7 @@ For example:
</pre> </pre>
</div> </div>
<H2><a name="Tcl_nn43"></a>39.8 Turning a SWIG module into a Tcl Package.</H2> <H2><a name="Tcl_nn43"></a>40.8 Turning a SWIG module into a Tcl Package.</H2>
<p> <p>
@ -3191,7 +3191,7 @@ As a final note, most SWIG examples do not yet use the
to use the <tt>load</tt> command instead. to use the <tt>load</tt> command instead.
</p> </p>
<H2><a name="Tcl_nn44"></a>39.9 Building new kinds of Tcl interfaces (in Tcl)</H2> <H2><a name="Tcl_nn44"></a>40.9 Building new kinds of Tcl interfaces (in Tcl)</H2>
<p> <p>
@ -3290,7 +3290,7 @@ danger of blowing something up (although it is easily accomplished
with an out of bounds array access). with an out of bounds array access).
</p> </p>
<H3><a name="Tcl_nn45"></a>39.9.1 Proxy classes</H3> <H3><a name="Tcl_nn45"></a>40.9.1 Proxy classes</H3>
<p> <p>
@ -3411,7 +3411,7 @@ short, but clever Tcl script can be combined with SWIG to do many
interesting things. interesting things.
</p> </p>
<H2><a name="Tcl_nn46"></a>39.10 Tcl/Tk Stubs</H2> <H2><a name="Tcl_nn46"></a>40.10 Tcl/Tk Stubs</H2>
<p> <p>

View file

@ -36,5 +36,6 @@ Pike.html
Python.html Python.html
R.html R.html
Ruby.html Ruby.html
Scilab.html
Tcl.html Tcl.html
Extending.html Extending.html