swig/Doc/Manual/Contents.html
Dave Beazley 47f612c99a Doc update
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5411 626c5289-ae23-0410-ae9c-e8d60b6d4f22
2003-11-25 21:18:30 +00:00

1055 lines
40 KiB
HTML

<HTML>
<HEAD>
<TITLE>SWIG Users Manual</TITLE>
</HEAD>
<BODY BGCOLOR="#ffffff">
<H1>SWIG Users Manual</H1>
<p>
<h3><a href="Preface.html">0 Preface</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Preface.html#n2">Introduction</a>
<li><a href="Preface.html#n3">Special Introduction for Version 1.3</a>
<li><a href="Preface.html#n4">SWIG Versions</a>
<li><a href="Preface.html#n5">SWIG resources</a>
<li><a href="Preface.html#n6">Prerequisites</a>
<li><a href="Preface.html#n7">Organization of this manual</a>
<li><a href="Preface.html#n8">How to avoid reading the manual</a>
<li><a href="Preface.html#n9">Backwards Compatibility</a>
<li><a href="Preface.html#n10">Credits</a>
<li><a href="Preface.html#n11">Bug reports</a>
</ul>
<!-- INDEX -->
<h3><a href="Introduction.html">1 Introduction</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Introduction.html#n2">What is SWIG?</a>
<li><a href="Introduction.html#n3">Why use SWIG?</a>
<li><a href="Introduction.html#n4">A SWIG example</a>
<ul>
<li><a href="Introduction.html#n5">SWIG interface file</a>
<li><a href="Introduction.html#n6">The swig command</a>
<li><a href="Introduction.html#n7">Building a Perl5 module</a>
<li><a href="Introduction.html#n8">Building a Python module</a>
<li><a href="Introduction.html#n9">Shortcuts</a>
<li><a href="Introduction.html#n10">Building libraries and modules</a>
</ul>
<li><a href="Introduction.html#n11">Supported C/C++ language features</a>
<li><a href="Introduction.html#n12">Non-intrusive interface building</a>
<li><a href="Introduction.html#n13">Hands off code generation</a>
</ul>
<!-- INDEX -->
<h3><a href="Windows.html">2 Getting started on Windows </a></h3>
<!-- INDEX -->
<ul>
<li><a href="Windows.html#n2">Installation on Windows</a>
<ul>
<li><a href="Windows.html#n3">Windows Executable</a>
<li><a href="Windows.html#n4">Runtime Libraries</a>
</ul>
<li><a href="Windows.html#n5">SWIG Windows Examples</a>
<ul>
<li><a href="Windows.html#n6">Instructions for using the Examples with Visual C++</a>
<ul>
<li><a href="Windows.html#n7">Python</a>
<li><a href="Windows.html#n8">TCL</a>
<li><a href="Windows.html#n9">Perl</a>
<li><a href="Windows.html#n10">Java</a>
<li><a href="Windows.html#n11">Ruby</a>
</ul>
<li><a href="Windows.html#n12">Instructions for using the Examples with other compilers</a>
</ul>
<li><a href="Windows.html#n13">SWIG on Cygwin and MinGW</a>
<ul>
<li><a href="Windows.html#n14">Building swig.exe on Windows</a>
<ul>
<li><a href="Windows.html#n15">Building swig.exe using MinGW and MSYS</a>
<li><a href="Windows.html#n16">Building swig.exe using Cygwin</a>
<li><a href="Windows.html#n17">Building swig.exe alternatives</a>
</ul>
<li><a href="Windows.html#n18">Running the examples on Windows using Cygwin</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Scripting.html">3 Scripting Languages</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Scripting.html#n2">The two language view of the world</a>
<li><a href="Scripting.html#n3">How does a scripting language talk to C?</a>
<ul>
<li><a href="Scripting.html#n4">Wrapper functions</a>
<li><a href="Scripting.html#n5">Variable linking</a>
<li><a href="Scripting.html#n6">Constants</a>
<li><a href="Scripting.html#n7">Structures and classes</a>
<li><a href="Scripting.html#n8">Shadow classes</a>
</ul>
<li><a href="Scripting.html#n9">Building scripting language extensions</a>
<ul>
<li><a href="Scripting.html#n10">Shared libraries and dynamic loading</a>
<li><a href="Scripting.html#n11">Linking with shared libraries</a>
<li><a href="Scripting.html#n12">Static linking</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="SWIG.html">4 SWIG Basics</a></h3>
<!-- INDEX -->
<ul>
<li><a href="SWIG.html#n2">Running SWIG</a>
<ul>
<li><a href="SWIG.html#n3">Input format</a>
<li><a href="SWIG.html#n4">SWIG Output</a>
<li><a href="SWIG.html#n5">Comments</a>
<li><a href="SWIG.html#n6">C Preprocessor</a>
<li><a href="SWIG.html#n7">SWIG Directives</a>
<li><a href="SWIG.html#n8">Parser Limitations</a>
</ul>
<li><a href="SWIG.html#n9">Wrapping Simple C Declarations</a>
<ul>
<li><a href="SWIG.html#n10">Basic Type Handling</a>
<li><a href="SWIG.html#n11">Global Variables</a>
<li><a href="SWIG.html#n12">Constants</a>
<li><a href="SWIG.html#n13">A brief word about <tt>const</tt></a>
<li><a href="SWIG.html#n14">A cautionary tale of <tt>char *</tt></a>
</ul>
<li><a href="SWIG.html#n15">Pointers and complex objects</a>
<ul>
<li><a href="SWIG.html#n16">Simple pointers</a>
<li><a href="SWIG.html#n17">Run time pointer type checking</a>
<li><a href="SWIG.html#n18">Derived types, structs, and classes</a>
<li><a href="SWIG.html#n19">Undefined datatypes</a>
<li><a href="SWIG.html#n20">Typedef</a>
</ul>
<li><a href="SWIG.html#n21">Other Practicalities</a>
<ul>
<li><a href="SWIG.html#n22">Passing structures by value</a>
<li><a href="SWIG.html#n23">Return by value</a>
<li><a href="SWIG.html#n24">Linking to structure variables</a>
<li><a href="SWIG.html#n25">Linking to <tt>char *</tt></a>
<li><a href="SWIG.html#n26">Arrays</a>
<li><a href="SWIG.html#n27">Creating read-only variables</a>
<li><a href="SWIG.html#n28">Renaming and ignoring declarations</a>
<li><a href="SWIG.html#n29">Default/optional arguments</a>
<li><a href="SWIG.html#n30">Pointers to functions and callbacks</a>
</ul>
<li><a href="SWIG.html#n31">Structures and unions</a>
<ul>
<li><a href="SWIG.html#n32">Typedef and structures</a>
<li><a href="SWIG.html#n33">Character strings and structures</a>
<li><a href="SWIG.html#n34">Array members</a>
<li><a href="SWIG.html#n35">Structure data members</a>
<li><a href="SWIG.html#n36">C constructors and destructors </a>
<li><a href="SWIG.html#n37">Adding member functions to C structures</a>
<li><a href="SWIG.html#n38">Nested structures</a>
<li><a href="SWIG.html#n39">Other things to note about structure wrapping</a>
</ul>
<li><a href="SWIG.html#n40">Code Insertion</a>
<ul>
<li><a href="SWIG.html#n41">The output of SWIG</a>
<li><a href="SWIG.html#n42">Code insertion blocks</a>
<li><a href="SWIG.html#n43">Inlined code blocks</a>
<li><a href="SWIG.html#n44">Initialization blocks</a>
</ul>
<li><a href="SWIG.html#n45">An Interface Building Strategy</a>
<ul>
<li><a href="SWIG.html#n46">Preparing a C program for SWIG</a>
<li><a href="SWIG.html#n47">The SWIG interface file</a>
<li><a href="SWIG.html#n48">Why use separate interface files?</a>
<li><a href="SWIG.html#n49">Getting the right header files</a>
<li><a href="SWIG.html#n50">What to do with main()</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="SWIGPlus.html">5 SWIG and C++</a></h3>
<!-- INDEX -->
<ul>
<li><a href="SWIGPlus.html#n2">Comments on C++ Wrapping</a>
<li><a href="SWIGPlus.html#n3">Approach</a>
<li><a href="SWIGPlus.html#n4">Supported C++ features</a>
<li><a href="SWIGPlus.html#n5">Command line options and compilation</a>
<li><a href="SWIGPlus.html#n6">Simple C++ wrapping</a>
<ul>
<li><a href="SWIGPlus.html#n7">Constructors and destructors</a>
<li><a href="SWIGPlus.html#n8">Default constructors</a>
<li><a href="SWIGPlus.html#n9">When constructor wrappers aren't created</a>
<li><a href="SWIGPlus.html#n10">Copy constructors</a>
<li><a href="SWIGPlus.html#n11">Member functions</a>
<li><a href="SWIGPlus.html#n12">Static members</a>
<li><a href="SWIGPlus.html#n13">Member functions and default arguments</a>
<li><a href="SWIGPlus.html#n14">Member data</a>
</ul>
<li><a href="SWIGPlus.html#n15">Protection</a>
<li><a href="SWIGPlus.html#n16">Enums and constants</a>
<li><a href="SWIGPlus.html#n17">Friends</a>
<li><a href="SWIGPlus.html#n18">References and pointers</a>
<li><a href="SWIGPlus.html#n19">Pass and return by value</a>
<li><a href="SWIGPlus.html#n20">Inheritance</a>
<li><a href="SWIGPlus.html#n21">A brief discussion of multiple inheritance, pointers, and type checking</a>
<li><a href="SWIGPlus.html#n22">Renaming</a>
<li><a href="SWIGPlus.html#n23">Wrapping Overloaded Functions and Methods</a>
<ul>
<li><a href="SWIGPlus.html#n24">Dispatch function generation</a>
<li><a href="SWIGPlus.html#n25">Ambiguity in Overloading</a>
<li><a href="SWIGPlus.html#n26">Ambiguity resolution and renaming</a>
<li><a href="SWIGPlus.html#n27">Comments on overloading</a>
</ul>
<li><a href="SWIGPlus.html#n28">Wrapping overloaded operators</a>
<li><a href="SWIGPlus.html#n29">Class extension</a>
<li><a href="SWIGPlus.html#n30">Templates</a>
<li><a href="SWIGPlus.html#n31">Namespaces</a>
<li><a href="SWIGPlus.html#n32">Exception specifiers</a>
<li><a href="SWIGPlus.html#n33">Pointers to Members</a>
<li><a href="SWIGPlus.html#n34">Smart pointers and operator-&gt;()</a>
<li><a href="SWIGPlus.html#n35">Using declarations and inheritance</a>
<li><a href="SWIGPlus.html#n36">Partial class definitions</a>
<li><a href="SWIGPlus.html#n37">A brief rant about const-correctness</a>
<li><a href="SWIGPlus.html#n38">Proxy classes</a>
<ul>
<li><a href="SWIGPlus.html#n39">Construction of proxy classes</a>
<li><a href="SWIGPlus.html#n40">Resource management in proxies</a>
<li><a href="SWIGPlus.html#n41">Language specific details</a>
</ul>
<li><a href="SWIGPlus.html#n42">Where to go for more information</a>
</ul>
<!-- INDEX -->
<h3><a href="Preprocessor.html">6 Preprocessing</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Preprocessor.html#n2">File inclusion</a>
<li><a href="Preprocessor.html#n3">File imports</a>
<li><a href="Preprocessor.html#n4">Conditional Compilation</a>
<li><a href="Preprocessor.html#n5">Macro Expansion</a>
<li><a href="Preprocessor.html#n6">SWIG Macros</a>
<li><a href="Preprocessor.html#n7">C99 and GNU Extensions</a>
<li><a href="Preprocessor.html#n8">Preprocessing and %{ ... %} blocks</a>
<li><a href="Preprocessor.html#n9">Preprocessing and { ... }</a>
</ul>
<!-- INDEX -->
<h3><a href="Arguments.html">7 Argument Handling</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Arguments.html#n2">The typemaps.i library</a>
<ul>
<li><a href="Arguments.html#n3">Introduction</a>
<li><a href="Arguments.html#n4">Input parameters</a>
<li><a href="Arguments.html#n5">Output parameters</a>
<li><a href="Arguments.html#n6">Input/Output parameters</a>
<li><a href="Arguments.html#n7">Using different names</a>
</ul>
<li><a href="Arguments.html#n8">Applying constraints to input values</a>
<ul>
<li><a href="Arguments.html#n9">Simple constraint example</a>
<li><a href="Arguments.html#n10">Constraint methods</a>
<li><a href="Arguments.html#n11">Applying constraints to new datatypes</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Typemaps.html">8 Typemaps</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Typemaps.html#n2">Introduction</a>
<ul>
<li><a href="Typemaps.html#n3">Type conversion</a>
<li><a href="Typemaps.html#n4">Typemaps</a>
<li><a href="Typemaps.html#n5">Pattern matching</a>
<li><a href="Typemaps.html#n6">Reusing typemaps</a>
<li><a href="Typemaps.html#n7">What can be done with typemaps?</a>
<li><a href="Typemaps.html#n8">What can't be done with typemaps?</a>
<li><a href="Typemaps.html#n9">The rest of this chapter</a>
</ul>
<li><a href="Typemaps.html#n10">Typemap specifications</a>
<ul>
<li><a href="Typemaps.html#n11">Defining a typemap</a>
<li><a href="Typemaps.html#n12">Typemap scope</a>
<li><a href="Typemaps.html#n13">Copying a typemap</a>
<li><a href="Typemaps.html#n14">Deleting a typemap</a>
<li><a href="Typemaps.html#n15">Placement of typemaps</a>
</ul>
<li><a href="Typemaps.html#n16">Pattern matching rules</a>
<ul>
<li><a href="Typemaps.html#n17">Basic matching rules</a>
<li><a href="Typemaps.html#n18">Typedef reductions</a>
<li><a href="Typemaps.html#n19">Default typemaps</a>
<li><a href="Typemaps.html#n20">Multi-arguments typemaps</a>
</ul>
<li><a href="Typemaps.html#n21">Code generation rules</a>
<ul>
<li><a href="Typemaps.html#n22">Scope</a>
<li><a href="Typemaps.html#n23">Declaring new local variables</a>
<li><a href="Typemaps.html#n24">Special variables</a>
</ul>
<li><a href="Typemaps.html#n25">Common typemap methods</a>
<ul>
<li><a href="Typemaps.html#n26">"in" typemap</a>
<li><a href="Typemaps.html#n27">"typecheck" typemap</a>
<li><a href="Typemaps.html#n28">"out" typemap</a>
<li><a href="Typemaps.html#n29">"arginit" typemap</a>
<li><a href="Typemaps.html#n30">"default" typemap</a>
<li><a href="Typemaps.html#n31">"check" typemap</a>
<li><a href="Typemaps.html#n32">"argout" typemap</a>
<li><a href="Typemaps.html#n33">"freearg" typemap</a>
<li><a href="Typemaps.html#n34">"newfree" typemap</a>
<li><a href="Typemaps.html#n35">"memberin" typemap</a>
<li><a href="Typemaps.html#n36">"varin" typemap</a>
<li><a href="Typemaps.html#n37">"varout" typemap</a>
</ul>
<li><a href="Typemaps.html#n38">Some typemap examples</a>
<ul>
<li><a href="Typemaps.html#n39">Typemaps for arrays</a>
<li><a href="Typemaps.html#n40">Implementing constraints with typemaps</a>
</ul>
<li><a href="Typemaps.html#n41">Multi-argument typemaps</a>
<li><a href="Typemaps.html#n42">The run-time type checker</a>
<li><a href="Typemaps.html#n43">Typemaps and overloading</a>
<li><a href="Typemaps.html#n44">More about <tt>%apply</tt> and <tt>%clear</tt></a>
<li><a href="Typemaps.html#n45">Reducing wrapper code size</a>
<li><a href="Typemaps.html#n46">Passing data between typemaps</a>
<li><a href="Typemaps.html#n47">Where to go for more information?</a>
</ul>
<!-- INDEX -->
<h3><a href="Customization.html">9 Customization Features</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Customization.html#n2">Exception handling with %exception</a>
<ul>
<li><a href="Customization.html#n3">Handling exceptions in C code</a>
<li><a href="Customization.html#n4">Exception handling with longjmp()</a>
<li><a href="Customization.html#n5">Handling C++ exceptions</a>
<li><a href="Customization.html#n6">Defining different exception handlers</a>
<li><a href="Customization.html#n7">Using The SWIG exception library</a>
</ul>
<li><a href="Customization.html#n8">Object ownership and %newobject</a>
<li><a href="Customization.html#n9">Features and the %feature directive</a>
</ul>
<!-- INDEX -->
<h3><a href="Contract.html">10 Contracts</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Contract.html#n2">The %contract directive</a>
<li><a href="Contract.html#n3">%contract and classes</a>
<li><a href="Contract.html#n4">Constant aggregation and %aggregate_check</a>
<li><a href="Contract.html#n5">Notes</a>
</ul>
<!-- INDEX -->
<h3><a href="Varargs.html">11 Variable Length Arguments</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Varargs.html#n2">Introduction</a>
<li><a href="Varargs.html#n3">The Problem</a>
<li><a href="Varargs.html#n4">Default varargs support</a>
<li><a href="Varargs.html#n5">Argument replacement using %varargs</a>
<li><a href="Varargs.html#n6">Varargs and typemaps</a>
<li><a href="Varargs.html#n7">Varargs wrapping with libffi</a>
<li><a href="Varargs.html#n8">Wrapping of va_list</a>
<li><a href="Varargs.html#n9">C++ Issues</a>
<li><a href="Varargs.html#n10">Discussion</a>
</ul>
<!-- INDEX -->
<h3><a href="Warnings.html">12 Warning Messages</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Warnings.html#n2">Introduction</a>
<li><a href="Warnings.html#n3">Warning message suppression</a>
<li><a href="Warnings.html#n4">Enabling additional warnings</a>
<li><a href="Warnings.html#n5">Issuing a warning message</a>
<li><a href="Warnings.html#n6">Commentary</a>
<li><a href="Warnings.html#n7">Warning number reference</a>
<ul>
<li><a href="Warnings.html#n8">Deprecated features (100-199)</a>
<li><a href="Warnings.html#n9">Preprocessor (200-299)</a>
<li><a href="Warnings.html#n10">C/C++ Parser (300-399)</a>
<li><a href="Warnings.html#n11">Types and typemaps (400-499) </a>
<li><a href="Warnings.html#n12">Code generation (500-599)</a>
<li><a href="Warnings.html#n13">Language module specific (800-899) </a>
<li><a href="Warnings.html#n14">User defined (900-999)</a>
</ul>
<li><a href="Warnings.html#n15">History</a>
</ul>
<!-- INDEX -->
<h3><a href="Library.html">13 SWIG library</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Library.html#n2">The %include directive and library search path</a>
<li><a href="Library.html#n3">C Arrays and Pointers</a>
<ul>
<li><a href="Library.html#n4">cpointer.i</a>
<li><a href="Library.html#n5">carrays.i</a>
<li><a href="Library.html#n6">cmalloc.i</a>
<li><a href="Library.html#n7">cdata.i</a>
</ul>
<li><a href="Library.html#n8">C String Handling</a>
<ul>
<li><a href="Library.html#n9">Default string handling</a>
<li><a href="Library.html#n10">Passing binary data</a>
<li><a href="Library.html#n11">Using %newobject to release memory</a>
<li><a href="Library.html#n12">cstring.i</a>
</ul>
<li><a href="Library.html#n13">C++ Library</a>
<ul>
<li><a href="Library.html#n14">std_string.i</a>
<li><a href="Library.html#n15">std_vector.i</a>
</ul>
<li><a href="Library.html#n16">Utility Libraries</a>
<ul>
<li><a href="Library.html#n17">exception.i</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Modules.html">14 Working with Modules</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Modules.html#n2">The SWIG runtime code</a>
<li><a href="Modules.html#n3">Compiling Multiple SWIG modules</a>
<li><a href="Modules.html#n4">A word of caution about static libraries</a>
<li><a href="Modules.html#n5">References</a>
</ul>
<!-- INDEX -->
<h3><a href="Advanced.html">15 Advanced Topics</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Advanced.html#n2">Creating multi-module packages</a>
<ul>
<li><a href="Advanced.html#n3">Runtime support (and potential problems)</a>
<li><a href="Advanced.html#n4">Why doesn't C++ inheritance work between modules?</a>
<li><a href="Advanced.html#n5">The SWIG runtime library</a>
<li><a href="Advanced.html#n6">A few dynamic loading gotchas</a>
</ul>
<li><a href="Advanced.html#n7">Dynamic Loading of C++ modules</a>
<li><a href="Advanced.html#n8">Inside the SWIG type-checker</a>
<ul>
<li><a href="Advanced.html#n9">Type equivalence</a>
<li><a href="Advanced.html#n10">Type casting</a>
<li><a href="Advanced.html#n11">Why a name based approach?</a>
<li><a href="Advanced.html#n12">Performance of the type-checker</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Guile.html">16 SWIG and Guile</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Guile.html#n2">Meaning of "Module"</a>
<li><a href="Guile.html#n3">Using the SCM or GH Guile API</a>
<li><a href="Guile.html#n4">Linkage</a>
<ul>
<li><a href="Guile.html#n5">Simple Linkage</a>
<li><a href="Guile.html#n6">Passive Linkage</a>
<li><a href="Guile.html#n7">Native Guile Module Linkage</a>
<li><a href="Guile.html#n8">Old Auto-Loading Guile Module Linkage</a>
<li><a href="Guile.html#n9">Hobbit4D Linkage</a>
<li><a href="Guile.html#n10">General Remarks on Multiple SWIG Modules</a>
</ul>
<li><a href="Guile.html#n11">Underscore Folding</a>
<li><a href="Guile.html#n12">Typemaps</a>
<li><a href="Guile.html#n13">Representation of pointers as smobs</a>
<ul>
<li><a href="Guile.html#n14">GH Smobs</a>
<li><a href="Guile.html#n15">SCM Smobs</a>
<li><a href="Guile.html#n16">Garbage Collection</a>
</ul>
<li><a href="Guile.html#n17">Exception Handling</a>
<li><a href="Guile.html#n18">Procedure documentation</a>
<li><a href="Guile.html#n19">Procedures with setters</a>
<li><a href="Guile.html#n20">GOOPS Shadow Classes</a>
<ul>
<li><a href="Guile.html#n21">Naming Issues</a>
<li><a href="Guile.html#n22">Linking</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Java.html">17 SWIG and Java</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Java.html#n2">Overview</a>
<li><a href="Java.html#n3">Preliminaries</a>
<ul>
<li><a href="Java.html#n4">Running SWIG</a>
<li><a href="Java.html#n5">Additional Commandline Options</a>
<li><a href="Java.html#n6">Getting the right header files</a>
<li><a href="Java.html#n7">Compiling a dynamic module</a>
<li><a href="Java.html#n8">Using your module</a>
<li><a href="Java.html#n9">Dynamic linking problems</a>
<li><a href="Java.html#n10">Compilation problems and compiling with C++</a>
<li><a href="Java.html#n11">Building on Windows</a>
<ul>
<li><a href="Java.html#n12">Running SWIG from Visual Studio</a>
<li><a href="Java.html#n13">Using NMAKE</a>
</ul>
</ul>
<li><a href="Java.html#n14">A tour of basic C/C++ wrapping</a>
<ul>
<li><a href="Java.html#n15">Modules, packages and generated Java classes</a>
<li><a href="Java.html#n16">Functions</a>
<li><a href="Java.html#n17">Global variables</a>
<li><a href="Java.html#n18">Constants</a>
<li><a href="Java.html#n19">Enumerations</a>
<li><a href="Java.html#n20">Pointers</a>
<li><a href="Java.html#n21">Structures</a>
<li><a href="Java.html#n22">C++ classes</a>
<li><a href="Java.html#n23">C++ inheritance</a>
<li><a href="Java.html#n24">Pointers, references, arrays and pass by value</a>
<ul>
<li><a href="Java.html#n25">Null pointers</a>
</ul>
<li><a href="Java.html#n26">C++ overloaded functions</a>
<li><a href="Java.html#n27">C++ namespaces</a>
<li><a href="Java.html#n28">C++ templates</a>
<li><a href="Java.html#n29">C++ Smart Pointers</a>
</ul>
<li><a href="Java.html#n30">Further details on the generated Java classes</a>
<ul>
<li><a href="Java.html#n31">The intermediary JNI class</a>
<ul>
<li><a href="Java.html#n32">The intermediary JNI class pragmas</a>
</ul>
<li><a href="Java.html#n33">The Java module class</a>
<ul>
<li><a href="Java.html#n34">The Java module class pragmas</a>
</ul>
<li><a href="Java.html#n35">Java proxy classes</a>
<ul>
<li><a href="Java.html#n36">Memory management</a>
<li><a href="Java.html#n37">Inheritance</a>
<li><a href="Java.html#n38">Proxy classes and garbage collection</a>
</ul>
<li><a href="Java.html#n39">Type wrapper classes</a>
</ul>
<li><a href="Java.html#n40">Cross language polymorphism using directors (experimental)</a>
<ul>
<li><a href="Java.html#n41">Enabling directors</a>
<li><a href="Java.html#n42">Director classes</a>
<li><a href="Java.html#n43">Overhead and code bloat</a>
<li><a href="Java.html#n44">Simple directors example</a>
</ul>
<li><a href="Java.html#n45">Common customization features</a>
<ul>
<li><a href="Java.html#n46">C/C++ helper functions</a>
<li><a href="Java.html#n47">Class extension with %extend</a>
<li><a href="Java.html#n48">Exception handling with %exception</a>
<li><a href="Java.html#n49">Method access with %javamethodmodifiers</a>
</ul>
<li><a href="Java.html#n50">Tips and techniques</a>
<ul>
<li><a href="Java.html#n51">Input and output parameters using primitive pointers and references</a>
<li><a href="Java.html#n52">Simple pointers</a>
<li><a href="Java.html#n53">Wrapping C arrays with Java arrays</a>
<li><a href="Java.html#n54">Unbounded C Arrays</a>
</ul>
<li><a href="Java.html#n55">Java typemaps</a>
<ul>
<li><a href="Java.html#n56">Default primitive type mappings</a>
<li><a href="Java.html#n57">Sixty four bit JVMs</a>
<li><a href="Java.html#n58">What is a typemap?</a>
<li><a href="Java.html#n59">Typemaps for mapping C/C++ types to Java types</a>
<li><a href="Java.html#n60">Java special variables</a>
<li><a href="Java.html#n61">Typemaps for both C and C++ compilation</a>
<li><a href="Java.html#n62">Java code typemaps</a>
<li><a href="Java.html#n63">Director specific typemaps</a>
</ul>
<li><a href="Java.html#n64">Typemap Examples</a>
<ul>
<li><a href="Java.html#n65">Converting Java String arrays to char ** </a>
<li><a href="Java.html#n66">Expanding a Java object to multiple arguments</a>
<li><a href="Java.html#n67">Using typemaps to return arguments</a>
<li><a href="Java.html#n68">Adding Java downcasts to polymorphic return types</a>
<li><a href="Java.html#n69">Adding an equals method to the Java classes</a>
<li><a href="Java.html#n70">Void pointers and a common Java base class</a>
</ul>
<li><a href="Java.html#n71">Living with Java Directors</a>
<li><a href="Java.html#n72">Odds and ends</a>
<ul>
<li><a href="Java.html#n73">JavaDoc comments</a>
<li><a href="Java.html#n74">Functional interface without proxy classes</a>
<li><a href="Java.html#n75">Using your own JNI functions</a>
<li><a href="Java.html#n76">Performance concerns and hints</a>
</ul>
<li><a href="Java.html#n77">Examples</a>
</ul>
<!-- INDEX -->
<h3><a href="Ocaml.html">18 SWIG and Ocaml</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Ocaml.html#n2">Preliminaries</a>
<ul>
<li><a href="Ocaml.html#n3">Running SWIG</a>
<li><a href="Ocaml.html#n4">Compiling the code</a>
<li><a href="Ocaml.html#n5">The camlp4 module</a>
<li><a href="Ocaml.html#n6">Using your module</a>
<li><a href="Ocaml.html#n7">Compilation problems and compiling with C++</a>
</ul>
<li><a href="Ocaml.html#n8">The low-level Ocaml/C interface</a>
<ul>
<li><a href="Ocaml.html#n9">The generated module</a>
<li><a href="Ocaml.html#n10">Enums</a>
<li><a href="Ocaml.html#n11">Arrays</a>
<ul>
<li><a href="Ocaml.html#n12">Simple types of bounded arrays</a>
<li><a href="Ocaml.html#n13">Complex and unbounded arrays</a>
<li><a href="Ocaml.html#n14">Using an object</a>
<li><a href="Ocaml.html#n15">Example typemap for a function taking float * and int</a>
</ul>
<li><a href="Ocaml.html#n16">C++ Classes</a>
<ul>
<li><a href="Ocaml.html#n17">STL vector and string Example</a>
<li><a href="Ocaml.html#n18">C++ Class Example</a>
<li><a href="Ocaml.html#n19">Compiling the example</a>
<li><a href="Ocaml.html#n20">Sample Session</a>
</ul>
<li><a href="Ocaml.html#n21">Director Classes</a>
<ul>
<li><a href="Ocaml.html#n22">Director Introduction</a>
<li><a href="Ocaml.html#n23">Overriding Methods in Ocaml</a>
<li><a href="Ocaml.html#n24">Director Usage Example</a>
<li><a href="Ocaml.html#n25">Creating director objects</a>
<li><a href="Ocaml.html#n26">Typemaps for directors, <tt>directorin, directorout, directorargout</tt></a>
<li><a href="Ocaml.html#n27"><tt>directorin</tt> typemap</a>
<li><a href="Ocaml.html#n28"><tt>directorout</tt> typemap</a>
<li><a href="Ocaml.html#n29"><tt>directorargout</tt> typemap</a>
</ul>
<li><a href="Ocaml.html#n30">Exceptions</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Perl5.html">19 SWIG and Perl5</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Perl5.html#n2">Overview</a>
<li><a href="Perl5.html#n3">Preliminaries</a>
<ul>
<li><a href="Perl5.html#n4">Getting the right header files</a>
<li><a href="Perl5.html#n5">Compiling a dynamic module</a>
<li><a href="Perl5.html#n6">Building a dynamic module with MakeMaker</a>
<li><a href="Perl5.html#n7">Building a static version of Perl</a>
<li><a href="Perl5.html#n8">Using the module</a>
<li><a href="Perl5.html#n9">Compilation problems and compiling with C++</a>
<li><a href="Perl5.html#n10">Compiling for 64-bit platforms</a>
</ul>
<li><a href="Perl5.html#n11">Building Perl Extensions under Windows</a>
<ul>
<li><a href="Perl5.html#n12">Running SWIG from Developer Studio</a>
<li><a href="Perl5.html#n13">Using other compilers</a>
</ul>
<li><a href="Perl5.html#n14">The low-level interface</a>
<ul>
<li><a href="Perl5.html#n15">Functions</a>
<li><a href="Perl5.html#n16">Global variables</a>
<li><a href="Perl5.html#n17">Constants</a>
<li><a href="Perl5.html#n18">Pointers</a>
<li><a href="Perl5.html#n19">Structures</a>
<li><a href="Perl5.html#n20">C++ classes</a>
<li><a href="Perl5.html#n21">C++ classes and type-checking</a>
<li><a href="Perl5.html#n22">C++ overloaded functions</a>
<li><a href="Perl5.html#n23">Operators</a>
<li><a href="Perl5.html#n24">Modules and packages</a>
</ul>
<li><a href="Perl5.html#n25">Input and output parameters</a>
<li><a href="Perl5.html#n26">Exception handling </a>
<li><a href="Perl5.html#n27">Remapping datatypes with typemaps</a>
<ul>
<li><a href="Perl5.html#n28">A simple typemap example</a>
<li><a href="Perl5.html#n29">Perl5 typemaps</a>
<li><a href="Perl5.html#n30">Typemap variables</a>
<li><a href="Perl5.html#n31">Useful functions</a>
</ul>
<li><a href="Perl5.html#n32">Typemap Examples</a>
<ul>
<li><a href="Perl5.html#n33">Converting a Perl5 array to a char ** </a>
<li><a href="Perl5.html#n34">Return values </a>
<li><a href="Perl5.html#n35">Returning values from arguments</a>
<li><a href="Perl5.html#n36">Accessing array structure members</a>
<li><a href="Perl5.html#n37">Turning Perl references into C pointers</a>
<li><a href="Perl5.html#n38">Pointer handling</a>
</ul>
<li><a href="Perl5.html#n39">Proxy classes</a>
<ul>
<li><a href="Perl5.html#n40">Preliminaries</a>
<li><a href="Perl5.html#n41">Object Ownership</a>
<li><a href="Perl5.html#n42">Nested Objects</a>
<li><a href="Perl5.html#n43">Shadow Functions</a>
<li><a href="Perl5.html#n44">Inheritance</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Php.html">20 SWIG and PHP4</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Php.html#n2">Preliminaries</a>
<li><a href="Php.html#n3">Building PHP4 Extensions</a>
<ul>
<li><a href="Php.html#n4">Building a loadable extension</a>
<li><a href="Php.html#n5">Basic PHP4 interface</a>
<li><a href="Php.html#n6">Functions</a>
<li><a href="Php.html#n7">Global Variables</a>
<li><a href="Php.html#n8">Pointers </a>
<li><a href="Php.html#n9">Structures and C++ classes</a>
<li><a href="Php.html#n10">Constants</a>
<li><a href="Php.html#n11">Shadow classes</a>
<li><a href="Php.html#n12">Constructors and Destructers</a>
<li><a href="Php.html#n13">Static Member Variables</a>
<li><a href="Php.html#n14">PHP4 Pragmas</a>
<li><a href="Php.html#n15">Building extensions into php</a>
<li><a href="Php.html#n16">To be furthered...</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Python.html">21 SWIG and Python</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Python.html#n2">Overview</a>
<li><a href="Python.html#n3">Preliminaries</a>
<ul>
<li><a href="Python.html#n4">Running SWIG</a>
<li><a href="Python.html#n5">Getting the right header files</a>
<li><a href="Python.html#n6">Compiling a dynamic module</a>
<li><a href="Python.html#n7">Using distutils</a>
<li><a href="Python.html#n8">Static linking</a>
<li><a href="Python.html#n9">Using your module</a>
<li><a href="Python.html#n10">Compilation of C++ extensions</a>
<li><a href="Python.html#n11">Compiling for 64-bit platforms</a>
<li><a href="Python.html#n12">Building Python Extensions under Windows</a>
</ul>
<li><a href="Python.html#n13">A tour of basic C/C++ wrapping</a>
<ul>
<li><a href="Python.html#n14">Modules</a>
<li><a href="Python.html#n15">Functions</a>
<li><a href="Python.html#n16">Global variables</a>
<li><a href="Python.html#n17">Constants and enums</a>
<li><a href="Python.html#n18">Pointers</a>
<li><a href="Python.html#n19">Structures</a>
<li><a href="Python.html#n20">C++ classes</a>
<li><a href="Python.html#n21">C++ inheritance</a>
<li><a href="Python.html#n22">Pointers, references, values, and arrays</a>
<li><a href="Python.html#n23">C++ overloaded functions</a>
<li><a href="Python.html#n24">C++ operators</a>
<li><a href="Python.html#n25">C++ namespaces</a>
<li><a href="Python.html#n26">C++ templates</a>
<li><a href="Python.html#n27">C++ Smart Pointers</a>
</ul>
<li><a href="Python.html#n28">Further details on the Python class interface</a>
<ul>
<li><a href="Python.html#n29">Proxy classes</a>
<li><a href="Python.html#n30">Memory management</a>
<li><a href="Python.html#n31">Python 2.2 and classic classes</a>
</ul>
<li><a href="Python.html#n32">Cross language polymorphism (experimental)</a>
<ul>
<li><a href="Python.html#n33">Enabling directors</a>
<li><a href="Python.html#n34">Director classes</a>
<li><a href="Python.html#n35">Ownership and object destruction</a>
<li><a href="Python.html#n36">Exception unrolling</a>
<li><a href="Python.html#n37">Overhead and code bloat</a>
<li><a href="Python.html#n38">Typemaps</a>
<li><a href="Python.html#n39">Miscellaneous</a>
</ul>
<li><a href="Python.html#n40">Common customization features</a>
<ul>
<li><a href="Python.html#n41">C/C++ helper functions</a>
<li><a href="Python.html#n42">Adding additional Python code</a>
<li><a href="Python.html#n43">Class extension with %extend</a>
<li><a href="Python.html#n44">Exception handling with %exception</a>
</ul>
<li><a href="Python.html#n45">Tips and techniques</a>
<ul>
<li><a href="Python.html#n46">Input and output parameters</a>
<li><a href="Python.html#n47">Simple pointers</a>
<li><a href="Python.html#n48">Unbounded C Arrays</a>
<li><a href="Python.html#n49">String handling</a>
<li><a href="Python.html#n50">Arrays</a>
<li><a href="Python.html#n51">String arrays</a>
<li><a href="Python.html#n52">STL wrappers</a>
</ul>
<li><a href="Python.html#n53">Typemaps</a>
<ul>
<li><a href="Python.html#n54">What is a typemap?</a>
<li><a href="Python.html#n55">Python typemaps</a>
<li><a href="Python.html#n56">Typemap variables</a>
<li><a href="Python.html#n57">Useful Python Functions</a>
</ul>
<li><a href="Python.html#n58">Typemap Examples</a>
<ul>
<li><a href="Python.html#n59">Converting Python list to a char ** </a>
<li><a href="Python.html#n60">Expanding a Python object into multiple arguments</a>
<li><a href="Python.html#n61">Using typemaps to return arguments</a>
<li><a href="Python.html#n62">Mapping Python tuples into small arrays</a>
<li><a href="Python.html#n63">Mapping sequences to C arrays</a>
<li><a href="Python.html#n64">Pointer handling</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Ruby.html">22 SWIG and Ruby</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Ruby.html#n2">Preliminaries</a>
<ul>
<li><a href="Ruby.html#n3">Running SWIG</a>
<li><a href="Ruby.html#n4">Getting the right header files</a>
<li><a href="Ruby.html#n5">Compiling a dynamic module</a>
<li><a href="Ruby.html#n6">Using your module</a>
<li><a href="Ruby.html#n7">Static linking</a>
<li><a href="Ruby.html#n8">Compilation of C++ extensions</a>
</ul>
<li><a href="Ruby.html#n9">Building Ruby Extensions under Windows 95/NT</a>
<ul>
<li><a href="Ruby.html#n10">Running SWIG from Developer Studio</a>
</ul>
<li><a href="Ruby.html#n11">The Ruby-to-C/C++ Mapping</a>
<ul>
<li><a href="Ruby.html#n12">Modules</a>
<li><a href="Ruby.html#n13">Functions</a>
<li><a href="Ruby.html#n14">Variable Linking</a>
<li><a href="Ruby.html#n15">Constants</a>
<li><a href="Ruby.html#n16">Pointers</a>
<li><a href="Ruby.html#n17">Structures</a>
<li><a href="Ruby.html#n18">C++ classes</a>
<li><a href="Ruby.html#n19">C++ Inheritance</a>
<li><a href="Ruby.html#n20">C++ Overloaded Functions</a>
<li><a href="Ruby.html#n21">C++ Operators</a>
<li><a href="Ruby.html#n22">C++ namespaces</a>
<li><a href="Ruby.html#n23">C++ templates</a>
<li><a href="Ruby.html#n24">C++ Smart Pointers</a>
<li><a href="Ruby.html#n25">Cross-Language Polymorphism</a>
<ul>
<li><a href="Ruby.html#n26">Exception Unrolling</a>
</ul>
</ul>
<li><a href="Ruby.html#n27">Input and output parameters</a>
<li><a href="Ruby.html#n28">Simple exception handling </a>
<li><a href="Ruby.html#n29">Typemaps</a>
<ul>
<li><a href="Ruby.html#n30">What is a typemap?</a>
<li><a href="Ruby.html#n31">Ruby typemaps</a>
<li><a href="Ruby.html#n32">Typemap variables</a>
<li><a href="Ruby.html#n33">Useful Functions</a>
<ul>
<li><a href="Ruby.html#n34">C Datatypes to Ruby Objects</a>
<li><a href="Ruby.html#n35">Ruby Objects to C Datatypes</a>
<li><a href="Ruby.html#n36">Macros for VALUE</a>
<li><a href="Ruby.html#n37">Exceptions</a>
<li><a href="Ruby.html#n38">Iterators</a>
</ul>
<li><a href="Ruby.html#n39">Typemap Examples</a>
<li><a href="Ruby.html#n40">Converting a Ruby array to a char **</a>
<li><a href="Ruby.html#n41">Collecting arguments in a hash</a>
<li><a href="Ruby.html#n42">Pointer handling</a>
<ul>
<li><a href="Ruby.html#n43">Ruby Datatype Wrapping</a>
</ul>
</ul>
<li><a href="Ruby.html#n44">Operator overloading</a>
<ul>
<li><a href="Ruby.html#n45">Example: STL Vector to Ruby Array</a>
</ul>
<li><a href="Ruby.html#n46">Advanced Topics</a>
<ul>
<li><a href="Ruby.html#n47">Creating Multi-Module Packages</a>
<li><a href="Ruby.html#n48">Defining Aliases</a>
<li><a href="Ruby.html#n49">Predicate Methods</a>
<li><a href="Ruby.html#n50">Specifying Mixin Modules</a>
<li><a href="Ruby.html#n51">Interacting with Ruby's Garbage Collector</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Tcl.html">23 SWIG and Tcl</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Tcl.html#n2">Preliminaries</a>
<ul>
<li><a href="Tcl.html#n3">Getting the right header files</a>
<li><a href="Tcl.html#n4">Compiling a dynamic module</a>
<li><a href="Tcl.html#n5">Static linking</a>
<li><a href="Tcl.html#n6">Using your module</a>
<li><a href="Tcl.html#n7">Compilation of C++ extensions</a>
<li><a href="Tcl.html#n8">Compiling for 64-bit platforms</a>
<li><a href="Tcl.html#n9">Setting a package prefix</a>
<li><a href="Tcl.html#n10">Using namespaces</a>
</ul>
<li><a href="Tcl.html#n11">Building Tcl/Tk Extensions under Windows 95/NT</a>
<ul>
<li><a href="Tcl.html#n12">Running SWIG from Developer Studio</a>
<li><a href="Tcl.html#n13">Using NMAKE</a>
</ul>
<li><a href="Tcl.html#n14">A tour of basic C/C++ wrapping</a>
<ul>
<li><a href="Tcl.html#n15">Modules</a>
<li><a href="Tcl.html#n16">Functions</a>
<li><a href="Tcl.html#n17">Global variables</a>
<li><a href="Tcl.html#n18">Constants and enums</a>
<li><a href="Tcl.html#n19">Pointers</a>
<li><a href="Tcl.html#n20">Structures</a>
<li><a href="Tcl.html#n21">C++ classes</a>
<li><a href="Tcl.html#n22">C++ inheritance</a>
<li><a href="Tcl.html#n23">Pointers, references, values, and arrays</a>
<li><a href="Tcl.html#n24">C++ overloaded functions</a>
<li><a href="Tcl.html#n25">C++ operators</a>
<li><a href="Tcl.html#n26">C++ namespaces</a>
<li><a href="Tcl.html#n27">C++ templates</a>
<li><a href="Tcl.html#n28">C++ Smart Pointers</a>
</ul>
<li><a href="Tcl.html#n29">Further details on the Tcl class interface</a>
<ul>
<li><a href="Tcl.html#n30">Proxy classes</a>
<li><a href="Tcl.html#n31">Memory management</a>
</ul>
<li><a href="Tcl.html#n32">Input and output parameters</a>
<li><a href="Tcl.html#n33">Exception handling </a>
<li><a href="Tcl.html#n34">Typemaps</a>
<ul>
<li><a href="Tcl.html#n35">What is a typemap?</a>
<li><a href="Tcl.html#n36">Tcl typemaps</a>
<li><a href="Tcl.html#n37">Typemap variables</a>
<li><a href="Tcl.html#n38">Converting a Tcl list to a char ** </a>
<li><a href="Tcl.html#n39">Returning values in arguments</a>
<li><a href="Tcl.html#n40">Useful functions</a>
<li><a href="Tcl.html#n41">Standard typemaps</a>
<li><a href="Tcl.html#n42">Pointer handling</a>
</ul>
<li><a href="Tcl.html#n43">Turning a SWIG module into a Tcl Package.</a>
<li><a href="Tcl.html#n44">Building new kinds of Tcl interfaces (in Tcl)</a>
<ul>
<li><a href="Tcl.html#n45">Shadow classes</a>
</ul>
</ul>
<!-- INDEX -->
<h3><a href="Chicken.html">24 SWIG and Chicken</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Chicken.html#n2">Preliminaries</a>
<ul>
<li><a href="Chicken.html#n3">Running SWIG in C mode</a>
<li><a href="Chicken.html#n4">Running SWIG in C++ mode</a>
</ul>
<li><a href="Chicken.html#n5">Code Generation</a>
<ul>
<li><a href="Chicken.html#n6">Naming Conventions</a>
<li><a href="Chicken.html#n7">Modules and Prefixes</a>
<li><a href="Chicken.html#n8">Constants and Variables</a>
<li><a href="Chicken.html#n9">Functions</a>
</ul>
<li><a href="Chicken.html#n10">TinyCLOS</a>
<li><a href="Chicken.html#n11">Compilation</a>
<li><a href="Chicken.html#n12">Linkage</a>
<ul>
<li><a href="Chicken.html#n13">Customized Interpreter</a>
</ul>
<li><a href="Chicken.html#n14">Typemaps</a>
<li><a href="Chicken.html#n15">Pointers</a>
<li><a href="Chicken.html#n16">Unsupported features</a>
</ul>
<!-- INDEX -->
<h3><a href="Extending.html">25 Extending SWIG</a></h3>
<!-- INDEX -->
<ul>
<li><a href="Extending.html#n2">Introduction</a>
<li><a href="Extending.html#n3">Prerequisites</a>
<li><a href="Extending.html#n4">The Big Picture</a>
<li><a href="Extending.html#n5">Execution Model</a>
<ul>
<li><a href="Extending.html#n6">Preprocessing</a>
<li><a href="Extending.html#n7">Parsing</a>
<li><a href="Extending.html#n8">Parse Trees</a>
<li><a href="Extending.html#n9">Attribute namespaces</a>
<li><a href="Extending.html#n10">Symbol Tables</a>
<li><a href="Extending.html#n11">The %feature directive</a>
<li><a href="Extending.html#n12">Code Generation</a>
<li><a href="Extending.html#n13">SWIG and XML</a>
</ul>
<li><a href="Extending.html#n14">Primitive Data Structures</a>
<ul>
<li><a href="Extending.html#n15">Strings</a>
<li><a href="Extending.html#n16">Hashes</a>
<li><a href="Extending.html#n17">Lists</a>
<li><a href="Extending.html#n18">Common operations</a>
<li><a href="Extending.html#n19">Iterating over Lists and Hashes</a>
<li><a href="Extending.html#n20">I/O</a>
</ul>
<li><a href="Extending.html#n21">Navigating and manipulating parse trees</a>
<li><a href="Extending.html#n22">Working with attributes</a>
<li><a href="Extending.html#n23">Type system</a>
<ul>
<li><a href="Extending.html#n24">String encoding of types</a>
<li><a href="Extending.html#n25">Type construction</a>
<li><a href="Extending.html#n26">Type tests</a>
<li><a href="Extending.html#n27">Typedef and inheritance</a>
<li><a href="Extending.html#n28">Lvalues</a>
<li><a href="Extending.html#n29">Output functions</a>
</ul>
<li><a href="Extending.html#n30">Parameters</a>
<li><a href="Extending.html#n31">Writing a Language Module</a>
<ul>
<li><a href="Extending.html#n32">Execution model</a>
<li><a href="Extending.html#n33">Starting out</a>
<li><a href="Extending.html#n34">Command line options</a>
<li><a href="Extending.html#n35">Configuration and preprocessing</a>
<li><a href="Extending.html#n36">Entry point to code generation</a>
<li><a href="Extending.html#n37">Module I/O and wrapper skeleton</a>
<li><a href="Extending.html#n38">Low-level code generators</a>
<li><a href="Extending.html#n39">Configuration files</a>
<li><a href="Extending.html#n40">Runtime support</a>
<li><a href="Extending.html#n41">Standard library files</a>
<li><a href="Extending.html#n42">Examples and test cases</a>
<li><a href="Extending.html#n43">Documentation</a>
</ul>
<li><a href="Extending.html#n44">Typemaps</a>
<ul>
<li><a href="Extending.html#n45">Proxy classes</a>
</ul>
<li><a href="Extending.html#n46">Guide to parse tree nodes</a>
</ul>
<!-- INDEX -->
</BODY>
</HTML>