]> git.saurik.com Git - wxWidgets.git/commitdiff
added the rungccxml.sh script and the setup_gccxml.h file to make it easier to genera...
authorFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Wed, 26 Mar 2008 16:40:54 +0000 (16:40 +0000)
committerFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Wed, 26 Mar 2008 16:40:54 +0000 (16:40 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@52837 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

configure
configure.in
include/wx/platform.h
include/wx/setup_gccxml.h [new file with mode: 0644]
utils/ifacecheck/gccxml.dtd [new file with mode: 0644]
utils/ifacecheck/gccxml.xsl [new file with mode: 0644]
utils/ifacecheck/rungccxml.sh.in [new file with mode: 0755]
utils/ifacecheck/src/gccxml.dtd [deleted file]
utils/ifacecheck/src/gccxml.xsl [deleted file]

index ee2fb41cf7dc6835d194f8c6aebcdf3631a82ed5..17a057b2132cdc9c67f057a22f72f1c2c27e3a9b 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,5 +1,5 @@
 #! /bin/sh
-# From configure.in Id: configure.in 51895 2008-02-18 22:50:15Z DE .
+# From configure.in Id: configure.in 52015 2008-02-22 22:27:39Z RD .
 # Guess values for system-dependent variables and create Makefiles.
 # Generated by GNU Autoconf 2.61 for wxWidgets 2.9.0.
 #
@@ -50147,6 +50147,9 @@ ac_config_files="$ac_config_files lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.
 ac_config_files="$ac_config_files lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in"
 
 
+ac_config_files="$ac_config_files utils/ifacecheck/rungccxml.sh"
+
+
 if test "$wx_cv_version_script" = "yes"; then
     ac_config_files="$ac_config_files version-script"
 
@@ -50917,6 +50920,7 @@ do
     "rcdefs.h") CONFIG_COMMANDS="$CONFIG_COMMANDS rcdefs.h" ;;
     "lib/wx/config/${TOOLCHAIN_FULLNAME}") CONFIG_FILES="$CONFIG_FILES lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in" ;;
     "lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}") CONFIG_FILES="$CONFIG_FILES lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in" ;;
+    "utils/ifacecheck/rungccxml.sh") CONFIG_FILES="$CONFIG_FILES utils/ifacecheck/rungccxml.sh" ;;
     "version-script") CONFIG_FILES="$CONFIG_FILES version-script" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
     "wx-config") CONFIG_COMMANDS="$CONFIG_COMMANDS wx-config" ;;
@@ -51956,6 +51960,7 @@ echo "$as_me: executing $ac_file commands" >&6;}
          ;;
     "lib/wx/config/${TOOLCHAIN_FULLNAME}":F)  chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME}  ;;
     "lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}":F)  chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}  ;;
+    "utils/ifacecheck/rungccxml.sh":F)  chmod +x utils/ifacecheck/rungccxml.sh  ;;
     "wx-config":C)  rm -f wx-config
                      ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
                     ;;
index f378c77574fe5a432539dfd06cdb9118c2d76f98..0b0a7c4da6ad261cac0008f3fee813718fece77e 100644 (file)
@@ -4549,7 +4549,7 @@ if test "$wxUSE_TARSTREAM" = "yes"; then
                     getgrgid_r(0, &grp, buf, sizeof(buf), &pgrp)
                    ]])
 fi
+
 fi
 
 
@@ -7846,6 +7846,11 @@ AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.
                 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
                 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
 
+dnl this is used to run ifacecheck with the same flags used by the compiler
+dnl for the real compilation:
+AC_CONFIG_FILES([ utils/ifacecheck/rungccxml.sh ],
+                [ chmod +x utils/ifacecheck/rungccxml.sh ])
+
 if test "$wx_cv_version_script" = "yes"; then
     AC_CONFIG_FILES(version-script)
 fi
index 4f17f1ff4a0ed1f2cbe38f2e02d3355ff8ad110d..26115817ccf63705e428db94ea9eee98b3c2cdae 100644 (file)
    Note that it must be included before defining hardware symbols below as they
    could be already defined by configure
  */
-#include "wx/setup.h"
+#ifdef __GCCXML__
+    /*
+        we're using gccxml to create an XML representation of the entire
+        wxWidgets interface; pass it a special setup.h file
+    */
+    #include "wx/setup_gccxml.h"
+#else
+    #include "wx/setup.h"
+#endif
 
 /*
    Hardware platform detection.
 
 /*
    test for old versions of Borland C, normally need at least 5.82, Turbo
-   explorer, available for free at http://www.turboexplorer.com/downloads 
+   explorer, available for free at http://www.turboexplorer.com/downloads
 */
 #if defined(__BORLANDC__) && (__BORLANDC__ < 0x550)
 #   error "wxWidgets requires a newer version of Borland, we recommend upgrading to 5.82 (Turbo Explorer). You may at your own risk remove this line and try building but be prepared to get build errors."
diff --git a/include/wx/setup_gccxml.h b/include/wx/setup_gccxml.h
new file mode 100644 (file)
index 0000000..2a96e01
--- /dev/null
@@ -0,0 +1,1154 @@
+///////////////////////////////////////////////////////////////////////////////
+// Name:        wx/setup_gccxml.h
+// Purpose:     setup.h settings for gccxml
+// Author:      Francesco Montorsi
+// Modified by:
+// RCS-ID:      $Id$
+// Copyright:   (c) Francesco Montorsi
+// Licence:     wxWindows licence
+///////////////////////////////////////////////////////////////////////////////
+
+
+/* This define (__WX_SETUP_H__) is used both to ensure setup.h is included
+ * only once and to indicate that we are building using configure. */
+#ifndef __WX_SETUP_H__
+#define __WX_SETUP_H__
+
+/* fill in with the string wxGetOsDescription() will return */
+#define WXWIN_OS_DESCRIPTION "Linux 2.6.24-12-386 i686"
+
+/* the installation location prefix from configure */
+#define wxINSTALL_PREFIX "/usr/local"
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+/* #undef gid_t */
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+/* #undef mode_t */
+
+/* Define to `long' if <sys/types.h> doesn't define.  */
+/* #undef off_t */
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+/* #undef pid_t */
+
+/* Define to `unsigned' if <sys/types.h> doesn't define.  */
+/* #undef size_t */
+
+/* Define if ssize_t type is available.  */
+#define HAVE_SSIZE_T 1
+
+/* Define if you have the ANSI C header files.  */
+#define STDC_HEADERS 1
+
+/* Define this to get extra features from GNU libc. */
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE 1
+#endif
+
+/* Define to `int' if <sys/types.h> doesn't define.  */
+/* #undef uid_t */
+
+/* Define if your processor stores words with the most significant
+   byte first (like Motorola and SPARC, unlike Intel and VAX).  */
+/* #undef WORDS_BIGENDIAN */
+
+/* Define this if your version of GTK+ is greater than 1.2 */
+#define __WXGTK12__ 1
+
+/* Define this if your version of GTK+ is greater than 1.2.7 */
+/* #undef __WXGTK127__ */
+
+/* Define this if your version of GTK+ is greater than 2.0 */
+#define __WXGTK20__ 1
+
+/* Define this if your version of GTK+ is greater than 2.6 */
+#define __WXGTK26__ 1
+
+/* Define this if your version of GTK+ is greater than 2.10 */
+#define __WXGTK210__ 1
+
+/* Define this if you want to use GPE features */
+/* #undef __WXGPE__ */
+
+/* Define this if your version of Motif is greater than 2.0 */
+/* #undef __WXMOTIF20__ */
+
+/* Define this if you are using Lesstif */
+/* #undef __WXLESSTIF__ */
+
+/*
+ * Define to 1 for Unix[-like] system
+ */
+#define wxUSE_UNIX 1
+
+#define __UNIX__ 1
+
+/* #undef __AIX__ */
+/* #undef __BSD__ */
+/* #undef __DARWIN__ */
+/* #undef __EMX__ */
+/* #undef __FREEBSD__ */
+/* #undef __HPUX__ */
+#define __LINUX__ 1
+/* #undef __NETBSD__ */
+/* #undef __OPENBSD__ */
+/* #undef __OSF__ */
+/* #undef __SGI__ */
+/* #undef __SOLARIS__ */
+/* #undef __SUN__ */
+/* #undef __SUNOS__ */
+/* #undef __SVR4__ */
+/* #undef __SYSV__ */
+/* #undef __ULTRIX__ */
+/* #undef __UNIXWARE__ */
+/* #undef __VMS__ */
+
+/* #undef __IA64__ */
+/* #undef __ALPHA__ */
+
+/* NanoX (with wxX11) */
+#define wxUSE_NANOX 0
+
+/* PowerPC Darwin & Mac OS X */
+/* #undef __POWERPC__ */
+/* #undef TARGET_CARBON */
+
+/* Hack to make IOGraphicsTypes.h not define Point conflicting with MacTypes */
+/* #undef __Point__ */
+
+/* MS-DOS with DJGPP */
+/* #undef __DOS__ */
+
+/* Stupid hack; __WINDOWS__ clashes with wx/defs.h */
+#ifndef __WINDOWS__
+/* #undef __WINDOWS__ */
+#endif
+
+#ifndef __WIN32__
+/* #undef __WIN32__ */
+#endif
+#ifndef __GNUWIN32__
+/* #undef __GNUWIN32__ */
+#endif
+#ifndef STRICT
+/* #undef STRICT */
+#endif
+#ifndef WINVER
+/* #undef WINVER */
+#endif
+
+/* OS/2 with EMX */
+/* #undef __OS2__ */
+
+/* --- start common options --- */
+
+#ifndef wxUSE_GUI
+    #define wxUSE_GUI 1
+#endif
+
+
+#define WXWIN_COMPATIBILITY_2_6 0
+
+#define WXWIN_COMPATIBILITY_2_8 1
+
+#define wxDIALOG_UNIT_COMPATIBILITY   0
+
+
+
+#define wxUSE_DEBUG_CONTEXT 0
+
+#define wxUSE_MEMORY_TRACING 0
+
+#define wxUSE_GLOBAL_MEMORY_OPERATORS 0
+
+#define wxUSE_DEBUG_NEW_ALWAYS 0
+
+#define wxUSE_ON_FATAL_EXCEPTION 1
+
+#define wxUSE_STACKWALKER 1
+
+#define wxUSE_DEBUGREPORT 1
+
+
+#ifndef wxUSE_UNICODE
+    #define wxUSE_UNICODE 1
+#endif
+
+#define wxUSE_WCHAR_T 1
+
+
+#define wxUSE_EXCEPTIONS 1
+
+#define wxUSE_EXTENDED_RTTI 0
+
+#define wxUSE_STL 0
+
+#define wxUSE_LOG 1
+
+#define wxUSE_LOGWINDOW 1
+
+#define wxUSE_LOGGUI 1
+
+#define wxUSE_LOG_DIALOG 1
+
+#define wxUSE_CMDLINE_PARSER 1
+
+#define wxUSE_THREADS 1
+
+#define wxUSE_WEAKREF 1
+
+#define wxUSE_STREAMS 1
+
+#if defined(__DMC__) || defined(__WATCOMC__) \
+        || (defined(_MSC_VER) && _MSC_VER < 1200)
+    #define wxUSE_STD_DEFAULT  0
+#else
+    #define wxUSE_STD_DEFAULT  0
+#endif
+
+#define wxUSE_STD_IOSTREAM 1
+
+#define wxUSE_STD_STRING 1
+
+#define wxUSE_PRINTF_POS_PARAMS 1
+
+
+#define wxUSE_LONGLONG 1
+
+#define wxUSE_BASE64 1
+
+#define wxUSE_CONSOLE_EVENTLOOP 1
+
+#define wxUSE_FILE 1
+#define wxUSE_FFILE 1
+
+#define wxUSE_FSVOLUME      0
+
+#define wxUSE_STDPATHS 1
+
+#define wxUSE_TEXTBUFFER 1
+
+#define wxUSE_TEXTFILE 1
+
+#define wxUSE_INTL 1
+
+#define wxUSE_XLOCALE 1
+
+#define wxUSE_DATETIME 1
+
+#define wxUSE_TIMER 1
+
+#define wxUSE_STOPWATCH 1
+
+#define wxUSE_CONFIG 1
+
+#define wxUSE_CONFIG_NATIVE 1
+
+#define wxUSE_DIALUP_MANAGER 1
+
+#define wxUSE_DYNLIB_CLASS 1
+
+#define wxUSE_DYNAMIC_LOADER 1
+
+#define wxUSE_SOCKETS 1
+
+#define wxUSE_IPV6          0
+
+#define wxUSE_FILESYSTEM 1
+
+#define wxUSE_FS_ZIP 1
+
+#define wxUSE_FS_ARCHIVE 1
+
+#define wxUSE_FS_INET 1
+
+#define wxUSE_ARCHIVE_STREAMS 1
+
+#define wxUSE_ZIPSTREAM 1
+
+#define wxUSE_TARSTREAM 1
+
+#define wxUSE_ZLIB 1
+
+#define wxUSE_APPLE_IEEE 1
+
+#define wxUSE_JOYSTICK 1
+
+#define wxUSE_FONTENUM 1
+
+#define wxUSE_FONTMAP 1
+
+#define wxUSE_MIMETYPE 1
+
+#define wxUSE_PROTOCOL 1
+
+#define wxUSE_PROTOCOL_FILE 1
+#define wxUSE_PROTOCOL_FTP 1
+#define wxUSE_PROTOCOL_HTTP 1
+
+#define wxUSE_URL 1
+
+#define wxUSE_URL_NATIVE 0
+
+#define wxUSE_VARIANT 1
+
+#define wxUSE_REGEX 1
+
+#define wxUSE_SYSTEM_OPTIONS 1
+
+#define wxUSE_SOUND 1
+
+#define wxUSE_MEDIACTRL     0
+
+#define wxUSE_GSTREAMER    0
+
+#define wxUSE_XRC 1
+
+#define wxUSE_XML 1
+
+#define wxUSE_AUI 1
+
+#define wxUSE_STC 1
+
+
+#ifndef wxUSE_GRAPHICS_CONTEXT
+#define wxUSE_GRAPHICS_CONTEXT 0
+#endif
+
+
+#define wxUSE_CONTROLS 1
+
+#define wxUSE_POPUPWIN 1
+
+#define wxUSE_TIPWINDOW 1
+
+#define wxUSE_ANIMATIONCTRL 1
+#define wxUSE_BUTTON 1
+#define wxUSE_BMPBUTTON 1
+#define wxUSE_CALENDARCTRL 1
+#define wxUSE_CHECKBOX 1
+#define wxUSE_CHECKLISTBOX 1
+#define wxUSE_CHOICE 1
+#define wxUSE_COLLPANE 1
+#define wxUSE_COLOURPICKERCTRL 1
+#define wxUSE_COMBOBOX 1
+#define wxUSE_DATAVIEWCTRL 1
+#define wxUSE_DATEPICKCTRL 1
+#define wxUSE_DIRPICKERCTRL 1
+#define wxUSE_EDITABLELISTBOX 1
+#define wxUSE_FILECTRL 1
+#define wxUSE_FILEPICKERCTRL 1
+#define wxUSE_FONTPICKERCTRL 1
+#define wxUSE_GAUGE 1
+#define wxUSE_HYPERLINKCTRL 1
+#define wxUSE_LISTBOX 1
+#define wxUSE_LISTCTRL 1
+#define wxUSE_RADIOBOX 1
+#define wxUSE_RADIOBTN 1
+#define wxUSE_SCROLLBAR 1
+#define wxUSE_SEARCHCTRL 1
+#define wxUSE_SLIDER 1
+#define wxUSE_SPINBTN 1
+#define wxUSE_SPINCTRL 1
+#define wxUSE_STATBOX 1
+#define wxUSE_STATLINE 1
+#define wxUSE_STATTEXT 1
+#define wxUSE_STATBMP 1
+#define wxUSE_TEXTCTRL 1
+#define wxUSE_TOGGLEBTN 1
+#define wxUSE_TREECTRL 1
+
+#define wxUSE_STATUSBAR 1
+
+#define wxUSE_NATIVE_STATUSBAR 1
+
+#define wxUSE_TOOLBAR 1
+#define wxUSE_TOOLBAR_NATIVE 1
+
+#define wxUSE_NOTEBOOK 1
+
+#define wxUSE_LISTBOOK 1
+
+#define wxUSE_CHOICEBOOK 1
+
+#define wxUSE_TREEBOOK 1
+
+#define wxUSE_TOOLBOOK 1
+
+#define wxUSE_TAB_DIALOG    0
+
+#define wxUSE_TASKBARICON 1
+
+#define wxUSE_GRID 1
+
+#define wxUSE_MINIFRAME 1
+
+#define wxUSE_COMBOCTRL 1
+
+#define wxUSE_ODCOMBOBOX 1
+
+#define wxUSE_BITMAPCOMBOBOX 1
+
+
+#define wxUSE_ACCEL 1
+
+#define wxUSE_HOTKEY 0
+
+#define wxUSE_CARET 1
+
+#define wxUSE_DISPLAY 1
+
+#define wxUSE_GEOMETRY 1
+
+#define wxUSE_IMAGLIST 1
+
+#define wxUSE_MENUS 1
+
+#define wxUSE_NOTIFICATION_MESSAGE 1
+
+#define wxUSE_SASH 1
+
+#define wxUSE_SPLITTER 1
+
+#define wxUSE_TOOLTIPS 1
+
+#define wxUSE_VALIDATORS 1
+
+#ifdef __WXMSW__
+#define wxUSE_AUTOID_MANAGEMENT 0
+#else
+#define wxUSE_AUTOID_MANAGEMENT 0
+#endif
+
+
+#define wxUSE_COMMON_DIALOGS 0
+
+#define wxUSE_BUSYINFO 1
+
+#define wxUSE_CHOICEDLG 1
+
+#define wxUSE_COLOURDLG 1
+
+#define wxUSE_DIRDLG 1
+
+
+#define wxUSE_FILEDLG 1
+
+#define wxUSE_FINDREPLDLG 1
+
+#define wxUSE_FONTDLG 1
+
+#define wxUSE_MSGDLG 1
+
+#define wxUSE_PROGRESSDLG 1
+
+#define wxUSE_STARTUP_TIPS 1
+
+#define wxUSE_TEXTDLG 1
+
+#define wxUSE_NUMBERDLG 1
+
+#define wxUSE_SPLASH 1
+
+#define wxUSE_WIZARDDLG 1
+
+#define wxUSE_ABOUTDLG 1
+
+
+#define wxUSE_METAFILE              0
+#define wxUSE_ENH_METAFILE          0
+#define wxUSE_WIN_METAFILES_ALWAYS  0
+
+
+#define wxUSE_MDI 1
+
+#define wxUSE_DOC_VIEW_ARCHITECTURE 1
+
+#define wxUSE_MDI_ARCHITECTURE 1
+
+#define wxUSE_PRINTING_ARCHITECTURE 1
+
+#define wxUSE_HTML 1
+
+#define wxUSE_GLCANVAS       0
+
+#define wxUSE_RICHTEXT 1
+
+
+#define wxUSE_CLIPBOARD 1
+
+#define wxUSE_DATAOBJ 1
+
+#define wxUSE_DRAG_AND_DROP 1
+
+#define wxUSE_ACCESSIBILITY 0
+
+
+#define wxUSE_SNGLINST_CHECKER 1
+
+#define wxUSE_DRAGIMAGE 1
+
+#define wxUSE_IPC 1
+
+#define wxUSE_HELP 1
+
+
+#define wxUSE_MS_HTML_HELP 0
+
+
+#define wxUSE_WXHTML_HELP 1
+
+#define wxUSE_CONSTRAINTS 1
+
+
+#define wxUSE_SPLINES 1
+
+
+#define wxUSE_MOUSEWHEEL 1
+
+
+
+#define wxUSE_POSTSCRIPT 1
+
+#define wxUSE_AFM_FOR_POSTSCRIPT 1
+
+#define wxUSE_SVG 1
+
+
+#define REMOVE_UNUSED_ARG   0
+
+#define wxUSE_IOSTREAMH     0
+
+
+
+#define wxUSE_IMAGE 1
+
+#define wxUSE_LIBPNG 1
+
+#define wxUSE_LIBJPEG 1
+
+#define wxUSE_LIBTIFF 1
+
+#define wxUSE_TGA 1
+
+#define wxUSE_GIF 1
+
+#define wxUSE_PNM 1
+
+#define wxUSE_PCX 1
+
+#define wxUSE_IFF 1
+
+#define wxUSE_XPM 1
+
+#define wxUSE_ICO_CUR 1
+
+#define wxUSE_PALETTE 1
+
+
+#define wxUSE_ALL_THEMES    0
+
+#define wxUSE_THEME_GTK     0
+#define wxUSE_THEME_METAL   0
+#define wxUSE_THEME_MONO    0
+#define wxUSE_THEME_WIN32   0
+
+
+/* --- end common options --- */
+
+/*
+ * Unix-specific options
+ */
+#define wxUSE_SELECT_DISPATCHER 1
+#define wxUSE_EPOLL_DISPATCHER 1
+
+#define wxUSE_UNICODE_UTF8 1
+#define wxUSE_UTF8_LOCALE_ONLY 0
+
+/* --- start MSW options --- */
+
+#ifndef wxUSE_UNICODE_MSLU
+    #define wxUSE_UNICODE_MSLU 0
+#endif
+
+#define wxUSE_MFC           0
+
+#define wxUSE_OLE           0
+
+#define wxUSE_OLE_AUTOMATION 0
+
+#define wxUSE_ACTIVEX 0
+
+#define wxUSE_DC_CACHEING 0
+
+#define wxUSE_WXDIB 0
+
+#define wxUSE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
+
+#define wxUSE_REGKEY 0
+
+#define wxUSE_RICHEDIT  0
+
+#define wxUSE_RICHEDIT2 0
+
+#define wxUSE_OWNER_DRAWN 0
+
+#define wxUSE_TASKBARICON_BALLOONS 0
+
+#define wxUSE_UXTHEME           0
+
+#define wxUSE_INKEDIT  0
+
+#define wxUSE_INICONF 0
+
+
+#define wxUSE_DATEPICKCTRL_GENERIC 0
+
+
+#define wxUSE_CRASHREPORT 0
+/* --- end MSW options --- */
+
+/*
+ * Supports bool type
+ */
+#define HAVE_BOOL 1
+
+/*
+ * Define if your compiler supports the explicit keyword
+ */
+#define HAVE_EXPLICIT 1
+
+/*
+ * Define if your compiler supports const_cast<>()
+ */
+#define HAVE_CONST_CAST
+
+/*
+ * Define if your compiler supports reinterpret_cast<>()
+ */
+#define HAVE_REINTERPRET_CAST
+
+/*
+ * Define if your compiler supports static_cast<>()
+ */
+#define HAVE_STATIC_CAST
+
+/*
+ * Define if your compiler has C99 va_copy
+ */
+#define HAVE_VA_COPY 1
+
+/*
+ * Define if va_list type is an array
+ */
+/* #undef VA_LIST_IS_ARRAY */
+
+/*
+ * Define if the compiler supports variadic macros
+ */
+#define HAVE_VARIADIC_MACROS 1
+
+/*
+ * Define if your compiler has std::wstring
+ */
+#define HAVE_STD_WSTRING 1
+/*
+ * Define if your compiler has compliant std::string::compare
+ */
+/* #undef HAVE_STD_STRING_COMPARE */
+/*
+ * Define if your compiler has <hash_map>
+ */
+/* #undef HAVE_HASH_MAP */
+/*
+ * Define if your compiler has <ext/hash_map>
+ */
+/* #undef HAVE_EXT_HASH_MAP */
+/*
+ * Define if your compiler has std::hash_map/hash_set
+ */
+/* #undef HAVE_STD_HASH_MAP */
+/*
+ * Define if your compiler has __gnu_cxx::hash_map/hash_set
+ */
+/* #undef HAVE_GNU_CXX_HASH_MAP */
+
+/*
+ * Define if the compiler supports simple visibility declarations.
+ */
+/* #undef HAVE_VISIBILITY */
+
+/*
+ * Define if the compiler supports GCC's atomic memory access builtins
+ */
+#define HAVE_GCC_ATOMIC_BUILTINS 1
+
+/*
+ * Define if compiler's visibility support in libstdc++ is broken
+ */
+/* #undef HAVE_BROKEN_LIBSTDCXX_VISIBILITY */
+
+/*
+ * The built-in regex supports advanced REs in additional to POSIX's basic
+ * and extended. Your system regex probably won't support this, and in this
+ * case WX_NO_REGEX_ADVANCED should be defined.
+ */
+/* #undef WX_NO_REGEX_ADVANCED */
+/*
+ * On GNU systems use re_search instead of regexec, since the latter does a
+ * strlen on the search text affecting the performance of some operations.
+ */
+/* #undef HAVE_RE_SEARCH */
+/*
+ * Use SDL for audio (Unix)
+ */
+#define wxUSE_LIBSDL 0
+
+/*
+ * Compile sound backends as plugins
+ */
+#define wxUSE_PLUGINS 0
+
+/*
+ * Use GTK print for printing under GTK+ 2.0
+ */
+#define wxUSE_GTKPRINT 1
+/*
+ * Use GNOME print for printing under GTK+ 2.0
+ */
+#define wxUSE_LIBGNOMEPRINT 0
+/*
+ * Use GNOME VFS for MIME types
+ */
+#define wxUSE_LIBGNOMEVFS 0
+/*
+ * Use the Hildon framework
+ */
+#define wxUSE_LIBHILDON 0
+/*
+ * Have glibc2
+ */
+#define wxHAVE_GLIBC2 1
+/*
+ * Use libXpm
+ */
+#define wxHAVE_LIB_XPM 0
+/*
+ * Define if you have pthread_cleanup_push/pop()
+ */
+#define wxHAVE_PTHREAD_CLEANUP 1
+
+/* compatibility */
+/*
+ * Use OpenGL
+ */
+#define wxUSE_OPENGL 0
+
+/*
+ * Use MS HTML Help via libmspack (Unix)
+ */
+#define wxUSE_LIBMSPACK 0
+
+/*
+ * Matthews garbage collection (used for MrEd?)
+ */
+#define WXGARBAGE_COLLECTION_ON 0
+
+/*
+ * wxWebKitCtrl
+ */
+#define wxUSE_WEBKIT 0
+
+/*
+ * Objective-C class name uniquifying
+ */
+#define wxUSE_OBJC_UNIQUIFYING 0
+
+/*
+ * The const keyword is being introduced more in wxWindows.
+ * You can use this setting to maintain backward compatibility.
+ * If 0: will use const wherever possible.
+ * If 1: will use const only where necessary
+ *       for precompiled headers to work.
+ * If 2: will be totally backward compatible, but precompiled
+ *       headers may not work and program size will be larger.
+ */
+#define CONST_COMPATIBILITY 0
+
+/*
+ * use the session manager to detect KDE/GNOME
+ */
+#define wxUSE_DETECT_SM 1
+
+
+/* define with the name of timezone variable */
+#define WX_TIMEZONE timezone
+
+/* The type of 3rd argument to getsockname() - usually size_t or int */
+#define WX_SOCKLEN_T socklen_t
+
+/* The type of 5th argument to getsockopt() - usually size_t or int */
+#define SOCKOPTLEN_T socklen_t
+
+/* The type of statvfs(2) argument */
+#define WX_STATFS_T struct statfs
+
+/* The signal handler prototype */
+#define wxTYPE_SA_HANDLER int
+
+/* gettimeofday() usually takes 2 arguments, but some really old systems might
+ * have only one, in which case define WX_GETTIMEOFDAY_NO_TZ */
+/* #undef WX_GETTIMEOFDAY_NO_TZ */
+
+/* struct tm doesn't always have the tm_gmtoff field, define this if it does */
+#define WX_GMTOFF_IN_TM 1
+
+/* Define if you have poll(2) function */
+/* #undef HAVE_POLL */
+
+/* Define if you have pw_gecos field in struct passwd */
+#define HAVE_PW_GECOS 1
+
+/* Define if you have __cxa_demangle() in <cxxabi.h> */
+#define HAVE_CXA_DEMANGLE 1
+
+/* Define if you have dlopen() */
+#define HAVE_DLOPEN 1
+
+/* Define if you have gettimeofday() */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define if fsync() is available */
+#define HAVE_FSYNC 1
+
+/* Define if round() is available */
+#define HAVE_ROUND 1
+
+/* Define if you have ftime() */
+/* #undef HAVE_FTIME */
+
+/* Define if you have nanosleep() */
+#define HAVE_NANOSLEEP 1
+
+/* Define if you have sched_yield */
+#define HAVE_SCHED_YIELD 1
+
+/* Define if you have pthread_mutexattr_t and functions to work with it */
+#define HAVE_PTHREAD_MUTEXATTR_T 1
+
+/* Define if you have pthread_mutexattr_settype() declaration */
+#define HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL 1
+
+/* Define if you have PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP */
+/* #undef HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER */
+
+/* Define if you have pthread_cancel */
+#define HAVE_PTHREAD_CANCEL 1
+
+/* Define if you have pthread_mutex_timedlock */
+#define HAVE_PTHREAD_MUTEX_TIMEDLOCK 1
+
+/* Define if you have pthread_attr_setstacksize */
+#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
+
+/* Define if you have shl_load() */
+/* #undef HAVE_SHL_LOAD */
+
+/* Define if you have snprintf() */
+#define HAVE_SNPRINTF 1
+
+/* Define if you have snprintf() declaration in the header */
+#define HAVE_SNPRINTF_DECL 1
+
+/* Define if you have a snprintf() which supports positional arguments
+   (defined in the unix98 standard) */
+#define HAVE_UNIX98_PRINTF 1
+
+/* define if you have statfs function */
+#define HAVE_STATFS 1
+
+/* define if you have statfs prototype */
+#define HAVE_STATFS_DECL 1
+
+/* define if you have statvfs function */
+/* #undef HAVE_STATVFS */
+
+/* Define if you have strptime() */
+#define HAVE_STRPTIME 1
+
+/* Define if strptime() is declared in headers */
+#define HAVE_STRPTIME_DECL 1
+
+/* Define if you have strtoull() and strtoll() */
+#define HAVE_STRTOULL 1
+
+/* Define if you have all functions to set thread priority */
+#define HAVE_THREAD_PRIORITY_FUNCTIONS 1
+
+/* Define if you have vsnprintf() */
+#define HAVE_VSNPRINTF 1
+
+/* Define if you have vsnprintf() declaration in the header */
+#define HAVE_VSNPRINTF_DECL 1
+
+/* Define if you have a _broken_ vsnprintf() declaration in the header,
+ * with 'char*' for the 3rd parameter instead of 'const char*' */
+/* #undef HAVE_BROKEN_VSNPRINTF_DECL */
+
+/* Define if you have usleep() */
+/* #undef HAVE_USLEEP */
+
+/* Define if you have wcslen function  */
+#define HAVE_WCSLEN 1
+
+/* Define if you have wcsdup function  */
+#define HAVE_WCSDUP 1
+
+/* Define if you have wcstoull() and wcstoll() */
+/* #undef HAVE_WCSTOULL */
+
+/* The number of bytes in a wchar_t.  */
+#define SIZEOF_WCHAR_T 4
+
+/* The number of bytes in a int.  */
+#define SIZEOF_INT 4
+
+/* The number of bytes in a pointer.  */
+#define SIZEOF_VOID_P 4
+
+/* The number of bytes in a long.  */
+#define SIZEOF_LONG 4
+
+/* The number of bytes in a long long.  */
+#define SIZEOF_LONG_LONG 8
+
+/* The number of bytes in a short.  */
+#define SIZEOF_SHORT 2
+
+/* The number of bytes in a size_t.  */
+#define SIZEOF_SIZE_T 4
+
+/* Define if size_t on your machine is the same type as unsigned int. */
+#define wxSIZE_T_IS_UINT 1
+
+/* Define if size_t on your machine is the same type as unsigned long. */
+/* #undef wxSIZE_T_IS_ULONG */
+
+/* Define if wchar_t is distinct type in your compiler. */
+#define wxWCHAR_T_IS_REAL_TYPE 1
+
+/* Define if you have the dlerror function.  */
+#define HAVE_DLERROR 1
+
+/* Define if you have Posix fnctl() function. */
+#define HAVE_FCNTL 1
+
+/* Define if you have BSD flock() function. */
+/* #undef HAVE_FLOCK */
+
+/* Define if you have getaddrinfo function. */
+/* #undef HAVE_GETADDRINFO */
+
+/* Define if you have a gethostbyname_r function taking 6 arguments. */
+#define HAVE_FUNC_GETHOSTBYNAME_R_6 1
+
+/* Define if you have a gethostbyname_r function taking 5 arguments. */
+/* #undef HAVE_FUNC_GETHOSTBYNAME_R_5 */
+
+/* Define if you have a gethostbyname_r function taking 3 arguments. */
+/* #undef HAVE_FUNC_GETHOSTBYNAME_R_3 */
+
+/* Define if you only have a gethostbyname function */
+/* #undef HAVE_GETHOSTBYNAME */
+
+/* Define if you have the gethostname function.  */
+/* #undef HAVE_GETHOSTNAME */
+
+/* Define if you have a getservbyname_r function taking 6 arguments. */
+#define HAVE_FUNC_GETSERVBYNAME_R_6 1
+
+/* Define if you have a getservbyname_r function taking 5 arguments. */
+/* #undef HAVE_FUNC_GETSERVBYNAME_R_5 */
+
+/* Define if you have a getservbyname_r function taking 4 arguments. */
+/* #undef HAVE_FUNC_GETSERVBYNAME_R_4 */
+
+/* Define if you only have a getservbyname function */
+/* #undef HAVE_GETSERVBYNAME */
+
+/* Define if you have the gmtime_r function.  */
+#define HAVE_GMTIME_R 1
+
+/* Define if you have the inet_addr function.  */
+#define HAVE_INET_ADDR 1
+
+/* Define if you have the inet_aton function.  */
+#define HAVE_INET_ATON 1
+
+/* Define if you have the localtime_r function.  */
+#define HAVE_LOCALTIME_R 1
+
+/* Define if you have the mktemp function.  */
+/* #undef HAVE_MKTEMP */
+
+/* Define if you have the mkstemp function.  */
+#define HAVE_MKSTEMP 1
+
+/* Define if you have the putenv function.  */
+/* #undef HAVE_PUTENV */
+
+/* Define if you have the setenv function.  */
+#define HAVE_SETENV 1
+
+/* Define if you have strtok_r function. */
+#define HAVE_STRTOK_R 1
+
+/* Define if you have thr_setconcurrency function */
+/* #undef HAVE_THR_SETCONCURRENCY */
+
+/* Define if you have the uname function.  */
+#define HAVE_UNAME 1
+
+/* Define if you have the unsetenv function.  */
+#define HAVE_UNSETENV 1
+
+/* Define if you have the <X11/XKBlib.h> header file.  */
+#define HAVE_X11_XKBLIB_H 1
+
+/* Define if you have the <X11/extensions/xf86vmode.h> header file.  */
+/* #undef HAVE_X11_EXTENSIONS_XF86VMODE_H */
+
+/* Define if you have the <sched.h> header file.  */
+#define HAVE_SCHED_H 1
+
+/* Define if you have the <unistd.h> header file.  */
+#define HAVE_UNISTD_H 1
+
+/* Define if you have the <fcntl.h> header file.  */
+/* #undef HAVE_FCNTL_H */
+
+/* Define if you have the <wchar.h> header file.  */
+#define HAVE_WCHAR_H 1
+
+/* Define if you have the <wcstr.h> header file.  */
+/* #undef HAVE_WCSTR_H */
+
+/* Define if you have <widec.h> (Solaris only) */
+/* #undef HAVE_WIDEC_H */
+
+/* Define if you have the <iconv.h> header file and iconv() symbol.  */
+#define HAVE_ICONV 1
+
+/* Define as "const" if the declaration of iconv() needs const.  */
+#define ICONV_CONST
+
+/* Define if you have the <langinfo.h> header file.  */
+#define HAVE_LANGINFO_H 1
+
+/* Define if you have the <w32api.h> header file (mingw,cygwin).  */
+/* #undef HAVE_W32API_H */
+
+/* Define if you have the <sys/soundcard.h> header file. */
+#define HAVE_SYS_SOUNDCARD_H 1
+
+/* Define if you have wcsrtombs() function */
+#define HAVE_WCSRTOMBS 1
+
+/* Define this if you have putws() */
+/* #undef HAVE_PUTWS */
+
+/* Define this if you have fputws() */
+#define HAVE_FPUTWS 1
+
+/* Define this if you have strcasecmp() function in <string.h> */
+#define HAVE_STRCASECMP_IN_STRING_H 1
+
+/* Define this if you have strcasecmp() function in <strings.h> */
+/* #undef HAVE_STRCASECMP_IN_STRINGS_H */
+
+/* Define this if you have wprintf() and related functions */
+#define HAVE_WPRINTF 1
+
+/* Define this if you have vswprintf() and related functions */
+#define HAVE_VSWPRINTF 1
+
+/* Define this if you have _vsnwprintf */
+/* #undef HAVE__VSNWPRINTF */
+
+/* vswscanf() */
+#define HAVE_VSWSCANF 1
+
+/* Define if fseeko and ftello are available.  */
+#define HAVE_FSEEKO 1
+
+/* Define this if you are using gtk and gdk contains support for X11R6 XIM */
+/* #undef HAVE_XIM */
+
+/* Define this if you have X11/extensions/shape.h */
+/* #undef HAVE_XSHAPE */
+
+/* Define this if you have type SPBCDATA */
+/* #undef HAVE_SPBCDATA */
+
+/* Define if you have pango_font_family_is_monospace() (Pango >= 1.3.3) */
+/* #undef HAVE_PANGO_FONT_FAMILY_IS_MONOSPACE */
+
+/* Define if you have Pango xft support */
+/* #undef HAVE_PANGO_XFT */
+
+/* Define if you have the <sys/select.h> header file.  */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define if fdopen is available.  */
+#define HAVE_FDOPEN 1
+
+/* Define if sysconf is available. */
+#define HAVE_SYSCONF 1
+
+/* Define if getpwuid_r is available. */
+#define HAVE_GETPWUID_R 1
+
+/* Define if getgrgid_r is available. */
+#define HAVE_GETGRGID_R 1
+
+/* Define if locale_t is available */
+#define HAVE_LOCALE_T 1
+
+/* -------------------------------------------------------------------------
+   Win32 adjustments section
+   ------------------------------------------------------------------------- */
+
+#ifdef __WIN32__
+
+/* we need to define wxUSE_XPM_IN_MSW for MSW compilation for compatibility
+   with wx/msw/setup.h */
+#define wxUSE_XPM_IN_MSW wxUSE_XPM
+
+/* When using an external jpeg library and the Windows headers already define
+ * boolean, define to the type used by the jpeg library for boolean.  */
+/* #undef wxHACK_BOOLEAN */
+
+/* Define if the header pbt.h is missing.  */
+/* #undef NEED_PBT_H */
+
+#endif /* __WIN32__ */
+
+/* --------------------------------------------------------*
+ *  This stuff is static, it doesn't get modified directly
+ *  by configure.
+*/
+
+/*
+   define some constants identifying wxWindows version in more details than
+   just the version number
+ */
+
+/* wxLogChain class available */
+#define wxHAS_LOG_CHAIN
+
+/* define this when wxDC::Blit() respects SetDeviceOrigin() in wxGTK */
+/* #undef wxHAS_WORKING_GTK_DC_BLIT */
+
+#endif /* __WX_SETUP_H__ */
+
diff --git a/utils/ifacecheck/gccxml.dtd b/utils/ifacecheck/gccxml.dtd
new file mode 100644 (file)
index 0000000..7a72688
--- /dev/null
@@ -0,0 +1,343 @@
+<!-- GCC_XML 0.7-cvs DTD  Version 0.3  -->
+<!-- Written by Paul Ross 2003-07-13 -->
+<!-- Updated by Martin Piskernig 2004-11-14
+     * Some bugfixes (MP; 2004-11-18):
+       - added OffsetType attribute list
+       - Base cannot be child element of GCC_XML
+       - fixed Field::mutable to be of boolean type
+       - added "attributes" to destructor attlist
+-->
+
+<!ATTLIST Argument attributes CDATA #IMPLIED>
+<!ATTLIST Argument default CDATA #IMPLIED>
+<!ATTLIST Argument name CDATA #IMPLIED>
+<!-- type can not be an IDREF as it might be "_4c" etc. which will be 
+an invalid id -->
+<!ATTLIST Argument type CDATA #REQUIRED>
+
+<!ATTLIST ArrayType align CDATA #IMPLIED>
+<!ATTLIST ArrayType attributes CDATA #IMPLIED>
+<!ATTLIST ArrayType id ID #REQUIRED>
+<!ATTLIST ArrayType max CDATA #REQUIRED>
+<!ATTLIST ArrayType min CDATA #FIXED "0">
+<!ATTLIST ArrayType size CDATA #IMPLIED>
+<!ATTLIST ArrayType type IDREF #REQUIRED>
+
+<!ATTLIST Base access (public | private | protected) "public">
+<!ATTLIST Base type IDREF #REQUIRED>
+<!ATTLIST Base virtual (0 | 1) "0">
+
+<!ATTLIST Class abstract (0 | 1) "0">
+<!ATTLIST Class access (public | private | protected) "public">
+<!ATTLIST Class align CDATA #IMPLIED>
+<!ATTLIST Class artificial CDATA #IMPLIED>
+<!ATTLIST Class attributes CDATA #IMPLIED>
+<!ATTLIST Class bases CDATA #IMPLIED>
+<!ATTLIST Class context IDREF #REQUIRED>
+<!ATTLIST Class file CDATA #REQUIRED>
+<!ATTLIST Class id ID #REQUIRED>
+<!ATTLIST Class incomplete (0 | 1) "0">
+<!ATTLIST Class line CDATA #REQUIRED>
+<!ATTLIST Class location CDATA #REQUIRED>
+<!ATTLIST Class mangled CDATA #REQUIRED>
+<!ATTLIST Class members CDATA #IMPLIED>
+<!ATTLIST Class name CDATA #REQUIRED>
+<!ATTLIST Class size CDATA #IMPLIED>
+
+<!ATTLIST Constructor access (public | private | protected) "public">
+<!ATTLIST Constructor artificial CDATA #IMPLIED>
+<!ATTLIST Constructor attributes CDATA #IMPLIED>
+<!ATTLIST Constructor context CDATA #REQUIRED>
+<!ATTLIST Constructor endline CDATA #IMPLIED>
+<!ATTLIST Constructor extern (0 | 1) "0">
+<!ATTLIST Constructor file CDATA #REQUIRED>
+<!ATTLIST Constructor id ID #REQUIRED>
+<!ATTLIST Constructor line CDATA #REQUIRED>
+<!ATTLIST Constructor location CDATA #REQUIRED>
+<!ATTLIST Constructor mangled CDATA #REQUIRED>
+<!ATTLIST Constructor name CDATA #REQUIRED>
+<!ATTLIST Constructor throw CDATA #IMPLIED>
+
+<!ATTLIST Converter access (public | private | protected) "public">
+<!ATTLIST Converter attributes CDATA #IMPLIED>
+<!ATTLIST Converter const (0 | 1) "0">
+<!ATTLIST Converter context IDREF #REQUIRED>
+<!ATTLIST Converter endline CDATA #IMPLIED>
+<!ATTLIST Converter extern (0 | 1) "0">
+<!ATTLIST Converter file CDATA #REQUIRED>
+<!ATTLIST Converter id ID #REQUIRED>
+<!ATTLIST Converter line CDATA #REQUIRED>
+<!ATTLIST Converter location CDATA #REQUIRED>
+<!ATTLIST Converter mangled CDATA #REQUIRED>
+<!ATTLIST Converter name CDATA #REQUIRED>
+<!ATTLIST Converter returns IDREF #REQUIRED>
+<!ATTLIST Converter throw CDATA #IMPLIED>
+<!ATTLIST Converter virtual (0 | 1) "0">
+
+<!ATTLIST CvQualifiedType align CDATA #IMPLIED>
+<!ATTLIST CvQualifiedType attributes CDATA #IMPLIED>
+<!ATTLIST CvQualifiedType const CDATA #IMPLIED>
+<!ATTLIST CvQualifiedType id ID #REQUIRED>
+<!ATTLIST CvQualifiedType restrict CDATA #IMPLIED>
+<!ATTLIST CvQualifiedType size CDATA #IMPLIED>
+<!ATTLIST CvQualifiedType type IDREF #REQUIRED>
+<!ATTLIST CvQualifiedType volatile CDATA #IMPLIED>
+
+<!ATTLIST Destructor access (public | private | protected) "public">
+<!ATTLIST Destructor artificial CDATA #IMPLIED>
+<!ATTLIST Destructor attributes CDATA #IMPLIED>
+<!ATTLIST Destructor context IDREF #REQUIRED>
+<!ATTLIST Destructor endline CDATA #IMPLIED>
+<!ATTLIST Destructor extern (0 | 1) "0">
+<!ATTLIST Destructor file CDATA #REQUIRED>
+<!ATTLIST Destructor id ID #REQUIRED>
+<!ATTLIST Destructor line CDATA #REQUIRED>
+<!ATTLIST Destructor location CDATA #REQUIRED>
+<!ATTLIST Destructor mangled CDATA #REQUIRED>
+<!ATTLIST Destructor name CDATA #REQUIRED>
+<!ATTLIST Destructor throw CDATA #IMPLIED>
+<!ATTLIST Destructor virtual (0 | 1) "0">
+
+<!ATTLIST EnumValue init CDATA #REQUIRED>
+<!ATTLIST EnumValue name CDATA #REQUIRED>
+
+<!ATTLIST Enumeration access (public | private | protected) "public">
+<!ATTLIST Enumeration align CDATA #IMPLIED>
+<!ATTLIST Enumeration artificial CDATA #IMPLIED>
+<!ATTLIST Enumeration attributes CDATA #IMPLIED>
+<!ATTLIST Enumeration context CDATA #REQUIRED>
+<!ATTLIST Enumeration file CDATA #REQUIRED>
+<!ATTLIST Enumeration id ID #REQUIRED>
+<!ATTLIST Enumeration line CDATA #REQUIRED>
+<!ATTLIST Enumeration location CDATA #REQUIRED>
+<!ATTLIST Enumeration name CDATA #REQUIRED>
+<!ATTLIST Enumeration size CDATA #IMPLIED>
+
+<!ATTLIST Field access (public | private | protected) "public">
+<!ATTLIST Field attributes CDATA #IMPLIED>
+<!ATTLIST Field bits CDATA #IMPLIED>
+<!ATTLIST Field context IDREF #REQUIRED>
+<!ATTLIST Field file CDATA #REQUIRED>
+<!ATTLIST Field id ID #REQUIRED>
+<!ATTLIST Field line CDATA #REQUIRED>
+<!ATTLIST Field location CDATA #REQUIRED>
+<!ATTLIST Field mangled CDATA #IMPLIED>
+<!ATTLIST Field mutable (0 | 1) "0">
+<!ATTLIST Field name CDATA #REQUIRED>
+<!ATTLIST Field offset CDATA #IMPLIED>
+<!ATTLIST Field type CDATA #REQUIRED>
+
+<!ATTLIST File id ID #REQUIRED>
+<!ATTLIST File name CDATA #REQUIRED>
+
+<!ATTLIST Function attributes CDATA #IMPLIED>
+<!ATTLIST Function context IDREF #REQUIRED>
+<!ATTLIST Function endline CDATA #IMPLIED>
+<!ATTLIST Function extern (0 | 1) "0">
+<!ATTLIST Function file CDATA #REQUIRED>
+<!ATTLIST Function id ID #REQUIRED>
+<!ATTLIST Function line CDATA #REQUIRED>
+<!ATTLIST Function location CDATA #REQUIRED>
+<!ATTLIST Function mangled CDATA #IMPLIED>
+<!ATTLIST Function name CDATA #REQUIRED>
+<!ATTLIST Function returns CDATA #REQUIRED>
+<!ATTLIST Function throw CDATA #IMPLIED>
+
+<!ATTLIST FunctionType attributes CDATA #IMPLIED>
+<!ATTLIST FunctionType id ID #REQUIRED>
+<!ATTLIST FunctionType returns IDREF #REQUIRED>
+
+<!ATTLIST FundamentalType align CDATA #IMPLIED>
+<!ATTLIST FundamentalType attributes CDATA #IMPLIED>
+<!ATTLIST FundamentalType id ID #REQUIRED>
+<!ATTLIST FundamentalType name CDATA #REQUIRED>
+<!ATTLIST FundamentalType size CDATA #IMPLIED>
+
+<!ATTLIST Method access (public | private | protected) "public">
+<!ATTLIST Method attributes CDATA #IMPLIED>
+<!ATTLIST Method const (0 | 1) "0">
+<!ATTLIST Method context IDREF #REQUIRED>
+<!ATTLIST Method endline CDATA #IMPLIED>
+<!ATTLIST Method extern (0 | 1) "0">
+<!ATTLIST Method file CDATA #REQUIRED>
+<!ATTLIST Method id ID #REQUIRED>
+<!ATTLIST Method line CDATA #REQUIRED>
+<!ATTLIST Method location CDATA #REQUIRED>
+<!ATTLIST Method mangled CDATA #REQUIRED>
+<!ATTLIST Method name CDATA #REQUIRED>
+<!ATTLIST Method pure_virtual (0 | 1) "0">
+<!ATTLIST Method returns CDATA #REQUIRED>
+<!ATTLIST Method static (0 | 1) "0">
+<!ATTLIST Method throw CDATA #IMPLIED>
+<!ATTLIST Method virtual (0 | 1) "0">
+
+<!ATTLIST MethodType attributes CDATA #IMPLIED>
+<!ATTLIST MethodType basetype IDREF #REQUIRED>
+<!ATTLIST MethodType id ID #REQUIRED>
+<!ATTLIST MethodType returns CDATA #REQUIRED>
+
+<!ATTLIST Namespace attributes CDATA #IMPLIED>
+<!ATTLIST Namespace context IDREF #IMPLIED>
+<!ATTLIST Namespace id ID #REQUIRED>
+<!ATTLIST Namespace mangled CDATA #IMPLIED>
+<!ATTLIST Namespace members CDATA #IMPLIED>
+<!ATTLIST Namespace name CDATA #REQUIRED>
+
+<!ATTLIST NamespaceAlias context IDREF #IMPLIED>
+<!ATTLIST NamespaceAlias id ID #REQUIRED>
+<!ATTLIST NamespaceAlias mangled CDATA #IMPLIED>
+<!ATTLIST NamespaceAlias name CDATA #REQUIRED>
+<!ATTLIST NamespaceAlias namespace CDATA #REQUIRED>
+
+<!ATTLIST OffsetType align CDATA #IMPLIED>
+<!ATTLIST OffsetType attributes CDATA #IMPLIED>
+<!ATTLIST OffsetType id ID #REQUIRED>
+<!ATTLIST OffsetType basetype IDREF #REQUIRED>
+<!ATTLIST OffsetType size CDATA #IMPLIED>
+<!ATTLIST OffsetType type CDATA #REQUIRED>
+
+<!ATTLIST OperatorFunction attributes CDATA #IMPLIED>
+<!ATTLIST OperatorFunction context IDREF #REQUIRED>
+<!ATTLIST OperatorFunction endline CDATA #IMPLIED>
+<!ATTLIST OperatorFunction extern (0 | 1) "0">
+<!ATTLIST OperatorFunction file CDATA #REQUIRED>
+<!ATTLIST OperatorFunction id ID #REQUIRED>
+<!ATTLIST OperatorFunction line CDATA #REQUIRED>
+<!ATTLIST OperatorFunction location CDATA #REQUIRED>
+<!ATTLIST OperatorFunction mangled CDATA #REQUIRED>
+<!ATTLIST OperatorFunction name CDATA #REQUIRED>
+<!ATTLIST OperatorFunction returns IDREF #REQUIRED>
+<!ATTLIST OperatorFunction throw CDATA #IMPLIED>
+
+<!ATTLIST OperatorMethod access (public | private | protected) "public">
+<!ATTLIST OperatorMethod attributes CDATA #IMPLIED>
+<!ATTLIST OperatorMethod const (0 | 1) "0">
+<!ATTLIST OperatorMethod context IDREF #REQUIRED>
+<!ATTLIST OperatorMethod endline CDATA #IMPLIED>
+<!ATTLIST OperatorMethod extern (0 | 1) "0">
+<!ATTLIST OperatorMethod file CDATA #REQUIRED>
+<!ATTLIST OperatorMethod id ID #REQUIRED>
+<!ATTLIST OperatorMethod line CDATA #REQUIRED>
+<!ATTLIST OperatorMethod location CDATA #REQUIRED>
+<!ATTLIST OperatorMethod mangled CDATA #REQUIRED>
+<!ATTLIST OperatorMethod name CDATA #REQUIRED>
+<!ATTLIST OperatorMethod pure_virtual (0 | 1) "0">
+<!ATTLIST OperatorMethod returns IDREF #REQUIRED>
+<!ATTLIST OperatorMethod static (0 | 1) "0">
+<!ATTLIST OperatorMethod throw CDATA #IMPLIED>
+<!ATTLIST OperatorMethod virtual (0 | 1) "0">
+
+<!ATTLIST PointerType align CDATA #IMPLIED>
+<!ATTLIST PointerType attributes CDATA #IMPLIED>
+<!ATTLIST PointerType id ID #REQUIRED>
+<!ATTLIST PointerType size CDATA #IMPLIED>
+<!ATTLIST PointerType type CDATA #REQUIRED>
+
+<!ATTLIST ReferenceType align CDATA #IMPLIED>
+<!ATTLIST ReferenceType attributes CDATA #IMPLIED>
+<!ATTLIST ReferenceType id ID #REQUIRED>
+<!ATTLIST ReferenceType size CDATA #IMPLIED>
+<!ATTLIST ReferenceType type CDATA #REQUIRED>
+
+<!ATTLIST Struct abstract (0 | 1) "0">
+<!ATTLIST Struct access (public | private | protected) "public">
+<!ATTLIST Struct align CDATA #IMPLIED>
+<!ATTLIST Struct artificial (0 | 1) "0">
+<!ATTLIST Struct attributes CDATA #IMPLIED>
+<!ATTLIST Struct bases CDATA #IMPLIED>
+<!ATTLIST Struct context IDREF #REQUIRED>
+<!ATTLIST Struct file CDATA #REQUIRED>
+<!ATTLIST Struct id ID #REQUIRED>
+<!ATTLIST Struct incomplete (0 | 1) "0">
+<!ATTLIST Struct line CDATA #REQUIRED>
+<!ATTLIST Struct location CDATA #REQUIRED>
+<!ATTLIST Struct mangled CDATA #REQUIRED>
+<!ATTLIST Struct members CDATA #IMPLIED>
+<!ATTLIST Struct name CDATA #IMPLIED>
+<!ATTLIST Struct size CDATA #IMPLIED>
+
+<!ATTLIST Typedef attributes CDATA #IMPLIED>
+<!ATTLIST Typedef context IDREF #REQUIRED>
+<!ATTLIST Typedef file CDATA #REQUIRED>
+<!ATTLIST Typedef id ID #REQUIRED>
+<!ATTLIST Typedef line CDATA #REQUIRED>
+<!ATTLIST Typedef location CDATA #REQUIRED>
+<!ATTLIST Typedef name CDATA #REQUIRED>
+<!ATTLIST Typedef type CDATA #REQUIRED>
+
+<!ATTLIST Unimplemented function CDATA #IMPLIED>
+<!ATTLIST Unimplemented id ID #REQUIRED>
+<!ATTLIST Unimplemented node CDATA #REQUIRED>
+<!ATTLIST Unimplemented tree_code (187 | 190 | 193) #REQUIRED>
+<!ATTLIST Unimplemented tree_code_name (template_type_parm | 
+       typename_type | using_decl) #REQUIRED>
+
+<!ATTLIST Union abstract (0 | 1) "0">
+<!ATTLIST Union access (public | private | protected) "public">
+<!ATTLIST Union align CDATA #IMPLIED>
+<!ATTLIST Union artificial (0 | 1) "0">
+<!ATTLIST Union attributes CDATA #IMPLIED>
+<!ATTLIST Union bases CDATA #IMPLIED>
+<!ATTLIST Union context IDREF #REQUIRED>
+<!ATTLIST Union file CDATA #REQUIRED>
+<!ATTLIST Union id ID #REQUIRED>
+<!ATTLIST Union incomplete (0 | 1) "0">
+<!ATTLIST Union line CDATA #REQUIRED>
+<!ATTLIST Union location CDATA #REQUIRED>
+<!ATTLIST Union mangled CDATA #REQUIRED>
+<!ATTLIST Union members CDATA #IMPLIED>
+<!ATTLIST Union name CDATA #IMPLIED>
+<!ATTLIST Union size CDATA #IMPLIED>
+
+<!ATTLIST Variable access (public | private | protected) "public">
+<!ATTLIST Variable artificial CDATA #IMPLIED>
+<!ATTLIST Variable attributes CDATA #IMPLIED>
+<!ATTLIST Variable context IDREF #REQUIRED>
+<!ATTLIST Variable extern (0 | 1) "0">
+<!ATTLIST Variable file CDATA #REQUIRED>
+<!ATTLIST Variable id ID #REQUIRED>
+<!ATTLIST Variable init CDATA #IMPLIED>
+<!ATTLIST Variable line CDATA #REQUIRED>
+<!ATTLIST Variable location CDATA #REQUIRED>
+<!ATTLIST Variable mangled CDATA #IMPLIED>
+<!ATTLIST Variable name CDATA #REQUIRED>
+<!ATTLIST Variable type CDATA #REQUIRED>
+
+<!ATTLIST GCC_XML cvs_revision CDATA #IMPLIED>
+
+<!ELEMENT Argument EMPTY>
+<!ELEMENT Ellipsis EMPTY>
+<!ELEMENT ArrayType EMPTY>
+<!ELEMENT Base EMPTY>
+<!ELEMENT Class (Base)*>
+<!ELEMENT Constructor (Argument | Ellipsis)*>
+<!ELEMENT Converter EMPTY>
+<!ELEMENT CvQualifiedType EMPTY>
+<!ELEMENT Destructor (Argument)*> <!-- FIXME -->
+<!ELEMENT EnumValue EMPTY>
+<!ELEMENT Enumeration (EnumValue)+>
+<!ELEMENT Field EMPTY>
+<!ELEMENT File EMPTY>
+<!ELEMENT Function (Argument | Ellipsis)*>
+<!ELEMENT FunctionType (Argument | Ellipsis)*>
+<!ELEMENT FundamentalType EMPTY>
+<!ELEMENT Method (Argument | Ellipsis)*>
+<!ELEMENT MethodType (Argument | Ellipsis)*>
+<!ELEMENT Namespace EMPTY>
+<!ELEMENT NamespaceAlias EMPTY>
+<!ELEMENT OffsetType EMPTY>
+<!ELEMENT OperatorFunction (Argument | Ellipsis)*>
+<!ELEMENT OperatorMethod (Argument | Ellipsis)*>
+<!ELEMENT PointerType EMPTY>
+<!ELEMENT ReferenceType EMPTY>
+<!ELEMENT Struct (Base)*>
+<!ELEMENT Typedef EMPTY>
+<!ELEMENT Unimplemented EMPTY>
+<!ELEMENT Union (Base)*>
+<!ELEMENT Variable EMPTY>
+<!ELEMENT GCC_XML (ArrayType | Class | Constructor | Converter | CvQualifiedType |
+       Destructor | Enumeration | Field | File | Function | FunctionType | 
+       FundamentalType | Method | MethodType | Namespace | NamespaceAlias | OperatorFunction 
+       | OperatorMethod | OffsetType | PointerType | ReferenceType | Struct | Typedef | 
+       Unimplemented | Union | Variable)+>
+
diff --git a/utils/ifacecheck/gccxml.xsl b/utils/ifacecheck/gccxml.xsl
new file mode 100644 (file)
index 0000000..bd0baca
--- /dev/null
@@ -0,0 +1,1007 @@
+<?xml version="1.0"?>
+
+<!-- This file was taken from http://www.gccxml.org
+     where it was contributed by Ivan Kissiov.
+
+     This is useful to 'see' the structure of the gccXML output.
+     Usage:
+
+        xsltproc gccxml.xsl file_created_by_gccxml.xml
+-->
+
+<xsl:stylesheet
+        xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
+        version = "1.0">
+    <xsl:output method="html"/>
+
+    <xsl:template match = "GCC_XML">
+
+       <!-- =============================================== -->
+    <html>
+    <table border="0">
+               <tr><td>A</td><td ><a href="#TA">Array Types</a></td></tr>
+               <tr><td>B</td><td ><a href="#TB">Builtins</a></td></tr>
+               <tr><td>Co</td><td ><a href="#TC">Constructors</a></td></tr>
+               <tr><td>Cvt</td><td ><a href="#TCT">Converter</a></td></tr>
+               <tr><td>Q</td><td ><a href="#TQ">Cvq Types</a></td></tr>
+               <tr><td>Z</td><td ><a href="#TZ">Classes</a></td></tr>
+               <tr><td>D</td><td ><a href="#TD">Destructors</a></td></tr>
+               <tr><td>E</td><td ><a href="#TE">Enumerations</a></td></tr>
+               <tr><td>Fd</td><td ><a href="#TFd">Fields</a></td></tr>
+               <tr><td>Fu</td><td ><a href="#TF">Functions</a></td></tr>
+               <tr><td>FT</td><td ><a href="#TFT">Function Types</a></td></tr>
+               <tr><td>M</td><td ><a href="#TM">Methods</a></td></tr>
+               <tr><td>MT</td><td ><a href="#TMT">Method Typess</a></td></tr>
+               <tr><td>N</td><td ><a href="#TN">Namespaces</a></td></tr>
+               <tr><td>OpM</td><td ><a href="#TOM">Operator Methods</a></td></tr>
+               <tr><td>OpF</td><td ><a href="#TOF">Operator Functions</a></td></tr>
+               <tr><td>O</td><td ><a href="#TO">Offset Types</a></td></tr>
+               <tr><td>P</td><td ><a href="#TP">Pointer Types</a></td></tr>
+               <tr><td>R</td><td ><a href="#TR">Reference Types</a></td></tr>
+               <tr><td>S</td><td ><a href="#TS">Structures</a></td></tr>
+               <tr><td>TT</td><td ><a href="#TT">Typedefs</a></td></tr>
+               <tr><td>U</td><td ><a href="#TU">Unions</a></td></tr>
+               <tr><td>V</td><td ><a href="#TV">Variables</a></td></tr>
+       </table><hr/>
+
+       <!-- =============================================== -->
+    <table border="1">
+               <a name="TB"></a>
+               <thead>
+                       <tr align="center" colspan="5">Builtin Types</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="FundamentalType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+       <!-- =============================================== -->
+               <table border="1">
+               <a name="TN"></a>
+               <thead>
+                       <tr align="center" colspan="5">Namespaces</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">members</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Namespace">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TZ"></a>
+               <thead>
+                       <tr align="center" colspan="5">Classes</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">bases</td>
+                               <td align="center">members</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Class">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TS"></a>
+               <thead>
+                       <tr align="center" colspan="5">Structures</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">bases</td>
+                               <td align="center">members</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Struct">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TU"></a>
+               <thead>
+                       <tr align="center" colspan="5">Unions</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">bases</td>
+                               <td align="center">members</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Union">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TFd"></a>
+               <thead>
+                       <tr align="center" colspan="5">Fields</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">type</td>
+                               <td align="center">bits</td>
+                               <td align="center">access</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Field">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TT"></a>
+               <thead>
+                       <tr align="center" colspan="5">Typedefs</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">type</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Typedef">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TA"></a>
+               <thead>
+                       <tr align="center" colspan="2">Arrays</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">type</td>
+                               <td align="center">min</td>
+                               <td align="center">max</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="ArrayType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TP"></a>
+               <thead>
+                       <tr align="center" colspan="2">Pointers</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">type</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="PointerType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TO"></a>
+               <thead>
+                       <tr align="center" colspan="2">Offset Types</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">basetype</td>
+                               <td align="center">type</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="OffsetType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TR"></a>
+               <thead>
+                       <tr align="center" colspan="2">References</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">type</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="ReferenceType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TQ"></a>
+               <thead>
+                       <tr align="center" colspan="2">CVQ Types</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">type</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="CvQualifiedType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TV"></a>
+               <thead>
+                       <tr align="center" colspan="5">Variables</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">type</td>
+                               <td align="center">access</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Variable">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TM"></a>
+               <thead>
+                       <tr align="center" colspan="5">Methods</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">returns</td>
+                               <td align="center">throws</td>
+                               <td align="center">arguments</td>
+                               <td align="center">access</td>
+                               <td align="center">static</td>
+                <td align="center">const</td> <!--MINE-->
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Method">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TOM"></a>
+               <thead>
+                       <tr align="center" colspan="5">Operator Methods</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">returns</td>
+                               <td align="center">throws</td>
+                               <td align="center">arguments</td>
+                               <td align="center">access</td>
+                               <td align="center">static</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="OperatorMethod">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TMT"></a>
+               <thead>
+                       <tr align="center" colspan="5">Method Types</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">basetype</td>
+                               <td align="center">returns</td>
+                               <td align="center">arguments</td>
+                               <td align="center">const</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="MethodType">
+                               <xsl:sort select="@id"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TCT"></a>
+               <thead>
+                       <tr align="center" colspan="5">Converters</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">returns</td>
+                               <td align="center">throws</td>
+                               <td align="center">access</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Converter">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TF"></a>
+               <thead>
+                       <tr align="center" colspan="5">Functions</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">returns</td>
+                               <td align="center">throws</td>
+                               <td align="center">arguments</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Function">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TOF"></a>
+               <thead>
+                       <tr align="center" colspan="5">Operator Functions</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">returns</td>
+                               <td align="center">throws</td>
+                               <td align="center">arguments</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="OperatorFunction">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TFT"></a>
+               <thead>
+                       <tr align="center" colspan="5">Function Types</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">returns</td>
+                               <td align="center">arguments</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="FunctionType">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TC"></a>
+               <thead>
+                       <tr align="center" colspan="5">Constructors</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">throws</td>
+                               <td align="center">arguments</td>
+                               <td align="center">access</td>
+                               <td align="center">artificial</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Constructor">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TD"></a>
+               <thead>
+                       <tr align="center" colspan="5">Destructors</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">throws</td>
+                               <td align="center">access</td>
+                               <td align="center">virtual</td>
+                               <td align="center">artificial</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Destructor">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <a name="TE"></a>
+               <thead>
+                       <tr align="center" colspan="5">Enumerations</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                               <td align="center">context</td>
+                               <td align="center">artificial</td>
+                               <td align="center">file</td>
+                               <td align="center">line</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="Enumeration">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+
+               <!-- =============================================== -->
+               <table border="1">
+               <thead>
+                       <tr align="center" colspan="5">File</tr>
+                       <tr>
+                               <td align="center">T</td>
+                               <td align="center">id</td>
+                               <td align="center">name</td>
+                       </tr>
+               </thead>
+                       <xsl:apply-templates select="File">
+                               <xsl:sort select="@name"/>
+                       </xsl:apply-templates>
+               </table><hr/>
+        </html>
+    </xsl:template>
+
+       <!-- ====================================================================== -->
+    <xsl:template match = "Class">
+               <tr>
+                       <td>Z</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@bases" />
+                               </xsl:call-template>
+                       </td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@members" />
+                               </xsl:call-template>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Struct">
+               <tr>
+                       <td>S</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                               <xsl:with-param name="string" select="@bases" />
+                               </xsl:call-template>
+                       </td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                               <xsl:with-param name="string" select="@members" />
+                               </xsl:call-template>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Union">
+               <tr>
+                       <td>U</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                               <xsl:with-param name="string" select="@bases" />
+                               </xsl:call-template>
+                       </td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                               <xsl:with-param name="string" select="@members" />
+                               </xsl:call-template>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Namespace">
+               <tr>
+                       <td>N</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                               <xsl:with-param name="string" select="@members" />
+                               </xsl:call-template>
+                       </td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Field">
+               <tr>
+                       <td>Fd</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td><xsl:value-of select="@bits"/></td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Typedef">
+               <tr>
+                       <td>T</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "ArrayType">
+               <tr>
+                       <td>A</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+                       <td><a name="{@min}"><xsl:value-of select="@min"/></a></td>
+                       <td><a name="{@max}"><xsl:value-of select="@max"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "PointerType">
+               <tr>
+                       <td>P</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "OffsetType">
+               <tr>
+                       <td>O</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "ReferenceType">
+               <tr>
+                       <td>R</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "CvQualifiedType">
+               <tr>
+                       <td>Q</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "FundamentalType">
+               <tr>
+                       <td>B</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Variable">
+               <tr>
+                       <td>V</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Method">
+               <tr>
+                       <td>M</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:value-of select="@demangled"/></td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@static='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+            <td>
+                <xsl:choose>
+                    <xsl:when test="@const='1'">true</xsl:when>
+                    <xsl:otherwise>false</xsl:otherwise>
+                </xsl:choose>
+            </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "MethodType">
+               <tr>
+                       <td>MT</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td><xsl:apply-templates select="Argument"/></td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@const='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "OperatorMethod">
+               <tr>
+                       <td>OpM</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:apply-templates select="Argument"/></td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@static='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Converter">
+               <tr>
+                       <td>Cnv</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Function">
+               <tr>
+                       <td>F</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:apply-templates select="Argument"/></td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "OperatorFunction">
+               <tr>
+                       <td>OpF</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:apply-templates select="Argument"/></td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "FunctionType">
+               <tr>
+                       <td>FT</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
+                       <td><xsl:apply-templates select="Argument"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Destructor">
+               <tr>
+                       <td>D</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@virtual='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@artificial='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Constructor">
+               <tr>
+                       <td>Co</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:call-template name="tokenize">
+                                       <xsl:with-param name="string" select="@throw" />
+                               </xsl:call-template>
+                       </td>
+                       <td><xsl:apply-templates select="Argument"/></td>
+                       <td><xsl:value-of select="@access"/></td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@artificial='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Enumeration">
+               <tr>
+                       <td>En</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><xsl:value-of select="@name"/></td>
+                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
+                       <td>
+                               <xsl:choose>
+                                       <xsl:when test="@artificial='1'">true</xsl:when>
+                                       <xsl:otherwise>false</xsl:otherwise>
+                               </xsl:choose>
+                       </td>
+                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
+                       <td><xsl:value-of select="@line"/></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "File">
+               <tr>
+                       <td>Fd</td>
+                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
+                       <td><a href="{@name}"><xsl:value-of select="@name"/></a></td>
+               </tr>
+    </xsl:template>
+
+       <!-- =============================================== -->
+    <xsl:template match = "Argument">
+               <a href="#{@type}"><xsl:value-of select="@type"/></a>
+    </xsl:template>
+
+       <!--- ========== Tokenizer ================== -->
+       <xsl:template name="tokenize">
+          <xsl:param name="string" select="''" />
+          <xsl:param name="delimiters" select="' &#x9; '" />
+          <xsl:choose>
+                 <xsl:when test="not($string)" />
+                 <xsl:when test="not($delimiters)">
+                        <xsl:call-template name="_tokenize-characters">
+                               <xsl:with-param name="string" select="$string" />
+                        </xsl:call-template>
+                 </xsl:when>
+                 <xsl:otherwise>
+                        <xsl:call-template name="_tokenize-delimiters">
+                               <xsl:with-param name="string" select="$string" />
+                               <xsl:with-param name="delimiters"       select="$delimiters" />
+                        </xsl:call-template>
+                 </xsl:otherwise>
+          </xsl:choose>
+       </xsl:template>
+
+       <!-- =============================================== -->
+       <xsl:template name="_tokenize-characters">
+          <xsl:param name="string" />
+          <xsl:if test="$string">
+                 <a href="#{$string}">
+                        <xsl:value-of select="substring($string, 1, 1)" />
+                 </a>
+                 <xsl:call-template name="_tokenize-characters">
+                        <xsl:with-param name="string"   select="substring($string, 2)" />
+                 </xsl:call-template>
+          </xsl:if>
+       </xsl:template>
+
+       <!-- =============================================== -->
+       <xsl:template name="_tokenize-delimiters">
+          <xsl:param name="string" />
+          <xsl:param name="delimiters" />
+          <xsl:variable name="delimiter"        select="substring($delimiters, 1, 1)" />
+          <xsl:choose>
+                 <xsl:when test="not($delimiter)">
+                        <a href="#{$string}">
+                               <xsl:value-of select="$string" />
+                        </a>
+                 </xsl:when>
+                 <xsl:when test="contains($string, $delimiter)">
+                        <xsl:if test="not(starts-with($string, $delimiter))">
+                               <xsl:call-template name="_tokenize-delimiters">
+                                  <xsl:with-param name="string"  select="substring-before($string, $delimiter)" />
+                                  <xsl:with-param name="delimiters"  select="substring($delimiters, 2)" />
+                               </xsl:call-template>
+                        </xsl:if>
+                        <xsl:call-template name="_tokenize-delimiters">
+                               <xsl:with-param name="string"   select="substring-after($string, $delimiter)" />
+                               <xsl:with-param name="delimiters"       select="$delimiters" />
+                        </xsl:call-template>
+                 </xsl:when>
+
+                 <xsl:when test="starts-with($string, 'private:')">
+                       <xsl:call-template name="_tokenize-delimiters">
+                               <xsl:with-param name="string"   select="substring($string, 9)" />
+                        </xsl:call-template>
+                 </xsl:when>
+
+                 <xsl:when test="starts-with($string, 'protected:')">
+                       <xsl:call-template name="_tokenize-delimiters">
+                               <xsl:with-param name="string"   select="substring($string, 11)" />
+                        </xsl:call-template>
+                 </xsl:when>
+
+                 <xsl:otherwise>
+                        <xsl:call-template name="_tokenize-delimiters">
+                               <xsl:with-param name="string"   select="$string" />
+                               <xsl:with-param name="delimiters"       select="substring($delimiters, 2)" />
+                        </xsl:call-template>
+                 </xsl:otherwise>
+          </xsl:choose>
+       </xsl:template>
+
+</xsl:stylesheet>
diff --git a/utils/ifacecheck/rungccxml.sh.in b/utils/ifacecheck/rungccxml.sh.in
new file mode 100755 (executable)
index 0000000..a5a3426
--- /dev/null
@@ -0,0 +1,65 @@
+#!/bin/bash
+
+# $Id$
+#
+# Runs gccxml on the wxWidgets include folder, in order to build the XML
+# file to fetch to ifacecheck to check the coherency of the wxWidgets
+# interface headers with the "real" ones.
+
+
+## CONSTANTS
+############
+
+
+gccxmloutput="wxapi.xml"        # where do we put the gccXML output:
+allheaders="/tmp/wx-all.h"      # headers which includes all wx public headers
+
+# the list of all wxWidgets public headers
+listcmd="ls wx/*.h wx/aui/*.h wx/html/*.h wx/protocol/*.h wx/richtext/*.h wx/stc/*.h wx/xml/*.h wx/xrc/*.h"
+
+
+
+## MAIN
+#######
+
+if [[ ! -z "$1" ]]; then
+    echo "This script does not accept arguments."
+    echo "Usage: $0"
+    echo "Creates a '$gccxmloutput' file which you can pass to ifacecheck."
+    exit 1
+fi
+
+me=$(basename $0)
+path=${0%%/$me}
+current=$(pwd)         # current path
+
+gccxmloutput="$current/$gccxmloutput"
+
+cd @top_srcdir@/include              # go to wx include folder
+
+# now filter it
+headerlist=`$listcmd | grep -v wxshl | grep -v wx_cw | grep -v setup | grep -v xti | grep -v dde.h | grep -v fmappriv`
+
+cd $current                          # return to the original path
+
+# create the header file to pass to gccxml
+if [[ -f $allheaders ]]; then rm $allheaders; fi
+for f in $headerlist; do
+    echo "#include <$f>" >> $allheaders
+done
+
+# filter the configure flags to pass to gccxml
+flags="@CXXFLAGS@"
+
+# NOTE: it's important to define __WXDEBUG__ because some functions of wx
+#       are declared (and thus parsed by gcc) only if that symbol is defined;
+#       so we remove __WXDEBUG__ symbol from $flags, in case it's defined:
+flags=`echo "$flags" | sed -e 's/-pthread//g' | sed -e 's/__WXDEBUG__//g'`
+
+# run gccxml with the same flag used for the real compilation of wx sources:
+echo "Running gccxml on the $allheaders file..."
+if [[ -f "$gccxmloutput" ]]; then rm $gccxmloutput; fi
+gccxml -I . -I @top_srcdir@/include $flags -D__WX@TOOLKIT@__ -DWXBUILDING $allheaders -fxml=$gccxmloutput
+
+# cleanup
+rm $allheaders
diff --git a/utils/ifacecheck/src/gccxml.dtd b/utils/ifacecheck/src/gccxml.dtd
deleted file mode 100644 (file)
index 7a72688..0000000
+++ /dev/null
@@ -1,343 +0,0 @@
-<!-- GCC_XML 0.7-cvs DTD  Version 0.3  -->
-<!-- Written by Paul Ross 2003-07-13 -->
-<!-- Updated by Martin Piskernig 2004-11-14
-     * Some bugfixes (MP; 2004-11-18):
-       - added OffsetType attribute list
-       - Base cannot be child element of GCC_XML
-       - fixed Field::mutable to be of boolean type
-       - added "attributes" to destructor attlist
--->
-
-<!ATTLIST Argument attributes CDATA #IMPLIED>
-<!ATTLIST Argument default CDATA #IMPLIED>
-<!ATTLIST Argument name CDATA #IMPLIED>
-<!-- type can not be an IDREF as it might be "_4c" etc. which will be 
-an invalid id -->
-<!ATTLIST Argument type CDATA #REQUIRED>
-
-<!ATTLIST ArrayType align CDATA #IMPLIED>
-<!ATTLIST ArrayType attributes CDATA #IMPLIED>
-<!ATTLIST ArrayType id ID #REQUIRED>
-<!ATTLIST ArrayType max CDATA #REQUIRED>
-<!ATTLIST ArrayType min CDATA #FIXED "0">
-<!ATTLIST ArrayType size CDATA #IMPLIED>
-<!ATTLIST ArrayType type IDREF #REQUIRED>
-
-<!ATTLIST Base access (public | private | protected) "public">
-<!ATTLIST Base type IDREF #REQUIRED>
-<!ATTLIST Base virtual (0 | 1) "0">
-
-<!ATTLIST Class abstract (0 | 1) "0">
-<!ATTLIST Class access (public | private | protected) "public">
-<!ATTLIST Class align CDATA #IMPLIED>
-<!ATTLIST Class artificial CDATA #IMPLIED>
-<!ATTLIST Class attributes CDATA #IMPLIED>
-<!ATTLIST Class bases CDATA #IMPLIED>
-<!ATTLIST Class context IDREF #REQUIRED>
-<!ATTLIST Class file CDATA #REQUIRED>
-<!ATTLIST Class id ID #REQUIRED>
-<!ATTLIST Class incomplete (0 | 1) "0">
-<!ATTLIST Class line CDATA #REQUIRED>
-<!ATTLIST Class location CDATA #REQUIRED>
-<!ATTLIST Class mangled CDATA #REQUIRED>
-<!ATTLIST Class members CDATA #IMPLIED>
-<!ATTLIST Class name CDATA #REQUIRED>
-<!ATTLIST Class size CDATA #IMPLIED>
-
-<!ATTLIST Constructor access (public | private | protected) "public">
-<!ATTLIST Constructor artificial CDATA #IMPLIED>
-<!ATTLIST Constructor attributes CDATA #IMPLIED>
-<!ATTLIST Constructor context CDATA #REQUIRED>
-<!ATTLIST Constructor endline CDATA #IMPLIED>
-<!ATTLIST Constructor extern (0 | 1) "0">
-<!ATTLIST Constructor file CDATA #REQUIRED>
-<!ATTLIST Constructor id ID #REQUIRED>
-<!ATTLIST Constructor line CDATA #REQUIRED>
-<!ATTLIST Constructor location CDATA #REQUIRED>
-<!ATTLIST Constructor mangled CDATA #REQUIRED>
-<!ATTLIST Constructor name CDATA #REQUIRED>
-<!ATTLIST Constructor throw CDATA #IMPLIED>
-
-<!ATTLIST Converter access (public | private | protected) "public">
-<!ATTLIST Converter attributes CDATA #IMPLIED>
-<!ATTLIST Converter const (0 | 1) "0">
-<!ATTLIST Converter context IDREF #REQUIRED>
-<!ATTLIST Converter endline CDATA #IMPLIED>
-<!ATTLIST Converter extern (0 | 1) "0">
-<!ATTLIST Converter file CDATA #REQUIRED>
-<!ATTLIST Converter id ID #REQUIRED>
-<!ATTLIST Converter line CDATA #REQUIRED>
-<!ATTLIST Converter location CDATA #REQUIRED>
-<!ATTLIST Converter mangled CDATA #REQUIRED>
-<!ATTLIST Converter name CDATA #REQUIRED>
-<!ATTLIST Converter returns IDREF #REQUIRED>
-<!ATTLIST Converter throw CDATA #IMPLIED>
-<!ATTLIST Converter virtual (0 | 1) "0">
-
-<!ATTLIST CvQualifiedType align CDATA #IMPLIED>
-<!ATTLIST CvQualifiedType attributes CDATA #IMPLIED>
-<!ATTLIST CvQualifiedType const CDATA #IMPLIED>
-<!ATTLIST CvQualifiedType id ID #REQUIRED>
-<!ATTLIST CvQualifiedType restrict CDATA #IMPLIED>
-<!ATTLIST CvQualifiedType size CDATA #IMPLIED>
-<!ATTLIST CvQualifiedType type IDREF #REQUIRED>
-<!ATTLIST CvQualifiedType volatile CDATA #IMPLIED>
-
-<!ATTLIST Destructor access (public | private | protected) "public">
-<!ATTLIST Destructor artificial CDATA #IMPLIED>
-<!ATTLIST Destructor attributes CDATA #IMPLIED>
-<!ATTLIST Destructor context IDREF #REQUIRED>
-<!ATTLIST Destructor endline CDATA #IMPLIED>
-<!ATTLIST Destructor extern (0 | 1) "0">
-<!ATTLIST Destructor file CDATA #REQUIRED>
-<!ATTLIST Destructor id ID #REQUIRED>
-<!ATTLIST Destructor line CDATA #REQUIRED>
-<!ATTLIST Destructor location CDATA #REQUIRED>
-<!ATTLIST Destructor mangled CDATA #REQUIRED>
-<!ATTLIST Destructor name CDATA #REQUIRED>
-<!ATTLIST Destructor throw CDATA #IMPLIED>
-<!ATTLIST Destructor virtual (0 | 1) "0">
-
-<!ATTLIST EnumValue init CDATA #REQUIRED>
-<!ATTLIST EnumValue name CDATA #REQUIRED>
-
-<!ATTLIST Enumeration access (public | private | protected) "public">
-<!ATTLIST Enumeration align CDATA #IMPLIED>
-<!ATTLIST Enumeration artificial CDATA #IMPLIED>
-<!ATTLIST Enumeration attributes CDATA #IMPLIED>
-<!ATTLIST Enumeration context CDATA #REQUIRED>
-<!ATTLIST Enumeration file CDATA #REQUIRED>
-<!ATTLIST Enumeration id ID #REQUIRED>
-<!ATTLIST Enumeration line CDATA #REQUIRED>
-<!ATTLIST Enumeration location CDATA #REQUIRED>
-<!ATTLIST Enumeration name CDATA #REQUIRED>
-<!ATTLIST Enumeration size CDATA #IMPLIED>
-
-<!ATTLIST Field access (public | private | protected) "public">
-<!ATTLIST Field attributes CDATA #IMPLIED>
-<!ATTLIST Field bits CDATA #IMPLIED>
-<!ATTLIST Field context IDREF #REQUIRED>
-<!ATTLIST Field file CDATA #REQUIRED>
-<!ATTLIST Field id ID #REQUIRED>
-<!ATTLIST Field line CDATA #REQUIRED>
-<!ATTLIST Field location CDATA #REQUIRED>
-<!ATTLIST Field mangled CDATA #IMPLIED>
-<!ATTLIST Field mutable (0 | 1) "0">
-<!ATTLIST Field name CDATA #REQUIRED>
-<!ATTLIST Field offset CDATA #IMPLIED>
-<!ATTLIST Field type CDATA #REQUIRED>
-
-<!ATTLIST File id ID #REQUIRED>
-<!ATTLIST File name CDATA #REQUIRED>
-
-<!ATTLIST Function attributes CDATA #IMPLIED>
-<!ATTLIST Function context IDREF #REQUIRED>
-<!ATTLIST Function endline CDATA #IMPLIED>
-<!ATTLIST Function extern (0 | 1) "0">
-<!ATTLIST Function file CDATA #REQUIRED>
-<!ATTLIST Function id ID #REQUIRED>
-<!ATTLIST Function line CDATA #REQUIRED>
-<!ATTLIST Function location CDATA #REQUIRED>
-<!ATTLIST Function mangled CDATA #IMPLIED>
-<!ATTLIST Function name CDATA #REQUIRED>
-<!ATTLIST Function returns CDATA #REQUIRED>
-<!ATTLIST Function throw CDATA #IMPLIED>
-
-<!ATTLIST FunctionType attributes CDATA #IMPLIED>
-<!ATTLIST FunctionType id ID #REQUIRED>
-<!ATTLIST FunctionType returns IDREF #REQUIRED>
-
-<!ATTLIST FundamentalType align CDATA #IMPLIED>
-<!ATTLIST FundamentalType attributes CDATA #IMPLIED>
-<!ATTLIST FundamentalType id ID #REQUIRED>
-<!ATTLIST FundamentalType name CDATA #REQUIRED>
-<!ATTLIST FundamentalType size CDATA #IMPLIED>
-
-<!ATTLIST Method access (public | private | protected) "public">
-<!ATTLIST Method attributes CDATA #IMPLIED>
-<!ATTLIST Method const (0 | 1) "0">
-<!ATTLIST Method context IDREF #REQUIRED>
-<!ATTLIST Method endline CDATA #IMPLIED>
-<!ATTLIST Method extern (0 | 1) "0">
-<!ATTLIST Method file CDATA #REQUIRED>
-<!ATTLIST Method id ID #REQUIRED>
-<!ATTLIST Method line CDATA #REQUIRED>
-<!ATTLIST Method location CDATA #REQUIRED>
-<!ATTLIST Method mangled CDATA #REQUIRED>
-<!ATTLIST Method name CDATA #REQUIRED>
-<!ATTLIST Method pure_virtual (0 | 1) "0">
-<!ATTLIST Method returns CDATA #REQUIRED>
-<!ATTLIST Method static (0 | 1) "0">
-<!ATTLIST Method throw CDATA #IMPLIED>
-<!ATTLIST Method virtual (0 | 1) "0">
-
-<!ATTLIST MethodType attributes CDATA #IMPLIED>
-<!ATTLIST MethodType basetype IDREF #REQUIRED>
-<!ATTLIST MethodType id ID #REQUIRED>
-<!ATTLIST MethodType returns CDATA #REQUIRED>
-
-<!ATTLIST Namespace attributes CDATA #IMPLIED>
-<!ATTLIST Namespace context IDREF #IMPLIED>
-<!ATTLIST Namespace id ID #REQUIRED>
-<!ATTLIST Namespace mangled CDATA #IMPLIED>
-<!ATTLIST Namespace members CDATA #IMPLIED>
-<!ATTLIST Namespace name CDATA #REQUIRED>
-
-<!ATTLIST NamespaceAlias context IDREF #IMPLIED>
-<!ATTLIST NamespaceAlias id ID #REQUIRED>
-<!ATTLIST NamespaceAlias mangled CDATA #IMPLIED>
-<!ATTLIST NamespaceAlias name CDATA #REQUIRED>
-<!ATTLIST NamespaceAlias namespace CDATA #REQUIRED>
-
-<!ATTLIST OffsetType align CDATA #IMPLIED>
-<!ATTLIST OffsetType attributes CDATA #IMPLIED>
-<!ATTLIST OffsetType id ID #REQUIRED>
-<!ATTLIST OffsetType basetype IDREF #REQUIRED>
-<!ATTLIST OffsetType size CDATA #IMPLIED>
-<!ATTLIST OffsetType type CDATA #REQUIRED>
-
-<!ATTLIST OperatorFunction attributes CDATA #IMPLIED>
-<!ATTLIST OperatorFunction context IDREF #REQUIRED>
-<!ATTLIST OperatorFunction endline CDATA #IMPLIED>
-<!ATTLIST OperatorFunction extern (0 | 1) "0">
-<!ATTLIST OperatorFunction file CDATA #REQUIRED>
-<!ATTLIST OperatorFunction id ID #REQUIRED>
-<!ATTLIST OperatorFunction line CDATA #REQUIRED>
-<!ATTLIST OperatorFunction location CDATA #REQUIRED>
-<!ATTLIST OperatorFunction mangled CDATA #REQUIRED>
-<!ATTLIST OperatorFunction name CDATA #REQUIRED>
-<!ATTLIST OperatorFunction returns IDREF #REQUIRED>
-<!ATTLIST OperatorFunction throw CDATA #IMPLIED>
-
-<!ATTLIST OperatorMethod access (public | private | protected) "public">
-<!ATTLIST OperatorMethod attributes CDATA #IMPLIED>
-<!ATTLIST OperatorMethod const (0 | 1) "0">
-<!ATTLIST OperatorMethod context IDREF #REQUIRED>
-<!ATTLIST OperatorMethod endline CDATA #IMPLIED>
-<!ATTLIST OperatorMethod extern (0 | 1) "0">
-<!ATTLIST OperatorMethod file CDATA #REQUIRED>
-<!ATTLIST OperatorMethod id ID #REQUIRED>
-<!ATTLIST OperatorMethod line CDATA #REQUIRED>
-<!ATTLIST OperatorMethod location CDATA #REQUIRED>
-<!ATTLIST OperatorMethod mangled CDATA #REQUIRED>
-<!ATTLIST OperatorMethod name CDATA #REQUIRED>
-<!ATTLIST OperatorMethod pure_virtual (0 | 1) "0">
-<!ATTLIST OperatorMethod returns IDREF #REQUIRED>
-<!ATTLIST OperatorMethod static (0 | 1) "0">
-<!ATTLIST OperatorMethod throw CDATA #IMPLIED>
-<!ATTLIST OperatorMethod virtual (0 | 1) "0">
-
-<!ATTLIST PointerType align CDATA #IMPLIED>
-<!ATTLIST PointerType attributes CDATA #IMPLIED>
-<!ATTLIST PointerType id ID #REQUIRED>
-<!ATTLIST PointerType size CDATA #IMPLIED>
-<!ATTLIST PointerType type CDATA #REQUIRED>
-
-<!ATTLIST ReferenceType align CDATA #IMPLIED>
-<!ATTLIST ReferenceType attributes CDATA #IMPLIED>
-<!ATTLIST ReferenceType id ID #REQUIRED>
-<!ATTLIST ReferenceType size CDATA #IMPLIED>
-<!ATTLIST ReferenceType type CDATA #REQUIRED>
-
-<!ATTLIST Struct abstract (0 | 1) "0">
-<!ATTLIST Struct access (public | private | protected) "public">
-<!ATTLIST Struct align CDATA #IMPLIED>
-<!ATTLIST Struct artificial (0 | 1) "0">
-<!ATTLIST Struct attributes CDATA #IMPLIED>
-<!ATTLIST Struct bases CDATA #IMPLIED>
-<!ATTLIST Struct context IDREF #REQUIRED>
-<!ATTLIST Struct file CDATA #REQUIRED>
-<!ATTLIST Struct id ID #REQUIRED>
-<!ATTLIST Struct incomplete (0 | 1) "0">
-<!ATTLIST Struct line CDATA #REQUIRED>
-<!ATTLIST Struct location CDATA #REQUIRED>
-<!ATTLIST Struct mangled CDATA #REQUIRED>
-<!ATTLIST Struct members CDATA #IMPLIED>
-<!ATTLIST Struct name CDATA #IMPLIED>
-<!ATTLIST Struct size CDATA #IMPLIED>
-
-<!ATTLIST Typedef attributes CDATA #IMPLIED>
-<!ATTLIST Typedef context IDREF #REQUIRED>
-<!ATTLIST Typedef file CDATA #REQUIRED>
-<!ATTLIST Typedef id ID #REQUIRED>
-<!ATTLIST Typedef line CDATA #REQUIRED>
-<!ATTLIST Typedef location CDATA #REQUIRED>
-<!ATTLIST Typedef name CDATA #REQUIRED>
-<!ATTLIST Typedef type CDATA #REQUIRED>
-
-<!ATTLIST Unimplemented function CDATA #IMPLIED>
-<!ATTLIST Unimplemented id ID #REQUIRED>
-<!ATTLIST Unimplemented node CDATA #REQUIRED>
-<!ATTLIST Unimplemented tree_code (187 | 190 | 193) #REQUIRED>
-<!ATTLIST Unimplemented tree_code_name (template_type_parm | 
-       typename_type | using_decl) #REQUIRED>
-
-<!ATTLIST Union abstract (0 | 1) "0">
-<!ATTLIST Union access (public | private | protected) "public">
-<!ATTLIST Union align CDATA #IMPLIED>
-<!ATTLIST Union artificial (0 | 1) "0">
-<!ATTLIST Union attributes CDATA #IMPLIED>
-<!ATTLIST Union bases CDATA #IMPLIED>
-<!ATTLIST Union context IDREF #REQUIRED>
-<!ATTLIST Union file CDATA #REQUIRED>
-<!ATTLIST Union id ID #REQUIRED>
-<!ATTLIST Union incomplete (0 | 1) "0">
-<!ATTLIST Union line CDATA #REQUIRED>
-<!ATTLIST Union location CDATA #REQUIRED>
-<!ATTLIST Union mangled CDATA #REQUIRED>
-<!ATTLIST Union members CDATA #IMPLIED>
-<!ATTLIST Union name CDATA #IMPLIED>
-<!ATTLIST Union size CDATA #IMPLIED>
-
-<!ATTLIST Variable access (public | private | protected) "public">
-<!ATTLIST Variable artificial CDATA #IMPLIED>
-<!ATTLIST Variable attributes CDATA #IMPLIED>
-<!ATTLIST Variable context IDREF #REQUIRED>
-<!ATTLIST Variable extern (0 | 1) "0">
-<!ATTLIST Variable file CDATA #REQUIRED>
-<!ATTLIST Variable id ID #REQUIRED>
-<!ATTLIST Variable init CDATA #IMPLIED>
-<!ATTLIST Variable line CDATA #REQUIRED>
-<!ATTLIST Variable location CDATA #REQUIRED>
-<!ATTLIST Variable mangled CDATA #IMPLIED>
-<!ATTLIST Variable name CDATA #REQUIRED>
-<!ATTLIST Variable type CDATA #REQUIRED>
-
-<!ATTLIST GCC_XML cvs_revision CDATA #IMPLIED>
-
-<!ELEMENT Argument EMPTY>
-<!ELEMENT Ellipsis EMPTY>
-<!ELEMENT ArrayType EMPTY>
-<!ELEMENT Base EMPTY>
-<!ELEMENT Class (Base)*>
-<!ELEMENT Constructor (Argument | Ellipsis)*>
-<!ELEMENT Converter EMPTY>
-<!ELEMENT CvQualifiedType EMPTY>
-<!ELEMENT Destructor (Argument)*> <!-- FIXME -->
-<!ELEMENT EnumValue EMPTY>
-<!ELEMENT Enumeration (EnumValue)+>
-<!ELEMENT Field EMPTY>
-<!ELEMENT File EMPTY>
-<!ELEMENT Function (Argument | Ellipsis)*>
-<!ELEMENT FunctionType (Argument | Ellipsis)*>
-<!ELEMENT FundamentalType EMPTY>
-<!ELEMENT Method (Argument | Ellipsis)*>
-<!ELEMENT MethodType (Argument | Ellipsis)*>
-<!ELEMENT Namespace EMPTY>
-<!ELEMENT NamespaceAlias EMPTY>
-<!ELEMENT OffsetType EMPTY>
-<!ELEMENT OperatorFunction (Argument | Ellipsis)*>
-<!ELEMENT OperatorMethod (Argument | Ellipsis)*>
-<!ELEMENT PointerType EMPTY>
-<!ELEMENT ReferenceType EMPTY>
-<!ELEMENT Struct (Base)*>
-<!ELEMENT Typedef EMPTY>
-<!ELEMENT Unimplemented EMPTY>
-<!ELEMENT Union (Base)*>
-<!ELEMENT Variable EMPTY>
-<!ELEMENT GCC_XML (ArrayType | Class | Constructor | Converter | CvQualifiedType |
-       Destructor | Enumeration | Field | File | Function | FunctionType | 
-       FundamentalType | Method | MethodType | Namespace | NamespaceAlias | OperatorFunction 
-       | OperatorMethod | OffsetType | PointerType | ReferenceType | Struct | Typedef | 
-       Unimplemented | Union | Variable)+>
-
diff --git a/utils/ifacecheck/src/gccxml.xsl b/utils/ifacecheck/src/gccxml.xsl
deleted file mode 100644 (file)
index bd0baca..0000000
+++ /dev/null
@@ -1,1007 +0,0 @@
-<?xml version="1.0"?>
-
-<!-- This file was taken from http://www.gccxml.org
-     where it was contributed by Ivan Kissiov.
-
-     This is useful to 'see' the structure of the gccXML output.
-     Usage:
-
-        xsltproc gccxml.xsl file_created_by_gccxml.xml
--->
-
-<xsl:stylesheet
-        xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
-        version = "1.0">
-    <xsl:output method="html"/>
-
-    <xsl:template match = "GCC_XML">
-
-       <!-- =============================================== -->
-    <html>
-    <table border="0">
-               <tr><td>A</td><td ><a href="#TA">Array Types</a></td></tr>
-               <tr><td>B</td><td ><a href="#TB">Builtins</a></td></tr>
-               <tr><td>Co</td><td ><a href="#TC">Constructors</a></td></tr>
-               <tr><td>Cvt</td><td ><a href="#TCT">Converter</a></td></tr>
-               <tr><td>Q</td><td ><a href="#TQ">Cvq Types</a></td></tr>
-               <tr><td>Z</td><td ><a href="#TZ">Classes</a></td></tr>
-               <tr><td>D</td><td ><a href="#TD">Destructors</a></td></tr>
-               <tr><td>E</td><td ><a href="#TE">Enumerations</a></td></tr>
-               <tr><td>Fd</td><td ><a href="#TFd">Fields</a></td></tr>
-               <tr><td>Fu</td><td ><a href="#TF">Functions</a></td></tr>
-               <tr><td>FT</td><td ><a href="#TFT">Function Types</a></td></tr>
-               <tr><td>M</td><td ><a href="#TM">Methods</a></td></tr>
-               <tr><td>MT</td><td ><a href="#TMT">Method Typess</a></td></tr>
-               <tr><td>N</td><td ><a href="#TN">Namespaces</a></td></tr>
-               <tr><td>OpM</td><td ><a href="#TOM">Operator Methods</a></td></tr>
-               <tr><td>OpF</td><td ><a href="#TOF">Operator Functions</a></td></tr>
-               <tr><td>O</td><td ><a href="#TO">Offset Types</a></td></tr>
-               <tr><td>P</td><td ><a href="#TP">Pointer Types</a></td></tr>
-               <tr><td>R</td><td ><a href="#TR">Reference Types</a></td></tr>
-               <tr><td>S</td><td ><a href="#TS">Structures</a></td></tr>
-               <tr><td>TT</td><td ><a href="#TT">Typedefs</a></td></tr>
-               <tr><td>U</td><td ><a href="#TU">Unions</a></td></tr>
-               <tr><td>V</td><td ><a href="#TV">Variables</a></td></tr>
-       </table><hr/>
-
-       <!-- =============================================== -->
-    <table border="1">
-               <a name="TB"></a>
-               <thead>
-                       <tr align="center" colspan="5">Builtin Types</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="FundamentalType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-       <!-- =============================================== -->
-               <table border="1">
-               <a name="TN"></a>
-               <thead>
-                       <tr align="center" colspan="5">Namespaces</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">members</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Namespace">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TZ"></a>
-               <thead>
-                       <tr align="center" colspan="5">Classes</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">bases</td>
-                               <td align="center">members</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Class">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TS"></a>
-               <thead>
-                       <tr align="center" colspan="5">Structures</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">bases</td>
-                               <td align="center">members</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Struct">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TU"></a>
-               <thead>
-                       <tr align="center" colspan="5">Unions</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">bases</td>
-                               <td align="center">members</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Union">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TFd"></a>
-               <thead>
-                       <tr align="center" colspan="5">Fields</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">type</td>
-                               <td align="center">bits</td>
-                               <td align="center">access</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Field">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TT"></a>
-               <thead>
-                       <tr align="center" colspan="5">Typedefs</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">type</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Typedef">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TA"></a>
-               <thead>
-                       <tr align="center" colspan="2">Arrays</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">type</td>
-                               <td align="center">min</td>
-                               <td align="center">max</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="ArrayType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TP"></a>
-               <thead>
-                       <tr align="center" colspan="2">Pointers</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">type</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="PointerType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TO"></a>
-               <thead>
-                       <tr align="center" colspan="2">Offset Types</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">basetype</td>
-                               <td align="center">type</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="OffsetType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TR"></a>
-               <thead>
-                       <tr align="center" colspan="2">References</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">type</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="ReferenceType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TQ"></a>
-               <thead>
-                       <tr align="center" colspan="2">CVQ Types</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">type</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="CvQualifiedType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TV"></a>
-               <thead>
-                       <tr align="center" colspan="5">Variables</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">type</td>
-                               <td align="center">access</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Variable">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TM"></a>
-               <thead>
-                       <tr align="center" colspan="5">Methods</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">returns</td>
-                               <td align="center">throws</td>
-                               <td align="center">arguments</td>
-                               <td align="center">access</td>
-                               <td align="center">static</td>
-                <td align="center">const</td> <!--MINE-->
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Method">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TOM"></a>
-               <thead>
-                       <tr align="center" colspan="5">Operator Methods</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">returns</td>
-                               <td align="center">throws</td>
-                               <td align="center">arguments</td>
-                               <td align="center">access</td>
-                               <td align="center">static</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="OperatorMethod">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TMT"></a>
-               <thead>
-                       <tr align="center" colspan="5">Method Types</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">basetype</td>
-                               <td align="center">returns</td>
-                               <td align="center">arguments</td>
-                               <td align="center">const</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="MethodType">
-                               <xsl:sort select="@id"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TCT"></a>
-               <thead>
-                       <tr align="center" colspan="5">Converters</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">returns</td>
-                               <td align="center">throws</td>
-                               <td align="center">access</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Converter">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TF"></a>
-               <thead>
-                       <tr align="center" colspan="5">Functions</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">returns</td>
-                               <td align="center">throws</td>
-                               <td align="center">arguments</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Function">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TOF"></a>
-               <thead>
-                       <tr align="center" colspan="5">Operator Functions</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">returns</td>
-                               <td align="center">throws</td>
-                               <td align="center">arguments</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="OperatorFunction">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TFT"></a>
-               <thead>
-                       <tr align="center" colspan="5">Function Types</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">returns</td>
-                               <td align="center">arguments</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="FunctionType">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TC"></a>
-               <thead>
-                       <tr align="center" colspan="5">Constructors</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">throws</td>
-                               <td align="center">arguments</td>
-                               <td align="center">access</td>
-                               <td align="center">artificial</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Constructor">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TD"></a>
-               <thead>
-                       <tr align="center" colspan="5">Destructors</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">throws</td>
-                               <td align="center">access</td>
-                               <td align="center">virtual</td>
-                               <td align="center">artificial</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Destructor">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <a name="TE"></a>
-               <thead>
-                       <tr align="center" colspan="5">Enumerations</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                               <td align="center">context</td>
-                               <td align="center">artificial</td>
-                               <td align="center">file</td>
-                               <td align="center">line</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="Enumeration">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-
-               <!-- =============================================== -->
-               <table border="1">
-               <thead>
-                       <tr align="center" colspan="5">File</tr>
-                       <tr>
-                               <td align="center">T</td>
-                               <td align="center">id</td>
-                               <td align="center">name</td>
-                       </tr>
-               </thead>
-                       <xsl:apply-templates select="File">
-                               <xsl:sort select="@name"/>
-                       </xsl:apply-templates>
-               </table><hr/>
-        </html>
-    </xsl:template>
-
-       <!-- ====================================================================== -->
-    <xsl:template match = "Class">
-               <tr>
-                       <td>Z</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@bases" />
-                               </xsl:call-template>
-                       </td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@members" />
-                               </xsl:call-template>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Struct">
-               <tr>
-                       <td>S</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                               <xsl:with-param name="string" select="@bases" />
-                               </xsl:call-template>
-                       </td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                               <xsl:with-param name="string" select="@members" />
-                               </xsl:call-template>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Union">
-               <tr>
-                       <td>U</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                               <xsl:with-param name="string" select="@bases" />
-                               </xsl:call-template>
-                       </td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                               <xsl:with-param name="string" select="@members" />
-                               </xsl:call-template>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Namespace">
-               <tr>
-                       <td>N</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                               <xsl:with-param name="string" select="@members" />
-                               </xsl:call-template>
-                       </td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Field">
-               <tr>
-                       <td>Fd</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td><xsl:value-of select="@bits"/></td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Typedef">
-               <tr>
-                       <td>T</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "ArrayType">
-               <tr>
-                       <td>A</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-                       <td><a name="{@min}"><xsl:value-of select="@min"/></a></td>
-                       <td><a name="{@max}"><xsl:value-of select="@max"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "PointerType">
-               <tr>
-                       <td>P</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "OffsetType">
-               <tr>
-                       <td>O</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "ReferenceType">
-               <tr>
-                       <td>R</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "CvQualifiedType">
-               <tr>
-                       <td>Q</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "FundamentalType">
-               <tr>
-                       <td>B</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Variable">
-               <tr>
-                       <td>V</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Method">
-               <tr>
-                       <td>M</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:value-of select="@demangled"/></td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@static='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-            <td>
-                <xsl:choose>
-                    <xsl:when test="@const='1'">true</xsl:when>
-                    <xsl:otherwise>false</xsl:otherwise>
-                </xsl:choose>
-            </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "MethodType">
-               <tr>
-                       <td>MT</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td><xsl:apply-templates select="Argument"/></td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@const='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "OperatorMethod">
-               <tr>
-                       <td>OpM</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:apply-templates select="Argument"/></td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@static='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Converter">
-               <tr>
-                       <td>Cnv</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Function">
-               <tr>
-                       <td>F</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:apply-templates select="Argument"/></td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "OperatorFunction">
-               <tr>
-                       <td>OpF</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:apply-templates select="Argument"/></td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "FunctionType">
-               <tr>
-                       <td>FT</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
-                       <td><xsl:apply-templates select="Argument"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Destructor">
-               <tr>
-                       <td>D</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@virtual='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@artificial='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Constructor">
-               <tr>
-                       <td>Co</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:call-template name="tokenize">
-                                       <xsl:with-param name="string" select="@throw" />
-                               </xsl:call-template>
-                       </td>
-                       <td><xsl:apply-templates select="Argument"/></td>
-                       <td><xsl:value-of select="@access"/></td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@artificial='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Enumeration">
-               <tr>
-                       <td>En</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><xsl:value-of select="@name"/></td>
-                       <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
-                       <td>
-                               <xsl:choose>
-                                       <xsl:when test="@artificial='1'">true</xsl:when>
-                                       <xsl:otherwise>false</xsl:otherwise>
-                               </xsl:choose>
-                       </td>
-                       <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
-                       <td><xsl:value-of select="@line"/></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "File">
-               <tr>
-                       <td>Fd</td>
-                       <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
-                       <td><a href="{@name}"><xsl:value-of select="@name"/></a></td>
-               </tr>
-    </xsl:template>
-
-       <!-- =============================================== -->
-    <xsl:template match = "Argument">
-               <a href="#{@type}"><xsl:value-of select="@type"/></a>
-    </xsl:template>
-
-       <!--- ========== Tokenizer ================== -->
-       <xsl:template name="tokenize">
-          <xsl:param name="string" select="''" />
-          <xsl:param name="delimiters" select="' &#x9; '" />
-          <xsl:choose>
-                 <xsl:when test="not($string)" />
-                 <xsl:when test="not($delimiters)">
-                        <xsl:call-template name="_tokenize-characters">
-                               <xsl:with-param name="string" select="$string" />
-                        </xsl:call-template>
-                 </xsl:when>
-                 <xsl:otherwise>
-                        <xsl:call-template name="_tokenize-delimiters">
-                               <xsl:with-param name="string" select="$string" />
-                               <xsl:with-param name="delimiters"       select="$delimiters" />
-                        </xsl:call-template>
-                 </xsl:otherwise>
-          </xsl:choose>
-       </xsl:template>
-
-       <!-- =============================================== -->
-       <xsl:template name="_tokenize-characters">
-          <xsl:param name="string" />
-          <xsl:if test="$string">
-                 <a href="#{$string}">
-                        <xsl:value-of select="substring($string, 1, 1)" />
-                 </a>
-                 <xsl:call-template name="_tokenize-characters">
-                        <xsl:with-param name="string"   select="substring($string, 2)" />
-                 </xsl:call-template>
-          </xsl:if>
-       </xsl:template>
-
-       <!-- =============================================== -->
-       <xsl:template name="_tokenize-delimiters">
-          <xsl:param name="string" />
-          <xsl:param name="delimiters" />
-          <xsl:variable name="delimiter"        select="substring($delimiters, 1, 1)" />
-          <xsl:choose>
-                 <xsl:when test="not($delimiter)">
-                        <a href="#{$string}">
-                               <xsl:value-of select="$string" />
-                        </a>
-                 </xsl:when>
-                 <xsl:when test="contains($string, $delimiter)">
-                        <xsl:if test="not(starts-with($string, $delimiter))">
-                               <xsl:call-template name="_tokenize-delimiters">
-                                  <xsl:with-param name="string"  select="substring-before($string, $delimiter)" />
-                                  <xsl:with-param name="delimiters"  select="substring($delimiters, 2)" />
-                               </xsl:call-template>
-                        </xsl:if>
-                        <xsl:call-template name="_tokenize-delimiters">
-                               <xsl:with-param name="string"   select="substring-after($string, $delimiter)" />
-                               <xsl:with-param name="delimiters"       select="$delimiters" />
-                        </xsl:call-template>
-                 </xsl:when>
-
-                 <xsl:when test="starts-with($string, 'private:')">
-                       <xsl:call-template name="_tokenize-delimiters">
-                               <xsl:with-param name="string"   select="substring($string, 9)" />
-                        </xsl:call-template>
-                 </xsl:when>
-
-                 <xsl:when test="starts-with($string, 'protected:')">
-                       <xsl:call-template name="_tokenize-delimiters">
-                               <xsl:with-param name="string"   select="substring($string, 11)" />
-                        </xsl:call-template>
-                 </xsl:when>
-
-                 <xsl:otherwise>
-                        <xsl:call-template name="_tokenize-delimiters">
-                               <xsl:with-param name="string"   select="$string" />
-                               <xsl:with-param name="delimiters"       select="substring($delimiters, 2)" />
-                        </xsl:call-template>
-                 </xsl:otherwise>
-          </xsl:choose>
-       </xsl:template>
-
-</xsl:stylesheet>