summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-02-16 20:37:55 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2011-02-16 20:37:55 +0000
commit084c86a81820f17db9eee7362120586199008e27 (patch)
tree16d2356e05062ee32976a6507fec7cb3e8c7530d
parentf4fae92b6768541e2952173c3d4b09040f95bf7e (diff)
downloadtdepim-084c86a81820f17db9eee7362120586199008e27.tar.gz
tdepim-084c86a81820f17db9eee7362120586199008e27.zip
Remove unused dcopidlng local copy
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdepim@1221130 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
-rw-r--r--dcopidlng/Ast.pm91
-rw-r--r--dcopidlng/Iter.pm532
-rw-r--r--dcopidlng/configure.in.in5
-rwxr-xr-xdcopidlng/dcopidlng10
-rw-r--r--dcopidlng/kalyptus1654
-rw-r--r--dcopidlng/kalyptusCxxToDcopIDL.pm1047
-rw-r--r--dcopidlng/kalyptusDataDict.pm3042
-rw-r--r--dcopidlng/kdocAstUtil.pm762
-rw-r--r--dcopidlng/kdocLib.pm245
-rw-r--r--dcopidlng/kdocParseDoc.pm419
-rw-r--r--dcopidlng/kdocUtil.pm189
11 files changed, 0 insertions, 7996 deletions
diff --git a/dcopidlng/Ast.pm b/dcopidlng/Ast.pm
deleted file mode 100644
index 0fb4bd0d4..000000000
--- a/dcopidlng/Ast.pm
+++ /dev/null
@@ -1,91 +0,0 @@
-package Ast;
-use strict;
-
-use vars qw/ $this $pack @endCodes /;
-
-#-----------------------------------------------------------------------------
-# This package is used to create a simple Abstract Syntax tree. Each node
-# in the AST is an associative array and supports two kinds of properties -
-# scalars and lists of scalars.
-# See SchemParser.pm for an example of usage.
-# ... Sriram
-#-----------------------------------------------------------------------------
-
-# Constructor
-# e.g AST::New ("personnel")
-# Stores the argument in a property called astNodeName whose sole purpose
-# is to support Print()
-
-sub New {
- my ($this) = {"astNodeName" => $_[0]};
- bless ($this);
- return $this;
-}
-
-# Add a property to this object
-# $astNode->AddProp("className", "Employee");
-
-sub AddProp {
- my ($this) = $_[0];
- $this->{$_[1]} = $_[2];
-}
-
-# Equivalent to AddProp, except the property name is associated
-# with a list of values
-# $classAstNode->AddProp("attrList", $attrAstNode);
-
-sub AddPropList {
- my ($this) = $_[0];
- if (! exists $this->{$_[1]}) {
- $this->{$_[1]} = [];
- }
- push (@{$this->{$_[1]}}, $_[2]);
-}
-
-# Returns a list of all the property names of this object
-sub GetProps {
- my ($this) = $_[0];
- return keys %{$this};
-}
-
-sub Visit {
- # Converts each of this AstNode's properties into global variables.
- # The global variables are introduced into package "main"
- # At the same time, a piece of code is formed to undo this work above -
- # $endCode essentially contains the values of these global variables
- # before they are mangled. endCode gets pushed into a stack (endCodes),
- # which is unwound by UnVisit().
-
- local ($this, $pack) = @_;
-
-
- my $code = "";
- my $endCode = "";
-
-
- foreach my $k (keys %{$this}) {
-
- my $glob = $pack."::".$k;
-
- if ( defined $$glob ) {
-
- if ( ${$glob} ne "" ) {
- $$glob =~ s/\'/\\\'/g;
- }
-
- $endCode .= '$'.$pack.'::'.$k. " = '".$$glob."';";
- } else {
- $endCode .= '$'.$pack . "::". $k . ' = "";';
- }
- $code .= '$'.$pack . "::" . $k . "= \$this->{\"$k\"};";
- }
- push (@endCodes, $endCode);
- eval($code) if $code;
-}
-
-sub UnVisit {
- my $code = pop(@endCodes);
- eval($code) if ($code);
-}
-
-1;
diff --git a/dcopidlng/Iter.pm b/dcopidlng/Iter.pm
deleted file mode 100644
index 7279a6faf..000000000
--- a/dcopidlng/Iter.pm
+++ /dev/null
@@ -1,532 +0,0 @@
-package Iter;
-
-=head1 Iterator Module
-
-A set of iterator functions for traversing the various trees and indexes.
-Each iterator expects closures that operate on the elements in the iterated
-data structure.
-
-
-=head2 Generic
-
- Params: $node, &$loopsub, &$skipsub, &$applysub, &$recursesub
-
-Iterate over $node\'s children. For each iteration:
-
-If loopsub( $node, $kid ) returns false, the loop is terminated.
-If skipsub( $node, $kid ) returns true, the element is skipped.
-
-Applysub( $node, $kid ) is called
-If recursesub( $node, $kid ) returns true, the function recurses into
-the current node.
-
-=cut
-
-sub Generic
-{
- my ( $root, $loopcond, $skipcond, $applysub, $recursecond ) = @_;
-
- return sub {
- foreach my $node ( @{$root->{Kids}} ) {
-
- if ( defined $loopcond ) {
- return 0 unless $loopcond->( $root, $node );
- }
-
- if ( defined $skipcond ) {
- next if $skipcond->( $root, $node );
- }
-
- my $ret = $applysub->( $root, $node );
- return $ret if defined $ret && $ret;
-
- if ( defined $recursecond
- && $recursecond->( $root, $node ) ) {
- $ret = Generic( $node, $loopcond, $skipcond,
- $applysub, $recursecond)->();
- if ( $ret ) {
- return $ret;
- }
- }
- }
-
- return 0;
- };
-}
-
-sub Class
-{
- my ( $root, $applysub, $recurse ) = @_;
-
- return Generic( $root, undef,
- sub {
- return !( $node->{NodeType} eq "class"
- || $node->{NodeType} eq "struct" );
- },
- $applysub, $recurse );
-}
-
-=head2 Tree
-
- Params: $root, $recurse?, $commonsub, $compoundsub, $membersub,
- $skipsub
-
-Traverse the ast tree starting at $root, skipping if skipsub returns true.
-
-Applying $commonsub( $node, $kid),
-then $compoundsub( $node, $kid ) or $membersub( $node, $kid ) depending on
-the Compound flag of the node.
-
-=cut
-
-sub Tree
-{
- my ( $rootnode, $recurse, $commonsub, $compoundsub, $membersub,
- $skipsub ) = @_;
-
- my $recsub = $recurse ? sub { return 1 if $_[1]->{Compound}; }
- : undef;
-
- Generic( $rootnode, undef, $skipsub,
- sub { # apply
- my ( $root, $node ) = @_;
- my $ret;
-
- if ( defined $commonsub ) {
- $ret = $commonsub->( $root, $node );
- return $ret if defined $ret;
- }
-
- if ( $node->{Compound} && defined $compoundsub ) {
- $ret = $compoundsub->( $root, $node );
- return $ret if defined $ret;
- }
-
- if( !$node->{Compound} && defined $membersub ) {
- $ret = $membersub->( $root, $node );
- return $ret if defined $ret;
- }
- return;
- },
- $recsub # skip
- )->();
-}
-
-=head2 LocalCompounds
-
-Apply $compoundsub( $node ) to all locally defined compound nodes
-(ie nodes that are not external to the library being processed).
-
-=cut
-
-sub LocalCompounds
-{
- my ( $rootnode, $compoundsub ) = @_;
-
- return unless defined $rootnode && defined $rootnode->{Kids};
-
- foreach my $kid ( sort { $a->{astNodeName} cmp $b->{astNodeName} }
- @{$rootnode->{Kids}} ) {
- next if !defined $kid->{Compound};
-
- $compoundsub->( $kid ) unless defined $kid->{ExtSource};
- LocalCompounds( $kid, $compoundsub );
- }
-}
-
-=head2 Hierarchy
-
- Params: $node, $levelDownSub, $printSub, $levelUpSub
-
-This allows easy hierarchy traversal and printing.
-
-Traverses the inheritance hierarchy starting at $node, calling printsub
-for each node. When recursing downward into the tree, $levelDownSub($node) is
-called, the recursion takes place, and $levelUpSub is called when the
-recursion call is completed.
-
-=cut
-
-sub Hierarchy
-{
- my ( $node, $ldownsub, $printsub, $lupsub, $nokidssub ) = @_;
-
- return if defined $node->{ExtSource}
- && (!defined $node->{InBy}
- || !kdocAstUtil::hasLocalInheritor( $node ));
-
- $printsub->( $node );
-
- if ( defined $node->{InBy} ) {
- $ldownsub->( $node );
-
- foreach my $kid (
- sort {$a->{astNodeName} cmp $b->{astNodeName}}
- @{ $node->{InBy} } ) {
- Hierarchy( $kid, $ldownsub, $printsub, $lupsub );
- }
-
- $lupsub->( $node );
- }
- elsif ( defined $nokidssub ) {
- $nokidssub->( $node );
- }
-
- return;
-}
-
-=head2
-
- Call $printsub for each *direct* ancestor of $node.
- Only multiple inheritance can lead to $printsub being called more than once.
-
-=cut
-sub Ancestors
-{
- my ( $node, $rootnode, $noancessub, $startsub, $printsub,
- $endsub ) = @_;
- my @anlist = ();
-
- return if $node eq $rootnode;
-
- if ( !exists $node->{InList} ) {
- $noancessub->( $node ) unless !defined $noancessub;
- return;
- }
-
- foreach my $innode ( @{ $node->{InList} } ) {
- my $nref = $innode->{Node}; # real ancestor
- next if defined $nref && $nref == $rootnode;
-
- push @anlist, $innode;
- }
-
- if ( $#anlist < 0 ) {
- $noancessub->( $node ) unless !defined $noancessub;
- return;
- }
-
- $startsub->( $node ) unless !defined $startsub;
-
- foreach my $innode ( sort { $a->{astNodeName} cmp $b->{astNodeName} }
- @anlist ) {
-
- # print
- $printsub->( $innode->{Node}, $innode->{astNodeName},
- $innode->{Type}, $innode->{TmplType} )
- unless !defined $printsub;
- }
-
- $endsub->( $node ) unless !defined $endsub;
-
- return;
-
-}
-
-sub Descendants
-{
- my ( $node, $nodescsub, $startsub, $printsub, $endsub ) = @_;
-
- if ( !exists $node->{InBy} ) {
- $nodescsub->( $node ) unless !defined $nodescsub;
- return;
- }
-
-
- my @desclist = ();
- DescendantList( \@desclist, $node );
-
- if ( $#desclist < 0 ) {
- $nodescsub->( $node ) unless !defined $nodescsub;
- return;
- }
-
- $startsub->( $node ) unless !defined $startsub;
-
- foreach my $innode ( sort { $a->{astNodeName} cmp $b->{astNodeName} }
- @desclist ) {
-
- $printsub->( $innode)
- unless !defined $printsub;
- }
-
- $endsub->( $node ) unless !defined $endsub;
-
- return;
-
-}
-
-sub DescendantList
-{
- my ( $list, $node ) = @_;
-
- return unless exists $node->{InBy};
-
- foreach my $kid ( @{ $node->{InBy} } ) {
- push @$list, $kid;
- DescendantList( $list, $kid );
- }
-}
-
-=head2 DocTree
-
-=cut
-
-sub DocTree
-{
- my ( $rootnode, $allowforward, $recurse,
- $commonsub, $compoundsub, $membersub ) = @_;
-
- Generic( $rootnode, undef,
- sub { # skip
- my( $node, $kid ) = @_;
-
- unless (!(defined $kid->{ExtSource})
- && ($allowforward || $kid->{NodeType} ne "Forward")
- && ($main::doPrivate || !($kid->{Access} =~ /private/))
- && exists $kid->{DocNode} ) {
-
- return 1;
- }
-
- return;
- },
- sub { # apply
- my ( $root, $node ) = @_;
-
- my $ret;
-
- if ( defined $commonsub ) {
- $ret = $commonsub->( $root, $node );
- return $ret if defined $ret;
- }
-
- if ( $node->{Compound} && defined $compoundsub ) {
- $ret = $compoundsub->( $root, $node );
- return $ret if defined $ret;
- }
- elsif( defined $membersub ) {
- $ret = $membersub->( $root, $node );
- return $ret if defined $ret;
- }
-
- return;
- },
- sub { return 1 if $recurse; return; } # recurse
- )->();
-
-}
-
-sub MembersByType
-{
- my ( $node, $startgrpsub, $methodsub, $endgrpsub, $nokidssub ) = @_;
-
-# public
- # types
- # data
- # methods
- # signals
- # slots
- # static
-# protected
-# private (if enabled)
-
- if ( !defined $node->{Kids} ) {
- $nokidssub->( $node ) if defined $nokidssub;
- return;
- }
-
- foreach my $acc ( qw/public protected private/ ) {
- next if $acc eq "private" && !$main::doPrivate;
- $access = $acc;
-
- my @types = ();
- my @data = ();
- my @signals = ();
- my @k_dcops = ();
- my @k_dcop_signals = ();
- my @k_dcop_hiddens = ();
- my @slots =();
- my @methods = ();
- my @static = ();
- my @modules = ();
- my @interfaces = ();
-
- # Build lists
- foreach my $kid ( @{$node->{Kids}} ) {
- next unless ( $kid->{Access} =~ /$access/
- && !$kid->{ExtSource})
- || ( $access eq "public"
- && ( $kid->{Access} eq "signals"
- || $kid->{Access} =~ "k_dcop" # note the =~
- || $kid->{Access} eq "K_DCOP"));
-
- my $type = $kid->{NodeType};
-
- if ( $type eq "method" ) {
- if ( $kid->{Flags} =~ "s" ) {
- push @static, $kid;
- }
- elsif ( $kid->{Flags} =~ "l" ) {
- push @slots, $kid;
- }
- elsif ( $kid->{Flags} =~ "n" ) {
- push @signals, $kid;
- }
- elsif ( $kid->{Flags} =~ "d" ) {
- push @k_dcops, $kid;
- }
- elsif ( $kid->{Flags} =~ "z" ) {
- push @k_dcop_signals, $kid;
- }
- elsif ( $kid->{Flags} =~ "y" ) {
- push @k_dcop_hiddens, $kid;
- }
- else {
- push @methods, $kid; }
- }
- elsif ( $kid->{Compound} ) {
- if ( $type eq "module" ) {
- push @modules, $kid;
- }
- elsif ( $type eq "interface" ) {
- push @interfaces, $kid;
- }
- else {
- push @types, $kid;
- }
- }
- elsif ( $type eq "typedef" || $type eq "enum" ) {
- push @types, $kid;
- }
- else {
- push @data, $kid;
- }
- }
-
- # apply
- $uc_access = ucfirst( $access );
-
- doGroup( "$uc_access Types", $node, \@types, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "Modules", $node, \@modules, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "Interfaces", $node, \@interfaces, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "$uc_access Methods", $node, \@methods, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "$uc_access Slots", $node, \@slots, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "Signals", $node, \@signals, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "k_dcop", $node, \@k_dcops, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "k_dcop_signals", $node, \@k_dcop_signals, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "k_dcop_hiddens", $node, \@k_dcop_hiddens, $startgrpsub,
- $methodsub, $endgrpsub);
- doGroup( "$uc_access Static Methods", $node, \@static,
- $startgrpsub, $methodsub, $endgrpsub);
- doGroup( "$uc_access Members", $node, \@data, $startgrpsub,
- $methodsub, $endgrpsub);
- }
-}
-
-sub doGroup
-{
- my ( $name, $node, $list, $startgrpsub, $methodsub, $endgrpsub ) = @_;
-
- my ( $hasMembers ) = 0;
- foreach my $kid ( @$list ) {
- if ( !exists $kid->{DocNode}->{Reimplemented} ) {
- $hasMembers = 1;
- break;
- }
- }
- return if !$hasMembers;
-
- if ( defined $methodsub ) {
- foreach my $kid ( @$list ) {
- if ( !exists $kid->{DocNode}->{Reimplemented} ) {
- $methodsub->( $node, $kid );
- }
- }
- }
-
- $endgrpsub->( $name ) if defined $endgrpsub;
-}
-
-sub ByGroupLogical
-{
- my ( $root, $startgrpsub, $itemsub, $endgrpsub ) = @_;
-
- return 0 unless defined $root->{Groups};
-
- foreach my $groupname ( sort keys %{$root->{Groups}} ) {
- next if $groupname eq "astNodeName"||$groupname eq "NodeType";
-
- my $group = $root->{Groups}->{ $group };
- next unless $group->{Kids};
-
- $startgrpsub->( $group->{astNodeName}, $group->{Desc} );
-
- foreach my $kid (sort {$a->{astNodeName} cmp $b->{astNodeName}}
- @group->{Kids} ) {
- $itemsub->( $root, $kid );
- }
- $endgrpsub->( $group->{Desc} );
- }
-
- return 1;
-}
-
-sub SeeAlso
-{
- my ( $node, $nonesub, $startsub, $printsub, $endsub ) = @_;
-
- if( !defined $node ) {
- $nonesub->();
- return;
- }
-
- my $doc = $node;
-
- if ( $node->{NodeType} ne "DocNode" ) {
- $doc = $node->{DocNode};
- if ( !defined $doc ) {
- $nonesub->() if defined $nonesub;
- return;
- }
- }
-
- if ( !defined $doc->{See} ) {
- $nonesub->() if defined $nonesub;
- return;
- }
-
- my $see = $doc->{See};
- my $ref = $doc->{SeeRef};
-
- if ( $#$see < 1 ) {
- $nonesub->() if defined $nonesub;
- return;
- }
-
- $startsub->( $node ) if defined $startsub;
-
- for my $i ( 0..$#$see ) {
- my $seelabel = $see->[ $i ];
- my $seenode = undef;
- if ( defined $ref ) {
- $seenode = $ref->[ $i ];
- }
-
- $printsub->( $seelabel, $seenode ) if defined $printsub;
- }
-
- $endsub->( $node ) if defined $endsub;
-
- return;
-}
-
-1;
diff --git a/dcopidlng/configure.in.in b/dcopidlng/configure.in.in
deleted file mode 100644
index 9ddc180e5..000000000
--- a/dcopidlng/configure.in.in
+++ /dev/null
@@ -1,5 +0,0 @@
-dnl we need to use our own copy, since kmailicalIface needs post 3.3 fixes in it
-dnl TODO: remove once we rely on kdelibs 3.4
-DCOPIDLNG='$(top_srcdir)/dcopidlng/dcopidlng'
-AC_SUBST(DCOPIDLNG)
-
diff --git a/dcopidlng/dcopidlng b/dcopidlng/dcopidlng
deleted file mode 100755
index d9ba453dd..000000000
--- a/dcopidlng/dcopidlng
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-trap "rm -f dcopidlng.stderr.$$" 0 1 2 15
-LIBDIR=`dirname $0`
-perl -I"$LIBDIR" "$LIBDIR/kalyptus" --allow_k_dcop_accessors -f dcopidl $1 2>dcopidlng.stderr.$$
-RET=$?
-if [ $RET -ne 0 ]
-then
- cat dcopidlng.stderr.$$ >&2
-fi
-exit $RET
diff --git a/dcopidlng/kalyptus b/dcopidlng/kalyptus
deleted file mode 100644
index b2781d11c..000000000
--- a/dcopidlng/kalyptus
+++ /dev/null
@@ -1,1654 +0,0 @@
-#!/usr/bin/perl -I/Users/duke/src/kde/kdebindings/kalyptus
-
-# KDOC -- C++ and CORBA IDL interface documentation tool.
-# Sirtaj Singh Kang <taj@kde.org>, Jan 1999.
-# $Id$
-
-# All files in this project are distributed under the GNU General
-# Public License. This is Free Software.
-
-require 5.000;
-
-use Carp;
-use Getopt::Long;
-use File::Basename;
-use strict;
-
-use Ast;
-
-use kdocUtil;
-use kdocAstUtil;
-use kdocParseDoc;
-
-use vars qw/ %rootNodes $declNodeType @includes_list %options @formats_wanted $allow_k_dcop_accessors
- @includeclasses $includeclasses $skipInternal %defines $defines $match_qt_defines
- $libdir $libname $outputdir @libs $parse_global_space $striphpath $doPrivate $readstdin
- $Version $quiet $debug $debuggen $parseonly $currentfile $cSourceNode $exe
- %formats %flagnames @allowed_k_dcop_accesors $allowed_k_dcop_accesors_re $rootNode
- @classStack $cNode $globalSpaceClassName
- $lastLine $docNode @includes $cpp $defcppcmd $cppcmd $docincluded
- $inExtern %stats %definitions @inputqueue @codeqobject /;
-
-## globals
-
-%rootNodes = (); # root nodes for each file type
-$declNodeType = undef; # last declaration type
-
-@includes_list = (); # list of files included from the parsed .h
-
-# All options
-
-%options = (); # hash of options (set getopt below)
-@formats_wanted = ();
-$libdir = $ENV{KDOCLIBS};
-$libname = "";
-$outputdir = ".";
-@libs = (); # list of includes
-$striphpath = 0;
-
-@includeclasses = (); # names of classes to include
-$includeclasses = "";
-
-$doPrivate = 0;
-$Version = "0.9";
-
-$quiet = 0;
-$debug = 0;
-$debuggen = 0;
-$parseonly = 0;
-$globalSpaceClassName = "QGlobalSpace";
-
-$currentfile = "";
-
-$cpp = 0;
-$defcppcmd = "g++ -Wp,-C -E";
-$cppcmd = "";
-
-$exe = basename $0;
-
-@inputqueue = ();
-@codeqobject = split "\n", <<CODE;
-public:
- virtual QMetaObject *metaObject() const;
- virtual const char *className() const;
- virtual void* qt_cast( const char* );
- virtual bool qt_invoke( int, QUObject* );
- virtual bool qt_emit( int, QUObject* );
- virtual bool qt_property( int, int, QVariant* );
- static QMetaObject* staticMetaObject();
- QObject* qObject();
- static QString tr( const char *, const char * = 0 );
- static QString trUtf8( const char *, const char * = 0 );
-private:
-CODE
-
-# Supported formats
-%formats = ( "java" => "kalyptusCxxToJava", "c" => "kalyptusCxxToC",
- "objc" => "kalyptusCxxToObjc", "dcopidl" => "kalyptusCxxToDcopIDL",
- "smoke" => "kalyptusCxxToSmoke", "csharp" => "kalyptusCxxToCSharp",
- "ECMA" => "kalyptusCxxToECMA", "swig" => "kalyptusCxxToSwig" );
-
-# these are for expansion of method flags
-%flagnames = ( v => 'virtual', 's' => 'static', p => 'pure',
- c => 'const', l => 'slot', i => 'inline', n => 'signal',
- d => 'k_dcop', z => 'k_dcop_signals', y => 'k_dcop_hidden' );
-
-@allowed_k_dcop_accesors = qw(k_dcop k_dcop_hidden k_dcop_signals);
-$allowed_k_dcop_accesors_re = join("|", @allowed_k_dcop_accesors);
-
-%definitions = {
- _STYLE_CDE => '',
- _STYLE_MOTIF => '',
- _STYLE_MOTIF_PLUS => '',
- PLUS => '',
- _STYLE_PLATINUM => '',
- _STYLE_SGI => '',
- _STYLE_WINDOWS => '',
- QT_STATIC_CONST => 'static const',
- Q_EXPORT => '',
- Q_REFCOUNT => '',
- QM_EXPORT_CANVAS => '',
- QM_EXPORT_DNS => '',
- QM_EXPORT_ICONVIEW => '',
- QM_EXPORT_NETWORK => '',
- QM_EXPORT_SQL => '',
- QM_EXPORT_WORKSPACE => '',
- QT_NO_REMOTE => 'QT_NO_REMOTE',
- QT_ACCESSIBILITY_SUPPORT => 'QT_ACCESSIBILITY_SUPPORT',
- Q_WS_X11 => 'Q_WS_X11',
- Q_DISABLE_COPY => 'Q_DISABLE_COPY',
- Q_WS_QWS => 'undef',
- Q_WS_MAC => 'undef',
- Q_OBJECT => <<'CODE',
-public:
- virtual QMetaObject *metaObject() const;
- virtual const char *className() const;
- virtual bool qt_invoke( int, QUObject* );
- virtual bool qt_emit( int, QUObject* );
- static QString tr( const char *, const char * = 0 );
- static QString trUtf8( const char *, const char * = 0 );
-private:
-CODE
-};
-
-=head1 KDOC -- Source documentation tool
-
- Sirtaj Singh Kang <taj@kde.org>, Dec 1998.
-
-=cut
-
-# read options
-
-Getopt::Long::config qw( no_ignore_case permute bundling auto_abbrev );
-
-GetOptions( \%options,
- "format|f=s", \@formats_wanted,
- "url|u=s",
- "skip-internal", \$skipInternal,
- "skip-deprecated|e",
- "document-all|a",
- "compress|z",
- "no-cache", # do not create $HOME/.kalyptus cache
- # HTML options
- "html-cols=i",
- "html-logo=s",
-
- "strip-h-path", \$striphpath,
- "outputdir|d=s", \$outputdir,
- "stdin|i", \$readstdin,
- "name|n=s", \$libname,
- "help|h", \&show_usage,
- "version|v|V", \&show_version,
- "private|p", \$doPrivate,
- "libdir|L=s", \$libdir,
- "xref|l=s", \@libs,
- "classes|c=s", \@includeclasses,
- "globspace", \$parse_global_space,
- "allow_k_dcop_accessors", \$allow_k_dcop_accessors,
-
- "cpp|P", \$cpp,
- "docincluded", \$docincluded,
- "cppcmd|C=s", \$cppcmd,
- "includedir|I=s", \@includes,
- "define=s", \%defines, # define a single preprocessing symbol
- "defines=s", \$defines, # file containing preprocessing symbols, one per line
-
- "quiet|q", \$quiet,
- "debug|D", \$debug, # debug the parsing
- "debuggen", \$debuggen, # debug the file generation
- "parse-only", \$parseonly )
- || exit 1;
-
-$| = 1 if $debug or $debuggen;
-
-# preprocessor settings
-
-if ( $cppcmd eq "" ) {
- $cppcmd = $defcppcmd;
-}
-else {
- $cpp = 1;
-}
-
-if ($#includeclasses>=0)
-{
- $includeclasses = join (" ", @includeclasses);
- print "Using Classes: $includeclasses\n" unless $quiet;
-}
-
-if ( $#includes >= 0 && !$cpp ) {
- die "$exe: --includedir requires --cpp\n";
-}
-
-# Check output formats. HTML is the default
-if( $#formats_wanted < 0 ) {
- push @formats_wanted, "java";
-}
-
-foreach my $format ( @formats_wanted ) {
- die "$exe: unsupported format '$format'.\n"
- if !defined $formats{$format};
-}
-
-if( $defines )
-{
- open( DEFS, $defines ) or die "Couldn't open $defines: $!\n";
- my @defs = <DEFS>;
- chomp @defs;
- close DEFS;
- foreach (@defs)
- {
- $defines{ $_ } = 1 unless exists $defines{ $_ };
- }
-}
-
-# Check the %defines hash for QT_* symbols and compile the corresponding RE
-# Otherwise, compile the default ones. Used for filtering in readCxxLine.
-if ( my @qt_defines = map { ($_=~m/^QT_(.*)/)[0] } keys %defines)
-{
- my $regexp = "m/^#\\s*ifn?def\\s+QT_(?:" . join('|', map { "\$qt_defines[$_]" } 0..$#qt_defines).")/o";
- $match_qt_defines = eval "sub { my \$s=shift;
- \$s=~/^#\\s*if(n)?def/ || return 0;
- if(!\$1) { return \$s=~$regexp ? 0:1 }
- else { return \$s=~$regexp ? 1:0 }
- }";
- die if $@;
-}
-else
-{
- $match_qt_defines = eval q£
- sub
- {
- my $s = shift;
- $s =~ m/^\#\s*ifndef\s+QT_NO_(?:REMOTE| # not in the default compile options
- NIS| # ...
- XINERAMA|
- IMAGEIO_(?:MNG|JPEG)|
- STYLE_(?:MAC|INTERLACE|COMPACT)
- )/x;
- }
- £;
- die if $@;
-}
-# Check if there any files to process.
-# We do it here to prevent the libraries being loaded up first.
-
-checkFileArgs();
-
-# work out libdir. This is created by kdocLib:writeDoc when
-# required.
-$libdir = $ENV{HOME}."/.kalyptus" unless $libdir ne "";
-
-
-######
-###### main program
-######
- readLibraries();
- parseFiles();
-
- if ( $parseonly ) {
- print "\n\tParse Tree\n\t------------\n\n";
- kdocAstUtil::dumpAst( $rootNode );
- }
- else {
- writeDocumentation();
- writeLibrary() unless $libname eq "";
- }
-
- kdocAstUtil::printDebugStats() if $debug;
-
- exit 0;
-######
-
-sub checkFileArgs
-{
- return unless $#ARGV < 0;
-
- die "$exe: no input files.\n" unless $readstdin;
-
- # read filenames from standard input
- while (<STDIN>) {
- chop;
- $_ =~ s,\\,/,g; # back to fwd slash (for Windows)
- foreach my $file ( split( /\s+/, $_ ) ) {
- push @ARGV, $file;
- }
- }
-}
-
-sub readLibraries
-{
- return if $#libs < 0;
-
- require kdocLib;
- foreach my $lib ( @libs ) {
- print "$exe: reading lib: $lib\n" unless $quiet;
-
- my $relpath = exists $options{url} ?
- $options{url} : $outputdir;
- kdocLib::readLibrary( \&getRoot, $lib, $libdir, $relpath );
- }
-}
-
-sub parseFiles
-{
- foreach $currentfile ( @ARGV ) {
- my $lang = "CXX";
-
- if ( $currentfile =~ /\.idl\s*$/ ) {
- # IDL file
- $lang = "IDL";
- }
-
- # assume cxx file
- if( $cpp ) {
- # pass through preprocessor
- my $cmd = $cppcmd;
- foreach my $dir ( @includes ) {
- $cmd .= " -I $dir ";
- }
-
- $cmd .= " -DQOBJECTDEFS_H $currentfile";
-
- open( INPUT, "$cmd |" )
- || croak "Can't preprocess $currentfile";
- }
- else {
- open( INPUT, "$currentfile" )
- || croak "Can't read from $currentfile";
- }
-
- print STDERR "$exe: processing $currentfile\n" unless $quiet;
-
- # reset vars
- $rootNode = getRoot( $lang );
-
-
- # add to file lookup table
- my $showname = $striphpath ? basename( $currentfile )
- : $currentfile;
- $cSourceNode = Ast::New( $showname );
- $cSourceNode->AddProp( "NodeType", "source" );
- $cSourceNode->AddProp( "Path", $currentfile );
- $rootNode->AddPropList( "Sources", $cSourceNode );
-
- # reset state
- @classStack = ();
- $cNode = $rootNode;
- $inExtern = 0;
-
- # parse
- my $k = undef;
- while ( defined ($k = readDecl()) ) {
- print "\nDecl: <$k>[$declNodeType]\n" if $debug;
- if( identifyDecl( $k ) && $k =~ /{/ ) {
- readCxxCodeBlock();
- }
- }
- close INPUT;
- }
-}
-
-
-sub writeDocumentation
-{
- foreach my $node ( values %rootNodes ) {
- # postprocess
- kdocAstUtil::linkNamespaces( $node );
- kdocAstUtil::makeInherit( $node, $node );
- kdocAstUtil::linkReferences( $node, $node );
- kdocAstUtil::calcStats( \%stats, $node, $node );
-
- # write
- no strict "refs";
- foreach my $format ( @formats_wanted ) {
- my $pack = $formats{ $format };
- require $pack.".pm";
-
- print STDERR "Generating bindings for $format ",
- "language...\n" unless $quiet;
-
- my $f = "$pack\::writeDoc";
- &$f( $libname, $node, $outputdir, \%options );
- }
- }
-}
-
-sub writeLibrary
-{
- if( $libname ne "" and !exists $options{'no-cache'} ) {
- require kdocLib;
- foreach my $lang ( keys %rootNodes ) {
- my $node = $rootNodes{ $lang };
- kdocLib::writeDoc( $libname, $node, $lang, $libdir,
- $outputdir, $options{url},
- exists $options{compress} ? 1 : 0 );
- }
- }
-}
-
-###### Parser routines
-
-=head2 readSourceLine
-
- Returns a raw line read from the current input file.
- This is used by routines outside main, since I don t know
- how to share fds.
-
-=cut
-
-sub readSourceLine
-{
- return <INPUT>;
-}
-
-=head2 readCxxLine
-
- Reads a C++ source line, skipping comments, blank lines,
- preprocessor tokens and the Q_OBJECT macro
-
-=cut
-
-sub readCxxLine
-{
- my( $p );
- my( $l );
-
- while( 1 ) {
- $p = shift @inputqueue || <INPUT>;
- return undef if !defined ($p);
-
- $p =~ s#//.*$##g; # C++ comment
- $p =~ s#/\*(?!\*).*?\*/##g; # C comment
-
- # join all multiline comments
- if( $p =~ m#/\*(?!\*)#s ) {
- # unterminated comment
-LOOP:
- while( defined ($l = <INPUT>) ) {
- $l =~ s#//.*$##g; # C++ comment
- $p .= $l;
- $p =~ s#/\*(?!\*).*?\*/##sg; # C comment
- last LOOP unless $p =~ m#(/\*(?!\*))|(\*/)#sg;
- }
- }
-
- if ( $p =~ /^\s*Q_OBJECT/ ) {
- push @inputqueue, @codeqobject;
- next;
- }
- # Hack, waiting for real handling of preprocessor defines
- $p =~ s/QT_STATIC_CONST/static const/;
- $p =~ s/KSVG_GET/KJS::Value get();/;
- $p =~ s/KSVG_BASECLASS_GET/KJS::Value get();/;
- $p =~ s/KSVG_BRIDGE/KJS::ObjectImp *bridge();/;
- $p =~ s/KSVG_FORWARDGET/KJS::Value getforward();/;
- $p =~ s/KSVG_PUT/bool put();/;
- $p =~ s/KSVG_FORWARDPUT/bool putforward();/;
- $p =~ s/KSVG_BASECLASS/virtual KJS::Value cache();/;
- if ( $p =~ m/KSVG_DEFINE_PROTOTYPE\((\w+)\)/ ) {
- push @inputqueue, split('\n',"namespace KSVG {\nclass $1 {\n};\n};");
- }
-
- next if ( $p =~ /^\s*$/s ); # blank lines
-# || $p =~ /^\s*Q_OBJECT/ # QObject macro
-# );
-#
-
- next if ( $p =~ /^\s*Q_ENUMS/ # ignore Q_ENUMS
- || $p =~ /^\s*Q_PROPERTY/ # and Q_PROPERTY
- || $p =~ /^\s*Q_OVERRIDE/ # and Q_OVERRIDE
- || $p =~ /^\s*Q_SETS/
- || $p =~ /^\s*Q_DUMMY_COMPARISON_OPERATOR/
- || $p =~ /^\s*K_SYCOCATYPE/ # and K_SYCOCA stuff
- || $p =~ /^\s*K_SYCOCAFACTORY/ #
- || $p =~ /^\s*KSVG_/ # and KSVG stuff ;)
- );
-
- push @includes_list, $1 if $p =~ /^#include\s+<?(.*?)>?\s*$/;
-
- # remove all preprocessor macros
- if( $p =~ /^\s*#\s*(\w+)/ ) {
- # Handling of preprocessed sources: skip anything included from
- # other files, unless --docincluded was passed.
- if (!$docincluded && $p =~ /^\s*#\s*[0-9]+\s*\".*$/
- && not($p =~ /\"$currentfile\"/)) {
- # include file markers
- while( <INPUT> ) {
- last if(/\"$currentfile\"/);
- print "Overread $_" if $debug;
- };
- print "Cont: $_" if $debug;
- }
- else {
- # Skip platform-specific stuff, or #if 0 stuff
- # or #else of something we parsed (e.g. for QKeySequence)
- if ( $p =~ m/^#\s*ifdef\s*Q_WS_/ or
- $p =~ m/^#\s*if\s+defined\(Q_WS_/ or
- $p =~ m/^#\s*if\s+defined\(Q_OS_/ or
- $p =~ m/^#\s*if\s+defined\(Q_CC_/ or
- $p =~ m/^#\s*if\s+defined\(QT_THREAD_SUPPORT/ or
- $p =~ m/^#\s*else/ or
- $p =~ m/^#\s*if\s+defined\(Q_FULL_TEMPLATE_INSTANTIATION/ or
- $p =~ m/^#\s*ifdef\s+CONTAINER_CUSTOM_WIDGETS/ or
- &$match_qt_defines( $p ) or
- $p =~ m/^#\s*if\s+0\s+/ ) {
- my $if_depth = 1;
- while ( defined $p && $if_depth > 0 ) {
- $p = <INPUT>;
- last if !defined $p;
- $if_depth++ if $p =~ m/^#\s*if/;
- $if_depth-- if $p =~ m/^#\s*endif/;
- # Exit at #else in the #ifdef QT_NO_ACCEL/#else/#endif case
- last if $if_depth == 1 && $p =~ m/^#\s*else\s/;
- #ignore elif for now
- print "Skipping ifdef'ed line: $p" if $debug;
- }
- }
-
- # multiline macros
- while ( defined $p && $p =~ m#\\\s*$# ) {
- $p = <INPUT>;
- }
- }
- next;
- }
-
- $lastLine = $p;
- return $p;
- }
-}
-
-=head2 readCxxCodeBlock
-
- Reads a C++ code block (recursive curlies), returning the last line
- or undef on error.
-
- Parameters: none
-
-=cut
-
-sub readCxxCodeBlock
-{
-# Code: begins in a {, ends in }\s*;?
-# In between: cxx source, including {}
- my ( $count ) = 0;
- my $l = undef;
-
- if ( defined $lastLine ) {
- print "lastLine: '$lastLine'" if $debug;
-
- my $open = kdocUtil::countReg( $lastLine, "{" );
- my $close = kdocUtil::countReg( $lastLine, "}" );
- $count = $open - $close;
-
- return $lastLine if ( $open || $close) && $count == 0;
- }
-
- # find opening brace
- if ( $count == 0 ) {
- while( $count == 0 ) {
- $l = readCxxLine();
- return undef if !defined $l;
- $l =~ s/\\.//g;
- $l =~ s/'.?'//g;
- $l =~ s/".*?"//g;
-
- $count += kdocUtil::countReg( $l, "{" );
- print "c ", $count, " at '$l'" if $debug;
- }
- $count -= kdocUtil::countReg( $l, "}" );
- }
-
- # find associated closing brace
- while ( $count > 0 ) {
- $l = readCxxLine();
- croak "Confused by unmatched braces" if !defined $l;
- $l =~ s/\\.//g;
- $l =~ s/'.?'//g;
- $l =~ s/".*?"//g;
-
- my $add = kdocUtil::countReg( $l, "{" );
- my $sub = kdocUtil::countReg( $l, "}" );
- $count += $add - $sub;
-
- print "o ", $add, " c ", $sub, " at '$l'" if $debug;
- }
-
- undef $lastLine;
- return $l;
-}
-
-=head2 readDecl
-
- Returns a declaration and sets the $declNodeType variable.
-
- A decl starts with a type or keyword and ends with [{};]
- The entire decl is returned in a single line, sans newlines.
-
- declNodeType values: undef for error, "a" for access specifier,
- "c" for doc comment, "d" for other decls.
-
- readCxxLine is used to read the declaration.
-
-=cut
-
-sub readDecl
-{
- undef $declNodeType;
- my $l = readCxxLine();
- my ( $decl ) = "";
-
- my $allowed_accesors = "private|public|protected|signals";
- $allowed_accesors .= "|$allowed_k_dcop_accesors_re" if $allow_k_dcop_accessors;
-
- if( !defined $l ) {
- return undef;
- }
- elsif ( $l =~ /^\s*($allowed_accesors)
- (\s+\w+)?\s*:/x) { # access specifier
- $declNodeType = "a";
- return $l;
- }
- elsif ( $l =~ /K_DCOP/ ) {
- $declNodeType = "k";
- return $l;
- }
- elsif ( $l =~ m#^\s*/\*\*# ) { # doc comment
- $declNodeType = "c";
- return $l;
- }
-
- do {
- $decl .= $l;
-
- if ( $l =~ /[{};]/ ) {
- $decl =~ s/\n/ /gs;
- $declNodeType = "d";
- return $decl;
- }
- return undef if !defined ($l = readCxxLine());
-
- } while ( 1 );
-}
-
-#### AST Generator Routines
-
-=head2 getRoot
-
- Return a root node for the given type of input file.
-
-=cut
-
-sub getRoot
-{
- my $type = shift;
- carp "getRoot called without type" unless defined $type;
-
- if ( !exists $rootNodes{ $type } ) {
- my $node = Ast::New( "Global" ); # parent of all nodes
- $node->AddProp( "NodeType", "root" );
- $node->AddProp( "RootType", $type );
- $node->AddProp( "Compound", 1 );
- $node->AddProp( "KidAccess", "public" );
-
- $rootNodes{ $type } = $node;
- }
- print "getRoot: call for $type\n" if $debug;
-
- return $rootNodes{ $type };
-}
-
-=head2 identifyDecl
-
- Parameters: decl
-
- Identifies a declaration returned by readDecl. If a code block
- needs to be skipped, this subroutine returns a 1, or 0 otherwise.
-
-=cut
-
-sub identifyDecl
-{
- my( $decl ) = @_;
-
- my $newNode = undef;
- my $skipBlock = 0;
-
- # Doc comment
- if ( $declNodeType eq "c" ) {
- $docNode = kdocParseDoc::newDocComment( $decl );
-
- # if it's the main doc, it is attached to the root node
- if ( defined $docNode->{LibDoc} ) {
- kdocParseDoc::attachDoc( $rootNode, $docNode,
- $rootNode );
- undef $docNode;
- }
-
- }
- elsif ( $declNodeType eq "a" ) {
- newAccess( $decl );
- }
- elsif ( $declNodeType eq "k" ) {
- $cNode->AddProp( "DcopExported", 1 );
- }
-
- # Typedef struct/class
- elsif ( $decl =~ /^\s*typedef
- \s+(struct|union|class|enum)
- \s*([_\w\:]*)
- \s*([;{])
- /xs ) {
- my ($type, $name, $endtag, $rest ) = ($1, $2, $3, $' );
- $name = "--" if $name eq "";
-
- warn "typedef '$type' n:'$name'\n" if $debug;
-
- if ( $rest =~ /}\s*([\w_]+(?:::[\w_])*)\s*;/ ) {
- # TODO: Doesn't parse members yet!
- $endtag = ";";
- $name = $1;
- }
-
- $newNode = newTypedefComp( $type, $name, $endtag );
- }
-
- # Typedef
- elsif ( $decl =~ /^\s*typedef\s+
- (?:typename\s+)? # `typename' keyword
- (.*?\s*[\*&]?) # type
- \s+([-\w_\:]+) # name
- \s*((?:\[[-\w_\:<>\s]*\])*) # array
- \s*[{;]\s*$/xs ) {
-
- print "Typedef: <$1 $3> <$2>\n" if $debug;
- $newNode = newTypedef( $1." ".$3, $2 );
- }
-
- # Enum
- elsif ( $decl =~ /^\s*enum\s+([-\w_:]*)?\s*\{(.*)/s ) {
-
- print "Enum: <$1>\n" if $debug;
- my $enumname = defined $2 ? $1 : "";
-
- $newNode = newEnum( $enumname );
- }
-
- # Class/Struct
- elsif ( $decl =~ /^\s*((?:template\s*<.*>)?) # 1 template
- \s*(class|struct|union|namespace) # 2 struct type
- (?:\s*Q[A-Z_]*EXPORT[A-Z_]*)?
- (?:\s*Q_PACKED)?
- (?:\s*Q_REFCOUNT)?
- \s+([\w_]+ # 3 name
- (?:<[\w_ :,]+?>)? # maybe explicit template
- # (eat chars between <> non-hungry)
- (?:::[\w_]+)* # maybe nested
- )
- (.*?) # 4 inheritance
- ([;{])/xs ) { # 5 rest
-
- print "Class: [$1]\n\t[$2]\n\t[$3]\n\t[$4]\n\t[$5]\n" if $debug;
- my ( $tmpl, $ntype, $name, $rest, $endtag ) =
- ( $1, $2, $3, $4, $5 );
-
- if ($includeclasses)
- {
- if (! ($includeclasses =~ /$name/) )
- {
- return 1;
-
- }
- }
-
- my @inherits = ();
-
- $tmpl =~ s/<(.*)>/$1/ if $tmpl ne "";
-
- if( $rest =~ /^\s*:\s*/ ) {
- # inheritance
- $rest = $';
- @inherits = parseInheritance( $rest );
- }
-
- $newNode = newClass( $tmpl, $ntype,
- $name, $endtag, @inherits );
- }
- # IDL compound node
- elsif( $decl =~ /^\s*(module|interface|exception) # struct type
- \s+([-\w_]+) # name
- (.*?) # inheritance?
- ([;{])/xs ) {
-
- my ( $type, $name, $rest, $fwd, $complete )
- = ( $1, $2, $3, $4 eq ";" ? 1 : 0,
- 0 );
- my @in = ();
- print "IDL: [$type] [$name] [$rest] [$fwd]\n" if $debug;
-
- if( $rest =~ /^\s*:\s*/ ) {
- $rest = $';
- $rest =~ s/\s+//g;
- @in = split ",", $rest;
- }
- if( $decl =~ /}\s*;/ ) {
- $complete = 1;
- }
-
- $newNode = newIDLstruct( $type, $name, $fwd, $complete, @in );
- }
- # Method
- elsif ( $decl =~ /^\s*([^=]+?(?:operator\s*(?:\(\)|.?=)\s*)?) # ret+nm
- \( (.*?) \) # parameters
- \s*((?:const)?)\s*
- \s*((?:=\s*0(?:L?))?)\s* # Pureness. is "0L" allowed?
- \s*[;{]+/xs ) { # rest
-
- my $tpn = $1; # type + name
- my $params = $2;
- # Remove constructor initializer, that's not in the params
- if ( $params =~ /\s*\)\s*:\s*/ ) {
- # Hack: first .* made non-greedy for QSizePolicy using a?(b):c in ctor init
- $params =~ s/(.*?)\s*\)\s*:\s*.*$/$1/;
- }
-
- my $const = $3 eq "" ? 0 : 1;
- my $pure = $4 eq "" ? 0 : 1;
- $tpn =~ s/\s+/ /g;
- $params =~ s/\s+/ /g;
-
- print "Method: R+N:[$tpn]\n\tP:[$params]\n\t[$const]\n" if $debug;
-
- if ( $tpn =~ /((?:\w+\s*::\s*)?operator.*?)\s*$/ # operator
- || $tpn =~ /((?:\w*\s*::\s*~?)?[-\w:]+)\s*$/ ) { # normal
- my $name = $1;
- $tpn = $`;
- $newNode = newMethod( $tpn, $name,
- $params, $const, $pure );
- }
-
- $skipBlock = 1; # FIXME check end token before doing this!
- }
- # Using: import namespace
- elsif ( $decl =~ /^\s*using\s+namespace\s+(\w+)/ ) {
- newNamespace( $1 );
-
- }
-
- # extern block
- elsif ( $decl =~ /^\s*extern\s*"(.*)"\s*{/ ) {
- $inExtern = 1 unless $decl =~ /}/;
- }
-
- # Single variable
- elsif ( $decl =~ /^
- \s*( (?:[\w_:]+(?:\s+[\w_:]+)*? )# type
- \s*(?:<.+>)? # template
- \s*(?:[\&\*])? # ptr or ref
- (?:\s*(?:const|volatile))* )
- \s*([\w_:]+) # name
- \s*( (?:\[[^\[\]]*\] (?:\s*\[[^\[\]]*\])*)? ) # array
- \s*((?:=.*)?) # value
- \s*([;{])\s*$/xs ) {
- my $type = $1;
- my $name = $2;
- my $arr = $3;
- my $val = $4;
- my $end = $5;
-
- if ( $type !~ /^friend\s+class\s*/ ) {
- print "Var: [$name] type: [$type$arr] val: [$val]\n"
- if $debug;
-
- $newNode = newVar( $type.$arr, $name, $val );
- }
-
- $skipBlock = 1 if $end eq '{';
- }
-
- # Multi variables
- elsif ( $decl =~ m/^
- \s*( (?:[\w_:]+(?:\s+[\w_:]+)*? ) # type
- \s*(?:<.+>)?) # template
-
- \s*( (?:\s*(?: [\&\*][\&\*\s]*)? # ptr or ref
- [\w_:]+) # name
- \s*(?:\[[^\[\]]*\] (?:\s*\[[^\[\]]*\])*)? # array
- \s*(?:, # extra vars
- \s*(?: [\&\*][\&\*\s]*)? # ptr or ref
- \s*(?:[\w_:]+) # name
- \s*(?:\[[^\[\]]*\] (?:\s*\[[^\[\]]*\])*)? # array
- )*
- \s*(?:=.*)?) # value
- \s*[;]/xs ) {
-
- my $type = $1;
- my $names = $2;
- my $end = $3;
- my $doc = $docNode;
-
- print "Multivar: type: [$type] names: [$names] \n" if $debug;
-
- foreach my $vardecl ( split( /\s*,\s*/, $names ) ) {
- next unless $vardecl =~ m/
- \s*((?: [\&\*][\&\*\s]*)?) # ptr or ref
- \s*([\w_:]+) # name
- \s*( (?:\[[^\[\]]*\] (?:\s*\[[^\[\]]*\])*)? ) # array
- \s*((?:=.*)?) # value
- /xs;
- my ($ptr, $name, $arr, $val) = ($1, $2, $3, $4);
-
- print "Split: type: [$type$ptr$arr] ",
- " name: [$name] val: [$val] \n" if $debug;
-
- my $node = newVar( $type.$ptr.$arr, $name, $val );
-
- $docNode = $doc; # reuse docNode for each
- postInitNode( $node ) unless !defined $node;
- }
-
- $skipBlock = 1 if $end eq '{';
- }
- # end of an "extern" block
- elsif ( $decl =~ /^\s*}\s*$/ ) {
- $inExtern = 0;
- }
- # end of an in-block declaration
- elsif ( $decl =~ /^\s*}\s*(.*?)\s*;\s*$/ ) {
-
- if ( $cNode->{astNodeName} eq "--" ) {
- # structure typedefs should have no name preassigned.
- # If they do, then the name in
- # "typedef struct <name> { ..." is kept instead.
- # TODO: Buglet. You should fix YOUR code dammit. ;)
-
-
- $cNode->{astNodeName} = $1;
- my $siblings = $cNode->{Parent}->{KidHash};
- undef $siblings->{"--"};
- $siblings->{ $1 } = $cNode;
- }
-
- if ( $#classStack < 0 ) {
- confess "close decl found, but no class in stack!" ;
- $cNode = $rootNode;
- }
- else {
- $cNode = pop @classStack;
- print "end decl: popped $cNode->{astNodeName}\n"
- if $debug;
- }
- }
- # unidentified block start
- elsif ( $decl =~ /{/ ) {
- print "Unidentified block start: $decl\n" if $debug;
- $skipBlock = 1;
- }
- # explicit template instantiation, or friend template
- elsif ( $decl =~ /(template|friend)\s+class\s+(?:Q[A-Z_]*EXPORT[A-Z_]*\s*)?\w+\s*<.*>\s*;/x ) {
- # Nothing to be done with those.
- }
- else {
-
- ## decl is unidentified.
- warn "Unidentified decl: $decl\n";
- }
-
- # once we get here, the last doc node is already used.
- # postInitNode should NOT be called for forward decls
- postInitNode( $newNode ) unless !defined $newNode;
-
- return $skipBlock;
-}
-
-sub postInitNode
-{
- my $newNode = shift;
-
- carp "Cannot postinit undef node." if !defined $newNode;
-
- # The reasoning here:
- # Forward decls never get a source node.
- # Once a source node is defined, don't assign another one.
-
- if ( $newNode->{NodeType} ne "Forward" && !defined $newNode->{Source}) {
- $newNode->AddProp( "Source", $cSourceNode );
- } elsif ( $newNode->{NodeType} eq "Forward" ) {
- if ($debug) {
- print "postInit: skipping fwd: $newNode->{astNodeName}\n";
- }
- undef $docNode;
- return;
- }
-
- if( defined $docNode ) {
- kdocParseDoc::attachDoc( $newNode, $docNode, $rootNode );
- undef $docNode;
- }
-}
-
-
-##### Node generators
-
-=head2 newEnum
-
- Reads the parameters of an enumeration.
-
- Returns the parameters, or undef on error.
-
-=cut
-
-sub newEnum
-{
- my ( $enum ) = @_;
- my $k = undef;
- my $params = "";
-
- $k = $lastLine if defined $lastLine;
-
- if( defined $lastLine && $lastLine =~ /{/ ) {
- $params = $';
- if ( $lastLine =~ /}(.*?);/ ) {
- return initEnum( $enum, $1, $params );
- }
- }
-
- while ( defined ( $k = readCxxLine() ) ) {
- $params .= $k;
-
- if ( $k =~ /}(.*?);/ ) {
- return initEnum( $enum, $1, $params );
- }
- }
-
- return undef;
-}
-
-=head2 initEnum
-
- Parameters: name, (ref) params
-
- Returns an initialized enum node.
-
-=cut
-
-sub initEnum
-{
- my( $name, $end, $params ) = @_;
-
- ($name = $end) if $name eq "" && $end ne "";
-
- $params =~ s#\s+# #sg; # no newlines
- $params = $1 if $params =~ /^\s*{?(.*)}/;
- print "$name params: [$params]\n" if $debug;
-
-
- my ( $node ) = Ast::New( $name );
- $node->AddProp( "NodeType", "enum" );
- $node->AddProp( "Params", $params );
- makeParamList( $node, $params, 1 ); # Adds the ParamList property containing the list of param nodes
- kdocAstUtil::attachChild( $cNode, $node );
-
- return $node;
-}
-
-=head2 newIDLstruct
-
- Parameters: type, name, forward, complete, inherits...
-
- Handles an IDL structure definition (ie module, interface,
- exception).
-
-=cut
-
-sub newIDLstruct
-{
- my ( $type, $name, $fwd, $complete ) = @_;
-
- my $node = exists $cNode->{KidHash} ?
- $cNode->{KidHash}->{ $name } : undef;
-
- if( !defined $node ) {
- $node = Ast::New( $name );
- $node->AddProp( "NodeType", $fwd ? "Forward" : $type );
- $node->AddProp( "KidAccess", "public" );
- $node->AddProp( "Compound", 1 ) unless $fwd;
- kdocAstUtil::attachChild( $cNode, $node );
- }
- elsif ( $fwd ) {
- # If we have a node already, we ignore forwards.
- return undef;
- }
- elsif ( $node->{NodeType} eq "Forward" ) {
- # we are defining a previously forward node.
- $node->AddProp( "NodeType", $type );
- $node->AddProp( "Compound", 1 );
- $node->AddProp( "Source", $cSourceNode );
- }
-
- # register ancestors.
- foreach my $ances ( splice ( @_, 4 ) ) {
- my $n = kdocAstUtil::newInherit( $node, $ances );
- }
-
- if( !( $fwd || $complete) ) {
- print "newIDL: pushing $cNode->{astNodeName},",
- " new is $node->{astNodeName}\n"
- if $debug;
- push @classStack, $cNode;
- $cNode = $node;
- }
-
- return $node;
-}
-
-=head2 newClass
-
- Parameters: tmplArgs, cNodeType, name, endTag, @inheritlist
-
- Handles a class declaration (also fwd decls).
-
-=cut
-
-sub newClass
-{
- my( $tmplArgs, $cNodeType, $name, $endTag ) = @_;
-
- my $access = "private";
- $access = "public" if $cNodeType ne "class";
-
- # try to find an exisiting node, or create a new one
- my $oldnode = kdocAstUtil::findRef( $cNode, $name );
- my $node = defined $oldnode ? $oldnode : Ast::New( $name );
-
- if ( $endTag ne "{" ) {
- # forward
- if ( !defined $oldnode ) {
- # new forward node
- $node->AddProp( "NodeType", "Forward" );
- $node->AddProp( "KidAccess", $access );
- kdocAstUtil::attachChild( $cNode, $node );
- }
- return $node;
- }
-
- # this is a class declaration
-
- print "ClassName: $name\n" if $debug;
-
- $node->AddProp( "NodeType", $cNodeType );
- $node->AddProp( "Compound", 1 );
- $node->AddProp( "Source", $cSourceNode );
-
- $node->AddProp( "KidAccess", $access );
- $node->AddProp( "Tmpl", $tmplArgs ) unless $tmplArgs eq "";
-
- if ( !defined $oldnode ) {
- kdocAstUtil::attachChild( $cNode, $node );
- }
-
- # inheritance
-
- foreach my $ances ( splice (@_, 4) ) {
- my $type = "";
- my $name = $ances;
- my $intmpl = undef;
-
-WORD:
- foreach my $word ( split ( /([\w:]+(:?\s*<.*>)?)/, $ances ) ) {
- next WORD unless $word =~ /^[\w:]/;
- if ( $word =~ /(private|public|protected|virtual)/ ) {
- $type .= "$1 ";
- }
- else {
-
- if ( $word =~ /<(.*)>/ ) {
- # FIXME: Handle multiple tmpl args
- $name = $`;
- $intmpl = $1;
- }
- else {
- $name = $word;
- }
-
- last WORD;
- }
- }
-
- # set inheritance access specifier if none specified
- if ( $type eq "" ) {
- $type = $cNodeType eq "class" ? "private ":"public ";
- }
- chop $type;
-
- # attach inheritance information
- my $n = kdocAstUtil::newInherit( $node, $name );
- $n->AddProp( "Type", $type );
-
- $n->AddProp( "TmplType", $intmpl ) if defined $intmpl;
-
- print "In: $name type: $type, tmpl: $intmpl\n" if $debug;
- }
-
- # new current node
- print "newClass: Pushing $cNode->{astNodeName}\n" if $debug;
- push ( @classStack, $cNode );
- $cNode = $node;
-
- return $node;
-}
-
-
-=head3 parseInheritance
-
- Param: inheritance decl string
- Returns: list of superclasses (template decls included)
-
- This will fail if < and > appear in strings in the decl.
-
-=cut
-
-sub parseInheritance
-{
- my $instring = shift;
- my @inherits = ();
-
- my $accum = "";
- foreach $instring ( split (/\s*,\s*/, $instring) ) {
- $accum .= $instring.", ";
- next unless (kdocUtil::countReg( $accum, "<" )
- - kdocUtil::countReg( $accum, ">" ) ) == 0;
-
- # matching no. of < and >, so assume the parent is
- # complete
- $accum =~ s/,\s*$//;
- print "Inherits: '$accum'\n" if $debug;
- push @inherits, $accum;
- $accum = "";
- }
-
- return @inherits;
-}
-
-
-=head2 newNamespace
-
- Param: namespace name.
- Returns nothing.
-
- Imports a namespace into the current node, for ref searches etc.
- Triggered by "using namespace ..."
-
-=cut
-
-sub newNamespace
-{
- $cNode->AddPropList( "ImpNames", shift );
-}
-
-
-
-=head2 newTypedef
-
- Parameters: realtype, name
-
- Handles a type definition.
-
-=cut
-
-sub newTypedef
-{
- my ( $realtype, $name ) = @_;
-
- my ( $node ) = Ast::New( $name );
-
- $node->AddProp( "NodeType", "typedef" );
- $node->AddProp( "Type", $realtype );
-
- kdocAstUtil::attachChild( $cNode, $node );
-
- return $node;
-}
-
-=head2 newTypedefComp
-
- Params: realtype, name endtoken
-
- Creates a new compound type definition.
-
-=cut
-
-sub newTypedefComp
-{
- my ( $realtype, $name, $endtag ) = @_;
-
- my ( $node ) = Ast::New( $name );
-
- $node->AddProp( "NodeType", "typedef" );
- $node->AddProp( "Type", $realtype );
-
- kdocAstUtil::attachChild( $cNode, $node );
-
- if ( $endtag eq '{' ) {
- print "newTypedefComp: Pushing $cNode->{astNodeName}\n"
- if $debug;
- push ( @classStack, $cNode );
- $cNode = $node;
- }
-
- return $node;
-}
-
-
-=head2 newMethod
-
- Parameters: retType, name, params, const, pure?
-
- Handles a new method declaration or definition.
-
-=cut
-BEGIN {
-
-my $theSourceNode = $cSourceNode;
-
-sub newMethod
-{
- my ( $retType, $name, $params, $const, $pure ) = @_;
- my $parent = $cNode;
- my $class;
-
- print "Cracked: [$retType] [$name]\n\t[$params]\n\t[$const]\n"
- if $debug;
-
- if ( $retType =~ /([\w\s_<>,]+)\s*::\s*$/ ) {
- # check if stuff before :: got into rettype by mistake.
- $retType = $`;
- ($name = $1."::".$name);
- $name =~ s/\s+/ /g;
- print "New name = \"$name\" and type = '$retType'\n" if $debug;
- }
-
- # A 'friend method' declaration isn't a real method declaration
- return undef if ( $retType =~ /^friend\s+/ || $retType =~ /^friend\s+class\s+/ );
-
- my $isGlobalSpace = 0;
- my $nameWasChanged = 0;
- my $origName;
-
- if( $name =~ /^\s*(.*?)\s*::\s*(.*?)\s*$/ ) {
- # Fully qualified method name.
- $name = $2;
- $class = $1;
-
- if( $class =~ /^\s*$/ ) {
- $parent = $rootNode;
- }
- elsif ( $class eq $cNode->{astNodeName} ) {
- $parent = $cNode;
- }
- else {
- # ALWAYS IGNORE...
- return undef;
-
- my $node = kdocAstUtil::findRef( $cNode, $class );
-
- if ( !defined $node ) {
- # if we couldn't find the name, try again with
- # all template parameters stripped off:
- my $strippedClass = $class;
- $strippedClass =~ s/<[^<>]*>//g;
-
- $node = kdocAstUtil::findRef( $cNode, $strippedClass );
-
- # if still not found: give up
- if ( !defined $node ) {
- warn "$exe: Unidentified class: $class ".
- "in $currentfile\:$.\n";
- return undef;
- }
- }
-
- $parent = $node;
- }
- }
- # TODO fix for $retType =~ /template<.*?>/
- elsif( $parse_global_space && $parent->{NodeType} eq "root" && $name !~ /\s*qt_/ && $retType !~ /template\s*<.*?>/ ) {
- $origName = $name;
- # $name =~ s/^q([A-Z])([a-z]+)/$nameWasChanged++, lc($1).$2/e; # too much troubles (eg. qGLVersion, qRed vs. Qt::red )
- $name =~ s/^\s*operator(.*)$/$nameWasChanged++, "$1"/e;
- $class = $globalSpaceClassName; # FIXME - sanitize the naming system?
- $isGlobalSpace = 1;
-
- my $opsNode = kdocAstUtil::findRef( $cNode, $class );
- if (!$opsNode) {
- # manually create a "GlobalSpace" class
- $opsNode = Ast::New( $class );
- $opsNode->AddProp( "NodeType", "class" );
- $opsNode->AddProp( "Compound", 1 );
- $opsNode->AddProp( "Source", $cSourceNode ); # dummy
- $opsNode->AddProp( "KidAccess", "public" );
- kdocAstUtil::attachChild( $cNode, $opsNode );
- }
- unless( $theSourceNode == $cSourceNode ) {
- $theSourceNode = $cSourceNode;
- $opsNode->AddPropList( "Sources", $theSourceNode ); # sources are scattered across Qt
- }
- $parent = $opsNode;
- }
-
- # flags
-
- my $flags = "";
-
- if( $retType =~ /static/ || $isGlobalSpace ) {
- $flags .= "s";
- $retType =~ s/static//g;
- }
-
- if( $const && !$isGlobalSpace ) {
- $flags .= "c";
- }
-
- if( $pure ) {
- $flags .= "p";
- }
-
- if( $retType =~ /virtual/ ) {
- $flags .= "v";
- $retType =~ s/virtual//g;
- }
-
- print "\n" if $flags ne "" && $debug;
-
- if ( !defined $parent->{KidAccess} ) {
- warn "'", $parent->{astNodeName}, "' has no KidAccess ",
- exists $parent->{Forward} ? "(forward)\n" :"\n";
- }
-
- # NB, these are =~, so make sure they are listed in correct order
- if ( $parent->{KidAccess} =~ /slot/ ) {
- $flags .= "l";
- }
- elsif ( $parent->{KidAccess} =~ /k_dcop_signals/ ) {
- $flags .= "z";
- }
- elsif ( $parent->{KidAccess} =~ /k_dcop_hidden/ ) {
- $flags .= "y";
- }
- elsif ( $parent->{KidAccess} =~ /k_dcop/ ) {
- $flags .= "d";
- }
- elsif ( $parent->{KidAccess} =~ /signal/ ) {
- $flags .= "n";
- }
-
- $retType =~ s/QM?_EXPORT[_A-Z]*\s*//;
- $retType =~ s/inline\s+//;
- $retType =~ s/extern\s+//;
- $retType =~ s/^\s*//g;
- $retType =~ s/\s*$//g;
-
- # node
-
- my $node = Ast::New( $name );
- $node->AddProp( "NodeType", "method" );
- $node->AddProp( "Flags", $flags );
- $node->AddProp( "ReturnType", $retType );
- $node->AddProp( "Params", $params ); # The raw string with the whole param list
- makeParamList( $node, $params, 0 ); # Adds the ParamList property containing the list of param nodes
-
- $parent->AddProp( "Pure", 1 ) if $pure;
-
- if ($nameWasChanged) {
- $node->AddProp( "OriginalName", $origName );
- }
-
- kdocAstUtil::attachChild( $parent, $node );
- return $node;
-}
-
-}
-
-=head2 makeParamList
-
- Parameters:
- * method (or enum) node
- * string containing the whole param list
- * 1 for enums
-
- Adds a property "ParamList" to the method node.
- This property contains a list of nodes, one for each parameter.
-
- Each parameter node has the following properties:
- * ArgType the type of the argument, e.g. const QString&
- * ArgName the name of the argument - optionnal
- * DefaultValue the default value of the argument - optionnal
-
- For enum values, ArgType is unset, ArgName is the name, DefaultValue its value.
-
- Author: David Faure <david@mandrakesoft.com>
-=cut
-
-sub makeParamList($$$)
-{
- my ( $methodNode, $params, $isEnum ) = @_;
- $params =~ s/\s+/ /g; # normalize multiple spaces/tabs into a single one
- $params =~ s/\s*([,\*\&])\s*/$1 /g; # normalize spaces before and after *, & and ','
- $params =~ s/^\s*void\s*$//; # foo(void) ==> foo()
- $params =~ s/^\s*$//;
- # Make sure the property always exists, makes iteration over it easier
- $methodNode->AddProp( "ParamList", [] );
-
- my @args = kdocUtil::splitUnnested( ',', $params);
-
- my $argId = 0;
- foreach my $arg ( @args ) {
- my $argType;
- my $argName;
- my $defaultparam;
- $arg =~ s/\s*([^\s].*[^\s])\s*/$1/; # stripWhiteSpace
- $arg =~ s/(\w+)\[\]/\* $1/; # Turn [] array into *
-
- # The RE below reads as: = ( string constant or char
- # or some word/number, with optional bitwise shifts, OR'ed or +'ed flags, and/or function call ).
- if ( $arg =~ s/\s*=\s*(("[^\"]*")|(\'.\')|(([-\w:~]*)\s*([<>\|\+-]*\s*\w*\s*)*(\([^(]*\))?))// ) {
- $defaultparam = $1;
- }
-
- # Separate arg type from arg name, if the latter is specified
- if ( $arg =~ /(.*)\s+([\w_]+)\s*$/ || $arg =~ /(.*)\(\s*\*\s([\w_]+)\)\s*\((.*)\)\s*$/ ) {
- if ( defined $3 ) { # function pointer
- $argType = $1."(*)($3)";
- $argName = $2;
- } else {
- $argType = $1;
- $argName = $2;
- }
- } else { # unnamed arg - or enum value
- $argType = $arg if (!$isEnum);
- $argName = $arg if ($isEnum);
- }
- $argId++;
-
- my $node = Ast::New( $argId ); # let's make the arg index the node "name"
- $node->AddProp( "NodeType", "param" );
- $node->AddProp( "ArgType", $argType );
- $node->AddProp( "ArgName", $argName ) if (defined $argName);
- $node->AddProp( "DefaultValue", $defaultparam ) if (defined $defaultparam);
- $methodNode->AddPropList( "ParamList", $node );
- print STDERR "ArgType: $argType ArgName: $argName\n" if ($debug);
- }
-}
-
-=head2 newAccess
-
- Parameters: access
-
- Sets the default "Access" specifier for the current class node. If
- the access is a "slot" type, "_slots" is appended to the access
- string.
-
-=cut
-
-sub newAccess
-{
- my ( $access ) = @_;
-
- return undef unless ($access =~ /^\s*(\w+)\s*(slots|$allowed_k_dcop_accesors_re)?/);
-
- print "Access: [$1] [$2]\n" if $debug;
-
- $access = $1;
-
- if ( defined $2 && $2 ne "" ) {
- $access .= "_" . $2;
- }
-
- $cNode->AddProp( "KidAccess", $access );
-
- return $cNode;
-}
-
-
-=head2 newVar
-
- Parameters: type, name, value
-
- New variable. Value is ignored if undef
-
-=cut
-
-sub newVar
-{
- my ( $type, $name, $val ) = @_;
-
- my $node = Ast::New( $name );
- $node->AddProp( "NodeType", "var" );
-
- my $static = 0;
- if ( $type =~ /static/ ) {
- # $type =~ s/static//;
- $static = 1;
- }
-
- $node->AddProp( "Type", $type );
- $node->AddProp( "Flags", 's' ) if $static;
- $node->AddProp( "Value", $val ) if defined $val;
- kdocAstUtil::attachChild( $cNode, $node );
-
- return $node;
-}
-
-
-
-=head2 show_usage
-
- Display usage information and quit.
-
-=cut
-
-sub show_usage
-{
-print<<EOF;
-usage:
- $exe [options] [-f format] [-d outdir] [-n name] files... [-llib..]
-
-See the man page kdoc[1] for more info.
-EOF
- exit 1;
-}
-
-
-=head2 show_version
-
- Display short version information and quit.
-
-=cut
-
-sub show_version
-{
- die "$exe: $Version (c) Sirtaj S. Kang <taj\@kde.org>\n";
-}
-
-
diff --git a/dcopidlng/kalyptusCxxToDcopIDL.pm b/dcopidlng/kalyptusCxxToDcopIDL.pm
deleted file mode 100644
index a6fd58ad9..000000000
--- a/dcopidlng/kalyptusCxxToDcopIDL.pm
+++ /dev/null
@@ -1,1047 +0,0 @@
-#***************************************************************************
-# kalyptusCxxToDcopIDL.pm - Generates idl from dcop headers
-# -------------------
-# begin : Fri Jan 25 12:00:00 2000
-# copyright : (C) 2003 Alexander Kellett
-# email : lypanov@kde.org
-# author : Alexander Kellett
-#***************************************************************************/
-
-#/***************************************************************************
-# * *
-# * This program is free software; you can redistribute it and/or modify *
-# * it under the terms of the GNU General Public License as published by *
-# * the Free Software Foundation; either version 2 of the License, or *
-# * (at your option) any later version. *
-# * *
-#***************************************************************************/
-
-package kalyptusCxxToDcopIDL;
-
-use File::Path;
-use File::Basename;
-use Carp;
-use Ast;
-use kdocAstUtil;
-use kdocUtil;
-use Iter;
-use kalyptusDataDict;
-use Data::Dumper;
-
-use strict;
-no strict "subs";
-
-use vars qw/
- $libname $rootnode $outputdir $opt $debug
- $methodNumber
- %builtins %typeunion %allMethods %allTypes %enumValueToType %typedeflist %mungedTypeMap
- %skippedClasses /;
-
-BEGIN
-{
-
-# Types supported by the StackItem union
-# Key: C++ type Value: Union field of that type
-%typeunion = (
- 'void*' => 's_voidp',
- 'bool' => 's_bool',
- 'char' => 's_char',
- 'uchar' => 's_uchar',
- 'short' => 's_short',
- 'ushort' => 's_ushort',
- 'int' => 's_int',
- 'uint' => 's_uint',
- 'long' => 's_long',
- 'ulong' => 's_ulong',
- 'float' => 's_float',
- 'double' => 's_double',
- 'enum' => 's_enum',
- 'class' => 's_class'
-);
-
-# Mapping for iterproto, when making up the munged method names
-%mungedTypeMap = (
- 'QString' => '$',
- 'QString*' => '$',
- 'QString&' => '$',
- 'QCString' => '$',
- 'QCString*' => '$',
- 'QCString&' => '$',
- 'QByteArray' => '$',
- 'QByteArray&' => '$',
- 'QByteArray*' => '$',
- 'char*' => '$',
- 'QCOORD*' => '?',
- 'QRgb*' => '?',
-);
-
-# Yes some of this is in kalyptusDataDict's ctypemap
-# but that one would need to be separated (builtins vs normal classes)
-%typedeflist =
-(
- 'signed char' => 'char',
- 'unsigned char' => 'uchar',
- 'signed short' => 'short',
- 'unsigned short' => 'ushort',
- 'signed' => 'int',
- 'signed int' => 'int',
- 'unsigned' => 'uint',
- 'unsigned int' => 'uint',
- 'signed long' => 'long',
- 'unsigned long' => 'ulong',
-
-# Anything that is not known is mapped to void*, so no need for those here anymore
-# 'QWSEvent*' => 'void*',
-# 'QDiskFont*' => 'void*',
-# 'XEvent*' => 'void*',
-# 'QStyleHintReturn*' => 'void*',
-# 'FILE*' => 'void*',
-# 'QUnknownInterface*' => 'void*',
-# 'GDHandle' => 'void*',
-# '_NPStream*' => 'void*',
-# 'QTextFormat*' => 'void*',
-# 'QTextDocument*' => 'void*',
-# 'QTextCursor*' => 'void*',
-# 'QTextParag**' => 'void*',
-# 'QTextParag*' => 'void*',
-# 'QRemoteInterface*' => 'void*',
-# 'QSqlRecordPrivate*' => 'void*',
-# 'QTSMFI' => 'void*', # QTextStream's QTSManip
-# 'const GUID&' => 'void*',
-# 'QWidgetMapper*' => 'void*',
-# 'MSG*' => 'void*',
-# 'const QSqlFieldInfoList&' => 'void*', # QSqlRecordInfo - TODO (templates)
-
- 'QPtrCollection::Item' => 'void*', # to avoid a warning
-
- 'mode_t' => 'long',
- 'QProcess::PID' => 'long',
- 'size_type' => 'int', # QSqlRecordInfo
- 'Qt::ComparisonFlags' => 'uint',
- 'Qt::ToolBarDock' => 'int', # compat thing, Qt shouldn't use it
- 'QIODevice::Offset' => 'ulong',
- 'WState' => 'int',
- 'WId' => 'ulong',
- 'QRgb' => 'uint',
- 'QCOORD' => 'int',
- 'QTSMFI' => 'int',
- 'Qt::WState' => 'int',
- 'Qt::WFlags' => 'int',
- 'Qt::HANDLE' => 'uint',
- 'QEventLoop::ProcessEventsFlags' => 'uint',
- 'QStyle::SCFlags' => 'int',
- 'QStyle::SFlags' => 'int',
- 'Q_INT16' => 'short',
- 'Q_INT32' => 'int',
- 'Q_INT8' => 'char',
- 'Q_LONG' => 'long',
- 'Q_UINT16' => 'ushort',
- 'Q_UINT32' => 'uint',
- 'Q_UINT8' => 'uchar',
- 'Q_ULONG' => 'long',
-);
-
-}
-
-sub writeDoc
-{
- ( $libname, $rootnode, $outputdir, $opt ) = @_;
-
- print STDERR "Starting writeDoc for $libname...\n";
-
- $debug = $main::debuggen;
-
- # Define QPtrCollection::Item, for resolveType
- unless ( kdocAstUtil::findRef( $rootnode, "QPtrCollection::Item" ) ) {
- my $cNode = kdocAstUtil::findRef( $rootnode, "QPtrCollection" );
- warn "QPtrCollection not found" if (!$cNode);
- my $node = Ast::New( 'Item' );
- $node->AddProp( "NodeType", "Forward" );
- $node->AddProp( "Source", $cNode->{Source} ) if ($cNode);
- kdocAstUtil::attachChild( $cNode, $node ) if ($cNode);
- $node->AddProp( "Access", "public" );
- }
-
- print STDERR "Preparsing...\n";
-
- # Preparse everything, to prepare some additional data in the classes and methods
- Iter::LocalCompounds( $rootnode, sub { preParseClass( shift ); } );
-
- # Write out smokedata.cpp
- writeSmokeDataFile($rootnode);
-
- print STDERR "Writing dcopidl...\n";
-
- print STDOUT "<!DOCTYPE DCOP-IDL><DCOP-IDL>\n";
-
- print STDOUT "<SOURCE>".@{$rootnode->{Sources}}[0]->{astNodeName}."</SOURCE>\n";
-
- print STDOUT map { "<INCLUDE>$_</INCLUDE>\n" } reverse @main::includes_list;
-
- Iter::LocalCompounds( $rootnode, sub {
- my ($node) = @_;
-
- my ($methodCode, $switchCode, $incl) = generateAllMethods( $node );
- my $className = join "::", kdocAstUtil::heritage($node);
-
- if ($node->{DcopExported}) {
- print STDOUT "<CLASS>\n";
- print STDOUT " <NAME>$className</NAME>\n";
- print STDOUT join("\n", map { " <SUPER>$_</SUPER>"; } grep { $_ ne "Global"; }
- map {
- my $name = $_->{astNodeName};
- $name =~ s/</&lt;/;
- $name =~ s/>/&gt;/;
- my $tmpl = $_->{TmplType};
- $tmpl =~ s/</&lt;/;
- $tmpl =~ s/>/&gt;/;
- $tmpl ? "$name&lt;<TYPE>$tmpl</TYPE>&gt;" : $name;
- } @{$node->{InList}}) . "\n";
- print STDOUT $methodCode;
-
- print STDOUT "</CLASS>\n";
- }
- });
-
- print STDOUT "</DCOP-IDL>\n";
-
- print STDERR "Done.\n";
-}
-
-=head2 preParseClass
- Called for each class
-=cut
-sub preParseClass
-{
- my( $classNode ) = @_;
- my $className = join( "::", kdocAstUtil::heritage($classNode) );
-
- if( $#{$classNode->{Kids}} < 0 ||
- $classNode->{Access} eq "private" ||
- $classNode->{Access} eq "protected" || # e.g. QPixmap::QPixmapData
- exists $classNode->{Tmpl} ||
- # Don't generate standard bindings for QString, this class is handled as a native type
- $className eq 'QString' ||
- $className eq 'QConstString' ||
- $className eq 'QCString' ||
- # Don't map classes which are really arrays
- $className eq 'QStringList' ||
- $className eq 'QCanvasItemList' ||
- $className eq 'QWidgetList' ||
- $className eq 'QObjectList' ||
- $className eq 'QStrList' ||
- # Those are template related
- $className eq 'QTSManip' || # cause compiler errors with several gcc versions
- $className eq 'QGDict' ||
- $className eq 'QGList' ||
- $className eq 'QGVector' ||
- $className eq 'QStrIList' ||
- $className eq 'QStrIVec' ||
- $className eq 'QByteArray' ||
- $className eq 'QBitArray' ||
- $classNode->{NodeType} eq 'union' # Skip unions for now, e.g. QPDevCmdParam
- ) {
- print STDERR "Skipping $className\n" if ($debug);
- print STDERR "Skipping union $className\n" if ( $classNode->{NodeType} eq 'union');
- $skippedClasses{$className} = 1;
- delete $classNode->{Compound}; # Cheat, to get it excluded from Iter::LocalCompounds
- return;
- }
-
- my $signalCount = 0;
- my $eventHandlerCount = 0;
- my $defaultConstructor = 'none'; # none, public, protected or private. 'none' will become 'public'.
- my $constructorCount = 0; # total count of _all_ ctors
- # If there are ctors, we need at least one public/protected one to instanciate the class
- my $hasPublicProtectedConstructor = 0;
- # We need a public dtor to destroy the object --- ### aren't protected dtors ok too ??
- my $hasPublicDestructor = 1; # by default all classes have a public dtor!
- my $hasDestructor = 0;
- my $hasPrivatePureVirtual = 0;
- my $hasCopyConstructor = 0;
- my $hasPrivateCopyConstructor = 0;
- # Note: no need for hasPureVirtuals. $classNode{Pure} has that.
-
- my $doPrivate = $main::doPrivate;
- $main::doPrivate = 1;
- # Look at each class member (looking for methods and enums in particular)
- Iter::MembersByType ( $classNode, undef,
- sub {
-
- my( $classNode, $m ) = @_;
- my $name = $m->{astNodeName};
-
- if( $m->{NodeType} eq "method" ) {
- if ( $m->{ReturnType} eq 'typedef' # QFile's EncoderFn/DecoderFn callback, very badly parsed
- ) {
- $m->{NodeType} = 'deleted';
- next;
- }
-
- print STDERR "preParseClass: looking at $className\::$name $m->{Params}\n" if ($debug);
-
- if ( $name eq $classNode->{astNodeName} ) {
- if ( $m->{ReturnType} =~ /~/ ) {
- # A destructor
- $hasPublicDestructor = 0 if $m->{Access} ne 'public';
- $hasDestructor = 1;
- } else {
- # A constructor
- $constructorCount++;
- $defaultConstructor = $m->{Access} if ( $m->{Params} eq '' );
- $hasPublicProtectedConstructor = 1 if ( $m->{Access} ne 'private' );
-
- # Copy constructor?
- if ( $#{$m->{ParamList}} == 0 ) {
- my $theArgType = @{$m->{ParamList}}[0]->{ArgType};
- if ($theArgType =~ /$className\s*\&/) {
- $hasCopyConstructor = 1;
- $hasPrivateCopyConstructor = 1 if ( $m->{Access} eq 'private' );
- }
- }
- # Hack the return type for constructors, since constructors return an object pointer
- $m->{ReturnType} = $className."*";
- }
- }
-
- if ( $name =~ /~$classNode->{astNodeName}/ && $m->{Access} ne "private" ) { # not used
- $hasPublicDestructor = 0 if $m->{Access} ne 'public';
- $hasDestructor = 1;
- }
-
- if ( $m->{Flags} =~ "p" && $m->{Access} =~ /private/ ) {
- $hasPrivatePureVirtual = 1; # ouch, can't inherit from that one
- }
-
- # All we want from private methods is to check for virtuals, nothing else
- next if ( $m->{Access} =~ /private/ );
-
- my $argId = 0;
- my $firstDefaultParam;
- foreach my $arg ( @{$m->{ParamList}} ) {
- # Look for first param with a default value
- if ( defined $arg->{DefaultValue} && !defined $firstDefaultParam ) {
- $firstDefaultParam = $argId;
- }
-
- if ( $arg->{ArgType} eq '...' # refuse a method with variable arguments
- or $arg->{ArgType} eq 'image_io_handler' # QImage's callback
- or $arg->{ArgType} eq 'DecoderFn' # QFile's callback
- or $arg->{ArgType} eq 'EncoderFn' # QFile's callback
- or $arg->{ArgType} =~ /bool \(\*\)\(QObject/ # QMetaObject's ctor
- or $arg->{ArgType} eq 'QtStaticMetaObjectFunction' # QMetaObjectCleanUp's ctor with func pointer
- or $arg->{ArgType} eq 'const QTextItem&' # ref to a private class in 3.2.0b1
- or $arg->{ArgType} eq 'FILE*' # won't be able to handle that I think
- ) {
- $m->{NodeType} = 'deleted';
- }
- else
- {
- # Resolve type in full, e.g. for QSessionManager::RestartHint
- # (x_QSessionManager doesn't inherit QSessionManager)
- $arg->{ArgType} = kalyptusDataDict::resolveType($arg->{ArgType}, $classNode, $rootnode);
- registerType( $arg->{ArgType} );
- $argId++;
- }
- }
- $m->AddProp( "FirstDefaultParam", $firstDefaultParam );
- $m->{ReturnType} = kalyptusDataDict::resolveType($m->{ReturnType}, $classNode, $rootnode) if ($m->{ReturnType});
- registerType( $m->{ReturnType} );
- }
- elsif( $m->{NodeType} eq "enum" ) {
- my $fullEnumName = $className."::".$m->{astNodeName};
- $classNode->{enumerations}{$m->{astNodeName}} = $fullEnumName
- if $m->{astNodeName} and $m->{Access} ne 'private';
-
- # Define a type for this enum
- registerType( $fullEnumName );
-
- # Remember that it's an enum
- findTypeEntry( $fullEnumName )->{isEnum} = 1;
-
- #print STDERR "$fullEnumName is an enum\n";
- }
- elsif( $m->{NodeType} eq 'var' ) {
- my $varType = $m->{Type};
- # We are interested in public static vars, like QColor::blue
- if ( $varType =~ s/static\s+// && $m->{Access} ne 'private' )
- {
- $varType =~ s/const\s+(.*)\s*&/$1/;
- $varType =~ s/\s*$//;
- print STDERR "var: $m->{astNodeName} '$varType'\n" if ($debug);
-
- # Register the type
- registerType( $varType );
-
- } else {
- # To avoid duplicating the above test, we just get rid of any other var
- $m->{NodeType} = 'deleted';
- }
- }
- },
- undef
- );
- $main::doPrivate = $doPrivate;
-
- print STDERR "$className: ctor count: $constructorCount, hasPublicProtectedConstructor: $hasPublicProtectedConstructor, hasCopyConstructor: $hasCopyConstructor:, defaultConstructor: $defaultConstructor, hasPublicDestructor: $hasPublicDestructor, hasPrivatePureVirtual:$hasPrivatePureVirtual\n" if ($debug);
-
- # We will derive from the class only if it has public or protected constructors.
- # (_Even_ if it has pure virtuals. But in that case the x_ class can't be instantiated either.)
- $classNode->AddProp( "BindingDerives", $hasPublicProtectedConstructor );
-}
-
-
-=head2 writeClassDoc
-
- Called by writeDoc for each series of classes to be written out
-
-=cut
-
- sub writeClassDoc
- {
- }
-
-# Generate the prototypes for a method (one per arg with a default value)
-# Helper for makeprotos
-sub iterproto($$$$$) {
- my $classidx = shift; # to check if a class exists
- my $method = shift;
- my $proto = shift;
- my $idx = shift;
- my $protolist = shift;
-
- my $argcnt = scalar @{ $method->{ParamList} } - 1;
- if($idx > $argcnt) {
- push @$protolist, $proto;
- return;
- }
- if(defined $method->{FirstDefaultParam} and $method->{FirstDefaultParam} <= $idx) {
- push @$protolist, $proto;
- }
-
- my $arg = $method->{ParamList}[$idx]->{ArgType};
-
- my $typeEntry = findTypeEntry( $arg );
- my $realType = $typeEntry->{realType};
-
- # A scalar ?
- $arg =~ s/\bconst\b//g;
- $arg =~ s/\s+//g;
- if($typeEntry->{isEnum} || $allTypes{$realType}{isEnum} || exists $typeunion{$realType} || exists $mungedTypeMap{$arg})
- {
- my $id = '$'; # a 'scalar
- $id = '?' if $arg =~ /[*&]{2}/;
- $id = $mungedTypeMap{$arg} if exists $mungedTypeMap{$arg};
- iterproto($classidx, $method, $proto . $id, $idx + 1, $protolist);
- return;
- }
-
- # A class ?
- if(exists $classidx->{$realType}) {
- iterproto($classidx, $method, $proto . '#', $idx + 1, $protolist);
- return;
- }
-
- # A non-scalar (reference to array or hash, undef)
- iterproto($classidx, $method, $proto . '?', $idx + 1, $protolist);
- return;
-}
-
-# Generate the prototypes for a method (one per arg with a default value)
-sub makeprotos($$$) {
- my $classidx = shift;
- my $method = shift;
- my $protolist = shift;
- iterproto($classidx, $method, $method->{astNodeName}, 0, $protolist);
-}
-
-# Return the string containing the signature for this method (without return type).
-# If the 2nd arg is not the size of $m->{ParamList}, this method returns a
-# partial signature (this is used to handle default values).
-sub methodSignature($$) {
- my $method = shift;
- my $last = shift;
- my $sig = $method->{astNodeName};
- my @argTypeList;
- my $argId = 0;
- foreach my $arg ( @{$method->{ParamList}} ) {
- last if $argId > $last;
- push @argTypeList, $arg->{ArgType};
- $argId++;
- }
- $sig .= "(". join(", ",@argTypeList) .")";
- $sig .= " const" if $method->{Flags} =~ "c";
- return $sig;
-}
-
-sub coerce_type($$$$) {
- #my $m = shift;
- my $union = shift;
- my $var = shift;
- my $type = shift;
- my $new = shift; # 1 if this is a return value, 0 for a normal param
-
- my $typeEntry = findTypeEntry( $type );
- my $realType = $typeEntry->{realType};
-
- my $unionfield = $typeEntry->{typeId};
- die "$type" unless defined( $unionfield );
- $unionfield =~ s/t_/s_/;
-
- $type =~ s/\s+const$//; # for 'char* const'
- $type =~ s/\s+const\s*\*$/\*/; # for 'char* const*'
-
- my $code = "$union.$unionfield = ";
- if($type =~ /&$/) {
- $code .= "(void*)&$var;\n";
- } elsif($type =~ /\*$/) {
- $code .= "(void*)$var;\n";
- } else {
- if ( $unionfield eq 's_class'
- or ( $unionfield eq 's_voidp' and $type ne 'void*' )
- or $type eq 'QString' ) { # hack
- $type =~ s/^const\s+//;
- if($new) {
- $code .= "(void*)new $type($var);\n";
- } else {
- $code .= "(void*)&$var;\n";
- }
- } else {
- $code .= "$var;\n";
- }
- }
-
- return $code;
-}
-
-# Generate the list of args casted to their real type, e.g.
-# (QObject*)x[1].s_class,(QEvent*)x[2].s_class,x[3].s_int
-sub makeCastedArgList
-{
- my @castedList;
- my $i = 1; # The args start at x[1]. x[0] is the return value
- my $arg;
- foreach $arg (@_) {
- my $type = $arg;
- my $cast;
-
- my $typeEntry = findTypeEntry( $type );
- my $unionfield = $typeEntry->{typeId};
- die "$type" unless defined( $unionfield );
- $unionfield =~ s/t_/s_/;
-
- $type =~ s/\s+const$//; # for 'char* const'
- $type =~ s/\s+const\s*\*$/\*/; # for 'char* const*'
-
- my $v .= "$unionfield";
- if($type =~ s/&$//) {
- $cast = "{($type *)}";
- } elsif($type =~ /\*$/) {
- $cast = "$type";
- } elsif($type =~ /\(\*\)\s*\(/) { # function pointer ... (*)(...)
- $cast = "$type";
- } else {
- if ( $unionfield eq 's_class'
- or ( $unionfield eq 's_voidp' and $type ne 'void*' )
- or $type eq 'QString' ) { # hack
- $cast = "{*($type *)}";
- } else {
- $cast = "$type";
- }
- }
- push @castedList, "<TYPE>$cast</TYPE>$v";
- $i++;
- }
- return @castedList;
-}
-
-# Adds the header for node $1 to be included in $2 if not already there
-# Prints out debug stuff if $3
-sub addIncludeForClass($$$)
-{
- my ( $node, $addInclude, $debugMe ) = @_;
- my $sourcename = $node->{Source}->{astNodeName};
- $sourcename =~ s!.*/(.*)!$1!m;
- die "Empty source name for $node->{astNodeName}" if ( $sourcename eq '' );
- unless ( defined $addInclude->{$sourcename} ) {
- print " Including $sourcename\n" if ($debugMe);
- $addInclude->{$sourcename} = 1;
- }
- else { print " $sourcename already included.\n" if ($debugMe); }
-}
-
-sub checkIncludesForObject($$)
-{
- my $type = shift;
- my $addInclude = shift;
-
- my $debugCI = 0; #$debug
- #print "checkIncludesForObject $type\n";
- $type =~ s/const\s+//;
- my $it = $type;
- if (!($it and exists $typeunion{$it}) and $type !~ /\*/
- #and $type !~ /&/ # in fact we also want refs, due to the generated code
- ) {
- $type =~ s/&//;
- print " Detecting an object by value/ref: $type\n" if ($debugCI);
- my $node = kdocAstUtil::findRef( $rootnode, $type );
- if ($node) {
- addIncludeForClass( $node, $addInclude, $debugCI );
- }
- else { print " No header found for $type\n" if ($debugCI); }
- }
-}
-
-sub generateMethod($$$)
-{
- my( $classNode, $m, $addInclude ) = @_; # input
- my $methodCode = ''; # output
-
- my $name = $m->{astNodeName}; # method name
- my @heritage = kdocAstUtil::heritage($classNode);
- my $className = join( "::", @heritage );
- my $xClassName = "x_" . join( "__", @heritage );
-
- # Check some method flags: constructor, destructor etc.
- my $flags = $m->{Flags};
-
- if ( !defined $flags ) {
- warn "Method ".$name. " has no flags\n";
- }
-
- my $returnType = $m->{ReturnType};
- $returnType = undef if ($returnType eq 'void');
-
- # Don't use $className here, it's never the fully qualified (A::B) name for a ctor.
- my $isConstructor = ($name eq $classNode->{astNodeName} );
- my $isDestructor = ($returnType eq '~');
-
- if ($debug) {
- print STDERR " Method $name";
- print STDERR ", is DTOR" if $isDestructor;
- print STDERR ", returns $returnType" if $returnType;
- #print STDERR " ($m->{Access})";
- print STDERR "\n";
- }
-
- # Don't generate anything for destructors
- return if $isDestructor;
-
- return if ( $m->{SkipFromSwitch} ); # pure virtuals, etc.
-
-# # Skip internal methods, which return unknown types
-# # Hmm, the C# bindings have a list of those too.
-# return if ( $returnType =~ m/QGfx\s*\*/ );
-# return if ( $returnType eq 'CGContextRef' );
-# return if ( $returnType eq 'QWSDisplay *' );
-# # This stuff needs callback, or **
-# return if ( $name eq 'defineIOHandler' or $name eq 'qt_init_internal' );
-# # Skip casting operators, but not == < etc.
-# return if ( $name =~ /operator \w+/ );
-# # QFile's EncoderFn/DecoderFn
-# return if ( $name =~ /set[ED][ne]codingFunction/ );
-# # How to implement this? (QXmlDefaultHandler/QXmlEntityResolver::resolveEntity, needs A*&)
-# return if ( $name eq 'resolveEntity' and $className =~ /^QXml/ );
-# return if ( $className eq 'QBitArray' && $m->{Access} eq 'protected' );
-
- #print STDERR "Tests passed, generating.\n";
-
- # Detect objects returned by value
- checkIncludesForObject( $returnType, $addInclude ) if ($returnType);
-
- my $argId = 0;
-
- my @argTypeList=();
-
- my $args = "";
-
- foreach my $arg ( @{$m->{ParamList}} ) {
-
- print STDERR " Param ".$arg->{astNodeName}." type: ".$arg->{ArgType}." name:".$arg->{ArgName}." default: ".$arg->{DefaultValue}."\n" if ($debug);
-
- my $argType = $arg->{ArgType};
-
- my $x_isConst = ($argType =~ s/const//);
- my $x_isRef = ($argType =~ s/&//);
-
- my $typeAttrs = "";
- $typeAttrs .= " qleft=\"const\"" if $x_isConst;
- $typeAttrs .= " qright=\"&amp;\"" if $x_isRef;
-
- $argType =~ s/^\s*(.*?)\s*$/$1/;
- $argType =~ s/</&lt;/g;
- $argType =~ s/>/&gt;/g;
- $argType =~ s/\s//g;
-
- $args .= " <ARG><TYPE$typeAttrs>$argType</TYPE><NAME>$arg->{ArgName}</NAME></ARG>\n";
-
- push @argTypeList, $argType;
-
- # Detect objects passed by value
- checkIncludesForObject( $argType, $addInclude );
- }
-
-# my @castedArgList = makeCastedArgList( @argTypeList );
-
- my $isStatic = ($flags =~ "s");
- my $extra = "";
- $extra .= "static " if $isStatic || $isConstructor;
-
- my $qual = "";
- $qual .= " qual=\"const\"" if $flags =~ "c";
-
- my $this = $classNode->{BindingDerives} > 0 ? "this" : "xthis";
-
- # We iterate as many times as we have default params
- my $firstDefaultParam = $m->{FirstDefaultParam};
- $firstDefaultParam = scalar(@argTypeList) unless defined $firstDefaultParam;
-
- my $xretCode = '';
- if($returnType) {
- $xretCode .= coerce_type('x[0]', 'xret', $returnType, 1); }
-
- $returnType = "void" unless $returnType;
- $returnType =~ s/</&lt;/g;
- $returnType =~ s/>/&gt;/g;
-
- my $methodCode = "";
-
- my $tagType = ($flags !~ /z/) ? "FUNC" : "SIGNAL";
- my $tagAttr = "";
- $tagAttr .= " hidden=\"yes\"" if $flags =~ /y/;
-
- if (!$isConstructor) {
- $methodCode .= " <$tagType$tagAttr$qual>\n";
- $methodCode .= " <TYPE>$returnType</TYPE>\n";
- $methodCode .= " <NAME>$name</NAME>\n";
- $methodCode .= "$args";
- $methodCode .= " </$tagType>\n";
- }
-
- $methodNumber++;
-
- return ( $methodCode, "" );
-}
-
-## Called by writeClassDoc
-sub generateAllMethods
-{
- my ($classNode) = @_;
- my $methodCode = '';
-
- my $sourcename = $classNode->{Source}->{astNodeName};
- $sourcename =~ s!.*/(.*)!$1!m;
- die "Empty source name for $classNode->{astNodeName}" if ( $sourcename eq '' );
-
- my %addInclude = ( $sourcename => 1 );
-
- # Then all methods
- Iter::MembersByType ( $classNode, undef,
- sub { my ($classNode, $methodNode ) = @_;
-
- if ( $methodNode->{NodeType} eq 'method' ) {
- next unless $methodNode->{Flags} =~ /(d|z|y)/;
- my ($meth, $swit) = generateMethod( $classNode, $methodNode, \%addInclude );
- $methodCode .= $meth;
- }
- }, undef );
-
- return ( $methodCode, "", \%addInclude );
-}
-
-# Known typedef? If so, apply it.
-sub applyTypeDef($)
-{
- my $type = shift;
- # Parse 'const' in front of it, and '*' or '&' after it
- my $prefix = $type =~ s/^const\s+// ? 'const ' : '';
- my $suffix = $type =~ s/\s*([\&\*]+)$// ? $1 : '';
-
- if (exists $typedeflist{$type}) {
- return $prefix.$typedeflist{$type}.$suffix;
- }
- return $prefix.$type.$suffix;
-}
-
-# Register type ($1) into %allTypes if not already there
-sub registerType($$) {
- my $type = shift;
- #print "registerType: $type\n" if ($debug);
-
- $type =~ s/\s+const$//; # for 'char* const'
- $type =~ s/\s+const\s*\*$/\*/; # for 'char* const*'
-
- return if ( $type eq 'void' or $type eq '' or $type eq '~' );
- die if ( $type eq '...' ); # ouch
-
- # Let's register the real type, not its known equivalent
- #$type = applyTypeDef($type);
-
- # Enum _value_ -> get corresponding type
- if (exists $enumValueToType{$type}) {
- $type = $enumValueToType{$type};
- }
-
- # Already in allTypes
- if(exists $allTypes{$type}) {
- return;
- }
-
- die if $type eq 'QTextEdit::UndoRedoInfo::Type';
- die if $type eq '';
-
- my $realType = $type;
-
- # Look for references (&) and pointers (* or **) - this will not handle *& correctly.
- # We do this parsing here because both the type list and iterproto need it
- if($realType =~ s/&$//) {
- $allTypes{$type}{typeFlags} = 'Smoke::tf_ref';
- }
- elsif($realType ne 'void*' && $realType =~ s/\*$//) {
- $allTypes{$type}{typeFlags} = 'Smoke::tf_ptr';
- }
- else {
- $allTypes{$type}{typeFlags} = 'Smoke::tf_stack';
- }
-
- if ( $realType =~ s/^const\s+// ) { # Remove 'const'
- $allTypes{$type}{typeFlags} .= ' | Smoke::tf_const';
- }
-
- # Apply typedefs, and store the resulting type.
- # For instance, if $type was Q_UINT16&, realType will be ushort
- $allTypes{$type}{realType} = applyTypeDef( $realType );
-
- # In the first phase we only create entries into allTypes.
- # The values (indexes) are calculated afterwards, once the list is full.
- $allTypes{$type}{index} = -1;
- #print STDERR "Register $type. Realtype: $realType\n" if($debug);
-}
-
-# Get type from %allTypes
-# This returns a hash with {index}, {isEnum}, {typeFlags}, {realType}
-# (and {typeId} after the types array is written by writeSmokeDataFile)
-sub findTypeEntry($) {
- my $type = shift;
- my $typeIndex = -1;
- $type =~ s/\s+const$//; # for 'char* const'
- $type =~ s/\s+const\s*\*$/\*/; # for 'char* const*'
-
- return undef if ( $type =~ '~' or $type eq 'void' or $type eq '' );
-
- # Enum _value_ -> get corresponding type
- if (exists $enumValueToType{$type}) {
- $type = $enumValueToType{$type};
- }
-
- die "type not known: $type" unless defined $allTypes{$type};
- return $allTypes{ $type };
-}
-
-# List of all super-classes for a given class
-sub superclass_list($)
-{
- my $classNode = shift;
- my @super;
- Iter::Ancestors( $classNode, $rootnode, undef, undef, sub {
- push @super, @_[0];
- push @super, superclass_list( @_[0] );
- }, undef );
- return @super;
-}
-
-=head2
- Write out the smokedata.cpp file containing all the arrays.
-=cut
-
-sub writeSmokeDataFile($) {
- my $rootnode = shift;
-
- # Make list of classes
- my %allIncludes; # list of all header files for all classes
- my @classlist;
- push @classlist, ""; # Prepend empty item for "no class"
- my %enumclasslist;
- Iter::LocalCompounds( $rootnode, sub {
- my $classNode = $_[0];
- my $className = join( "::", kdocAstUtil::heritage($classNode) );
- push @classlist, $className;
- $enumclasslist{$className}++ if keys %{$classNode->{enumerations}};
- $classNode->{ClassIndex} = $#classlist;
- addIncludeForClass( $classNode, \%allIncludes, undef );
- } );
-
- kdocAstUtil::dumpAst($rootnode) if ($debug);
-
- my %classidx = do { my $i = 0; map { $_ => $i++ } @classlist };
-
- # Prepare descendants information for each class
- my %descendants; # classname -> list of descendant nodes
- Iter::LocalCompounds( $rootnode, sub {
- my $classNode = shift;
- # Get _all_ superclasses (up any number of levels)
- # and store that $classNode is a descendant of $s
- my @super = superclass_list($classNode);
- for my $s (@super) {
- my $superClassName = join( "::", kdocAstUtil::heritage($s) );
- Ast::AddPropList( \%descendants, $superClassName, $classNode );
- }
- } );
-
- # Iterate over all classes, to write the xtypecast function
- Iter::LocalCompounds( $rootnode, sub {
- my $classNode = shift;
- my $className = join( "::", kdocAstUtil::heritage($classNode) );
- # @super will contain superclasses, the class itself, and all descendants
- my @super = superclass_list($classNode);
- push @super, $classNode;
- if ( defined $descendants{$className} ) {
- push @super, @{$descendants{$className}};
- }
- my $cur = $classidx{$className};
- $cur = -1;
- for my $s (@super) {
- my $superClassName = join( "::", kdocAstUtil::heritage($s) );
- next if !defined $classidx{$superClassName}; # inherits from unknown class, see below
- next if $classidx{$superClassName} == $cur; # shouldn't happen in Qt
- $cur = $classidx{$superClassName};
- }
- } );
-
- # Write inheritance array
- # Imagine you have "Class : public super1, super2"
- # The inheritlist array will get 3 new items: super1, super2, 0
- my %inheritfinder; # key = (super1, super2) -> data = (index in @inheritlist). This one allows reuse.
- my %classinherit; # we store that index in %classinherit{className}
- # We don't actually need to store inheritlist in memory, we write it
- # directly to the file. We only need to remember its current size.
- my $inheritlistsize = 1;
-
- Iter::LocalCompounds( $rootnode, sub {
- my $classNode = shift;
- my $className = join( "__", kdocAstUtil::heritage($classNode) );
- print STDERR "inheritanceList: looking at $className\n" if ($debug);
-
- # Make list of direct ancestors
- my @super;
- Iter::Ancestors( $classNode, $rootnode, undef, undef, sub {
- my $superClassName = join( "::", kdocAstUtil::heritage($_[0]) );
- push @super, $superClassName;
- }, undef );
- # Turn that into a list of class indexes
- my $key = '';
- foreach my $superClass( @super ) {
- if (defined $classidx{$superClass}) {
- $key .= ', ' if ( length $key > 0 );
- $key .= $classidx{$superClass};
- }
- }
- if ( $key ne '' ) {
- if ( !defined $inheritfinder{$key} ) {
- my $index = $inheritlistsize; # Index of first entry (for this group) in inheritlist
- foreach my $superClass( @super ) {
- if (defined $classidx{$superClass}) {
- $inheritlistsize++;
- }
- }
- $inheritlistsize++;
- my $comment = join( ", ", @super );
- $inheritfinder{$key} = $index;
- }
- $classinherit{$className} = $inheritfinder{$key};
- } else { # No superclass
- $classinherit{$className} = 0;
- }
- } );
-
- for my $className (keys %enumclasslist) {
- my $c = $className;
- $c =~ s/::/__/g;
- }
- my $firstClass = 1;
- for my $className (@classlist) {
- if ($firstClass) {
- $firstClass = 0;
- next;
- }
- my $c = $className; # make a copy
- $c =~ s/::/__/g;
- }
-
- # Write class list afterwards because it needs offsets to the inheritance array.
- my $firstClass = 1;
- Iter::LocalCompounds( $rootnode, sub {
- my $classNode = shift;
- my $className = join( "__", kdocAstUtil::heritage($classNode) );
-
- if ($firstClass) {
- $firstClass = 0;
- }
- my $c = $className;
- $c =~ s/::/__/g;
- my $xcallFunc = "xcall_$c";
- my $xenumFunc = "0";
- $xenumFunc = "xenum_$c" if exists $enumclasslist{$className};
- # %classinherit needs Foo__Bar, not Foo::Bar?
- die "problem with $className" unless defined $classinherit{$c};
-
- my $xClassFlags = 0;
- $xClassFlags =~ s/0\|//; # beautify
- } );
-
-
- my $typeCount = 0;
- $allTypes{''}{index} = 0; # We need an "item 0"
- for my $type (sort keys %allTypes) {
- $allTypes{$type}{index} = $typeCount; # Register proper index in allTypes
- if ( $typeCount == 0 ) {
- $typeCount++;
- next;
- }
- my $isEnum = $allTypes{$type}{isEnum};
- my $typeId;
- my $typeFlags = $allTypes{$type}{typeFlags};
- my $realType = $allTypes{$type}{realType};
- die "$type" if !defined $typeFlags;
- die "$realType" if $realType =~ /\(/;
- # First write the name
- # Then write the classId (and find out the typeid at the same time)
- if(exists $classidx{$realType}) { # this one first, we want t_class for QBlah*
- $typeId = 't_class';
- }
- elsif($type =~ /&$/ || $type =~ /\*$/) {
- $typeId = 't_voidp';
- }
- elsif($isEnum || $allTypes{$realType}{isEnum}) {
- $typeId = 't_enum';
- if($realType =~ /(.*)::/) {
- my $c = $1;
- }
- }
- else {
- $typeId = $typeunion{$realType};
- if (defined $typeId) {
- $typeId =~ s/s_/t_/; # from s_short to t_short for instance
- }
- else {
- # Not a known class - ouch, this happens quite a lot
- # (private classes, typedefs, template-based types, etc)
- if ( $skippedClasses{$realType} ) {
-# print STDERR "$realType has been skipped, using t_voidp for it\n";
- } else {
- unless( $realType =~ /</ ) { # Don't warn for template stuff...
- print STDERR "$realType isn't a known type (type=$type)\n";
- }
- }
- $typeId = 't_voidp'; # Unknown -> map to a void *
- }
- }
- # Then write the flags
- die "$type" if !defined $typeId;
- $typeCount++;
- # Remember it for coerce_type
- $allTypes{$type}{typeId} = $typeId;
- }
-}
-
-1;
diff --git a/dcopidlng/kalyptusDataDict.pm b/dcopidlng/kalyptusDataDict.pm
deleted file mode 100644
index 0de248031..000000000
--- a/dcopidlng/kalyptusDataDict.pm
+++ /dev/null
@@ -1,3042 +0,0 @@
-#***************************************************************************
-# kalyptusDataDict.pm - A Qt/KDE types data dictionary
-# -------------------
-# begin : Fri Oct 20 12:00:00 2000
-# copyright : (C) 2000-2001 Lost Highway Ltd. All Rights Reserved.
-# email : Richard_Dale@tipitina.demon.co.uk
-# author : Richard Dale.
-#***************************************************************************/
-
-#/***************************************************************************
-# * *
-# * This program is free software; you can redistribute it and/or modify *
-# * it under the terms of the GNU General Public License as published by *
-# * the Free Software Foundation; either version 2 of the License, or *
-# * (at your option) any later version. *
-# * *
-#***************************************************************************/
-
-package kalyptusDataDict;
-
-use strict;
-no strict "subs";
-
-use vars qw/ %interfacemap %ctypemap %builtins /;
-
-BEGIN
-{
-
-%interfacemap = (
-'QPaintDevice' => 'QPaintDeviceInterface',
-'QMenuData' => 'QMenuDataInterface',
-'QRangeControl' => 'QRangeControlInterface',
-'QMimeSource' => 'QMimeSourceInterface',
-'QLayoutItem' => 'QLayoutItemInterface',
-'QUrl' => 'QUrlInterface',
-'QIODevice' => 'QIODeviceInterface',
-'QXmlContentHandler' => 'QXmlContentHandlerInterface',
-'QXmlErrorHandler' => 'QXmlErrorHandlerInterface',
-'QXmlDTDHandler' => 'QXmlDTDHandlerInterface',
-'QXmlEntityResolver' => 'QXmlEntityResolverInterface',
-'QXmlLexicalHandler' => 'QXmlLexicalHandlerInterface',
-'QXmlDeclHandler' => 'QXmlDeclHandlerInterface',
-'KInstance' => 'KInstanceInterface',
-'QwAbsSpriteFieldView' => 'QwAbsSpriteFieldViewInterface',
-'PartBase' => 'PartBaseInterface',
-'KCompletionBase' => 'KCompletionBaseInterface',
-'KDirNotify' => 'KDirNotifyInterface',
-'KXMLGUIClient' => 'KXMLGUIClientInterface',
-'KFileView' => 'KFileViewInterface',
-'KXMLGUIBuilder' => 'KXMLGUIBuilderInterface',
-'DCOPObject' => 'DCOPObjectInterface',
-'KDevCore' => 'KDevCoreInterface',
-'QSqlQuery' => 'QSqlQueryInterface',
-
-);
-
-# A hard coded type translation table (the idea from the Roberto Alsina's Qtc
-# python conversion scripts). The particular format used here makes it possible to use
-# the same table with three different kdoc based Qt/KDE language binding generators;
-# C, Objective-C and Java.
-%ctypemap = (
-
-'ASConsumer*' => 'kde_ASConsumer*',
-'ASProducer*' => 'kde_ASProducer*',
-'ASYNC' => 'void' ,
-'Address&' => 'kde_Address*' ,
-'Address*' => 'kde_Address*',
-'AddressBook*' => 'kde_AddressBook*',
-'AddressBook::Entry&' => 'kde_Entry*' ,
-'Addressee&' => 'kde_Addressee*',
-'Addressee*' => 'kde_Addressee*',
-'AddresseeData*' => 'kde_AddresseeData*',
-'AddresseeDialog*' => 'kde_AddresseeDialog*',
-'AddresseeItem*' => 'kde_AddresseeItem*',
-'AlsaOut*' => 'kde_AlsaOut*',
-'AnyConstRef&' => 'kde_AnyConstRef*',
-'AnyConstRef*' => 'kde_AnyConstRef*',
-'AnyRef&' => 'kde_AnyRef*',
-'AnyRef*' => 'kde_AnyRef*',
-'AnyRefBase&' => 'kde_AnyRefBase*',
-'AnyRefBase*' => 'kde_AnyRefBase*',
-'ArgList' => 'int' ,
-'ArrowType' => 'int' ,
-'Arts*' => 'kde_Arts*',
-'Arts::AudioManagerClient' => 'int',
-'Arts::Buffer&' => 'kde_Arts_Buffer*',
-'Arts::Buffer*' => 'kde_Arts_Buffer*',
-'Arts::ByteSoundProducer' => 'kde_Arts_ByteSoundProducer*',
-'Arts::Connection*' => 'kde_Arts_Connection*',
-'Arts::DynamicCast&' => 'kde_Arts_DynamicCast*',
-'Arts::FlowSystemReceiver' => 'kde_Arts_FlowSystemReceiver*',
-'Arts::FlowSystemSender' => 'kde_Arts_FlowSystemSender*',
-'Arts::Format&' => 'kde_Arts_Format*',
-'Arts::Format' => 'kde_Arts_Format',
-'Arts::GenericAsyncStream*' => 'kde_Arts_GenericAsyncStream*',
-'Arts::GenericDataChannel*' => 'kde_Arts_GenericDataChannel*',
-'Arts::InterfaceDef' => 'kde_Arts_InterfaceDef*',
-'Arts::MethodDef&' => 'kde_Arts_MethodDef*',
-'Arts::ModuleDef&' => 'kde_Arts_ModuleDef*',
-'Arts::Notification&' => 'kde_Arts_Notification*',
-'Arts::Object' => 'kde_Arts_Object*',
-'Arts::Object::Pool&' => 'kde_Arts_Object_Pool*',
-'Arts::ObjectReference' => 'kde_Arts_ObjectReference*',
-'Arts::PlayObject' => 'kde_Arts_PlayObject*',
-'Arts::Reference&' => 'kde_Arts_Reference*',
-'Arts::StereoEffect' => 'kde_Arts_StereoEffect*',
-'Arts::StereoEffectStack' => 'kde_Arts_StereoEffectStack*',
-'Arts::SubClass&' => 'kde_Arts_SubClass*',
-'Arts::TypeDef' => 'kde_Arts_TypeDef*',
-'Arts::poTime&' => 'kde_Arts_poTime*',
-'Arts::poTime' => 'kde_Arts_poTime',
-'AsyncStream*' => 'kde_AsyncStream*',
-'Attr&' => 'kde_Attr*',
-'Attr' => 'kde_Attr*',
-'Attr*' => 'kde_Attr*',
-'AttrImpl*' => 'kde_AttrImpl*',
-'AttributeDef&' => 'kde_AttributeDef*',
-'AttributeDef*' => 'kde_AttributeDef*',
-'AudioManager&' => 'kde_AudioManager*',
-'AudioManager' => 'kde_AudioManager*',
-'AudioManager*' => 'kde_AudioManager*',
-'AudioManagerClient&' => 'kde_AudioManagerClient*',
-'AudioManagerClient' => 'kde_AudioManagerClient*',
-'AudioManagerClient*' => 'kde_AudioManagerClient*',
-'AudioManagerClient_base*' => 'kde_AudioManagerClient_base*',
-'AudioManagerClient_skel*' => 'kde_AudioManagerClient_skel*',
-'AudioManagerClient_stub*' => 'kde_AudioManagerClient_stub*',
-'AudioManagerInfo&' => 'kde_AudioManagerInfo*',
-'AudioManagerInfo*' => 'kde_AudioManagerInfo*',
-'AudioManager_base*' => 'kde_AudioManager_base*',
-'AudioManager_skel*' => 'kde_AudioManager_skel*',
-'AudioManager_stub*' => 'kde_AudioManager_stub*',
-'AudioPort*' => 'kde_AudioPort*',
-'AudioSubSystem*' => 'kde_AudioSubSystem*',
-'AudioSubSystemStart*' => 'kde_AudioSubSystemStart*',
-'AuthAccept&' => 'kde_AuthAccept*',
-'AuthAccept*' => 'kde_AuthAccept*',
-'AuthInfo&' => 'kde_AuthInfo*',
-'AuthInfo*' => 'kde_AuthInfo*',
-'BGMode' => 'int',
-'BMToken*' => 'kde_BMToken*',
-'BackgroundMode' => 'int',
-'BlockSelectionInterface*' => 'kde_BlockSelectionInterface*',
-'BookmarkTokenizer*' => 'kde_BookmarkTokenizer*',
-'Bool' => 'int' ,
-'Boolean&' => 'kde_Boolean*',
-'Boolean*' => 'kde_Boolean*',
-'BrowserExtension*' => 'kde_BrowserExtension*',
-'BrowserHostExtension*' => 'kde_BrowserHostExtension*',
-'BrowserInterface*' => 'kde_BrowserInterface*',
-'BrushStyle' => 'int',
-'Buffer&' => 'kde_Buffer*',
-'Buffer*' => 'kde_Buffer*',
-'ButtonCode' => 'int' ,
-'ButtonState' => 'int' ,
-'ByteAsyncStream*' => 'kde_ByteAsyncStream*',
-'ByteDataPacket*' => 'kde_ByteDataPacket*',
-'ByteSoundProducer&' => 'kde_ByteSoundProducer*',
-'ByteSoundProducer' => 'kde_ByteSoundProducer*',
-'ByteSoundProducer*' => 'kde_ByteSoundProducer*',
-'ByteSoundProducer_base*' => 'kde_ByteSoundProducer_base*',
-'ByteSoundProducer_skel*' => 'kde_ByteSoundProducer_skel*',
-'ByteSoundProducer_stub*' => 'kde_ByteSoundProducer_stub*',
-'ByteStreamToAudio&' => 'kde_ByteStreamToAudio*',
-'ByteStreamToAudio' => 'kde_ByteStreamToAudio*',
-'ByteStreamToAudio*' => 'kde_ByteStreamToAudio*',
-'ByteStreamToAudio_base*' => 'kde_ByteStreamToAudio_base*',
-'ByteStreamToAudio_skel*' => 'kde_ByteStreamToAudio_skel*',
-'ByteStreamToAudio_stub*' => 'kde_ByteStreamToAudio_stub*',
-'CDATASection&' => 'kde_CDATASection*',
-'CDATASection' => 'kde_CDATASection*',
-'CDATASection*' => 'kde_CDATASection*',
-'CFlags' => 'int',
-'COORD' => 'short' ,
-'CSSCharsetRule&' => 'kde_CSSCharsetRule*',
-'CSSCharsetRule*' => 'kde_CSSCharsetRule*',
-'CSSCharsetRuleImpl*' => 'kde_CSSCharsetRuleImpl*',
-'CSSException&' => 'kde_CSSException*',
-'CSSException*' => 'kde_CSSException*',
-'CSSFontFaceRule&' => 'kde_CSSFontFaceRule*',
-'CSSFontFaceRule*' => 'kde_CSSFontFaceRule*',
-'CSSFontFaceRuleImpl*' => 'kde_CSSFontFaceRuleImpl*',
-'CSSImportRule&' => 'kde_CSSImportRule*',
-'CSSImportRule*' => 'kde_CSSImportRule*',
-'CSSImportRuleImpl*' => 'kde_CSSImportRuleImpl*',
-'CSSMediaRule&' => 'kde_CSSMediaRule*',
-'CSSMediaRule*' => 'kde_CSSMediaRule*',
-'CSSMediaRuleImpl*' => 'kde_CSSMediaRuleImpl*',
-'CSSPageRule&' => 'kde_CSSPageRule*',
-'CSSPageRule*' => 'kde_CSSPageRule*',
-'CSSPageRuleImpl*' => 'kde_CSSPageRuleImpl*',
-'CSSPrimitiveValue&' => 'kde_CSSPrimitiveValue*',
-'CSSPrimitiveValue' => 'kde_CSSPrimitiveValue*',
-'CSSPrimitiveValue*' => 'kde_CSSPrimitiveValue*',
-'CSSPrimitiveValueImpl*' => 'kde_CSSPrimitiveValueImpl*',
-'CSSRule&' => 'kde_CSSRule*',
-'CSSRule' => 'kde_CSSRule*',
-'CSSRule*' => 'kde_CSSRule*',
-'CSSRuleImpl*' => 'kde_CSSRuleImpl*',
-'CSSRuleList&' => 'kde_CSSRuleList*',
-'CSSRuleList' => 'kde_CSSRuleList*',
-'CSSRuleList*' => 'kde_CSSRuleList*',
-'CSSRuleListImpl*' => 'kde_CSSRuleListImpl*',
-'CSSStyleDeclaration&' => 'kde_CSSStyleDeclaration*',
-'CSSStyleDeclaration' => 'kde_CSSStyleDeclaration*',
-'CSSStyleDeclaration*' => 'kde_CSSStyleDeclaration*',
-'CSSStyleDeclarationImpl*' => 'kde_CSSStyleDeclarationImpl*',
-'CSSStyleRule&' => 'kde_CSSStyleRule*',
-'CSSStyleRule*' => 'kde_CSSStyleRule*',
-'CSSStyleRuleImpl*' => 'kde_CSSStyleRuleImpl*',
-'CSSStyleSheet&' => 'kde_CSSStyleSheet*',
-'CSSStyleSheet' => 'kde_CSSStyleSheet*',
-'CSSStyleSheet*' => 'kde_CSSStyleSheet*',
-'CSSStyleSheetImpl*' => 'kde_CSSStyleSheetImpl*',
-'CSSUnknownRule&' => 'kde_CSSUnknownRule*',
-'CSSUnknownRule*' => 'kde_CSSUnknownRule*',
-'CSSUnknownRuleImpl*' => 'kde_CSSUnknownRuleImpl*',
-'CSSValue&' => 'kde_CSSValue*',
-'CSSValue' => 'kde_CSSValue*',
-'CSSValue*' => 'kde_CSSValue*',
-'CSSValueImpl*' => 'kde_CSSValueImpl*',
-'CSSValueList&' => 'kde_CSSValueList*',
-'CSSValueList*' => 'kde_CSSValueList*',
-'CSSValueListImpl*' => 'kde_CSSValueListImpl*',
-'CString&' => 'kde_CString*',
-'CString' => 'kde_CString*',
-'CString*' => 'kde_CString*',
-'Cache*' => 'kde_Cache*',
-'CacheInfo*' => 'kde_CacheInfo*',
-'CachedObject*' => 'kde_CachedObject*',
-'CachedWav*' => 'kde_CachedWav*',
-'Cardinal' => 'int' ,
-'CharSet' => 'int',
-'CharacterData&' => 'kde_CharacterData*',
-'CharacterData*' => 'kde_CharacterData*',
-'CharacterDataImpl*' => 'kde_CharacterDataImpl*',
-'ChmodJob*' => 'kde_ChmodJob*',
-'ClassInfo*' => 'kde_ClassInfo*',
-'ClassStore*' => 'kde_ClassStore*',
-'ClassTreeNode*' => 'kde_ClassTreeNode*',
-'ClientHello&' => 'kde_ClientHello*',
-'ClientHello*' => 'kde_ClientHello*',
-'ClipboardInterface*' => 'kde_ClipboardInterface*',
-'CodeCompletionInterface*' => 'kde_CodeCompletionInterface*',
-'ColorMode' => 'int',
-'Comment&' => 'kde_Comment*',
-'Comment' => 'kde_Comment*',
-'Comment*' => 'kde_Comment*',
-'CommentImpl*' => 'kde_CommentImpl*',
-'ComparisonFlags' => 'int',
-'Compl' => 'kde_Compl',
-'Completion&' => 'kde_Completion*',
-'Completion*' => 'kde_Completion*',
-'CompletionEntry&' => 'kde_CompletionEntry*',
-'CompletionEntry*' => 'kde_CompletionEntry*',
-'ComplexControl' => 'int',
-'ComponentFactory*' => 'kde_ComponentFactory*',
-'ConfigInterface*' => 'kde_ConfigInterface*',
-'Connection*' => 'kde_Connection*',
-'ConstIterator' => 'int' ,
-'Constructor' => 'kde_Constructor*',
-'Constructor*' => 'kde_Constructor*',
-'ConstructorImp*' => 'kde_ConstructorImp*',
-'ContentsType' => 'int',
-'Context&' => 'kde_Context*',
-'Context*' => 'kde_Context*',
-'ControlElement' => 'int',
-'CopyInfo*' => 'kde_CopyInfo*',
-'CopyJob*' => 'kde_CopyJob*',
-'Core*' => 'kde_Core*',
-'Counter&' => 'kde_Counter*',
-'Counter' => 'kde_Counter*',
-'Counter*' => 'kde_Counter*',
-'Cursor*' => 'kde_Cursor*',
-'CursorInterface*' => 'kde_CursorInterface*',
-'DCOPClient*' => 'kde_DCOPClient*',
-'DCOPClientTransaction*' => 'kde_DCOPClientTransaction*' ,
-'DCOPObject*' => 'kde_DCOPObject*',
-'DCOPObjectProxy*' => 'kde_DCOPObjectProxy*',
-'DCOPRef&' => 'kde_DCOPRef*' ,
-'DCOPRef*' => 'kde_DCOPRef*',
-'DCOPStub*' => 'kde_DCOPStub*',
-'DOM*' => 'kde_DOM*',
-'DOM::CSSProperty*' => 'kde_CSSProperty*' ,
-'DOM::DOMString&' => 'kde_DOMString*' ,
-'DOM::DOMString' => 'kde_DOMString*' ,
-'DOM::Document&' => 'kde_DOMDocument*' ,
-'DOM::Document' => 'kde_DOMDocument*' ,
-'DOM::Document*' => 'kde_DOMDocument*' ,
-'DOM::ElementImpl*' => 'kde_DOM_ElementImpl*' ,
-'DOM::HTMLDocument' => 'kde_HTMLDocument*' ,
-'DOM::MediaList&' => 'kde_MediaList*',
-'DOM::MediaList' => 'kde_MediaList',
-'DOM::MediaList*' => 'kde_MediaList*',
-'DOM::Node&' => 'kde_DOMNode*' ,
-'DOM::Node' => 'kde_DOMNode*' ,
-'DOM::NodeList&' => 'kde_DOMNodeList*',
-'DOM::NodeList' => 'kde_DOMNodeList*',
-'DOM::NodeList*' => 'kde_DOMNodeList*',
-'DOM::Range' => 'kde_Range*' ,
-'DOM::StyleSheetList&' => 'kde_StyleSheetList*',
-'DOM::StyleSheetList' => 'kde_StyleSheetList',
-'DOM::StyleSheetList*' => 'kde_StyleSheetList*',
-'DOMException&' => 'kde_DOMException*',
-'DOMException*' => 'kde_DOMException*',
-'DOMImplementation&' => 'kde_DOMImplementation*',
-'DOMImplementation' => 'kde_DOMImplementation*',
-'DOMImplementation*' => 'kde_DOMImplementation*',
-'DOMImplementationImpl*' => 'kde_DOMImplementationImpl*',
-'DOMString&' => 'kde_DOMString*',
-'DOMString' => 'kde_DOMString*',
-'DOMString*' => 'kde_DOMString*',
-'DOMStringImpl*' => 'kde_DOMStringImpl*',
-'DW_EXPORT*' => 'void*',
-'DataPacket*' => 'kde_DataPacket*',
-'DateFormat' => 'int',
-'Debug*' => 'kde_Debug*',
-'DecoderFn' => 'int' ,
-'DefaultProgress*' => 'kde_DefaultProgress*',
-'DeleteJob*' => 'kde_DeleteJob*',
-'DeviceManager*' => 'kde_DeviceManager*',
-'Direction' => 'int',
-'DispatchFunction' => 'kde_DispatchFunction*',
-'Dispatcher*' => 'kde_Dispatcher*',
-'Display' => 'Display',
-'Display*' => 'Display*',
-'DistributionList*' => 'kde_DistributionList*',
-'DistributionListEditor*' => 'kde_DistributionListEditor*',
-'DistributionListManager*' => 'kde_DistributionListManager*',
-'Dock&' => 'int',
-'Dock' => 'int',
-'DockMainWindow*' => 'kde_DockMainWindow*',
-'DockPosData&' => 'kde_DockPosData*' ,
-'DockPosData*' => 'kde_DockPosData*',
-'DockWindowData*' => 'long',
-'Document&' => 'kde_Document*',
-'Document' => 'kde_Document*',
-'Document*' => 'kde_Document*',
-'DocumentFragment&' => 'kde_DocumentFragment*',
-'DocumentFragment' => 'kde_DocumentFragment*',
-'DocumentFragment*' => 'kde_DocumentFragment*',
-'DocumentFragmentImpl*' => 'kde_DocumentFragmentImpl*',
-'DocumentImpl*' => 'kde_DocumentImpl*',
-'DocumentStyle&' => 'kde_DocumentStyle*',
-'DocumentStyle*' => 'kde_DocumentStyle*',
-'DocumentType&' => 'kde_DocumentType*',
-'DocumentType' => 'kde_DocumentType*',
-'DocumentType*' => 'kde_DocumentType*',
-'DocumentationContext*' => 'kde_DocumentationContext*',
-'DomShared*' => 'kde_DomShared*',
-'DrageMode' => 'int',
-'DrawContentsEvent*' => 'kde_DrawContentsEvent*',
-'DwAddress&' => 'kde_DwAddress*',
-'DwAddress*' => 'kde_DwAddress*',
-'DwAddressList&' => 'kde_DwAddressList*',
-'DwAddressList*' => 'kde_DwAddressList*',
-'DwBody&' => 'kde_DwBody*',
-'DwBody*' => 'kde_DwBody*',
-'DwBodyPart&' => 'kde_DwBodyPart*',
-'DwBodyPart*' => 'kde_DwBodyPart*',
-'DwBool' => 'int',
-'DwDateTime&' => 'kde_DwDateTime*',
-'DwDateTime*' => 'kde_DwDateTime*',
-'DwDispositionType&' => 'kde_DwDispositionType*',
-'DwDispositionType*' => 'kde_DwDispositionType*',
-'DwEntity&' => 'kde_DwEntity*',
-'DwField&' => 'kde_DwField*',
-'DwField*' => 'kde_DwField*',
-'DwFieldBody&' => 'kde_DwFieldBody*',
-'DwFieldBody*' => 'kde_DwFieldBody*',
-'DwGroup&' => 'kde_DwGroup*',
-'DwGroup*' => 'kde_DwGroup*',
-'DwHeaders&' => 'kde_DwHeaders*',
-'DwHeaders*' => 'kde_DwHeaders*',
-'DwInt32' => 'int',
-'DwMailbox&' => 'kde_DwMailbox*',
-'DwMailbox*' => 'kde_DwMailbox*',
-'DwMailboxList&' => 'kde_DwMailboxList*',
-'DwMailboxList*' => 'kde_DwMailboxList*',
-'DwMechanism&' => 'kde_DwMechanism*',
-'DwMechanism*' => 'kde_DwMechanism*',
-'DwMediaType&' => 'kde_DwMediaType*',
-'DwMediaType*' => 'kde_DwMediaType*',
-'DwMessage&' => 'kde_DwMessage*',
-'DwMessage*' => 'kde_DwMessage*',
-'DwMessageComponent&' => 'kde_DwMessageComponent*',
-'DwMessageComponent*' => 'kde_DwMessageComponent*',
-'DwMime*' => 'kde_DwMime*',
-'DwMsgId&' => 'kde_DwMsgId*',
-'DwMsgId*' => 'kde_DwMsgId*',
-'DwObserver*' => 'kde_DwObserver*',
-'DwParameter&' => 'kde_DwParameter*',
-'DwParameter*' => 'kde_DwParameter*',
-'DwProtocolClient*' => 'kde_DwProtocolClient*',
-'DwString&' => 'kde_DwString*',
-'DwString' => 'kde_DwString',
-'DwString*' => 'kde_DwString*',
-'DwText&' => 'kde_DwText*',
-'DwText*' => 'kde_DwText*',
-'DwTokenizer&' => 'kde_DwTokenizer*',
-'DwUint16' => 'unsigned short',
-'DwUint32' => 'unsigned int',
-'DwUint8' => 'unsigned char',
-'DynamicCast*' => 'kde_DynamicCast*',
-'DynamicRequest&' => 'kde_DynamicRequest*',
-'DynamicRequest*' => 'kde_DynamicRequest*',
-'EXPORT_DOCKCLASS*' => 'kde_EXPORT_DOCKCLASS*',
-'EchoMode' => 'int',
-'EditInterface*' => 'kde_EditInterface*',
-'Editor*' => 'kde_Editor*',
-'EditorContext*' => 'kde_EditorContext*',
-'Element&' => 'kde_Element*',
-'Element' => 'kde_Element*',
-'Element*' => 'kde_Element*',
-'ElementImpl*' => 'kde_ElementImpl*',
-'EmailSelectDialog*' => 'kde_EmailSelectDialog*',
-'EncoderFn' => 'int' ,
-'Endian' => 'int',
-'Entity&' => 'kde_Entity*',
-'Entity*' => 'kde_Entity*',
-'EntityReference&' => 'kde_EntityReference*',
-'EntityReference' => 'kde_EntityReference*',
-'EntityReference*' => 'kde_EntityReference*',
-'Entry&' => 'kde_Entry*' ,
-'Entry*' => 'kde_Entry*',
-'Entry::Address&' => 'kde_EntryAddress' ,
-'EnumComponent&' => 'kde_EnumComponent*',
-'EnumComponent*' => 'kde_EnumComponent*',
-'EnumDef&' => 'kde_EnumDef*',
-'EnumDef*' => 'kde_EnumDef*',
-'EnumEntry*' => 'kde_EnumEntry*',
-'Error*' => 'kde_Error*',
-'Event*' => 'kde_Event*',
-'ExecState*' => 'kde_ExecState*',
-'ExtensionLoader*' => 'kde_ExtensionLoader*',
-'FALSE' => '0',
-'FILE*' => 'FILE*',
-'FMOut*' => 'kde_FMOut*',
-'Factory*' => 'kde_Factory*',
-'False' => '0',
-'FileCopyJob*' => 'kde_FileCopyJob*',
-'FileProtocol*' => 'kde_FileProtocol*',
-'FileView&' => 'int' ,
-'FloatAsyncStream*' => 'kde_FloatAsyncStream*',
-'FloatDataPacket*' => 'kde_FloatDataPacket*',
-'FlowSystem&' => 'kde_FlowSystem*',
-'FlowSystem' => 'kde_FlowSystem*',
-'FlowSystem*' => 'kde_FlowSystem*',
-'FlowSystemReceiver&' => 'kde_FlowSystemReceiver*',
-'FlowSystemReceiver' => 'kde_FlowSystemReceiver*',
-'FlowSystemReceiver*' => 'kde_FlowSystemReceiver*',
-'FlowSystemReceiver_base*' => 'kde_FlowSystemReceiver_base*',
-'FlowSystemReceiver_skel*' => 'kde_FlowSystemReceiver_skel*',
-'FlowSystemReceiver_stub*' => 'kde_FlowSystemReceiver_stub*',
-'FlowSystemSender&' => 'kde_FlowSystemSender*',
-'FlowSystemSender' => 'kde_FlowSystemSender*',
-'FlowSystemSender*' => 'kde_FlowSystemSender*',
-'FlowSystemSender_base*' => 'kde_FlowSystemSender_base*',
-'FlowSystemSender_skel*' => 'kde_FlowSystemSender_skel*',
-'FlowSystemSender_stub*' => 'kde_FlowSystemSender_stub*',
-'FlowSystem_base*' => 'kde_FlowSystem_base*',
-'FlowSystem_impl*' => 'kde_FlowSystem_impl*',
-'FlowSystem_skel*' => 'kde_FlowSystem_skel*',
-'FlowSystem_stub*' => 'kde_FlowSystem_stub*',
-'FocusPolicy' => 'int',
-'Format&' => 'kde_Format*',
-'Format*' => 'kde_Format*',
-'Function*' => 'kde_Function*',
-'FunctionImp*' => 'kde_FunctionImp*',
-'GCI&' => 'GCI*' ,
-'GCI' => 'GCI*' ,
-'GCI*' => 'GCI*' ,
-'GUIActivateEvent*' => 'kde_GUIActivateEvent*',
-'GUIStyle' => 'int',
-'GUSOut*' => 'kde_GUSOut*',
-'GenericAsyncStream*' => 'kde_GenericAsyncStream*',
-'GenericDataChannel*' => 'kde_GenericDataChannel*',
-'GenericDataPacket*' => 'kde_GenericDataPacket*',
-'GenericFactory*' => 'kde_GenericFactory*',
-'GenericFactoryBase*' => 'kde_GenericFactoryBase*',
-'Global*' => 'kde_Global*',
-'GlobalComm&' => 'kde_GlobalComm*',
-'GlobalComm' => 'kde_GlobalComm*',
-'GlobalComm*' => 'kde_GlobalComm*',
-'GlobalComm_base*' => 'kde_GlobalComm_base*',
-'GlobalComm_skel*' => 'kde_GlobalComm_skel*',
-'GlobalComm_stub*' => 'kde_GlobalComm_stub*',
-'HANDLE' => 'unsigned int',
-'HBITMAP' => 'void *' ,
-'HCURSOR' => 'void *' ,
-'HDC' => 'void *' ,
-'HFONT' => 'void *' ,
-'HPALETTE' => 'void *' ,
-'HRGN' => 'void *' ,
-'HTMLAnchorElement&' => 'kde_HTMLAnchorElement*',
-'HTMLAnchorElement*' => 'kde_HTMLAnchorElement*',
-'HTMLAnchorElementImpl*' => 'kde_HTMLAnchorElementImpl*',
-'HTMLAppletElement&' => 'kde_HTMLAppletElement*',
-'HTMLAppletElement*' => 'kde_HTMLAppletElement*',
-'HTMLAppletElementImpl*' => 'kde_HTMLAppletElementImpl*',
-'HTMLAreaElement&' => 'kde_HTMLAreaElement*',
-'HTMLAreaElement*' => 'kde_HTMLAreaElement*',
-'HTMLAreaElementImpl*' => 'kde_HTMLAreaElementImpl*',
-'HTMLBRElement&' => 'kde_HTMLBRElement*',
-'HTMLBRElement*' => 'kde_HTMLBRElement*',
-'HTMLBRElementImpl*' => 'kde_HTMLBRElementImpl*',
-'HTMLBaseElement&' => 'kde_HTMLBaseElement*',
-'HTMLBaseElement*' => 'kde_HTMLBaseElement*',
-'HTMLBaseElementImpl*' => 'kde_HTMLBaseElementImpl*',
-'HTMLBaseFontElement&' => 'kde_HTMLBaseFontElement*',
-'HTMLBaseFontElement*' => 'kde_HTMLBaseFontElement*',
-'HTMLBaseFontElementImpl*' => 'kde_HTMLBaseFontElementImpl*',
-'HTMLBlockquoteElement&' => 'kde_HTMLBlockquoteElement*',
-'HTMLBlockquoteElement*' => 'kde_HTMLBlockquoteElement*',
-'HTMLBlockquoteElementImpl*' => 'kde_HTMLBlockquoteElementImpl*',
-'HTMLBodyElement&' => 'kde_HTMLBodyElement*',
-'HTMLBodyElement*' => 'kde_HTMLBodyElement*',
-'HTMLBodyElementImpl*' => 'kde_HTMLBodyElementImpl*',
-'HTMLButtonElement&' => 'kde_HTMLButtonElement*',
-'HTMLButtonElement*' => 'kde_HTMLButtonElement*',
-'HTMLButtonElementImpl*' => 'kde_HTMLButtonElementImpl*',
-'HTMLCollection&' => 'kde_HTMLCollection*',
-'HTMLCollection' => 'kde_HTMLCollection*',
-'HTMLCollection*' => 'kde_HTMLCollection*',
-'HTMLCollectionImpl*' => 'kde_HTMLCollectionImpl*',
-'HTMLDListElement&' => 'kde_HTMLDListElement*',
-'HTMLDListElement*' => 'kde_HTMLDListElement*',
-'HTMLDListElementImpl*' => 'kde_HTMLDListElementImpl*',
-'HTMLDirectoryElement&' => 'kde_HTMLDirectoryElement*',
-'HTMLDirectoryElement*' => 'kde_HTMLDirectoryElement*',
-'HTMLDirectoryElementImpl*' => 'kde_HTMLDirectoryElementImpl*',
-'HTMLDivElement&' => 'kde_HTMLDivElement*',
-'HTMLDivElement*' => 'kde_HTMLDivElement*',
-'HTMLDivElementImpl*' => 'kde_HTMLDivElementImpl*',
-'HTMLDocument&' => 'kde_HTMLDocument*',
-'HTMLDocument*' => 'kde_HTMLDocument*',
-'HTMLDocumentImpl*' => 'kde_HTMLDocumentImpl*',
-'HTMLElement&' => 'kde_HTMLElement*',
-'HTMLElement' => 'kde_HTMLElement*',
-'HTMLElement*' => 'kde_HTMLElement*',
-'HTMLElementImpl*' => 'kde_HTMLElementImpl*',
-'HTMLFieldSetElement&' => 'kde_HTMLFieldSetElement*',
-'HTMLFieldSetElement*' => 'kde_HTMLFieldSetElement*',
-'HTMLFieldSetElementImpl*' => 'kde_HTMLFieldSetElementImpl*',
-'HTMLFontElement&' => 'kde_HTMLFontElement*',
-'HTMLFontElement*' => 'kde_HTMLFontElement*',
-'HTMLFontElementImpl*' => 'kde_HTMLFontElementImpl*',
-'HTMLFormElement&' => 'kde_HTMLFormElement*',
-'HTMLFormElement' => 'kde_HTMLFormElement*',
-'HTMLFormElement*' => 'kde_HTMLFormElement*',
-'HTMLFormElementImpl*' => 'kde_HTMLFormElementImpl*',
-'HTMLFrameElement&' => 'kde_HTMLFrameElement*',
-'HTMLFrameElement*' => 'kde_HTMLFrameElement*',
-'HTMLFrameElementImpl*' => 'kde_HTMLFrameElementImpl*',
-'HTMLFrameSetElement&' => 'kde_HTMLFrameSetElement*',
-'HTMLFrameSetElement*' => 'kde_HTMLFrameSetElement*',
-'HTMLFrameSetElementImpl*' => 'kde_HTMLFrameSetElementImpl*',
-'HTMLHRElement&' => 'kde_HTMLHRElement*',
-'HTMLHRElement*' => 'kde_HTMLHRElement*',
-'HTMLHRElementImpl*' => 'kde_HTMLHRElementImpl*',
-'HTMLHeadElement&' => 'kde_HTMLHeadElement*',
-'HTMLHeadElement*' => 'kde_HTMLHeadElement*',
-'HTMLHeadElementImpl*' => 'kde_HTMLHeadElementImpl*',
-'HTMLHeadingElement&' => 'kde_HTMLHeadingElement*',
-'HTMLHeadingElement*' => 'kde_HTMLHeadingElement*',
-'HTMLHeadingElementImpl*' => 'kde_HTMLHeadingElementImpl*',
-'HTMLHtmlElement&' => 'kde_HTMLHtmlElement*',
-'HTMLHtmlElement*' => 'kde_HTMLHtmlElement*',
-'HTMLHtmlElementImpl*' => 'kde_HTMLHtmlElementImpl*',
-'HTMLIFrameElement&' => 'kde_HTMLIFrameElement*',
-'HTMLIFrameElement*' => 'kde_HTMLIFrameElement*',
-'HTMLIFrameElementImpl*' => 'kde_HTMLIFrameElementImpl*',
-'HTMLImageElement&' => 'kde_HTMLImageElement*',
-'HTMLImageElement*' => 'kde_HTMLImageElement*',
-'HTMLImageElementImpl*' => 'kde_HTMLImageElementImpl*',
-'HTMLInputElement&' => 'kde_HTMLInputElement*',
-'HTMLInputElement*' => 'kde_HTMLInputElement*',
-'HTMLInputElementImpl*' => 'kde_HTMLInputElementImpl*',
-'HTMLIsIndexElement&' => 'kde_HTMLIsIndexElement*',
-'HTMLIsIndexElement*' => 'kde_HTMLIsIndexElement*',
-'HTMLIsIndexElementImpl*' => 'kde_HTMLIsIndexElementImpl*',
-'HTMLLIElement&' => 'kde_HTMLLIElement*',
-'HTMLLIElement*' => 'kde_HTMLLIElement*',
-'HTMLLIElementImpl*' => 'kde_HTMLLIElementImpl*',
-'HTMLLabelElement&' => 'kde_HTMLLabelElement*',
-'HTMLLabelElement*' => 'kde_HTMLLabelElement*',
-'HTMLLabelElementImpl*' => 'kde_HTMLLabelElementImpl*',
-'HTMLLegendElement&' => 'kde_HTMLLegendElement*',
-'HTMLLegendElement*' => 'kde_HTMLLegendElement*',
-'HTMLLegendElementImpl*' => 'kde_HTMLLegendElementImpl*',
-'HTMLLinkElement&' => 'kde_HTMLLinkElement*',
-'HTMLLinkElement*' => 'kde_HTMLLinkElement*',
-'HTMLLinkElementImpl*' => 'kde_HTMLLinkElementImpl*',
-'HTMLMapElement&' => 'kde_HTMLMapElement*',
-'HTMLMapElement*' => 'kde_HTMLMapElement*',
-'HTMLMapElementImpl*' => 'kde_HTMLMapElementImpl*',
-'HTMLMenuElement&' => 'kde_HTMLMenuElement*',
-'HTMLMenuElement*' => 'kde_HTMLMenuElement*',
-'HTMLMenuElementImpl*' => 'kde_HTMLMenuElementImpl*',
-'HTMLMetaElement&' => 'kde_HTMLMetaElement*',
-'HTMLMetaElement*' => 'kde_HTMLMetaElement*',
-'HTMLMetaElementImpl*' => 'kde_HTMLMetaElementImpl*',
-'HTMLModElement&' => 'kde_HTMLModElement*',
-'HTMLModElement*' => 'kde_HTMLModElement*',
-'HTMLModElementImpl*' => 'kde_HTMLModElementImpl*',
-'HTMLOListElement&' => 'kde_HTMLOListElement*',
-'HTMLOListElement*' => 'kde_HTMLOListElement*',
-'HTMLOListElementImpl*' => 'kde_HTMLOListElementImpl*',
-'HTMLObjectElement&' => 'kde_HTMLObjectElement*',
-'HTMLObjectElement*' => 'kde_HTMLObjectElement*',
-'HTMLObjectElementImpl*' => 'kde_HTMLObjectElementImpl*',
-'HTMLOptGroupElement&' => 'kde_HTMLOptGroupElement*',
-'HTMLOptGroupElement*' => 'kde_HTMLOptGroupElement*',
-'HTMLOptGroupElementImpl*' => 'kde_HTMLOptGroupElementImpl*',
-'HTMLOptionElement&' => 'kde_HTMLOptionElement*',
-'HTMLOptionElement*' => 'kde_HTMLOptionElement*',
-'HTMLOptionElementImpl*' => 'kde_HTMLOptionElementImpl*',
-'HTMLParagraphElement&' => 'kde_HTMLParagraphElement*',
-'HTMLParagraphElement*' => 'kde_HTMLParagraphElement*',
-'HTMLParagraphElementImpl*' => 'kde_HTMLParagraphElementImpl*',
-'HTMLParamElement&' => 'kde_HTMLParamElement*',
-'HTMLParamElement*' => 'kde_HTMLParamElement*',
-'HTMLParamElementImpl*' => 'kde_HTMLParamElementImpl*',
-'HTMLPreElement&' => 'kde_HTMLPreElement*',
-'HTMLPreElement*' => 'kde_HTMLPreElement*',
-'HTMLPreElementImpl*' => 'kde_HTMLPreElementImpl*',
-'HTMLQuoteElement&' => 'kde_HTMLQuoteElement*',
-'HTMLQuoteElement*' => 'kde_HTMLQuoteElement*',
-'HTMLQuoteElementImpl*' => 'kde_HTMLQuoteElementImpl*',
-'HTMLScriptElement&' => 'kde_HTMLScriptElement*',
-'HTMLScriptElement*' => 'kde_HTMLScriptElement*',
-'HTMLScriptElementImpl*' => 'kde_HTMLScriptElementImpl*',
-'HTMLSelectElement&' => 'kde_HTMLSelectElement*',
-'HTMLSelectElement*' => 'kde_HTMLSelectElement*',
-'HTMLSelectElementImpl*' => 'kde_HTMLSelectElementImpl*',
-'HTMLStyleElement&' => 'kde_HTMLStyleElement*',
-'HTMLStyleElement*' => 'kde_HTMLStyleElement*',
-'HTMLStyleElementImpl*' => 'kde_HTMLStyleElementImpl*',
-'HTMLTableCaptionElement&' => 'kde_HTMLTableCaptionElement*',
-'HTMLTableCaptionElement' => 'kde_HTMLTableCaptionElement*',
-'HTMLTableCaptionElement*' => 'kde_HTMLTableCaptionElement*',
-'HTMLTableCaptionElementImpl*' => 'kde_HTMLTableCaptionElementImpl*',
-'HTMLTableCellElement&' => 'kde_HTMLTableCellElement*',
-'HTMLTableCellElement*' => 'kde_HTMLTableCellElement*',
-'HTMLTableCellElementImpl*' => 'kde_HTMLTableCellElementImpl*',
-'HTMLTableColElement&' => 'kde_HTMLTableColElement*',
-'HTMLTableColElement*' => 'kde_HTMLTableColElement*',
-'HTMLTableColElementImpl*' => 'kde_HTMLTableColElementImpl*',
-'HTMLTableElement&' => 'kde_HTMLTableElement*',
-'HTMLTableElement*' => 'kde_HTMLTableElement*',
-'HTMLTableElementImpl*' => 'kde_HTMLTableElementImpl*',
-'HTMLTableRowElement&' => 'kde_HTMLTableRowElement*',
-'HTMLTableRowElement*' => 'kde_HTMLTableRowElement*',
-'HTMLTableRowElementImpl*' => 'kde_HTMLTableRowElementImpl*',
-'HTMLTableSectionElement&' => 'kde_HTMLTableSectionElement*',
-'HTMLTableSectionElement' => 'kde_HTMLTableSectionElement*',
-'HTMLTableSectionElement*' => 'kde_HTMLTableSectionElement*',
-'HTMLTableSectionElementImpl*' => 'kde_HTMLTableSectionElementImpl*',
-'HTMLTextAreaElement&' => 'kde_HTMLTextAreaElement*',
-'HTMLTextAreaElement*' => 'kde_HTMLTextAreaElement*',
-'HTMLTextAreaElementImpl*' => 'kde_HTMLTextAreaElementImpl*',
-'HTMLTitleElement&' => 'kde_HTMLTitleElement*',
-'HTMLTitleElement*' => 'kde_HTMLTitleElement*',
-'HTMLTitleElementImpl*' => 'kde_HTMLTitleElementImpl*',
-'HTMLUListElement&' => 'kde_HTMLUListElement*',
-'HTMLUListElement*' => 'kde_HTMLUListElement*',
-'HTMLUListElementImpl*' => 'kde_HTMLUListElementImpl*',
-'HandlerType' => 'qt_HandlerType*' ,
-'HashEntry*' => 'kde_HashEntry*',
-'HashTable*' => 'kde_HashTable*',
-'Header&' => 'kde_Header*',
-'Header*' => 'kde_Header*',
-'HighlightingInterface*' => 'kde_HighlightingInterface*',
-'HistoryProvider*' => 'kde_HistoryProvider*',
-'HostImp*' => 'kde_HostImp*',
-'IDLFileReg*' => 'kde_IDLFileReg*',
-'IOManager*' => 'kde_IOManager*',
-'IONotify*' => 'kde_IONotify*',
-'IOType*' => 'kde_IOType*',
-'IOWatchFD*' => 'kde_IOWatchFD*',
-'Icon' => 'int',
-'IconListBox*' => 'kde_IconListBox*',
-'Imp*' => 'void*',
-'Info*' => 'kde_Info*',
-'InterfaceDef&' => 'kde_InterfaceDef*',
-'InterfaceDef' => 'kde_InterfaceDef*',
-'InterfaceDef*' => 'kde_InterfaceDef*',
-'InterfaceEntry*' => 'kde_InterfaceEntry*',
-'InterfaceRepo&' => 'kde_InterfaceRepo*',
-'InterfaceRepo' => 'kde_InterfaceRepo*',
-'InterfaceRepo*' => 'kde_InterfaceRepo*',
-'InterfaceRepo_base*' => 'kde_InterfaceRepo_base*',
-'InterfaceRepo_impl*' => 'kde_InterfaceRepo_impl*',
-'InterfaceRepo_skel*' => 'kde_InterfaceRepo_skel*',
-'InterfaceRepo_stub*' => 'kde_InterfaceRepo_stub*',
-'InternalFunctionImp*' => 'kde_InternalFunctionImp*',
-'Interpreter*' => 'kde_Interpreter*',
-'Invocation&' => 'kde_Invocation*',
-'Invocation*' => 'kde_Invocation*',
-'Iterator' => 'Iterator*' ,
-'Job*' => 'void*',
-'K&' => 'K*' ,
-'KAboutApplication*' => 'kde_KAboutApplication*',
-'KAboutContainer*' => 'kde_KAboutContainer*' ,
-'KAboutContributor*' => 'kde_KAboutContributor*',
-'KAboutData*' => 'kde_KAboutData*' ,
-'KAboutDialog*' => 'kde_KAboutDialog*',
-'KAboutKDE*' => 'kde_KAboutKDE*',
-'KAboutPerson*' => 'kde_KAboutPerson*',
-'KAboutTranslator*' => 'kde_KAboutTranslator*',
-'KAboutWidget*' => 'kde_KAboutWidget*',
-'KAccel*' => 'kde_KAccel*' ,
-'KAccelAction&' => 'kde_KAccelAction*',
-'KAccelAction*' => 'kde_KAccelAction*',
-'KAccelActions&' => 'kde_KAccelActions*',
-'KAccelActions*' => 'kde_KAccelActions*',
-'KAccelBase*' => 'kde_KAccelBase*',
-'KAccelGen*' => 'kde_KAccelGen*',
-'KAccelMenu*' => 'kde_KAccelMenu*',
-'KAccelSequence&' => 'kde_KAccelSequence*',
-'KAccelSequence' => 'kde_KAccelSequence*',
-'KAccelSequence*' => 'kde_KAccelSequence*',
-'KAccelShortcut&' => 'kde_KAccelShortcut*',
-'KAccelShortcut' => 'kde_KAccelShortcut*',
-'KAccelShortcut*' => 'kde_KAccelShortcut*',
-'KAccelShortcuts&' => 'kde_KAccelShortcuts*',
-'KAccelShortcuts*' => 'kde_KAccelShortcuts*',
-'KAction*' => 'kde_KAction*' ,
-'KActionCollection&' => 'kde_KActionCollection*' ,
-'KActionCollection' => 'kde_KActionCollection*' ,
-'KActionCollection*' => 'kde_KActionCollection*' ,
-'KActionMenu*' => 'kde_KActionMenu*',
-'KActionSeparator*' => 'kde_KActionSeparator*',
-'KAddressInfo*' => 'kde_KAddressInfo*',
-'KAlphaPainter*' => 'kde_KAlphaPainter*',
-'KAnimWidget*' => 'kde_KAnimWidget*' ,
-'KAppTreeListItem*' => 'kde_KAppTreeListItem*' ,
-'KApplication*' => 'kde_KApplication*' ,
-'KApplicationPropsPlugin*' => 'kde_KApplicationPropsPlugin*',
-'KApplicationTree*' => 'kde_KApplicationTree*',
-'KArchive*' => 'kde_KArchive*',
-'KArchiveDirectory*' => 'kde_KArchiveDirectory*',
-'KArchiveEntry*' => 'kde_KArchiveEntry*',
-'KArchiveFile*' => 'kde_KArchiveFile*',
-'KArrowButton*' => 'kde_KArrowButton*',
-'KArtsDispatcher*' => 'kde_KArtsDispatcher*',
-'KArtsFloatWatch*' => 'kde_KArtsFloatWatch*',
-'KAsyncIO*' => 'kde_KAsyncIO*',
-'KAudioPlayer*' => 'kde_KAudioPlayer*',
-'KAuthIcon*' => 'kde_KAuthIcon*',
-'KAutoMount*' => 'kde_KAutoMount*',
-'KAutoUnmount*' => 'kde_KAutoUnmount*',
-'KBindingPropsPlugin*' => 'kde_KBindingPropsPlugin*',
-'KBlankEffect*' => 'kde_KBlankEffect*',
-'KBufferedIO*' => 'kde_KBufferedIO*',
-'KBugReport*' => 'kde_KBugReport*',
-'KButtonBox*' => 'kde_KButtonBox*',
-'KCModule*' => 'kde_KCModule*' ,
-'KCatalogue&' => 'kde_KCatalogue*',
-'KCatalogue*' => 'kde_KCatalogue*',
-'KCharSelect*' => 'kde_KCharSelect*',
-'KCharSelectTable*' => 'kde_KCharSelectTable*',
-'KCharsets*' => 'kde_KCharsets*' ,
-'KCmdLineArgs*' => 'kde_KCmdLineArgs*' ,
-'KCmdLineOptions*' => 'kde_KCmdLineOptions*' ,
-'KCodecs*' => 'kde_KCodecs*',
-'KColor&' => 'kde_KColor*' ,
-'KColor*' => 'kde_KColor*',
-'KColorButton*' => 'kde_KColorButton*',
-'KColorCells*' => 'kde_KColorCells*',
-'KColorCombo*' => 'kde_KColorCombo*',
-'KColorDialog*' => 'kde_KColorDialog*',
-'KColorDrag*' => 'kde_KColorDrag*' ,
-'KColorPatch*' => 'kde_KColorPatch*',
-'KCombiView*' => 'kde_KCombiView*',
-'KComboBox*' => 'kde_KComboBox*' ,
-'KCommand*' => 'kde_KCommand*',
-'KCommandHistory*' => 'kde_KCommandHistory*',
-'KCompletion*' => 'kde_KCompletion*' ,
-'KCompletionBase*' => 'kde_KCompletionBase*',
-'KCompletionBase::KeyBindingType' => 'kde_KCompletionBase_KeyBindingType*' ,
-'KCompletionBox*' => 'kde_KCompletionBox*',
-'KConfig*' => 'kde_KConfig*' ,
-'KConfigBackEnd*' => 'kde_KConfigBackEnd*',
-'KConfigBase&' => 'kde_KConfigBase*',
-'KConfigBase*' => 'kde_KConfigBase*' ,
-'KConfigBase::ConfigState' => 'kde_KConfigBase_ConfigState' ,
-'KConfigGroup*' => 'kde_KConfigGroup*',
-'KConfigGroupSaver*' => 'kde_KConfigGroupSaver*',
-'KConfigINIBackEnd*' => 'kde_KConfigINIBackEnd*',
-'KContainerLayout*' => 'kde_KContainerLayout*',
-'KContainerLayoutItem*' => 'kde_KContainerLayoutItem*' ,
-'KContextMenuManager*' => 'kde_KContextMenuManager*',
-'KCookie*' => 'kde_KCookie*',
-'KCrash*' => 'kde_KCrash*',
-'KCursor*' => 'kde_KCursor*',
-'KDBGFUNC' => 'void *' ,
-'KDCOPActionProxy*' => 'kde_KDCOPActionProxy*',
-'KDCOPPropertyProxy*' => 'kde_KDCOPPropertyProxy*',
-'KDEAniMenu*' => 'kde_KDEAniMenu*',
-'KDEDModule*' => 'kde_KDEDModule*',
-'KDEDesktopMimeType*' => 'kde_KDEDesktopMimeType*',
-'KDEDesktopMimeType::Service&' => 'kde_KDEDesktopMimeType_Service*' ,
-'KDESasl*' => 'kde_KDESasl*',
-'KDEStyle*' => 'kde_KDEStyle*',
-'KDEsuClient*' => 'kde_KDEsuClient*',
-'KDataTool*' => 'kde_KDataTool*',
-'KDataToolAction*' => 'kde_KDataToolAction*',
-'KDataToolInfo&' => 'kde_KDataToolInfo*',
-'KDataToolInfo*' => 'kde_KDataToolInfo*',
-'KDateInternalMonthPicker*' => 'kde_KDateInternalMonthPicker*',
-'KDateInternalYearSelector*' => 'kde_KDateInternalYearSelector*',
-'KDatePicker*' => 'kde_KDatePicker*',
-'KDateTable*' => 'kde_KDateTable*',
-'KDateValidator*' => 'kde_KDateValidator*',
-'KDateWidget*' => 'kde_KDateWidget*',
-'KDesktopFile*' => 'kde_KDesktopFile*' ,
-'KDevApi*' => 'kde_KDevApi*',
-'KDevAppFrontend*' => 'kde_KDevAppFrontend*',
-'KDevCompilerOptions*' => 'kde_KDevCompilerOptions*',
-'KDevCore*' => 'kde_KDevCore*',
-'KDevFactory*' => 'kde_KDevFactory*',
-'KDevLanguageSupport*' => 'kde_KDevLanguageSupport*',
-'KDevMakeFrontend*' => 'kde_KDevMakeFrontend*',
-'KDevPart*' => 'kde_KDevPart*',
-'KDevProject*' => 'kde_KDevProject*',
-'KDevVersionControl*' => 'kde_KDevVersionControl*',
-'KDevicePropsPlugin*' => 'kde_KDevicePropsPlugin*',
-'KDialog*' => 'kde_KDialog*',
-'KDialogBase*' => 'kde_KDialogBase*' ,
-'KDialogBaseTile*' => 'kde_KDialogBaseTile*',
-'KDialogQueue*' => 'kde_KDialogQueue*',
-'KDirLister*' => 'kde_KDirLister*',
-'KDirNotify*' => 'kde_KDirNotify*',
-'KDirNotify_stub*' => 'kde_KDirNotify_stub*',
-'KDirOperator*' => 'kde_KDirOperator*',
-'KDirSelectDialog*' => 'kde_KDirSelectDialog*',
-'KDirSize*' => 'kde_KDirSize*' ,
-'KDirWatch*' => 'kde_KDirWatch*' ,
-'KDirectionButton*' => 'kde_KDirectionButton*',
-'KDockArea*' => 'kde_KDockArea*',
-'KDockMainWindow*' => 'kde_KDockMainWindow*',
-'KDockManager*' => 'kde_KDockManager*' ,
-'KDockTabBar*' => 'kde_KDockTabBar*',
-'KDockTabBar::TabPos' => 'int',
-'KDockTabBarPainter*' => 'kde_KDockTabBarPainter*',
-'KDockTabCtl*' => 'kde_KDockTabCtl*',
-'KDockTabCtl_PrivateStruct*' => 'kde_KDockTabCtl_PrivateStruct*' ,
-'KDockTabGroup*' => 'kde_KDockTabGroup*' ,
-'KDockWidget*' => 'kde_KDockWidget*' ,
-'KDockWidgetAbstractHeader*' => 'kde_KDockWidgetAbstractHeader*' ,
-'KDockWidgetAbstractHeaderDrag*' => 'kde_KDockWidgetAbstractHeaderDrag*',
-'KDockWidgetHeader*' => 'kde_KDockWidgetHeader*',
-'KDockWidgetHeaderDrag*' => 'kde_KDockWidgetHeaderDrag*',
-'KDockWindow*' => 'kde_KDockWindow*',
-'KDoubleNumInput*' => 'kde_KDoubleNumInput*',
-'KDualColorButton*' => 'kde_KDualColorButton*',
-'KEMailSettings*' => 'kde_KEMailSettings*',
-'KEdFind*' => 'kde_KEdFind*',
-'KEdGotoLine*' => 'kde_KEdGotoLine*',
-'KEdReplace*' => 'kde_KEdReplace*',
-'KEdit*' => 'kde_KEdit*',
-'KEditListBox*' => 'kde_KEditListBox*',
-'KEditToolbar*' => 'kde_KEditToolbar*',
-'KEditToolbarWidget*' => 'kde_KEditToolbarWidget*',
-'KEntry&' => 'kde_KEntry*' ,
-'KEntry' => 'kde_KEntry*' ,
-'KEntry*' => 'kde_KEntry*',
-'KEntryKey&' => 'kde_KEntryKey*' ,
-'KEntryKey*' => 'kde_KEntryKey*',
-'KEntryMap' => 'kde_KEntryMap*' ,
-'KEntryMap*' => 'kde_KEntryMap*' ,
-'KExecMimeType*' => 'kde_KExecMimeType*',
-'KExecPropsPlugin*' => 'kde_KExecPropsPlugin*',
-'KExtendedSocket*' => 'kde_KExtendedSocket*',
-'KFile*' => 'kde_KFile*',
-'KFile::FileView' => 'int' ,
-'KFile::Mode' => 'int' ,
-'KFile::SelectionMode' => 'int' ,
-'KFileBookmark*' => 'kde_KFileBookmark*' ,
-'KFileBookmarkManager*' => 'kde_KFileBookmarkManager*',
-'KFileComboBox*' => 'kde_KFileComboBox*',
-'KFileDetailView*' => 'kde_KFileDetailView*',
-'KFileDialog*' => 'kde_KFileDialog*' ,
-'KFileFilter*' => 'kde_KFileFilter*',
-'KFileFilterCombo*' => 'kde_KFileFilterCombo*',
-'KFileIconView*' => 'kde_KFileIconView*',
-'KFileIconViewItem*' => 'kde_KFileIconViewItem*',
-'KFileItem&' => 'kde_KFileItem*',
-'KFileItem*' => 'kde_KFileItem*' ,
-'KFileItemList&' => 'kde_KFileItemList*' ,
-'KFileItemList' => 'kde_KFileItemList*' ,
-'KFileItemList*' => 'kde_KFileItemList*' ,
-'KFileListViewItem*' => 'kde_KFileListViewItem*',
-'KFileMetaInfo*' => 'kde_KFileMetaInfo*',
-'KFileMetaInfoItem*' => 'kde_KFileMetaInfoItem*',
-'KFileMetaInfoProvider*' => 'kde_KFileMetaInfoProvider*',
-'KFileOpenWithHandler*' => 'kde_KFileOpenWithHandler*',
-'KFilePermissionsPropsPlugin*' => 'kde_KFilePermissionsPropsPlugin*',
-'KFilePlugin*' => 'kde_KFilePlugin*',
-'KFilePreview*' => 'kde_KFilePreview*',
-'KFilePropsPlugin*' => 'kde_KFilePropsPlugin*',
-'KFileReader*' => 'kde_KFileReader*' ,
-'KFileTreeBranch*' => 'kde_KFileTreeBranch*',
-'KFileTreeView*' => 'kde_KFileTreeView*',
-'KFileTreeViewItem*' => 'kde_KFileTreeViewItem*',
-'KFileTreeViewToolTip*' => 'kde_KFileTreeViewToolTip*',
-'KFileView*' => 'kde_KFileView*' ,
-'KFileView::FileView' => 'int',
-'KFileViewItem&' => 'kde_KFileViewItem*',
-'KFileViewItem*' => 'kde_KFileViewItem*' ,
-'KFileViewItem**' => 'kde_KFileViewItem**' ,
-'KFileViewItemList&' => 'kde_KFileViewItemList*' ,
-'KFileViewItemList*' => 'kde_KFileViewItemList*' ,
-'KFileViewSignaler*' => 'kde_KFileViewSignaler*',
-'KFilterBase*' => 'kde_KFilterBase*',
-'KFilterDev*' => 'kde_KFilterDev*',
-'KFloatValidator*' => 'kde_KFloatValidator*',
-'KFloatWatchProxy&' => 'kde_KFloatWatchProxy*',
-'KFloatWatchProxy' => 'kde_KFloatWatchProxy*',
-'KFloatWatchProxy*' => 'kde_KFloatWatchProxy*',
-'KFolderType*' => 'kde_KFolderType*',
-'KFontAction*' => 'kde_KFontAction*',
-'KFontChooser*' => 'kde_KFontChooser*',
-'KFontCombo*' => 'kde_KFontCombo*',
-'KFontDialog*' => 'kde_KFontDialog*',
-'KFontSizeAction*' => 'kde_KFontSizeAction*',
-'KGenericFactory*' => 'kde_KGenericFactory*',
-'KGenericFactoryBase*' => 'kde_KGenericFactoryBase*',
-'KGlobal*' => 'kde_KGlobal*',
-'KGlobalAccel*' => 'kde_KGlobalAccel*' ,
-'KGlobalSettings*' => 'kde_KGlobalSettings*',
-'KGlobalSettings::Completion' => 'int' ,
-'KGradientSelector*' => 'kde_KGradientSelector*',
-'KGuiItem&' => 'kde_KGuiItem*',
-'KGuiItem' => 'kde_KGuiItem*',
-'KGuiItem*' => 'kde_KGuiItem*',
-'KHSSelector*' => 'kde_KHSSelector*',
-'KHTMLPart*' => 'kde_KHTMLPart*' ,
-'KHTMLSettings&' => 'kde_KHTMLSettings*',
-'KHTMLSettings*' => 'kde_KHTMLSettings*' ,
-'KHTMLView*' => 'kde_KHTMLView*' ,
-'KHelpMenu*' => 'kde_KHelpMenu*',
-'KHistoryCombo*' => 'kde_KHistoryCombo*',
-'KIO*' => 'kde_KIO*',
-'KIO::AuthInfo&' => 'kde_AuthInfo*',
-'KIO::CopyJob*' => 'kde_CopyJob*' ,
-'KIO::DeleteJob*' => 'kde_DeleteJob*' ,
-'KIO::Job*' => 'kde_Job*' ,
-'KIO::ListJob*' => 'kde_ListJob*' ,
-'KIO::MetaData&' => 'kde_MetaData*',
-'KIO::RenameDlg_Mode' => 'int',
-'KIO::RenameDlg_Result' => 'int',
-'KIO::SimpleJob*' => 'kde_SimpleJob*',
-'KIO::SkipDlg_Result' => 'int',
-'KIO::Slave*' => 'kde_Slave*',
-'KIO::UDSEntry&' => 'kde_UDSEntry*' ,
-'KIO::UDSEntryList&' => 'kde_UDSEntryList*' ,
-'KIOInputStream&' => 'kde_KIOInputStream*',
-'KIOInputStream*' => 'kde_KIOInputStream*',
-'KIOTestSlow&' => 'kde_KIOTestSlow*',
-'KIOTestSlow' => 'kde_KIOTestSlow*',
-'KIOTestSlow*' => 'kde_KIOTestSlow*',
-'KIPC*' => 'kde_KIPC*',
-'KIcon' => 'kde_KIcon*' ,
-'KIcon*' => 'kde_KIcon*',
-'KIconButton*' => 'kde_KIconButton*',
-'KIconCanvas*' => 'kde_KIconCanvas*',
-'KIconDialog*' => 'kde_KIconDialog*',
-'KIconEffect*' => 'kde_KIconEffect*' ,
-'KIconLoader*' => 'kde_KIconLoader*' ,
-'KIconSelectAction*' => 'kde_KIconSelectAction*',
-'KIconTheme*' => 'kde_KIconTheme*' ,
-'KIconView*' => 'kde_KIconView*',
-'KIconViewItem*' => 'kde_KIconViewItem*',
-'KImageEffect*' => 'kde_KImageEffect*',
-'KImageFilePreview*' => 'kde_KImageFilePreview*',
-'KImageIO*' => 'kde_KImageIO*',
-'KInetSocketAddress&' => 'kde_KInetSocketAddress*',
-'KInetSocketAddress*' => 'kde_KInetSocketAddress*',
-'KInstance&' => 'kde_KInstance*' ,
-'KInstance' => 'kde_KInstance*' ,
-'KInstance*' => 'kde_KInstance*' ,
-'KIntNumInput*' => 'kde_KIntNumInput*',
-'KIntSpinBox*' => 'kde_KIntSpinBox*',
-'KIntValidator*' => 'kde_KIntValidator*',
-'KJS*' => 'kde_KJS*',
-'KJS::KJSO&' => 'kde_KJS_KJSO*',
-'KJS::UString&' => 'kde_KJS_UString*',
-'KJSO&' => 'kde_KJSO*',
-'KJSO' => 'kde_KJSO*',
-'KJSO*' => 'kde_KJSO*',
-'KJScript*' => 'kde_KJScript*',
-'KJanusWidget*' => 'kde_KJanusWidget*',
-'KJavaApplet*' => 'kde_KJavaApplet*' ,
-'KJavaAppletContext*' => 'kde_KJavaAppletContext*' ,
-'KJavaAppletServer*' => 'kde_KJavaAppletServer*' ,
-'KJavaAppletWidget*' => 'kde_KJavaAppletWidget*',
-'KJavaProcess*' => 'kde_KJavaProcess*',
-'KJavaScriptAdvice&' => 'kde_KJavaScriptAdvice*' ,
-'KKeyChooser*' => 'kde_KKeyChooser*',
-'KKeyChooserItem*' => 'kde_KKeyChooserItem*',
-'KKeyDialog*' => 'kde_KKeyDialog*',
-'KKeyEntry&' => 'kde_KKeyEntry*' ,
-'KKeyEntry*' => 'kde_KKeyEntry*',
-'KKeyEntryMap&' => 'kde_KKeyEntryMap*' ,
-'KKeyEntryMap' => 'kde_KKeyEntryMap*' ,
-'KKeyEntryMap*' => 'kde_KKeyEntryMap*' ,
-'KKeySequence&' => 'kde_KKeySequence*',
-'KKeySequence' => 'kde_KKeySequence*',
-'KKeySequence*' => 'kde_KKeySequence*',
-'KKeySequence::I18N' => 'int',
-'KKeySequences&' => 'kde_KKeySequences*',
-'KKeySequences' => 'kde_KKeySequences*',
-'KKeySequences*' => 'kde_KKeySequences*',
-'KLed*' => 'kde_KLed*',
-'KLibFactory*' => 'kde_KLibFactory*' ,
-'KLibLoader*' => 'kde_KLibLoader*' ,
-'KLibrary*' => 'kde_KLibrary*' ,
-'KLineEdit*' => 'kde_KLineEdit*' ,
-'KLineEditDlg*' => 'kde_KLineEditDlg*',
-'KListAction*' => 'kde_KListAction*',
-'KListBox*' => 'kde_KListBox*',
-'KListView*' => 'kde_KListView*' ,
-'KListViewItem*' => 'kde_KListViewItem*',
-'KLocale&' => 'kde_KLocale*' ,
-'KLocale*' => 'kde_KLocale*' ,
-'KMJobViewer*' => 'kde_KMJobViewer*',
-'KMMainView*' => 'kde_KMMainView*',
-'KMManager*' => 'kde_KMManager*',
-'KMObject*' => 'kde_KMObject*',
-'KMPrinter&' => 'kde_KMPrinter*',
-'KMPrinter*' => 'kde_KMPrinter*',
-'KMPrinterList*' => 'kde_KMPrinterList*',
-'KMPrinterPage*' => 'kde_KMPrinterPage*',
-'KMacroCommand*' => 'kde_KMacroCommand*',
-'KMainWindow*' => 'kde_KMainWindow*',
-'KMainWindowInterface*' => 'kde_KMainWindowInterface*',
-'KMenuBar*' => 'kde_KMenuBar*' ,
-'KMessageBox*' => 'kde_KMessageBox*',
-'KMidSimpleAPI*' => 'kde_KMidSimpleAPI*',
-'KMimeMagic*' => 'kde_KMimeMagic*' ,
-'KMimeMagicResult*' => 'kde_KMimeMagicResult*' ,
-'KMimeSourceFactory*' => 'kde_KMimeSourceFactory*' ,
-'KMimeType*' => 'kde_KMimeType*',
-'KMimeType::List&' => 'kde_KMimeType_List*' ,
-'KMimeType::Ptr&' => 'kde_KMimeType_Ptr*' ,
-'KMimeType::Ptr' => 'kde_KMimeType_Ptr' ,
-'KMouseSettings*' => 'kde_KMouseSettings*',
-'KMultipleDrag*' => 'kde_KMultipleDrag*',
-'KNDBGFUNC' => 'void *' ,
-'KNotifyClient*' => 'kde_KNotifyClient*',
-'KNumInput*' => 'kde_KNumInput*' ,
-'KOCRDialog*' => 'kde_KOCRDialog*',
-'KOCRDialogFactory*' => 'kde_KOCRDialogFactory*',
-'KOpenSSLProxy*' => 'kde_KOpenSSLProxy*',
-'KOpenWithDlg*' => 'kde_KOpenWithDlg*',
-'KOpenWithHandler*' => 'kde_KOpenWithHandler*' ,
-'KPAC*' => 'kde_KPAC*',
-'KPReloadObject*' => 'kde_KPReloadObject*',
-'KPalette&' => 'kde_KPalette*' ,
-'KPalette*' => 'kde_KPalette*',
-'KPaletteTable*' => 'kde_KPaletteTable*',
-'KPanelAppMenu*' => 'kde_KPanelAppMenu*',
-'KPanelApplet*' => 'kde_KPanelApplet*',
-'KPanelExtension*' => 'kde_KPanelExtension*',
-'KPanelMenu*' => 'kde_KPanelMenu*' ,
-'KParts*' => 'kde_KParts*',
-'KParts::BrowserExtension*' => 'kde_BrowserExtension*' ,
-'KParts::GUIActivateEvent*' => 'kde_GUIActivateEvent*' ,
-'KParts::Part*' => 'kde_Part*',
-'KParts::PartManager*' => 'kde_PartManager*' ,
-'KParts::ReadOnlyPart*' => 'kde_ReadOnlyPart*' ,
-'KParts::URLArgs&' => 'kde_URLArgs*' ,
-'KParts::URLArgs' => 'kde_URLArgs*',
-'KPasswordDialog*' => 'kde_KPasswordDialog*',
-'KPasswordEdit*' => 'kde_KPasswordEdit*',
-'KPixmap&' => 'kde_KPixmap*' ,
-'KPixmap' => 'kde_KPixmap*' ,
-'KPixmap*' => 'kde_KPixmap*',
-'KPixmapEffect*' => 'kde_KPixmapEffect*',
-'KPixmapIO*' => 'kde_KPixmapIO*',
-'KPixmapProvider*' => 'kde_KPixmapProvider*' ,
-'KPixmapSplitter*' => 'kde_KPixmapSplitter*',
-'KPlayObject*' => 'kde_KPlayObject*',
-'KPlayObjectFactory*' => 'kde_KPlayObjectFactory*',
-'KPopupFrame*' => 'kde_KPopupFrame*',
-'KPopupMenu*' => 'kde_KPopupMenu*' ,
-'KPopupTitle*' => 'kde_KPopupTitle*',
-'KPreviewWidgetBase*' => 'kde_KPreviewWidgetBase*',
-'KPrintAction*' => 'kde_KPrintAction*',
-'KPrintDialogPage*' => 'kde_KPrintDialogPage*',
-'KPrinter*' => 'kde_KPrinter*',
-'KPrinterWrapper*' => 'kde_KPrinterWrapper*',
-'KProcIO*' => 'kde_KProcIO*' ,
-'KProcess&' => 'kde_KProcess*' ,
-'KProcess*' => 'kde_KProcess*' ,
-'KProcessController*' => 'kde_KProcessController*',
-'KProcessRunner*' => 'kde_KProcessRunner*',
-'KProgress*' => 'kde_KProgress*',
-'KPropertiesDialog*' => 'kde_KPropertiesDialog*' ,
-'KPropsDlgPlugin*' => 'kde_KPropsDlgPlugin*' ,
-'KProtocolInfo*' => 'kde_KProtocolInfo*',
-'KProtocolManager*' => 'kde_KProtocolManager*',
-'KPushButton*' => 'kde_KPushButton*',
-'KRFCDate*' => 'kde_KRFCDate*',
-'KRadioAction*' => 'kde_KRadioAction*',
-'KRandomSequence*' => 'kde_KRandomSequence*',
-'KRecentDocument*' => 'kde_KRecentDocument*',
-'KRecentFilesAction*' => 'kde_KRecentFilesAction*' ,
-'KRegExp*' => 'kde_KRegExp*',
-'KRegExpEditor*' => 'kde_KRegExpEditor*',
-'KRegExpEditorInterface*' => 'kde_KRegExpEditorInterface*',
-'KRestrictedLine*' => 'kde_KRestrictedLine*',
-'KRootPermsIcon*' => 'kde_KRootPermsIcon*',
-'KRootPixmap*' => 'kde_KRootPixmap*',
-'KRootProp*' => 'kde_KRootProp*',
-'KRuler*' => 'kde_KRuler*',
-'KRun*' => 'kde_KRun*',
-'KSSL&' => 'kde_KSSL*',
-'KSSL*' => 'kde_KSSL*',
-'KSSLAuthAction' => 'int',
-'KSSLAuthAction*' => 'int*',
-'KSSLCertBox*' => 'kde_KSSLCertBox*',
-'KSSLCertChain&' => 'kde_KSSLCertChain*',
-'KSSLCertChain*' => 'kde_KSSLCertChain*',
-'KSSLCertDlg*' => 'kde_KSSLCertDlg*',
-'KSSLCertDlgRet' => 'kde_KSSLCertDlgRet*',
-'KSSLCertDlgRet*' => 'kde_KSSLCertDlgRet*',
-'KSSLCertificate&' => 'kde_KSSLCertificate*',
-'KSSLCertificate*' => 'kde_KSSLCertificate*',
-'KSSLCertificateCache*' => 'kde_KSSLCertificateCache*',
-'KSSLCertificateFactory*' => 'kde_KSSLCertificateFactory*',
-'KSSLCertificateHome*' => 'kde_KSSLCertificateHome*',
-'KSSLConnectionInfo&' => 'kde_KSSLConnectionInfo*',
-'KSSLConnectionInfo*' => 'kde_KSSLConnectionInfo*',
-'KSSLInfoDlg*' => 'kde_KSSLInfoDlg*',
-'KSSLKeyGen*' => 'kde_KSSLKeyGen*',
-'KSSLKeyType' => 'kde_KSSLKeyType',
-'KSSLPKCS12*' => 'kde_KSSLPKCS12*',
-'KSSLPKCS7*' => 'kde_KSSLPKCS7*',
-'KSSLPeerInfo&' => 'kde_KSSLPeerInfo*',
-'KSSLPeerInfo*' => 'kde_KSSLPeerInfo*',
-'KSSLSettings*' => 'kde_KSSLSettings*',
-'KSSLSigners*' => 'kde_KSSLSigners*',
-'KSSLX509Map*' => 'kde_KSSLX509Map*',
-'KSSLX509V3&' => 'kde_KSSLX509V3*',
-'KSSLX509V3*' => 'kde_KSSLX509V3*',
-'KSaveFile*' => 'kde_KSaveFile*',
-'KScanDialog*' => 'kde_KScanDialog*',
-'KScanDialogFactory*' => 'kde_KScanDialogFactory*',
-'KScreenSaver*' => 'kde_KScreenSaver*',
-'KScriptClientInterface*' => 'kde_KScriptClientInterface*',
-'KScriptClientInterface::Result' => 'int',
-'KScriptInterface*' => 'kde_KScriptInterface*',
-'KScriptManager*' => 'kde_KScriptManager*',
-'KSelectAction*' => 'kde_KSelectAction*',
-'KSelector*' => 'kde_KSelector*',
-'KSeparator*' => 'kde_KSeparator*',
-'KServerSocket*' => 'kde_KServerSocket*',
-'KService&' => 'kde_KService*' ,
-'KService*' => 'kde_KService*',
-'KService::List' => 'kde_KService_List*' ,
-'KService::Ptr' => 'kde_KService_Ptr*' ,
-'KServiceGroup*' => 'kde_KServiceGroup*',
-'KServiceOffer&' => 'kde_KServiceOffer*' ,
-'KServiceOffer*' => 'kde_KServiceOffer*',
-'KServiceType*' => 'kde_KServiceType*',
-'KServiceTypeProfile*' => 'kde_KServiceTypeProfile*' ,
-'KSessionManaged*' => 'kde_KSessionManaged*',
-'KShared&' => 'kde_KShared*' ,
-'KShared*' => 'kde_KShared*',
-'KSharedPixmap*' => 'kde_KSharedPixmap*',
-'KSharedPtr&' => 'kde_KSharedPtr*' ,
-'KSharedPtr*' => 'kde_KSharedPtr*',
-'KShellCompletion*' => 'kde_KShellCompletion*',
-'KShellProcess*' => 'kde_KShellProcess*',
-'KShortcuts&' => 'kde_KShortcuts*',
-'KShortcuts' => 'kde_KShortcuts*',
-'KShortcuts*' => 'kde_KShortcuts*',
-'KShred*' => 'kde_KShred*',
-'KSimpleConfig&' => 'kde_KSimpleConfig*' ,
-'KSimpleConfig*' => 'kde_KSimpleConfig*',
-'KSimpleFileFilter*' => 'kde_KSimpleFileFilter*',
-'KSocket*' => 'kde_KSocket*',
-'KSocketAddress&' => 'kde_KSocketAddress*',
-'KSocketAddress*' => 'kde_KSocketAddress*',
-'KSocks*' => 'kde_KSocks*',
-'KSpell*' => 'kde_KSpell*',
-'KSpellConfig&' => 'kde_KSpellConfig*' ,
-'KSpellConfig' => 'kde_KSpellConfig*' ,
-'KSpellConfig*' => 'kde_KSpellConfig*' ,
-'KSpellDlg*' => 'kde_KSpellDlg*',
-'KSqueezedTextLabel*' => 'kde_KSqueezedTextLabel*',
-'KStandardDirs*' => 'kde_KStandardDirs*' ,
-'KStartupInfo*' => 'kde_KStartupInfo*',
-'KStartupInfoData&' => 'kde_KStartupInfoData*',
-'KStartupInfoData*' => 'kde_KStartupInfoData*',
-'KStartupInfoId&' => 'kde_KStartupInfoId*',
-'KStartupInfoId' => 'kde_KStartupInfoId*',
-'KStartupInfoId*' => 'kde_KStartupInfoId*',
-'KStaticDeleter*' => 'kde_KStaticDeleter*',
-'KStaticDeleterBase*' => 'kde_KStaticDeleterBase*' ,
-'KStatusBar*' => 'kde_KStatusBar*' ,
-'KStatusBar::BarStatusstat::Toggle' => 'int' ,
-'KStatusBarLabel*' => 'kde_KStatusBarLabel*',
-'KStdAccel*' => 'kde_KStdAccel*',
-'KStdAccel::StdAccel' => 'int' ,
-'KStdAction*' => 'kde_KStdAction*',
-'KStdGuiItem*' => 'kde_KStdGuiItem*',
-'KStringHandler*' => 'kde_KStringHandler*',
-'KStyle*' => 'kde_KStyle*' ,
-'KSycoca*' => 'kde_KSycoca*' ,
-'KSycocaEntry*' => 'kde_KSycocaEntry*' ,
-'KSycocaFactory*' => 'kde_KSycocaFactory*' ,
-'KSycocaFactoryId' => 'kde_KSycocaFactoryId' ,
-'KSycocaType&' => 'kde_KSycocaType*' ,
-'KSycocaType' => 'kde_KSycocaType*' ,
-'KSystemTray*' => 'kde_KSystemTray*',
-'KTMainWindow*' => 'kde_KTMainWindow*',
-'KTabButton*' => 'kde_KTabButton*',
-'KTabCtl*' => 'kde_KTabCtl*',
-'KTar*' => 'kde_KTar*',
-'KTarBase*' => 'kde_KTarBase*' ,
-'KTarData*' => 'kde_KTarData*',
-'KTarDirectory*' => 'kde_KTarDirectory*' ,
-'KTarEntry*' => 'kde_KTarEntry*' ,
-'KTarFile*' => 'kde_KTarFile*',
-'KTarGz*' => 'kde_KTarGz*',
-'KTempFile*' => 'kde_KTempFile*',
-'KTextBrowser*' => 'kde_KTextBrowser*',
-'KTextEditor*' => 'kde_KTextEditor*',
-'KTextEditor__View&' => 'kde_KTextEditor__View*',
-'KTextEditor__View' => 'kde_KTextEditor__View*',
-'KTextEditor__View*' => 'kde_KTextEditor__View*',
-'KThemeBase*' => 'kde_KThemeBase*', ,
-'KThemeCache*' => 'kde_KThemeCache*',
-'KThemePixmap&' => 'kde_KThemePixmap*' ,
-'KThemePixmap*' => 'kde_KThemePixmap*' ,
-'KThemeStyle*' => 'kde_KThemeStyle*',
-'KTipDatabase*' => 'kde_KTipDatabase*',
-'KTipDialog*' => 'kde_KTipDialog*',
-'KToggleAction*' => 'kde_KToggleAction*' ,
-'KToolBar*' => 'kde_KToolBar*' ,
-'KToolBar::BarStatus' => 'int',
-'KToolBar::BarStatusstat::Toggle' => 'int' ,
-'KToolBarButton*' => 'kde_KToolBarButton*' ,
-'KToolBarButtonList*' => 'kde_KToolBarButtonList*',
-'KToolBarPopupAction*' => 'kde_KToolBarPopupAction*',
-'KToolBarPos' => 'int' ,
-'KToolBarRadioGroup*' => 'kde_KToolBarRadioGroup*',
-'KToolBarSeparator*' => 'kde_KToolBarSeparator*',
-'KToolButtonType' => 'int' ,
-'KTrader*' => 'kde_KTrader*' ,
-'KTypeList*' => 'kde_KTypeList*',
-'KURIFilter*' => 'kde_KURIFilter*' ,
-'KURIFilterData&' => 'kde_KURIFilterData*' ,
-'KURIFilterData*' => 'kde_KURIFilterData*',
-'KURIFilterPlugin*' => 'kde_KURIFilterPlugin*',
-'KURIFilterPluginList*' => 'kde_KURIFilterPluginList*',
-'KURL& url ()' => 'kde_KURL*',
-'KURL& urlName ()' => 'kde_KURL*',
-'KURL&' => 'kde_KURL*' ,
-'KURL' => 'kde_KURL*' ,
-'KURL*' => 'kde_KURL*',
-'KURL::List&' => 'kde_KURLList*' ,
-'KURL::List' => 'kde_KURLList*' ,
-'KURLComboBox*' => 'kde_KURLComboBox*',
-'KURLComboItem*' => 'kde_KURLComboItem*' ,
-'KURLCompletion*' => 'kde_KURLCompletion*',
-'KURLDrag*' => 'kde_KURLDrag*',
-'KURLLabel*' => 'kde_KURLLabel*',
-'KURLPixmapProvider*' => 'kde_KURLPixmapProvider*',
-'KURLPropsPlugin*' => 'kde_KURLPropsPlugin*',
-'KURLRequester*' => 'kde_KURLRequester*',
-'KURLRequesterDlg*' => 'kde_KURLRequesterDlg*',
-'KUniqueApplication*' => 'kde_KUniqueApplication*',
-'KUnixSocketAddress*' => 'kde_KUnixSocketAddress*',
-'KValueSelector*' => 'kde_KValueSelector*',
-'KWin*' => 'kde_KWin*',
-'KWinModule*' => 'kde_KWinModule*',
-'KWindowListMenu*' => 'kde_KWindowListMenu*',
-'KWizard*' => 'kde_KWizard*',
-'KWordWrap*' => 'kde_KWordWrap*',
-'KWritePermsIcon*' => 'kde_KWritePermsIcon*',
-'KXMLGUIBuilder*' => 'kde_KXMLGUIBuilder*' ,
-'KXMLGUIClient*' => 'kde_KXMLGUIClient*' ,
-'KXMLGUIFactory*' => 'kde_KXMLGUIFactory*' ,
-'KXMessages*' => 'kde_KXMessages*',
-'KXYSelector*' => 'kde_KXYSelector*',
-'KZoneAllocator*' => 'kde_KZoneAllocator*',
-'KabAPI*' => 'kde_KabAPI*',
-'KabKey&' => 'kde_KabKey*' ,
-'KabKey' => 'kde_KabKey*' ,
-'KabKey*' => 'kde_KabKey*',
-'Key&' => 'Key*' ,
-'KeyBindingMap' => 'kde_KeyBindingMap*' ,
-'KeyValueMap&' => 'kde_KeyValueMap*' ,
-'KeyValueMap*&' => 'kde_KeyValueMap*' ,
-'KeyValueMap*' => 'kde_KeyValueMap*' ,
-'Keymap*' => 'kde_Keymap*',
-'LinkStyle&' => 'kde_LinkStyle*',
-'LinkStyle*' => 'kde_LinkStyle*',
-'List&' => 'kde_List*',
-'List' => 'kde_List',
-'List*' => 'kde_List*',
-'ListIterator&' => 'kde_ListIterator*',
-'ListIterator' => 'kde_ListIterator',
-'ListIterator*' => 'kde_ListIterator*',
-'ListJob*' => 'kde_ListJob*',
-'ListNode*' => 'kde_ListNode*',
-'ListProgress*' => 'kde_ListProgress*',
-'Lookup*' => 'kde_Lookup*',
-'MCOPConfig*' => 'kde_MCOPConfig*',
-'MCOPUtils*' => 'kde_MCOPUtils*',
-'MSG*' => 'MSG*' ,
-'MailServer&' => 'MailServer*' ,
-'MailServer*' => 'kde_MailServer*',
-'MainWindow*' => 'kde_MainWindow*',
-'Mark*' => 'kde_Mark*',
-'MarkInterface*' => 'kde_MarkInterface*',
-'MediaAsyncStream*' => 'kde_MediaAsyncStream*',
-'MediaDataPacket*' => 'kde_MediaDataPacket*',
-'MediaFrame*' => 'kde_MediaFrame*',
-'MediaList&' => 'kde_MediaList*',
-'MediaList' => 'kde_MediaList',
-'MediaList*' => 'kde_MediaList*',
-'MediaListImpl*' => 'kde_MediaListImpl*',
-'MediaModule&' => 'kde_MediaModule*',
-'MediaModule' => 'kde_MediaModule*',
-'MediaModule*' => 'kde_MediaModule*',
-'MediaModule_base*' => 'kde_MediaModule_base*',
-'MediaModule_skel*' => 'kde_MediaModule_skel*',
-'MediaModule_stub*' => 'kde_MediaModule_stub*',
-'MenuDockData*' => 'kde_MenuDockData*',
-'MetaData&' => 'kde_MetaData*',
-'MetaData' => 'kde_MetaData*',
-'MetaData*' => 'kde_MetaData*',
-'MethodDef&' => 'kde_MethodDef*',
-'MethodDef*' => 'kde_MethodDef*',
-'MidiEvent*' => 'kde_MidiEvent*',
-'MidiFileInfo*' => 'kde_MidiFileInfo*',
-'MidiMapper*' => 'kde_MidiMapper*',
-'MidiOut*' => 'kde_MidiOut*',
-'MidiPlayer*' => 'kde_MidiPlayer*',
-'MidiStatus*' => 'kde_MidiStatus*',
-'MidiTrack*' => 'kde_MidiTrack*',
-'MimetypeJob*' => 'kde_MimetypeJob*',
-'Mode' => 'int',
-'ModuleDef&' => 'kde_ModuleDef*',
-'ModuleDef*' => 'kde_ModuleDef*',
-'MouseDoubleClickEvent*' => 'kde_MouseDoubleClickEvent*',
-'MouseEvent*' => 'kde_MouseEvent*',
-'MouseMoveEvent*' => 'kde_MouseMoveEvent*',
-'MousePressEvent*' => 'kde_MousePressEvent*',
-'MouseReleaseEvent*' => 'kde_MouseReleaseEvent*',
-'MultiGetJob*' => 'kde_MultiGetJob*',
-'MultiPort*' => 'kde_MultiPort*',
-'NET*' => 'kde_NET*',
-'NET::WindowType' => 'int' ,
-'NETIcon' => 'kdeNETIcon*' ,
-'NETIcon*' => 'kde_NETIcon*',
-'NETPoint&' => 'kde_NETPoint*' ,
-'NETPoint' => 'kde_NETPoint*' ,
-'NETPoint*' => 'kde_NETPoint*',
-'NETRect&' => 'kde_NETRect*' ,
-'NETRect' => 'kde_NETRect*' ,
-'NETRect*' => 'kde_NETRect*',
-'NETRootInfo&' => 'kde_NETRootInfo*' ,
-'NETRootInfo*' => 'kde_NETRootInfo*',
-'NETRootInfoPrivate*' => 'kde_NETRootInfoPrivate*',
-'NETSize&' => 'kde_NETSize*' ,
-'NETSize' => 'kde_NETSize*' ,
-'NETSize*' => 'kde_NETSize*',
-'NETStrut' => 'kde_NETStrut*' ,
-'NETStrut*' => 'kde_NETStrut*',
-'NETWinInfo&' => 'kde_NETWinInfo*' ,
-'NETWinInfo*' => 'kde_NETWinInfo*',
-'NETWinInfoPrivate*' => 'kde_NETWinInfoPrivate*',
-'NamedNodeMap&' => 'kde_NamedNodeMap*',
-'NamedNodeMap' => 'kde_NamedNodeMap*',
-'NamedNodeMap*' => 'kde_NamedNodeMap*',
-'NamedNodeMapImpl*' => 'kde_NamedNodeMapImpl*',
-'NetAccess*' => 'kde_NetAccess*',
-'NetRC*' => 'kde_NetRC*',
-'Node&' => 'kde_DOMNode*',
-'Node' => 'kde_DOMNode*',
-'Node*' => 'kde_DOMNode*',
-'NodeFilter&' => 'kde_NodeFilter*',
-'NodeFilter' => 'kde_NodeFilter*',
-'NodeFilter*' => 'kde_NodeFilter*',
-'NodeFilterImpl*' => 'kde_NodeFilterImpl*',
-'NodeImpl*' => 'kde_NodeImpl*',
-'NodeIterator&' => 'kde_NodeIterator*',
-'NodeIterator' => 'kde_NodeIterator*',
-'NodeIterator*' => 'kde_NodeIterator*',
-'NodeIteratorImpl*' => 'kde_NodeIteratorImpl*',
-'NodeList&' => 'kde_DOMNodeList*',
-'NodeList' => 'kde_DOMNodeList*',
-'NodeList*' => 'kde_DOMNodeList*',
-'NodeListImpl*' => 'kde_NodeListImpl*',
-'NodePtr' => 'int' ,
-'NodeType' => 'int' ,
-'Notation&' => 'kde_Notation*',
-'Notation*' => 'kde_Notation*',
-'NoteArray*' => 'kde_NoteArray*',
-'Notification&' => 'kde_Notification*',
-'Notification' => 'kde_Notification*',
-'Notification*' => 'kde_Notification*',
-'NotificationClient*' => 'kde_NotificationClient*',
-'NotificationManager*' => 'kde_NotificationManager*',
-'Null*' => 'null',
-'Number&' => 'kde_Number*',
-'Number*' => 'kde_Number*',
-'Object&' => 'kde_Object*',
-'Object' => 'kde_Object*',
-'Object*' => 'kde_Object*',
-'ObjectImp*' => 'kde_ObjectImp*',
-'ObjectManager*' => 'kde_ObjectManager*',
-'ObjectReference&' => 'kde_ObjectReference*',
-'ObjectReference*' => 'kde_ObjectReference*',
-'Object_base*' => 'kde_Object_base*',
-'Object_skel*' => 'kde_Object_skel*',
-'Object_stub*' => 'kde_Object_stub*',
-'Observer*' => 'kde_Observer*',
-'OfferList' => 'kde_OfferList*' ,
-'Offset' => 'int',
-'OnewayDispatchFunction' => 'kde_OnewayDispatchFunction*',
-'OnewayInvocation&' => 'kde_OnewayInvocation*',
-'OnewayInvocation*' => 'kde_OnewayInvocation*',
-'OpenURLEvent*' => 'kde_OpenURLEvent*',
-'Orientation' => 'int',
-'PFlags' => 'int',
-'PIAccess' => 'int',
-'PID' => 'long',
-'PIType' => 'int',
-'PTY*' => 'kde_PTY*',
-'PageSize' => 'int',
-'ParamDef&' => 'kde_ParamDef*',
-'ParamDef*' => 'kde_ParamDef*',
-'ParsedArgument*' => 'kde_ParsedArgument*',
-'ParsedAttribute*' => 'kde_ParsedAttribute*',
-'ParsedClass&' => 'kde_ParsedClass&',
-'ParsedClass*' => 'kde_ParsedClass*',
-'ParsedClassContainer*' => 'kde_ParsedClassContainer*',
-'ParsedContainer*' => 'kde_ParsedContainer*',
-'ParsedItem*' => 'kde_ParsedItem*',
-'ParsedMethod*' => 'kde_ParsedMethod*',
-'ParsedParent*' => 'kde_ParsedParent*',
-'ParsedScopeContainer*' => 'kde_ParsedScopeContainer*',
-'ParsedSignalSlot*' => 'kde_ParsedSignalSlot*',
-'ParsedStruct*' => 'kde_ParsedStruct*',
-'Part*' => 'kde_Part*',
-'PartActivateEvent*' => 'kde_PartActivateEvent*',
-'PartBase*' => 'kde_PartBase*',
-'PartManager*' => 'kde_PartManager*',
-'PartSelectEvent*' => 'kde_PartSelectEvent*',
-'PassDlg*' => 'kde_PassDlg*',
-'PasswordDialog*' => 'kde_PasswordDialog*',
-'PenCapStyle' => 'int' ,
-'PenJoinStyle' => 'int' ,
-'PenStyle' => 'int',
-'PersistantClassStore*' => 'kde_PersistantClassStore*',
-'PhoneNumber&' => 'kde_PhoneNumber*',
-'PhoneNumber*' => 'kde_PhoneNumber*',
-'PipeBuffer*' => 'kde_PipeBuffer*',
-'PipeSegment*' => 'kde_PipeSegment*',
-'Pix&' => 'kde_Pix*' ,
-'Pix' => 'kde_Pix*' ,
-'PixelMetric' => 'int',
-'PlayObject&' => 'kde_PlayObject*',
-'PlayObject' => 'kde_PlayObject*',
-'PlayObject*' => 'kde_PlayObject*',
-'PlayObjectFactory&' => 'kde_PlayObjectFactory*',
-'PlayObjectFactory' => 'kde_PlayObjectFactory',
-'PlayObjectFactory*' => 'kde_PlayObjectFactory*',
-'PlayObjectFactory_base*' => 'kde_PlayObjectFactory_base*',
-'PlayObjectFactory_skel*' => 'kde_PlayObjectFactory_skel*',
-'PlayObjectFactory_stub*' => 'kde_PlayObjectFactory_stub*',
-'PlayObject_base*' => 'kde_PlayObject_base*',
-'PlayObject_private&' => 'kde_PlayObject_private*',
-'PlayObject_private' => 'kde_PlayObject_private',
-'PlayObject_private*' => 'kde_PlayObject_private*',
-'PlayObject_private_base*' => 'kde_PlayObject_private_base*',
-'PlayObject_private_skel*' => 'kde_PlayObject_private_skel*',
-'PlayObject_private_stub*' => 'kde_PlayObject_private_stub*',
-'PlayObject_skel*' => 'kde_PlayObject_skel*',
-'PlayObject_stub*' => 'kde_PlayObject_stub*',
-'PlayerController*' => 'kde_PlayerController*',
-'Plugin*' => 'kde_Plugin*',
-'PluginInfo*' => 'kde_PluginInfo*',
-'Policy' => 'int',
-'Pool&' => 'kde_Pool*',
-'Pool*' => 'kde_Pool*',
-'PopupMenuInterface*' => 'kde_PopupMenuInterface*',
-'Port*' => 'kde_Port*',
-'PreviewJob*' => 'kde_PreviewJob*',
-'PrimitiveElement' => 'int',
-'PrintInterface*' => 'kde_PrintInterface*',
-'PrinterMode' => 'int',
-'ProcessingInstruction&' => 'kde_ProcessingInstruction*',
-'ProcessingInstruction' => 'kde_ProcessingInstruction*',
-'ProcessingInstruction*' => 'kde_ProcessingInstruction*',
-'ProgressBase*' => 'kde_ProgressBase*',
-'ProgressItem*' => 'kde_ProgressItem*',
-'PropagationMode' => 'int',
-'ProtocolInfo*' => 'kde_ProtocolInfo*',
-'Ptr' => 'void *',
-'PtyProcess*' => 'kde_PtyProcess*',
-'QAccel*' => 'qt_QAccel*',
-'QAccessible*' => 'qt_QAccessible*',
-'QAccessibleFactoryInterface*' => 'qt_QAccessibleFactoryInterface*',
-'QAccessibleInterface*' => 'qt_QAccessibleInterface*',
-'QAccessibleInterface**' => 'qt_QAccessibleInterface**',
-'QAccessibleObject*' => 'qt_QAccessibleObject*',
-'QAction*' => 'qt_QAction*' ,
-'QActionGroup*' => 'qt_QActionGroup*',
-'QApplication*' => 'qt_QApplication*' ,
-'QArabicCodec*' => 'qt_QArabicCodec*',
-'QArray*' => 'qt_QArray*',
-'QAsciiBucket*' => 'qt_QAsciiBucket*',
-'QAsciiCache*' => 'qt_QAsciiCache*',
-'QAsciiCacheIterator*' => 'qt_QAsciiCacheIterator*',
-'QAsciiDict*' => 'qt_QAsciiDict*',
-'QAsciiDictIterator*' => 'qt_QAsciiDictIterator*',
-'QAsyncIO*' => 'qt_QAsyncIO*',
-'QAuBucket*' => 'qt_QAuBucket*' ,
-'QAuServer*' => 'qt_QAuServer*',
-'QBaseBucket*' => 'qt_QBaseBucket*' ,
-'QBig5Codec*' => 'qt_QBig5Codec*',
-'QBitArray&' => 'qt_QBitArray*' ,
-'QBitArray' => 'qt_QBitArray*' ,
-'QBitArray*' => 'qt_QBitArray*' ,
-'QBitVal&' => 'qt_QBitVal*' ,
-'QBitVal' => 'qt_QBitVal*' ,
-'QBitVal*' => 'qt_QBitVal*',
-'QBitmap&' => 'qt_QBitmap *',
-'QBitmap' => 'qt_QBitmap *',
-'QBitmap*' => 'qt_QBitmap *',
-'QBoxLayout*' => 'qt_QBoxLayout*',
-'QBrush&' => 'qt_QBrush *',
-'QBrush' => 'qt_QBrush*' ,
-'QBrush*' => 'qt_QBrush*' ,
-'QBrushData*' => 'qt_QBrushData*',
-'QBuffer*' => 'qt_QBuffer*',
-'QButton*' => 'qt_QButton *',
-'QButtonGroup*' => 'qt_QButtonGroup*' ,
-'QByteArray& arr ()' => 'qt_QByteArray*',
-'QByteArray&' => 'qt_QByteArray*' ,
-'QByteArray' => 'qt_QByteArray*',
-'QByteArray*' => 'qt_QByteArray*',
-'QCDEStyle*' => 'qt_QCDEStyle*',
-'QCOORD&' => 'short',
-'QCOORD' => 'short',
-'QCOORD*' => 'short *',
-'QCString&' => 'qt_QCString*' ,
-'QCString' => 'qt_QCString*' ,
-'QCString*' => 'qt_QCString*' ,
-'QCStringLess*' => 'qt_QCStringLess*' ,
-'QCStringList' => 'kde_QCStringList*' ,
-'QCache*' => 'qt_QCache*',
-'QCacheIterator*' => 'qt_QCacheIterator*',
-'QCanvas*' => 'qt_QCanvas*' ,
-'QCanvasEllipse*' => 'qt_QCanvasEllipse*',
-'QCanvasItem*' => 'qt_QCanvasItem*' ,
-'QCanvasItemList' => 'qt_QCanvasItemList*' ,
-'QCanvasItemList*' => 'qt_QCanvasItemList*',
-'QCanvasLine*' => 'qt_QCanvasLine*',
-'QCanvasPixmap*' => 'qt_QCanvasPixmap*' ,
-'QCanvasPixmapArray*' => 'qt_QCanvasPixmapArray*' ,
-'QCanvasPolygon*' => 'qt_QCanvasPolygon*',
-'QCanvasPolygonalItem*' => 'qt_QCanvasPolygonalItem*',
-'QCanvasRectangle*' => 'qt_QCanvasRectangle*',
-'QCanvasSpline*' => 'qt_QCanvasSpline*',
-'QCanvasSprite*' => 'qt_QCanvasSprite*',
-'QCanvasText*' => 'qt_QCanvasText*',
-'QCanvasView*' => 'qt_QCanvasView*' ,
-'QChain*' => 'qt_QChain*' ,
-'QChar&' => 'qt_QChar*' ,
-'QChar' => 'qt_QChar*' ,
-'QChar*' => 'qt_QChar*' ,
-'QChar::Category' => 'int' ,
-'QChar::Decomposition' => 'int' ,
-'QChar::Direction' => 'int' ,
-'QChar::Joining' => 'int' ,
-'QCharRef&' => 'qt_QCharRef*' ,
-'QCharRef' => 'qt_QCharRef*' ,
-'QCharRef*' => 'qt_QCharRef*',
-'QCheckBox*' => 'qt_QCheckBox*',
-'QCheckListItem*' => 'qt_QCheckListItem *',
-'QCheckTableItem*' => 'qt_QCheckTableItem*',
-'QChildEvent*' => 'qt_QChildEvent*' ,
-'QClassInfo*' => 'qt_QClassInfo*' ,
-'QCleanupHandler*' => 'qt_QCleanupHandler*',
-'QClipboard*' => 'qt_QClipboard *',
-'QCloseEvent*' => 'qt_QCloseEvent*' ,
-'QCollection&' => 'qt_QCollection*' ,
-'QCollection*' => 'qt_QCollection*',
-'QCollection::Item&' => 'void *' ,
-'QCollection::Item' => 'void *' ,
-'QColor &' => 'qt_QColor *',
-'QColor&' => 'qt_QColor *',
-'QColor&fillColor::white' => 'int' ,
-'QColor&linkColor::blue' => 'int' ,
-'QColor' => 'qt_QColor *',
-'QColor*' => 'qt_QColor*' ,
-'QColorDialog*' => 'qt_QColorDialog*',
-'QColorDrag*' => 'qt_QColorDrag*',
-'QColorGroup&' => 'qt_QColorGroup *',
-'QColorGroup' => 'qt_QColorGroup*' ,
-'QColorGroup*' => 'qt_QColorGroup*' ,
-'QColorGroup::ColorRole' => 'int' ,
-'QComboBox*' => 'qt_QComboBox*' ,
-'QComboBox::Policy' => 'int' ,
-'QComboBox::Policypolicy::AtBottom' => 'int' ,
-'QComboTableItem*' => 'qt_QComboTableItem*',
-'QCommonStyle*' => 'qt_QCommonStyle*',
-'QCompactStyle*' => 'qt_QCompactStyle*',
-'QComponentFactory*' => 'qt_QComponentFactory*',
-'QComponentFactoryInterface*' => 'qt_QComponentFactoryInterface*',
-'QComponentInterface*' => 'qt_QComponentInterface*',
-'QComponentRegistration*' => 'qt_QComponentRegistration*',
-'QComponentServerInterface*' => 'qt_QComponentServerInterface*',
-'QConfigDB*' => 'qt_QConfigDB*' ,
-'QConfigDB*' => 'qt_QConfigDB*' ,
-'QConnection*' => 'qt_QConnection*',
-'QConnectionList&' => 'qt_QConnectionList*' ,
-'QConnectionList*' => 'qt_QConnectionList*' ,
-'QConnectionListIt&' => 'qt_QConnectionListIt*' ,
-'QConnectionListIt*' => 'qt_QConnectionListIt*',
-'QConstString' => 'qt_QConstString*',
-'QConstString*' => 'qt_QConstString*',
-'QContextMenuEvent*' => 'qt_QContextMenuEvent*',
-'QCursor&' => 'qt_QCursor *',
-'QCursor' => 'qt_QCursor*' ,
-'QCursor*' => 'qt_QCursor *',
-'QCustomEvent*' => 'qt_QCustomEvent*' ,
-'QCustomMenuItem*' => 'qt_QCustomMenuItem*' ,
-'QDOM_NodeListPrivate*' => 'void*' ,
-'QDOM_NodePrivate*' => 'void*' ,
-'QDataBrowser*' => 'qt_QDataBrowser*',
-'QDataPump*' => 'qt_QDataPump*',
-'QDataSink*' => 'qt_QDataSink*' ,
-'QDataSource*' => 'qt_QDataSource*' ,
-'QDataStream&' => 'qt_QDataStream *',
-'QDataStream*' => 'qt_QDataStream*' ,
-'QDataTable*' => 'qt_QDataTable*',
-'QDataView*' => 'qt_QDataView*',
-'QDate &' => 'qt_QDate *',
-'QDate date()' => 'qt_QDate*',
-'QDate&' => 'qt_QDate *',
-'QDate' => 'qt_QDate *',
-'QDate*' => 'qt_QDate*',
-'QDateEdit*' => 'qt_QDateEdit*',
-'QDateTime&' => 'qt_QDateTime *',
-'QDateTime' => 'qt_QDateTime *',
-'QDateTime*' => 'qt_QDateTime*' ,
-'QDateTimeEdit*' => 'qt_QDateTimeEdit*',
-'QDateTimeEditBase*' => 'qt_QDateTimeEditBase*',
-'QDesktopWidget*' => 'qt_QDesktopWidget*',
-'QDial*' => 'qt_QDial*',
-'QDialog*' => 'qt_QDialog*',
-'QDict*' => 'qt_QDict*',
-'QDictIterator*' => 'qt_QDictIterator*',
-'QDir&' => 'qt_QDir *',
-'QDir' => 'qt_QDir *',
-'QDir*' => 'qt_QDir *',
-'QDir::SortSpec&' => 'int' ,
-'QDir::SortSpec' => 'int' ,
-'QDirSortItem*' => 'qt_QDirSortItem*',
-'QDiskFont*' => 'qt_QDiskFont*',
-'QDispatchInterface*' => 'qt_QDispatchInterface*',
-'QDns*' => 'qt_QDns*',
-'QDnsSocket*' => 'qt_QDnsSocket*',
-'QDockArea*' => 'qt_QDockArea*',
-'QDockAreaLayout*' => 'qt_QDockAreaLayout*',
-'QDockWindow*' => 'qt_QDockWindow*',
-'QDomAttr&' => 'qt_QDomAttr*' ,
-'QDomAttr' => 'qt_QDomAttr*' ,
-'QDomAttr*' => 'qt_QDomAttr*',
-'QDomCDATASection&' => 'qt_QDomCDATASection*' ,
-'QDomCDATASection' => 'qt_QDomCDATASection*' ,
-'QDomCDATASection*' => 'qt_QDomCDATASection*',
-'QDomCharacterData&' => 'qt_QDomCharacterData*' ,
-'QDomCharacterData' => 'qt_QDomCharacterData*' ,
-'QDomCharacterData*' => 'qt_QDomCharacterData*',
-'QDomComment&' => 'qt_QDomComment*' ,
-'QDomComment' => 'qt_QDomComment*' ,
-'QDomComment*' => 'qt_QDomComment*',
-'QDomDocument&' => 'qt_QDomDocument*' ,
-'QDomDocument' => 'qt_QDomDocument*' ,
-'QDomDocument*' => 'qt_QDomDocument*',
-'QDomDocumentFragment&' => 'qt_QDomDocumentFragment*' ,
-'QDomDocumentFragment' => 'qt_QDomDocumentFragment*' ,
-'QDomDocumentFragment*' => 'qt_QDomDocumentFragment*',
-'QDomDocumentType&' => 'qt_QDomDocumentType*' ,
-'QDomDocumentType' => 'qt_QDomDocumentType*' ,
-'QDomDocumentType*' => 'qt_QDomDocumentType*',
-'QDomElement&' => 'qt_QDomElement*' ,
-'QDomElement' => 'qt_QDomElement*' ,
-'QDomElement*' => 'qt_QDomElement*',
-'QDomEntity&' => 'qt_QDomEntity*' ,
-'QDomEntity' => 'qt_QDomEntity*' ,
-'QDomEntity*' => 'qt_QDomEntity*',
-'QDomEntityReference&' => 'qt_QDomEntityReference*' ,
-'QDomEntityReference' => 'qt_QDomEntityReference*' ,
-'QDomEntityReference*' => 'qt_QDomEntityReference*',
-'QDomImplementation&' => 'qt_QDomImplementation*' ,
-'QDomImplementation' => 'qt_QDomImplementation*' ,
-'QDomImplementation*' => 'qt_QDomImplementation*',
-'QDomNamedNodeMap&' => 'qt_QDomNamedNodeMap*' ,
-'QDomNamedNodeMap' => 'qt_QDomNamedNodeMap*' ,
-'QDomNamedNodeMap*' => 'qt_QDomNamedNodeMap*',
-'QDomNode&' => 'qt_QDomNode*' ,
-'QDomNode' => 'qt_QDomNode*' ,
-'QDomNode*' => 'qt_QDomNode*',
-'QDomNode::NodeType' => 'int',
-'QDomNodeList&' => 'qt_QDomNodeList*' ,
-'QDomNodeList' => 'qt_QDomNodeList*' ,
-'QDomNodeList*' => 'qt_QDomNodeList*',
-'QDomNodePrivate*' => 'qt_QDomNodePrivate*',
-'QDomNotation&' => 'qt_QDomNotation*' ,
-'QDomNotation' => 'qt_QDomNotation*' ,
-'QDomNotation*' => 'qt_QDomNotation*',
-'QDomProcessingInstruction&' => 'qt_QDomProcessingInstruction*' ,
-'QDomProcessingInstruction' => 'qt_QDomProcessingInstruction*' ,
-'QDomProcessingInstruction*' => 'qt_QDomProcessingInstruction*',
-'QDomText&' => 'qt_QDomText*' ,
-'QDomText' => 'qt_QDomText*' ,
-'QDomText*' => 'qt_QDomText*',
-'QDoubleValidator*' => 'qt_QDoubleValidator*',
-'QDragEnterEvent*' => 'qt_QDragEnterEvent*' ,
-'QDragLeaveEvent*' => 'qt_QDragLeaveEvent*' ,
-'QDragManager*' => 'qt_QDragManager*',
-'QDragMoveEvent*' => 'qt_QDragMoveEvent*' ,
-'QDragObject*' => 'qt_QDragObject*' ,
-'QDragResponseEvent*' => 'qt_QDragResponseEvent*',
-'QDropEvent*' => 'qt_QDropEvent*' ,
-'QDropSite*' => 'qt_QDropSite*',
-'QEditorFactory*' => 'qt_QEditorFactory*',
-'QErrorMessage*' => 'qt_QErrorMessage*',
-'QEucJpCodec*' => 'qt_QEucJpCodec*',
-'QEucKrCodec*' => 'qt_QEucKrCodec*',
-'QEvent*' => 'qt_QEvent *',
-'QEventLoop::ProcessEventsFlags' => 'uint',
-'QFeatureListInterface*' => 'qt_QFeatureListInterface*',
-'QFile&' => 'qt_QFile *',
-'QFile*' => 'qt_QFile*' ,
-'QFileDialog*' => 'qt_QFileDialog*',
-'QFileIconProvider*' => 'qt_QFileIconProvider*' ,
-'QFileInfo&' => 'qt_QFileInfo *',
-'QFileInfo*' => 'qt_QFileInfo*',
-'QFileInfoList*' => 'qt_QFileInfoList*' ,
-'QFilePreview*' => 'qt_QFilePreview*' ,
-'QFocusData*' => 'qt_QFocusData*' ,
-'QFocusEvent*' => 'qt_QFocusEvent*' ,
-'QFont&' => 'qt_QFont *',
-'QFont' => 'qt_QFont *',
-'QFont*' => 'qt_QFont *',
-'QFont::CharSet' => 'int',
-'QFont::CharSetcharset::Unicode' => 'int' ,
-'QFont::StyleHint' => 'int',
-'QFontData&' => 'qt_QFontData*' ,
-'QFontDatabase*' => 'qt_QFontDatabase*',
-'QFontDialog*' => 'qt_QFontDialog*',
-'QFontInfo&' => 'qt_QFontInfo *',
-'QFontInfo' => 'qt_QFontInfo *',
-'QFontInfo*' => 'qt_QFontInfo*',
-'QFontMetrics&' => 'qt_QFontMetrics *',
-'QFontMetrics' => 'qt_QFontMetrics *',
-'QFontMetrics*' => 'qt_QFontMetrics*',
-'QFrame*' => 'qt_QFrame*' ,
-'QFtp*' => 'qt_QFtp*',
-'QGArray&' => 'qt_QGArray*' ,
-'QGArray*' => 'qt_QGArray*',
-'QGCache&' => 'qt_QGCache*' ,
-'QGCache*' => 'qt_QGCache*',
-'QGCacheIterator&' => 'qt_QGCacheIterator*' ,
-'QGCacheIterator*' => 'qt_QGCacheIterator*',
-'QGDict&' => 'qt_QGDict*' ,
-'QGDict*' => 'qt_QGDict*',
-'QGDictIterator&' => 'qt_QGDictIterator*' ,
-'QGDictIterator*' => 'qt_QGDictIterator*',
-'QGL*' => 'qt_QGL*',
-'QGLColormap&' => 'qt_QGLColormap*',
-'QGLColormap*' => 'qt_QGLColormap*',
-'QGLContext*' => 'qt_QGLContext*' ,
-'QGLFormat&' => 'qt_QGLFormat*' ,
-'QGLFormat' => 'qt_QGLFormat*' ,
-'QGLFormat*' => 'qt_QGLFormat*',
-'QGLWidget*' => 'qt_QGLWidget*' ,
-'QGLayoutIterator*' => 'qt_QGLayoutIterator*' ,
-'QGList&' => 'qt_QGList*' ,
-'QGList*' => 'qt_QGList*' ,
-'QGListIterator&' => 'qt_QGListIterator*' ,
-'QGListIterator*' => 'qt_QGListIterator*',
-'QGPlugin*' => 'qt_QGPlugin*',
-'QGPluginManager*' => 'qt_QGPluginManager*',
-'QGVector&' => 'qt_QGVector*' ,
-'QGVector*' => 'qt_QGVector*' ,
-'QGbkCodec*' => 'qt_QGbkCodec*',
-'QGfx*' => 'qt_QGfx*' ,
-'QGrid*' => 'qt_QGrid*' ,
-'QGrid::Direction' => 'int' ,
-'QGridLayout*' => 'qt_QGridLayout*',
-'QGridView*' => 'qt_QGridView*',
-'QGroupBox*' => 'qt_QGroupBox*',
-'QGuardedPtr*' => 'qt_QGuardedPtr*',
-'QGuardedPtrPrivate*' => 'qt_QGuardedPtrPrivate*',
-'QHBox*' => 'qt_QHBox*' ,
-'QHBoxLayout*' => 'qt_QHBoxLayout*' ,
-'QHButtonGroup*' => 'qt_QHButtonGroup*',
-'QHGroupBox*' => 'qt_QHGroupBox*',
-'QHeader*' => 'qt_QHeader *',
-'QHebrewCodec*' => 'qt_QHebrewCodec*',
-'QHideEvent*' => 'qt_QHideEvent*' ,
-'QHostAddress&' => 'qt_QHostAddress*' ,
-'QHostAddress' => 'qt_QHostAddress*' ,
-'QHostAddress*' => 'qt_QHostAddress*' ,
-'QHttp*' => 'qt_QHttp*',
-'QIMEvent*' => 'qt_QIMEvent*',
-'QIODevice*' => 'qt_QIODevice *',
-'QIODevice::Offset' => 'int',
-'QIODeviceSource*' => 'qt_QIODeviceSource*',
-'QIOManager*' => 'qt_QIOManager*',
-'QIOWatch*' => 'qt_QIOWatch*',
-'QIconDrag*' => 'qt_QIconDrag*',
-'QIconDragItem&' => 'qt_QIconDragItem*' ,
-'QIconDragItem*' => 'qt_QIconDragItem*',
-'QIconSet&' => 'qt_QIconSet*' ,
-'QIconSet' => 'qt_QIconSet*' ,
-'QIconSet*' => 'qt_QIconSet*' ,
-'QIconView*' => 'qt_QIconView*' ,
-'QIconViewItem*' => 'qt_QIconViewItem*' ,
-'QImage&' => 'qt_QImage *',
-'QImage' => 'qt_QImage *',
-'QImage*' => 'qt_QImage*' ,
-'QImageConsumer*' => 'qt_QImageConsumer*' ,
-'QImageData*' => 'qt_QImageData*',
-'QImageDecoder*' => 'qt_QImageDecoder*',
-'QImageDrag*' => 'qt_QImageDrag*',
-'QImageFormat*' => 'qt_QImageFormat*' ,
-'QImageFormatInterface*' => 'qt_QImageFormatInterface*',
-'QImageFormatPlugin*' => 'qt_QImageFormatPlugin*',
-'QImageFormatType*' => 'qt_QImageFormatType*' ,
-'QImageIO*' => 'qt_QImageIO*',
-'QImageTextKeyLang&' => 'qt_QImageTextKeyLang*' ,
-'QImageTextKeyLang*' => 'qt_QImageTextKeyLang*',
-'QInputDialog*' => 'qt_QInputDialog*',
-'QIntBucket*' => 'qt_QIntBucket*',
-'QIntCache*' => 'qt_QIntCache*',
-'QIntCacheIterator*' => 'qt_QIntCacheIterator*',
-'QIntDict*' => 'qt_QIntDict*',
-'QIntDictIterator*' => 'qt_QIntDictIterator*',
-'QIntValidator*' => 'qt_QIntValidator*',
-'QInterfaceListInterface*' => 'qt_QInterfaceListInterface*',
-'QInterfacePtr*' => 'qt_QInterfacePtr*',
-'QInterlaceStyle*' => 'qt_QInterlaceStyle*',
-'QInternal*' => 'qt_QInternal*',
-'QJisCodec*' => 'qt_QJisCodec*',
-'QJpUnicodeConv*' => 'qt_QJpUnicodeConv*' ,
-'QKeyEvent*' => 'qt_QKeyEvent*' ,
-'QKeySequence&' => 'qt_QKeySequence*',
-'QKeySequence' => 'qt_QKeySequence*',
-'QKeySequence*' => 'qt_QKeySequence*',
-'QKoi8Codec*' => 'qt_QKoi8Codec*',
-'QLCDNumber*' => 'qt_QLCDNumber*',
-'QLNode*' => 'qt_QLNode*' ,
-'QLabel*' => 'qt_QLabel *',
-'QLayout*' => 'qt_QLayout *',
-'QLayoutItem*' => 'qt_QLayoutItem*' ,
-'QLayoutIterator&' => 'qt_QLayoutIterator*' ,
-'QLayoutIterator' => 'qt_QLayoutIterator*' ,
-'QLayoutIterator*' => 'qt_QLayoutIterator*',
-'QLibrary*' => 'qt_QLibrary*',
-'QLibrary::Policy' => 'int',
-'QLibraryInterface*' => 'qt_QLibraryInterface*',
-'QLineEdit*' => 'qt_QLineEdit*' ,
-'QLineEdit::EchoMode' => 'int' ,
-'QList*' => 'qt_QList*',
-'QListBox*' => 'qt_QListBox *',
-'QListBoxItem*' => 'qt_QListBoxItem *',
-'QListBoxPixmap*' => 'qt_QListBoxPixmap*',
-'QListBoxText*' => 'qt_QListBoxText*',
-'QListIterator*' => 'qt_QListIterator*',
-'QListView*' => 'qt_QListView *',
-'QListViewItem*&' => 'qt_QListViewItem*',
-'QListViewItem*' => 'qt_QListViewItem *',
-'QListViewItemIterator&' => 'qt_QListViewItemIterator*' ,
-'QListViewItemIterator' => 'qt_QListViewItemIterator*' ,
-'QListViewItemIterator*' => 'qt_QListViewItemIterator*',
-'QLocalFs*' => 'qt_QLocalFs*',
-'QMCPI*' => 'qt_QMCPI*',
-'QMSG*' => 'QMSG*' ,
-'QMainWindow*' => 'qt_QMainWindow*' ,
-'QMainWindow::ToolBarDock' => 'int',
-'QMainWindow::ToolBarDock::Top' => 'int' ,
-'QMap&' => 'qt_QMap*' ,
-'QMap*' => 'qt_QMap*',
-'QMapConstIterator*' => 'qt_QMapConstIterator*',
-'QMapIterator*' => 'qt_QMapIterator*',
-'QMapNode*' => 'qt_QMapNode*',
-'QMapNodeBase*&' => 'qt_QMapNodeBase*' ,
-'QMapNodeBase*' => 'qt_QMapNodeBase*' ,
-'QMapPrivate*' => 'qt_QMapPrivate*',
-'QMapPrivateBase*' => 'qt_QMapPrivateBase*' ,
-'QMemArray*' => 'qt_QMemArray*',
-'QMember' => 'qt_QMember*' ,
-'QMember*' => 'qt_QMember*' ,
-'QMenuBar*' => 'qt_QMenuBar *',
-'QMenuData*' => 'qt_QMenuData*',
-'QMenuData**' => 'qt_QMenuData**' ,
-'QMenuItem*' => 'qt_QMenuItem *',
-'QMessageBox*' => 'qt_QMessageBox*',
-'QMetaData*' => 'qt_QMetaData*' ,
-'QMetaData::Access*' => 'int*' ,
-'QMetaEnum*' => 'qt_QMetaEnum*' ,
-'QMetaEnum::Item*' => 'int*' ,
-'QMetaObject*&' => 'qt_QMetaObject*',
-'QMetaObject*' => 'qt_QMetaObject *',
-'QMetaObjectCleanUp*' => 'qt_QMetaObjectCleanUp*',
-'QMetaObjectInit*' => 'qt_QMetaObjectInit*',
-'QMetaProperty*' => 'qt_QMetaProperty*' ,
-'QMimeSource*' => 'qt_QMimeSource*' ,
-'QMimeSourceFactory*' => 'qt_QMimeSourceFactory*' ,
-'QMotifPlusStyle*' => 'qt_QMotifPlusStyle*',
-'QMotifStyle*' => 'qt_QMotifStyle*',
-'QMouseEvent*' => 'qt_QMouseEvent*' ,
-'QMoveEvent*' => 'qt_QMoveEvent*' ,
-'QMovie&' => 'qt_QMovie *',
-'QMovie*' => 'qt_QMovie *',
-'QMultiLineEdit*' => 'qt_QMultiLineEdit*',
-'QMultiLineEditRow*' => 'qt_QMultiLineEditRow*',
-'QMutex*' => 'qt_QMutex*',
-'QNPInstance*' => 'qt_QNPInstance*',
-'QNPStream*' => 'qt_QNPStream*',
-'QNPWidget*' => 'qt_QNPWidget*',
-'QNPlugin*' => 'qt_QNPlugin*',
-'QNetworkOperation*' => 'qt_QNetworkOperation*' ,
-'QNetworkProtocol*' => 'qt_QNetworkProtocol*' ,
-'QNetworkProtocol::Operation' => 'int' ,
-'QNetworkProtocol::State' => 'int' ,
-'QNetworkProtocolFactory*' => 'qt_QNetworkProtocolFactory*',
-'QNetworkProtocolFactoryBase*' => 'qt_QNetworkProtocolFactoryBase*' ,
-'QObject*' => 'qt_QObject *',
-'QObjectCleanupHandler*' => 'qt_QObjectCleanupHandler*',
-'QObjectDictionary&' => 'qt_QObjectDictionary*' ,
-'QObjectDictionary*' => 'qt_QObjectDictionary*',
-'QObjectInterface*' => 'qt_QObjectInterface*',
-'QObjectList&' => 'qt_QObjectList*' ,
-'QObjectList*' => 'qt_QObjectList*',
-'QObjectListIt&' => 'qt_QObjectListIt*' ,
-'QObjectListIt*' => 'qt_QObjectListIt*',
-'QPNGImagePacker*' => 'qt_QPNGImagePacker*',
-'QPNGImageWriter*' => 'qt_QPNGImageWriter*',
-'QPaintDevice*' => 'qt_QPaintDevice *',
-'QPaintDeviceMetrics*' => 'qt_QPaintDeviceMetrics*',
-'QPaintDeviceX11Data*' => 'qt_QPaintDeviceX11Data*' ,
-'QPaintEvent*' => 'qt_QPaintEvent*' ,
-'QPainter&' => 'qt_QPainter*' ,
-'QPainter*' => 'qt_QPainter *',
-'QPair*' => 'qt_QPair*',
-'QPalData*' => 'qt_QPalData*',
-'QPalette&' => 'qt_QPalette *',
-'QPalette' => 'qt_QPalette *',
-'QPalette*' => 'qt_QPalette *',
-'QPen&' => 'qt_QPen *',
-'QPen' => 'qt_QPen*' ,
-'QPen*' => 'qt_QPen*',
-'QPenData*' => 'qt_QPenData*',
-'QPicture&' => 'qt_QPicture *',
-'QPicture' => 'qt_QPicture*',
-'QPicture*' => 'qt_QPicture*',
-'QPicturePrivate*' => 'qt_QPicturePrivate*',
-'QPixmap& pixmap()' => 'kde_QPixmap*',
-'QPixmap&' => 'qt_QPixmap *',
-'QPixmap' => 'qt_QPixmap *',
-'QPixmap*' => 'qt_QPixmap *',
-'QPixmap::Optimization' => 'int' ,
-'QPixmap::Optimization' => 'int',
-'QPixmap::Optimization::DefaultOptim' => 'int' ,
-'QPixmapCache*' => 'qt_QPixmapCache*',
-'QPixmapData*' => 'qt_QPixmapData*',
-'QPlatinumStyle*' => 'qt_QPlatinumStyle*',
-'QPluginManager*' => 'qt_QPluginManager*',
-'QPoint&' => 'qt_QPoint*',
-'QPoint&pos()' => 'int' ,
-'QPoint&pos::pos()' => 'int' ,
-'QPoint' => 'qt_QPoint*',
-'QPoint*' => 'qt_QPoint*' ,
-'QPointArray&' => 'qt_QPointArray*',
-'QPointArray' => 'qt_QPointArray*',
-'QPointArray*' => 'qt_QPointArray*',
-'QPointVal&' => 'qt_QPointVal*' ,
-'QPointVal' => 'qt_QPointVal*' ,
-'QPolygonScanner*' => 'qt_QPolygonScanner*',
-'QPopupMenu*' => 'qt_QPopupMenu*',
-'QPrintDialog*' => 'qt_QPrintDialog*',
-'QPrinter*' => 'qt_QPrinter*' ,
-'QPrinter::PrinterMode' => 'int',
-'QProcess*' => 'qt_QProcess*',
-'QProgressBar*' => 'qt_QProgressBar*',
-'QProgressDialog*' => 'qt_QProgressDialog*',
-'QPtrBucket*' => 'qt_QPtrBucket*',
-'QPtrCollection&' => 'qt_QPtrCollection*',
-'QPtrCollection*' => 'qt_QPtrCollection*',
-'QPtrDict*' => 'qt_QPtrDict*',
-'QPtrDictIterator*' => 'qt_QPtrDictIterator*',
-'QPtrList*' => 'qt_QPtrList*',
-'QPtrListIterator*' => 'qt_QPtrListIterator*',
-'QPtrQueue*' => 'qt_QPtrQueue*',
-'QPtrStack*' => 'qt_QPtrStack*',
-'QPtrVector*' => 'qt_QPtrVector*',
-'QPushButton*' => 'qt_QPushButton*',
-'QQueue*' => 'qt_QQueue*',
-'QRESULT' => 'long',
-'QRadioButton*' => 'qt_QRadioButton*',
-'QRangeControl*' => 'qt_QRangeControl*',
-'QRect&' => 'qt_QRect*',
-'QRect' => 'qt_QRect*',
-'QRect*' => 'qt_QRect*',
-'QRegExp&' => 'qt_QRegExp*',
-'QRegExp*' => 'qt_QRegExp*',
-'QRegExpValidator*' => 'qt_QRegExpValidator*',
-'QRegion&' => 'qt_QRegion *',
-'QRegion' => 'qt_QRegion *',
-'QRegion*' => 'qt_QRegion*',
-'QRegionData*' => 'qt_QRegionData*',
-'QRemoteFactory*' => 'qt_QRemoteFactory*',
-'QRemotePlugin*' => 'qt_QRemotePlugin*',
-'QResizeEvent*' => 'qt_QResizeEvent*' ,
-'QRgb' => 'unsigned int',
-'QRgb*' => 'int *',
-'QRichText&' => 'qt_QRichText*' ,
-'QSGIStyle*' => 'qt_QSGIStyle*',
-'QScrollBar&' => 'qt_QScrollBar*' ,
-'QScrollBar*' => 'qt_QScrollBar*' ,
-'QScrollView*' => 'qt_QScrollView*',
-'QSemaphore*' => 'qt_QSemaphore*',
-'QSemiModal*' => 'qt_QSemiModal*',
-'QSenderObject*' => 'qt_QSenderObject*',
-'QServerSocket*' => 'qt_QServerSocket*',
-'QSessionManager&' => 'qt_QSessionManager*' ,
-'QSessionManager*' => 'qt_QSessionManager*',
-'QSettings*' => 'qt_QSettings*',
-'QShared*' => 'qt_QShared*',
-'QShowEvent*' => 'qt_QShowEvent*' ,
-'QSignal*' => 'qt_QSignal *',
-'QSignalDict&' => 'qt_QSignalDict*' ,
-'QSignalDict*' => 'qt_QSignalDict*',
-'QSignalDictIt&' => 'qt_QSignalDictIt*' ,
-'QSignalDictIt*' => 'qt_QSignalDictIt*',
-'QSignalMapper*' => 'qt_QSignalMapper*',
-'QSignalVec&' => 'qt_QSignalVec*',
-'QSignalVec*' => 'qt_QSignalVec*',
-'QSimpleRichText*' => 'qt_QSimpleRichText*',
-'QSize&' => 'qt_QSize *',
-'QSize' => 'qt_QSize *',
-'QSize*' => 'qt_QSize*' ,
-'QSizeGrip*' => 'qt_QSizeGrip*',
-'QSizePolicy&' => 'qt_QSizePolicy*' ,
-'QSizePolicy' => 'qt_QSizePolicy*' ,
-'QSizePolicy*' => 'qt_QSizePolicy*',
-'QSizePolicy::ExpandData' => 'int' ,
-'QSizePolicy::SizeTypehData::Minimum' => 'int' ,
-'QSizePolicy::SizeTypevData::Minimum' => 'int' ,
-'QSjisCodec*' => 'qt_QSjisCodec*',
-'QSlider*' => 'qt_QSlider*',
-'QSmartPtr&' => 'qt_QSmartPtr*' ,
-'QSmartPtr*' => 'qt_QSmartPtr*',
-'QSmartPtrPrivate*' => 'qt_QSmartPtrPrivate*',
-'QSocket*' => 'qt_QSocket*',
-'QSocketDevice*' => 'qt_QSocketDevice*' ,
-'QSocketNotifier*' => 'qt_QSocketNotifier*',
-'QSocketNotifier::Type' => 'int',
-'QSortedList*' => 'qt_QSortedList*',
-'QSound*' => 'qt_QSound*',
-'QSpacerItem*' => 'qt_QSpacerItem*' ,
-'QSpinBox*' => 'qt_QSpinBox*',
-'QSpinWidget*' => 'qt_QSpinWidget*',
-'QSplitter*' => 'qt_QSplitter*',
-'QSql*' => 'qt_QSql*',
-'QSql::Confirm' => 'int',
-'QSql::Op' => 'int',
-'QSqlCursor&' => 'qt_QSqlCursor*',
-'QSqlCursor' => 'qt_QSqlCursor*',
-'QSqlCursor*' => 'qt_QSqlCursor*',
-'QSqlDatabase*' => 'qt_QSqlDatabase*',
-'QSqlDriver*' => 'qt_QSqlDriver*',
-'QSqlDriverCreator*' => 'qt_QSqlDriverCreator*',
-'QSqlDriverCreatorBase*' => 'qt_QSqlDriverCreatorBase*',
-'QSqlDriverFactoryInterface*' => 'qt_QSqlDriverFactoryInterface*',
-'QSqlDriverPlugin*' => 'qt_QSqlDriverPlugin*',
-'QSqlEditorFactory*' => 'qt_QSqlEditorFactory*',
-'QSqlError&' => 'qt_QSqlError*',
-'QSqlError' => 'qt_QSqlError*',
-'QSqlError*' => 'qt_QSqlError*',
-'QSqlField&' => 'qt_QSqlField*',
-'QSqlField' => 'qt_QSqlField*',
-'QSqlField*' => 'qt_QSqlField*',
-'QSqlFieldInfo&' => 'qt_QSqlFieldInfo*',
-'QSqlFieldInfo*' => 'qt_QSqlFieldInfo*',
-'QSqlForm' => 'qt_QSqlForm*',
-'QSqlForm*' => 'qt_QSqlForm*',
-'QSqlIndex&' => 'qt_QSqlIndex*',
-'QSqlIndex' => 'qt_QSqlIndex*',
-'QSqlIndex*' => 'qt_QSqlIndex*',
-'QSqlPropertyMap*' => 'qt_QSqlPropertyMap*',
-'QSqlQuery&' => 'qt_QSqlQuery*',
-'QSqlQuery' => 'qt_QSqlQuery*',
-'QSqlQuery*' => 'qt_QSqlQuery*',
-'QSqlRecord&' => 'qt_QSqlRecord*',
-'QSqlRecord' => 'qt_QSqlRecord*',
-'QSqlRecord*' => 'qt_QSqlRecord*',
-'QSqlRecordInfo&' => 'qt_QSqlRecordInfo*',
-'QSqlRecordInfo' => 'qt_QSqlRecordInfo*',
-'QSqlRecordInfo*' => 'qt_QSqlRecordInfo*',
-'QSqlRecordPrivate*' => 'qt_QSqlRecordPrivate*',
-'QSqlRecordShared*' => 'qt_QSqlRecordShared*',
-'QSqlResult' => 'qt_QSqlResult*',
-'QSqlResult*' => 'qt_QSqlResult*',
-'QSqlResultShared*' => 'qt_QSqlResultShared*',
-'QStack*' => 'qt_QStack*',
-'QStatusBar*' => 'qt_QStatusBar*' ,
-'QStoredDrag*' => 'qt_QStoredDrag*',
-'QStrIList' => 'kde_QStrIList',
-'QStrIList*' => 'qt_QStrIList*',
-'QStrIVec*' => 'qt_QStrIVec*',
-'QStrList&' => 'qt_QStrList *',
-'QStrList' => 'qt_QStrList *',
-'QStrList*' => 'qt_QStrList *',
-'QStrListIterator*' => 'qt_QStrListIterator*',
-'QStrVec*' => 'qt_QStrVec*',
-'QString&' => 'qt_QString *',
-'QString&::null' => 'qt_QString*' ,
-'QString&button0Text::null' => 'qt_QString*' ,
-'QString&button1Text::null' => 'qt_QString*' ,
-'QString&button2Text::null' => 'qt_QString*' ,
-'QString&buttonText::null' => 'qt_QString*' ,
-'QString&caption::null' => 'qt_QString*' ,
-'QString&charSet::null' => 'qt_QString*' ,
-'QString&context::null' => 'qt_QString*' ,
-'QString&defValue::null' => 'qt_QString*' ,
-'QString&dir::null' => 'qt_QString*' ,
-'QString&directory::null' => 'qt_QString*' ,
-'QString&filter::null' => 'qt_QString*' ,
-'QString&initially::null' => 'qt_QString*' ,
-'QString&location::null' => 'qt_QString*' ,
-'QString&n::null' => 'qt_QString*' ,
-'QString&nameFilter::null' => 'qt_QString*' ,
-'QString&noButtonText::null' => 'qt_QString*' ,
-'QString&search_delimiters::null' => 'qt_QString*' ,
-'QString&style::null' => 'qt_QString*' ,
-'QString&suffix::null' => 'qt_QString*' ,
-'QString&text::null' => 'qt_QString*' ,
-'QString&text_::null' => 'qt_QString*' ,
-'QString&translation::null' => 'qt_QString*' ,
-'QString&yesButtonText::null' => 'qt_QString*' ,
-'QString' => 'qt_QString *',
-'QString*' => 'qt_QString*' ,
-'QString::null' => 'qt_QString_null()' ,
-'QStringBucket*' => 'qt_QStringBucket*',
-'QStringData*' => 'qt_QStringData*',
-'QStringList&' => 'qt_QStringList*' ,
-'QStringList' => 'qt_QStringList*' ,
-'QStringList*' => 'qt_QStringList*' ,
-'QStringcharSetName::null' => 'qt_QStringcharSetName*' ,
-'QStyle&' => 'qt_QStyle*' ,
-'QStyle*' => 'qt_QStyle*' ,
-'QStyle::ScrollControl' => 'int' ,
-'QStyle::StylePixmap' => 'int',
-'QStyle::SubControl' => 'int',
-'QStyle::SubRect' => 'int',
-'QStyleFactory*' => 'qt_QStyleFactory*',
-'QStyleFactoryInterface*' => 'qt_QStyleFactoryInterface*',
-'QStyleHintReturn*' => 'qt_QStyleHintReturn*',
-'QStyleOption&' => 'int',
-'QStyleOption' => 'int',
-'QStyleOption*' => 'int*',
-'QStylePlugin*' => 'qt_QStylePlugin*',
-'QStyleSheet*' => 'qt_QStyleSheet*' ,
-'QStyleSheetItem&' => 'qt_QStyleSheetItem*' ,
-'QStyleSheetItem*' => 'qt_QStyleSheetItem*' ,
-'QStyleSheetItem::DisplayMode*' => 'int',
-'QStyleSheetItem::ListStyle*' => 'int',
-'QStyleSheetItem::WhiteSpaceMode' => 'int',
-'QTSCIICodec*' => 'qt_QTSCIICodec*',
-'QTSMFI' => 'int' ,
-'QTab*' => 'qt_QTab*',
-'QTabBar*' => 'qt_QTabBar*' ,
-'QTabBar::Shape' => 'int' ,
-'QTabDialog*' => 'qt_QTabDialog*',
-'QTabWidget*' => 'qt_QTabWidget*',
-'QTable*' => 'qt_QTable*' ,
-'QTableHeader*' => 'qt_QTableHeader*',
-'QTableItem*' => 'qt_QTableItem*' ,
-'QTableSelection&' => 'qt_QTableSelection*' ,
-'QTableSelection' => 'qt_QTableSelection*' ,
-'QTableSelection*' => 'qt_QTableSelection*',
-'QTableView*' => 'qt_QTableView*',
-'QTabletEvent*' => 'qt_QTabletEvent*',
-'QTextBrowser*' => 'qt_QTextBrowser*',
-'QTextCodec*' => 'qt_QTextCodec*' ,
-'QTextCodecFactory*' => 'qt_QTextCodecFactory*',
-'QTextCodecFactoryInterface*' => 'qt_QTextCodecFactoryInterface*',
-'QTextCodecPlugin*' => 'qt_QTextCodecPlugin*',
-'QTextCursor*' => 'qt_QTextCursor*',
-'QTextDecoder*' => 'qt_QTextDecoder*' ,
-'QTextDocument*' => 'qt_QTextDocument*',
-'QTextDrag*' => 'qt_QTextDrag*',
-'QTextEdit*' => 'qt_QTextEdit*',
-'QTextEncoder*' => 'qt_QTextEncoder*' ,
-'QTextFormat*' => 'qt_QTextFormat*',
-'QTextIStream*' => 'qt_QTextIStream*',
-'QTextOStream&' => 'qt_QTextOStream*' ,
-'QTextOStream*' => 'qt_QTextOStream*',
-'QTextOStreamIterator*' => 'qt_QTextOStreamIterator*',
-'QTextParag**' => 'qt_QTextParag**',
-'QTextStream&' => 'qt_QTextStream*' ,
-'QTextStream*' => 'qt_QTextStream*' ,
-'QTextView*' => 'qt_QTextView*',
-'QThread*' => 'qt_QThread*',
-'QThreadData*' => 'qt_QThreadData*',
-'QThreadEvent*' => 'qt_QThreadEvent*',
-'QTime&' => 'qt_QTime *',
-'QTime' => 'qt_QTime *',
-'QTime*' => 'qt_QTime*',
-'QTimeEdit*' => 'qt_QTimeEdit*',
-'QTimeWatch*' => 'qt_QTimeWatch*',
-'QTimer*' => 'qt_QTimer*',
-'QTimerEvent*' => 'qt_QTimerEvent*' ,
-'QToolBar*' => 'qt_QToolBar*' ,
-'QToolButton*' => 'qt_QToolButton*' ,
-'QToolTip*' => 'qt_QToolTip*',
-'QToolTipGroup*' => 'qt_QToolTipGroup *',
-'QTranslator*' => 'qt_QTranslator*' ,
-'QTranslatorMessage&' => 'qt_QTranslatorMessage*' ,
-'QTranslatorMessage' => 'qt_QTranslatorMessage*' ,
-'QTranslatorMessage*' => 'qt_QTranslatorMessage*',
-'QTsciiCodec*' => 'qt_QTsciiCodec*',
-'QUObject*' => 'qt_QUObject*',
-'QUnknownInterface*' => 'qt_QUnknownInterface*',
-'QUnknownInterface**' => 'qt_QUnknownInterface**',
-'QUriDrag*' => 'qt_QUriDrag*',
-'QUrl&' => 'qt_QUrl*' ,
-'QUrl' => 'qt_QUrl*' ,
-'QUrl*' => 'qt_QUrl*',
-'QUrlInfo&' => 'qt_QUrlInfo*' ,
-'QUrlInfo' => 'qt_QUrlInfo*' ,
-'QUrlInfo*' => 'qt_QUrlInfo*',
-'QUrlOperator&' => 'qt_QUrlOperator*' ,
-'QUrlOperator*' => 'qt_QUrlOperator*' ,
-'QUtf16Codec*' => 'qt_QUtf16Codec*',
-'QUtf8Codec*' => 'qt_QUtf8Codec*',
-'QUuid&' => 'qt_QUuid*',
-'QUuid*' => 'qt_QUuid*',
-'QVBox*' => 'qt_QVBox*' ,
-'QVBoxLayout*' => 'qt_QVBoxLayout*',
-'QVButtonGroup*' => 'qt_QVButtonGroup*',
-'QVFbHeader*' => 'qt_QVFbHeader*',
-'QVFbKeyData*' => 'qt_QVFbKeyData*',
-'QVGroupBox*' => 'qt_QVGroupBox*',
-'QValidator*' => 'qt_QValidator *',
-'QValidator::State' => 'int',
-'QValueList*' => 'qt_QValueList*',
-'QValueListConstIterator*' => 'qt_QValueListConstIterator*',
-'QValueListIterator*' => 'qt_QValueListIterator*',
-'QValueListNode*' => 'qt_QValueListNode*',
-'QValueListPrivate*' => 'qt_QValueListPrivate*',
-'QValueStack*' => 'qt_QValueStack*',
-'QValueVector*' => 'qt_QValueVector*',
-'QValueVectorPrivate*' => 'qt_QValueVectorPrivate*',
-'QVariant&' => 'qt_QVariant *',
-'QVariant' => 'qt_QVariant *',
-'QVariant*' => 'qt_QVariant*',
-'QVariant::Type' => 'int' ,
-'QVariantPrivate*' => 'qt_QVariantPrivate*' ,
-'QVector*' => 'qt_QVector*',
-'QWMatrix&' => 'qt_QWMatrix *',
-'QWMatrix' => 'qt_QWMatrix *',
-'QWMatrix*' => 'qt_QWMatrix*',
-'QWSDecoration&' => 'qt_QWSDecoration*' ,
-'QWSDecoration*' => 'qt_QWSDecoration*' ,
-'QWSDisplay*' => 'qt_QWSDisplay*' ,
-'QWSEvent*' => 'qt_QWSEvent*' ,
-'QWaitCondition*' => 'qt_QWaitCondition*',
-'QWhatsThis*' => 'qt_QWhatsThis*',
-'QWheelEvent*' => 'qt_QWheelEvent*' ,
-'QWidget *' => 'qt_QWidget *',
-'QWidget' => 'qt_QWidget *',
-'QWidget*' => 'qt_QWidget *',
-'QWidgetFactory*' => 'qt_QWidgetFactory*',
-'QWidgetIntDict&' => 'qt_QWidgetIntDict*' ,
-'QWidgetIntDict*' => 'qt_QWidgetIntDict*',
-'QWidgetIntDictIt&' => 'qt_QWidgetIntDictIt*' ,
-'QWidgetIntDictIt*' => 'qt_QWidgetIntDictIt*',
-'QWidgetItem*' => 'qt_QWidgetItem*',
-'QWidgetList&' => 'qt_QWidgetList *' ,
-'QWidgetList&' => 'qt_QWidgetList*' ,
-'QWidgetList' => 'qt_QWidgetList *' ,
-'QWidgetList' => 'qt_QWidgetList*' ,
-'QWidgetList*' => 'qt_QWidgetList *',
-'QWidgetList*' => 'qt_QWidgetList*',
-'QWidgetListIt&' => 'qt_QWidgetListIt*' ,
-'QWidgetListIt*' => 'qt_QWidgetListIt*',
-'QWidgetMapper*' => 'qt_QWidgetMapper*',
-'QWidgetPlugin*' => 'qt_QWidgetPlugin*',
-'QWidgetStack*' => 'qt_QWidgetStack*',
-'QWindowsMime*' => 'qt_QWindowsMime*' ,
-'QWindowsStyle*' => 'qt_QWindowsStyle*',
-'QWizard*' => 'qt_QWizard*',
-'QWorkspace*' => 'qt_QWorkspace*',
-'QXEmbed*' => 'qt_QXEmbed*' ,
-'QXmlAttributes&' => 'qt_QXmlAttributes*' ,
-'QXmlAttributes*' => 'qt_QXmlAttributes*',
-'QXmlContentHandler*' => 'qt_QXmlContentHandler*' ,
-'QXmlDTDHandler*' => 'qt_QXmlDTDHandler*' ,
-'QXmlDeclHandler*' => 'qt_QXmlDeclHandler*' ,
-'QXmlDefaultHandler*' => 'qt_QXmlDefaultHandler*',
-'QXmlEntityResolver*' => 'qt_QXmlEntityResolver*' ,
-'QXmlErrorHandler*' => 'qt_QXmlErrorHandler*' ,
-'QXmlInputSource&' => 'qt_QXmlInputSource*' ,
-'QXmlInputSource*&' => 'qt_QXmlInputSource*',
-'QXmlInputSource*' => 'qt_QXmlInputSource*' ,
-'QXmlLexicalHandler*' => 'qt_QXmlLexicalHandler*' ,
-'QXmlLocator*' => 'qt_QXmlLocator*' ,
-'QXmlNamespaceSupport*' => 'qt_QXmlNamespaceSupport*',
-'QXmlParseException&' => 'qt_QXmlParseException*' ,
-'QXmlParseException*' => 'qt_QXmlParseException*',
-'QXmlReader*' => 'qt_QXmlReader*',
-'QXmlSimpleReader*' => 'qt_QXmlSimpleReader*' ,
-'QXtApplication*' => 'qt_QXtApplication*',
-'QXtWidget*' => 'qt_QXtWidget*',
-'Q_INT16&' => 'short',
-'Q_INT16' => 'short',
-'Q_INT32&' => 'int',
-'Q_INT32' => 'int',
-'Q_INT8&' => 'char',
-'Q_INT8' => 'char',
-'Q_LONG&' => 'long',
-'Q_LONG' => 'long',
-'Q_PACKED*' => 'void*',
-'Q_UINT16&' => 'unsigned short',
-'Q_UINT16' => 'unsigned short',
-'Q_UINT32&' => 'unsigned int',
-'Q_UINT32' => 'unsigned int',
-'Q_UINT8&' => 'unsigned char',
-'Q_UINT8' => 'unsigned char',
-'Q_UINT8*' => 'unsigned char*' ,
-'Q_ULONG&' => 'long',
-'Q_ULONG' => 'long',
-'Qt*' => 'qt_Qt*' ,
-'Qt::ArrowType' => 'int' ,
-'Qt::BackgroundMode' => 'int',
-'Qt::DateFormat' => 'int',
-'Qt::GUIStyle' => 'int' ,
-'Qt::GUIStylecolorStyle::WindowsStyle' => 'int' ,
-'Qt::GUIStylestyle::WindowsStyle' => 'int' ,
-'Qt::Orientation' => 'int' ,
-'Qt::RasterOp' => 'int' ,
-'Qt::UIEffect' => 'int' ,
-'Qt::WFlags' => 'int' ,
-'QtMultiLineEdit*' => 'qt_QtMultiLineEdit*',
-'QtMultiLineEditRow*' => 'qt_QtMultiLineEditRow*',
-'QtTableView*' => 'qt_QtTableView*',
-'QwAbsSpriteFieldView*' => 'qt_QwAbsSpriteFieldView*' ,
-'QwClusterizer*' => 'qt_QwClusterizer*' ,
-'QwEllipse*' => 'qt_QwEllipse*',
-'QwImageSpriteField*' => 'qt_QwImageSpriteField*',
-'QwMobilePositionedSprite*' => 'qt_QwMobilePositionedSprite*',
-'QwMobileSprite*' => 'qt_QwMobileSprite*',
-'QwPolygon*' => 'qt_QwPolygon*',
-'QwPolygonalGraphic*' => 'qt_QwPolygonalGraphic*',
-'QwPositionedSprite*' => 'qt_QwPositionedSprite*',
-'QwPublicList*' => 'qt_QwPublicList*' ,
-'QwRealMobileSprite*' => 'qt_QwRealMobileSprite*',
-'QwRealSprite*' => 'qt_QwRealSprite*',
-'QwRectangle*' => 'qt_QwRectangle*',
-'QwScrollingSpriteFieldView*' => 'qt_QwScrollingSpriteFieldView*',
-'QwSprite*' => 'qt_QwSprite*',
-'QwSpriteField*' => 'qt_QwSpriteField*' ,
-'QwSpriteField*' => 'qt_QwSpriteField*' ,
-'QwSpriteFieldGraphic&' => 'qt_QwSpriteFieldGraphic*' ,
-'QwSpriteFieldGraphic*' => 'qt_QwSpriteFieldGraphic*' ,
-'QwSpriteFieldView*' => 'qt_QwSpriteFieldView*',
-'QwSpritePixmap*' => 'qt_QwSpritePixmap*' ,
-'QwSpritePixmapSequence*' => 'qt_QwSpritePixmapSequence*' ,
-'QwTextSprite*' => 'qt_QwTextSprite*',
-'QwTiledSpriteField*' => 'qt_QwTiledSpriteField*',
-'QwVirtualSprite*' => 'qt_QwVirtualSprite*',
-'RArray*' => 'kde_RArray*',
-'RGBColor&' => 'kde_RGBColor*',
-'RGBColor' => 'kde_RGBColor*',
-'RGBColor*' => 'kde_RGBColor*',
-'Range&' => 'kde_Range*',
-'Range' => 'kde_Range*',
-'Range*' => 'kde_Range*',
-'RangeException&' => 'kde_RangeException*',
-'RangeException*' => 'kde_RangeException*',
-'RangeImpl*' => 'kde_RangeImpl*',
-'RasterOp' => 'int',
-'RawDataPacket*' => 'kde_RawDataPacket*',
-'ReadOnlyPart*' => 'kde_ReadOnlyPart*',
-'ReadWritePart*' => 'kde_ReadWritePart*',
-'Rect&' => 'kde_Rect*',
-'Rect' => 'kde_Rect*',
-'Rect*' => 'kde_Rect*',
-'Reference&' => 'kde_Reference*',
-'Reference*' => 'kde_Reference*',
-'ReferenceClean*' => 'kde_ReferenceClean*',
-'ReferenceHelper*' => 'kde_ReferenceHelper*',
-'Region' => 'int',
-'RegionType' => 'int',
-'RemoteScheduleNode*' => 'kde_RemoteScheduleNode*',
-'RenameDlg*' => 'kde_RenameDlg*',
-'RenderStyle*' => 'kde_RenderStyle*' ,
-'Rep*' => 'kde_Rep*',
-'RunMode' => 'int' ,
-'SButton*' => 'kde_SButton*',
-'SCFlags' => 'int',
-'SFlags' => 'int',
-'ScheduleNode*' => 'kde_ScheduleNode*',
-'Scheduler*' => 'kde_Scheduler*',
-'ScrollBarMode' => 'int',
-'ScrollControl' => 'int' ,
-'SearchInterface*' => 'kde_SearchInterface*',
-'Section&' => 'kde_Section*' ,
-'Section*&' => 'kde_Section*' ,
-'Section*' => 'kde_Section*' ,
-'SegmentStyle' => 'int',
-'SelectionInterface*' => 'kde_SelectionInterface*',
-'Separator' => 'int',
-'Server&' => 'Server*' ,
-'Server*' => 'kde_Server*',
-'ServerHello&' => 'kde_ServerHello*',
-'ServerHello*' => 'kde_ServerHello*',
-'Service*' => 'kde_Service*',
-'SessionData*' => 'kde_SessionData*',
-'SimpleFormat*' => 'kde_SimpleFormat*',
-'SimpleJob*' => 'kde_SimpleJob*',
-'SimpleSoundServer&' => 'kde_SimpleSoundServer*',
-'SimpleSoundServer' => 'kde_SimpleSoundServer*',
-'SimpleSoundServer*' => 'kde_SimpleSoundServer*',
-'SimpleSoundServer_base*' => 'kde_SimpleSoundServer_base*',
-'SimpleSoundServer_skel*' => 'kde_SimpleSoundServer_skel*',
-'SimpleSoundServer_stub*' => 'kde_SimpleSoundServer_stub*',
-'SkipDlg*' => 'kde_SkipDlg*',
-'Slave*' => 'kde_Slave*',
-'SlaveBase*' => 'kde_SlaveBase*',
-'SlaveBasePrivate*' => 'kde_SlaveBasePrivate*',
-'SlaveConfig*' => 'kde_SlaveConfig*',
-'SlaveInterface*' => 'kde_SlaveInterface*',
-'SocketConnection*' => 'kde_SocketConnection*',
-'Spec' => 'int',
-'SpecialEvent*' => 'kde_SpecialEvent*',
-'SshProcess*' => 'kde_SshProcess*',
-'SshProcessPrivate*' => 'kde_SshProcessPrivate*',
-'StartupClass*' => 'kde_StartupClass*',
-'StartupManager*' => 'kde_StartupManager*',
-'StatJob*' => 'kde_StatJob*',
-'State' => 'int',
-'QSocket::State' => 'int',
-'StatusbarProgress*' => 'kde_StatusbarProgress*',
-'StdAddressBook*' => 'kde_StdAddressBook*',
-'StdFlowSystem*' => 'kde_StdFlowSystem*',
-'StdIOManager*' => 'kde_StdIOManager*',
-'StdScheduleNode*' => 'kde_StdScheduleNode*',
-'StdSynthModule*' => 'kde_StdSynthModule*',
-'StereoEffect&' => 'kde_StereoEffect*',
-'StereoEffect' => 'kde_StereoEffect*',
-'StereoEffect*' => 'kde_StereoEffect*',
-'StereoEffectStack&' => 'kde_StereoEffectStack*',
-'StereoEffectStack' => 'kde_StereoEffectStack*',
-'StereoEffectStack*' => 'kde_StereoEffectStack*',
-'StereoEffectStack_base*' => 'kde_StereoEffectStack_base*',
-'StereoEffectStack_skel*' => 'kde_StereoEffectStack_skel*',
-'StereoEffectStack_stub*' => 'kde_StereoEffectStack_stub*',
-'StereoEffect_base*' => 'kde_StereoEffect_base*',
-'StereoEffect_skel*' => 'kde_StereoEffect_skel*',
-'StereoEffect_stub*' => 'kde_StereoEffect_stub*',
-'StereoFFTScope&' => 'kde_StereoFFTScope*',
-'StereoFFTScope' => 'kde_StereoFFTScope*',
-'StereoFFTScope*' => 'kde_StereoFFTScope*',
-'StereoFFTScope_base*' => 'kde_StereoFFTScope_base*',
-'StereoFFTScope_skel*' => 'kde_StereoFFTScope_skel*',
-'StereoFFTScope_stub*' => 'kde_StereoFFTScope_stub*',
-'StereoVolumeControl&' => 'kde_StereoVolumeControl*',
-'StereoVolumeControl' => 'kde_StereoVolumeControl*',
-'StereoVolumeControl*' => 'kde_StereoVolumeControl*',
-'StereoVolumeControl_base*' => 'kde_StereoVolumeControl_base*',
-'StereoVolumeControl_skel*' => 'kde_StereoVolumeControl_skel*',
-'StereoVolumeControl_stub*' => 'kde_StereoVolumeControl_stub*',
-'StreamMode&' => 'int',
-'String*' => 'kde_String*',
-'StringSectionMap::iterator&' => 'kde_StringSectionMap*' ,
-'StringSectionMap::iterator' => 'kde_StringSectionMap*r' ,
-'StubProcess*' => 'kde_StubProcess*',
-'StyleHint' => 'int',
-'StyleListImpl*' => 'kde_StyleListImpl*',
-'StylePixmap' => 'int',
-'StyleSheet&' => 'kde_StyleSheet*',
-'StyleSheet' => 'kde_StyleSheet*',
-'StyleSheet*' => 'kde_StyleSheet*',
-'StyleSheetImpl*' => 'kde_StyleSheetImpl*',
-'StyleSheetList&' => 'kde_StyleSheetList*',
-'StyleSheetList' => 'kde_StyleSheetList',
-'StyleSheetList*' => 'kde_StyleSheetList*',
-'StyleSheetListImpl*' => 'kde_StyleSheetListImpl*',
-'StyleStrategy' => 'int',
-'SuProcess*' => 'kde_SuProcess*',
-'SubClass&' => 'kde_SubClass*',
-'SubClass*' => 'kde_SubClass*',
-'SubControl' => 'int',
-'SubRect' => 'int',
-'SynthBuffer*' => 'kde_SynthBuffer*',
-'SynthModule&' => 'kde_SynthModule*',
-'SynthModule' => 'kde_SynthModule*',
-'SynthModule*' => 'kde_SynthModule*',
-'SynthModule_base*' => 'kde_SynthModule_base*',
-'SynthModule_skel*' => 'kde_SynthModule_skel*',
-'SynthModule_stub*' => 'kde_SynthModule_stub*',
-'SynthOut*' => 'kde_SynthOut*',
-'Synth_ADD&' => 'kde_Synth_ADD*',
-'Synth_ADD' => 'kde_Synth_ADD*',
-'Synth_ADD*' => 'kde_Synth_ADD*',
-'Synth_ADD_base*' => 'kde_Synth_ADD_base*',
-'Synth_ADD_skel*' => 'kde_Synth_ADD_skel*',
-'Synth_ADD_stub*' => 'kde_Synth_ADD_stub*',
-'Synth_AMAN_PLAY&' => 'kde_Synth_AMAN_PLAY*',
-'Synth_AMAN_PLAY' => 'kde_Synth_AMAN_PLAY*',
-'Synth_AMAN_PLAY*' => 'kde_Synth_AMAN_PLAY*',
-'Synth_AMAN_PLAY_base*' => 'kde_Synth_AMAN_PLAY_base*',
-'Synth_AMAN_PLAY_skel*' => 'kde_Synth_AMAN_PLAY_skel*',
-'Synth_AMAN_PLAY_stub*' => 'kde_Synth_AMAN_PLAY_stub*',
-'Synth_AMAN_RECORD&' => 'kde_Synth_AMAN_RECORD*',
-'Synth_AMAN_RECORD' => 'kde_Synth_AMAN_RECORD*',
-'Synth_AMAN_RECORD*' => 'kde_Synth_AMAN_RECORD*',
-'Synth_AMAN_RECORD_base*' => 'kde_Synth_AMAN_RECORD_base*',
-'Synth_AMAN_RECORD_skel*' => 'kde_Synth_AMAN_RECORD_skel*',
-'Synth_AMAN_RECORD_stub*' => 'kde_Synth_AMAN_RECORD_stub*',
-'Synth_BUS_DOWNLINK&' => 'kde_Synth_BUS_DOWNLINK*',
-'Synth_BUS_DOWNLINK' => 'kde_Synth_BUS_DOWNLINK*',
-'Synth_BUS_DOWNLINK*' => 'kde_Synth_BUS_DOWNLINK*',
-'Synth_BUS_DOWNLINK_base*' => 'kde_Synth_BUS_DOWNLINK_base*',
-'Synth_BUS_DOWNLINK_skel*' => 'kde_Synth_BUS_DOWNLINK_skel*',
-'Synth_BUS_DOWNLINK_stub*' => 'kde_Synth_BUS_DOWNLINK_stub*',
-'Synth_BUS_UPLINK&' => 'kde_Synth_BUS_UPLINK*',
-'Synth_BUS_UPLINK' => 'kde_Synth_BUS_UPLINK*',
-'Synth_BUS_UPLINK*' => 'kde_Synth_BUS_UPLINK*',
-'Synth_BUS_UPLINK_base*' => 'kde_Synth_BUS_UPLINK_base*',
-'Synth_BUS_UPLINK_skel*' => 'kde_Synth_BUS_UPLINK_skel*',
-'Synth_BUS_UPLINK_stub*' => 'kde_Synth_BUS_UPLINK_stub*',
-'Synth_FREQUENCY&' => 'kde_Synth_FREQUENCY*',
-'Synth_FREQUENCY' => 'kde_Synth_FREQUENCY*',
-'Synth_FREQUENCY*' => 'kde_Synth_FREQUENCY*',
-'Synth_FREQUENCY_base*' => 'kde_Synth_FREQUENCY_base*',
-'Synth_FREQUENCY_skel*' => 'kde_Synth_FREQUENCY_skel*',
-'Synth_FREQUENCY_stub*' => 'kde_Synth_FREQUENCY_stub*',
-'Synth_MUL&' => 'kde_Synth_MUL*',
-'Synth_MUL' => 'kde_Synth_MUL*',
-'Synth_MUL*' => 'kde_Synth_MUL*',
-'Synth_MULTI_ADD&' => 'kde_Synth_MULTI_ADD*',
-'Synth_MULTI_ADD' => 'kde_Synth_MULTI_ADD*',
-'Synth_MULTI_ADD*' => 'kde_Synth_MULTI_ADD*',
-'Synth_MULTI_ADD_base*' => 'kde_Synth_MULTI_ADD_base*',
-'Synth_MULTI_ADD_skel*' => 'kde_Synth_MULTI_ADD_skel*',
-'Synth_MULTI_ADD_stub*' => 'kde_Synth_MULTI_ADD_stub*',
-'Synth_MUL_base*' => 'kde_Synth_MUL_base*',
-'Synth_MUL_skel*' => 'kde_Synth_MUL_skel*',
-'Synth_MUL_stub*' => 'kde_Synth_MUL_stub*',
-'Synth_PLAY&' => 'kde_Synth_PLAY*',
-'Synth_PLAY' => 'kde_Synth_PLAY*',
-'Synth_PLAY*' => 'kde_Synth_PLAY*',
-'Synth_PLAY_WAV&' => 'kde_Synth_PLAY_WAV*',
-'Synth_PLAY_WAV' => 'kde_Synth_PLAY_WAV*',
-'Synth_PLAY_WAV*' => 'kde_Synth_PLAY_WAV*',
-'Synth_PLAY_WAV_base*' => 'kde_Synth_PLAY_WAV_base*',
-'Synth_PLAY_WAV_skel*' => 'kde_Synth_PLAY_WAV_skel*',
-'Synth_PLAY_WAV_stub*' => 'kde_Synth_PLAY_WAV_stub*',
-'Synth_PLAY_base*' => 'kde_Synth_PLAY_base*',
-'Synth_PLAY_skel*' => 'kde_Synth_PLAY_skel*',
-'Synth_PLAY_stub*' => 'kde_Synth_PLAY_stub*',
-'Synth_RECORD&' => 'kde_Synth_RECORD*',
-'Synth_RECORD' => 'kde_Synth_RECORD*',
-'Synth_RECORD*' => 'kde_Synth_RECORD*',
-'Synth_RECORD_base*' => 'kde_Synth_RECORD_base*',
-'Synth_RECORD_skel*' => 'kde_Synth_RECORD_skel*',
-'Synth_RECORD_stub*' => 'kde_Synth_RECORD_stub*',
-'Synth_WAVE_SIN&' => 'kde_Synth_WAVE_SIN*',
-'Synth_WAVE_SIN' => 'kde_Synth_WAVE_SIN*',
-'Synth_WAVE_SIN*' => 'kde_Synth_WAVE_SIN*',
-'Synth_WAVE_SIN_base*' => 'kde_Synth_WAVE_SIN_base*',
-'Synth_WAVE_SIN_skel*' => 'kde_Synth_WAVE_SIN_skel*',
-'Synth_WAVE_SIN_stub*' => 'kde_Synth_WAVE_SIN_stub*',
-'T&' => 'T*' ,
-'T' => 'T*' ,
-'T*' => 'T*' ,
-'TCPConnection*' => 'kde_TCPConnection*',
-'TCPServer*' => 'kde_TCPServer*',
-'TCPSlaveBase*' => 'kde_TCPSlaveBase*',
-'TRUE' => '1',
-'Task*' => 'kde_Task*',
-'Text&' => 'kde_Text*',
-'Text' => 'kde_Text*',
-'Text*' => 'kde_Text*',
-'TextFormat' => 'int' ,
-'TextImpl*' => 'kde_TextImpl*',
-'ThumbCreator*' => 'kde_ThumbCreator*',
-'TickSetting' => 'int',
-'Ticket*' => 'kde_Ticket*',
-'TimeNotify*' => 'kde_TimeNotify*',
-'TimeWatcher*' => 'kde_TimeWatcher*',
-'TimeZone&' => 'kde_TimeZone*',
-'TimeZone*' => 'kde_TimeZone*',
-'TmpGlobalComm&' => 'kde_TmpGlobalComm*',
-'TmpGlobalComm' => 'kde_TmpGlobalComm*',
-'TmpGlobalComm*' => 'kde_TmpGlobalComm*',
-'TmpGlobalComm_base*' => 'kde_TmpGlobalComm_base*',
-'TmpGlobalComm_skel*' => 'kde_TmpGlobalComm_skel*',
-'TmpGlobalComm_stub*' => 'kde_TmpGlobalComm_stub*',
-'ToolBarDock&' => 'int' ,
-'ToolBarDock' => 'int',
-'TraderOffer&' => 'kde_TraderOffer*',
-'TraderOffer' => 'kde_TraderOffer*',
-'TraderOffer*' => 'kde_TraderOffer*',
-'TraderOffer_base*' => 'kde_TraderOffer_base*',
-'TraderOffer_skel*' => 'kde_TraderOffer_skel*',
-'TraderOffer_stub*' => 'kde_TraderOffer_stub*',
-'TraderQuery&' => 'kde_TraderQuery*',
-'TraderQuery' => 'kde_TraderQuery*',
-'TraderQuery*' => 'kde_TraderQuery*',
-'TraderQuery_base*' => 'kde_TraderQuery_base*',
-'TraderQuery_skel*' => 'kde_TraderQuery_skel*',
-'TraderQuery_stub*' => 'kde_TraderQuery_stub*',
-'TransferJob*' => 'kde_TransferJob*',
-'TreeWalker&' => 'kde_TreeWalker*',
-'TreeWalker' => 'kde_TreeWalker*',
-'TreeWalker*' => 'kde_TreeWalker*',
-'TreeWalkerImpl*' => 'kde_TreeWalkerImpl*',
-'True' => '1',
-'Type&' => 'kde_Type*',
-'Type' => 'int',
-'Type*' => 'kde_Type*',
-'TypeComponent&' => 'kde_TypeComponent*',
-'TypeComponent*' => 'kde_TypeComponent*',
-'TypeDef&' => 'kde_TypeDef*',
-'TypeDef' => 'kde_TypeDef*',
-'TypeDef*' => 'kde_TypeDef*',
-'TypeEntry*' => 'kde_TypeEntry*',
-'TypeInfo*' => 'kde_TypeInfo*',
-'UChar&' => 'kde_UChar*',
-'UChar' => 'kde_UChar*',
-'UChar*' => 'kde_UChar*',
-'UCharReference&' => 'kde_UCharReference*',
-'UCharReference' => 'kde_UCharReference*',
-'UCharReference*' => 'kde_UCharReference*',
-'UDSAtom*' => 'kde_UDSAtom*',
-'UDSEntry&' => 'kde_UDSEntry*',
-'UDSEntryList&' => 'kde_UDSEntryList*',
-'UIServer*' => 'kde_UIServer*',
-'UIServer_stub*' => 'kde_UIServer_stub*',
-'ULONG_MAX' => 'ULONG_MAX',
-'URLArgs&' => 'kde_URLArgs*',
-'URLArgs' => 'kde_URLArgs*',
-'URLArgs*' => 'kde_URLArgs*',
-'UString&' => 'kde_UString*',
-'UString' => 'kde_UString*',
-'UString*' => 'kde_UString*',
-'Undefined*' => 'kde_Undefined*',
-'UndoInterface*' => 'kde_UndoInterface*',
-'UndoRedoInfo*' => 'int*',
-'UnixConnection*' => 'kde_UnixConnection*',
-'UnixServer*' => 'kde_UnixServer*',
-'VCardFormat*' => 'kde_VCardFormat*',
-'VPort*' => 'kde_VPort*',
-'Value&' => 'kde_Value*',
-'Value' => 'kde_Value*',
-'Value*' => 'kde_Value*',
-'VerticalAlignment*' => 'int*',
-'View*' => 'kde_View*' ,
-'ViewCursorInterface*' => 'kde_ViewCursorInterface*',
-'VoiceManager*' => 'kde_VoiceManager*',
-'WFlags' => 'int',
-'WId' => 'unsigned int',
-'WState' => 'int',
-'WavPlayObject&' => 'kde_WavPlayObject*',
-'WavPlayObject' => 'kde_WavPlayObject*',
-'WavPlayObject*' => 'kde_WavPlayObject*',
-'WavPlayObject_base*' => 'kde_WavPlayObject_base*',
-'WavPlayObject_skel*' => 'kde_WavPlayObject_skel*',
-'WavPlayObject_stub*' => 'kde_WavPlayObject_stub*',
-'WeakReference*' => 'kde_WeakReference*',
-'WeakReferenceBase*' => 'kde_WeakReferenceBase*',
-'Widget' => 'int' ,
-'WidgetClass' => 'int' ,
-'WidthMode' => 'int',
-'Window' => 'kde_Window*',
-'Window*' => 'kde_Window*',
-'WindowArgs&' => 'kde_WindowArgs*',
-'WindowArgs*' => 'kde_WindowArgs*',
-'WindowsVersion' => 'int' ,
-'XrmOptionDescRec*' => 'XrmOptionDescRec*' ,
-'array_data*' => 'void*' ,
-'bitarr_data*' => 'void*',
-'bool&' => 'int' ,
-'bool' => 'int',
-'bool*' => 'int*',
-'char *' => 'char *',
-'char&' => 'char' ,
-'char' => 'char',
-'char* bugsEmailAddress @bugs.kde.org"' => 'String',
-'char*&' => 'char*',
-'char*' => 'char*',
-'char**' => 'char**',
-'char*xpm[]' => 'char**' ,
-'classConnection*' => 'kde_classConnection*',
-'classDeviceManager*' => 'kde_classDeviceManager*',
-'classExtensionLoader*' => 'kde_classExtensionLoader*',
-'classMidiStatus*' => 'kde_classMidiStatus*',
-'classObjectReference' => 'kde_classObjectReference*',
-'classQPainter*' => 'kde_classQPainter*',
-'classStartupClass*' => 'kde_classStartupClass*',
-'double d .0' => 'double',
-'double nDefault .0' => 'double',
-'double pri .0' => 'double',
-'double&' => 'double' ,
-'double' => 'double',
-'double*' => 'double*' ,
-'false' => '0',
-'float desat .3' => 'float',
-'float&' => 'float' ,
-'float' => 'float',
-'float*' => 'float*',
-'image_io_handler' => 'int' ,
-'int a |' => 'int',
-'int buttonMask|Apply|Cancel' => 'int',
-'int buttonMask|No|Cancel' => 'int',
-'int desktop' => 'int',
-'int&' => 'int',
-'int' => 'int',
-'int*' => 'int*',
-'kdbgstream&' => 'kde_Kdbgstream*' ,
-'kdbgstream*' => 'kde_kdbgstream*',
-'khtml*' => 'kde_khtml*',
-'khtml::ChildFrame*' => 'kde_khtml_ChildFrame*' ,
-'khtml::DrawContentsEvent*' => 'kde_khtml_DrawContentsEvent*' ,
-'khtml::MouseDoubleClickEvent*' => 'kde_khtml_MouseDoubleClickEvent*' ,
-'khtml::MouseMoveEvent*' => 'kde_khtml_MouseMoveEvent*' ,
-'khtml::MousePressEvent*' => 'kde_khtml_MousePressEvent*' ,
-'khtml::MouseReleaseEvent*' => 'kde_khtml_MouseReleaseEvent*' ,
-'khtml::RenderObject*' => 'kde_khtml_RenderObject*' ,
-'khtml::RenderStyle*' => 'kde_khtml_RenderStyle*' ,
-'khtml__DrawContentsEvent*' => 'kde_khtml__DrawContentsEvent*',
-'khtml__MouseDoubleClickEvent*' => 'kde_khtml__MouseDoubleClickEvent*',
-'khtml__MouseEvent*' => 'kde_khtml__MouseEvent*',
-'khtml__MouseMoveEvent*' => 'kde_khtml__MouseMoveEvent*',
-'khtml__MousePressEvent*' => 'kde_khtml__MousePressEvent*',
-'khtml__MouseReleaseEvent*' => 'kde_khtml__MouseReleaseEvent*',
-'kndbgstream&' => 'void**' ,
-'kndbgstream*' => 'kde_kndbgstream*',
-'ksockaddr_in*' => 'void*' ,
-'long _blockSize *' => 'long *',
-'long int' => 'long',
-'long unsigned int' => 'long',
-'long&' => 'long' ,
-'long' => 'long',
-'long_blockSize*' => 'long_blockSize*' ,
-'longint' => 'long',
-'longunsigned int' => 'unsigned long',
-'lt_dlhandle' => 'void *' ,
-'lt_user_dlloader*' => 'kde_lt_user_dlloader*',
-'mcopbyte&' => 'void *',
-'mcopbyte' => 'unsigned char',
-'mode_t _mode (mode_t) -1' => 'int',
-'mode_t' => 'long' ,
-'noteCmd' => 'kde_noteCmd*',
-'noteCmd*' => 'kde_noteCmd*',
-'ostream&' => 'int',
-'ostream*' => 'int',
-'pid_t' => 'long' ,
-'poTime&' => 'kde_poTime*',
-'poTime*' => 'kde_poTime*',
-'short unsigned' => 'short',
-'short' => 'short',
-'short*' => 'short*',
-'shortunsigned' => 'unsigned short',
-'signed int&' => 'signed int' ,
-'signed long&' => 'signed long' ,
-'signed short&' => 'signed short' ,
-'signed' => 'signed' ,
-'size_t' => 'int' ,
-'size_t*' => 'int*',
-'size_type' => 'int' ,
-'snd_seq_event_t*' => 'int*',
-'ssize_t' => 'int',
-'std*' => 'kde_std*',
-'std::string&' => 'char *' ,
-'std::string' => 'char *' ,
-'time_t' => 'long' ,
-'timeval&' => 'int',
-'true' => '1',
-'type&' => 'int' ,
-'type*' => 'int*' ,
-'type**' => 'int**' ,
-'uchar&' => 'unsigned char' ,
-'uchar' => 'unsigned char' ,
-'uchar*' => 'unsigned char*',
-'uchar**' => 'unsigned char**',
-'uint&' => 'unsigned int',
-'uint' => 'unsigned int',
-'uint*' => 'unsigned int*' ,
-'uintf~0' => 'unsigned int' ,
-'ulong' => 'unsigned long',
-'unsigned char&' => 'unsigned char',
-'unsigned char' => 'unsigned char' ,
-'unsigned char*' => 'unsigned char*' ,
-'unsigned int&' => 'unsigned int' ,
-'unsigned int' => 'unsigned int' ,
-'unsigned int*' => 'int*' ,
-'unsigned long int' => 'long',
-'unsigned long&' => 'unsigned long' ,
-'unsigned long' => 'unsigned long' ,
-'unsigned short int' => 'unsigned short' ,
-'unsigned short&' => 'unsigned short' ,
-'unsigned short' => 'unsigned short' ,
-'unsigned short*' => 'short*' ,
-'unsigned shortint' => 'unsigned short' ,
-'unsigned' => 'unsigned int' ,
-'ushort' => 'unsigned short',
-'ushort*' => 'short*' ,
-'voice*' => 'int',
-'void' => 'void',
-'void(*)()' => 'void(*)()' ,
-'void*' => 'void*',
-'~' => '~',
-'QValueList<int>' => 'qt_QIntValueList*',
-'QValueList<int>&' => 'qt_QIntValueList*',
-'QValueList<QIconDragItem>' => 'qt_QIconDragItemValueList*',
-'QValueList<QIconDragItem>&' => 'qt_QIconDragItemValueList*',
-'QValueList<QPixmap>' => 'qt_QPixmapValueList*',
-'QValueList<QString>&' => 'qt_QStringValueList*',
-'QValueList<QVariant>&' => 'qt_QVariantValueList*',
-'QValueList<QUrlInfo>*' => 'qt_QUrlInfoValueList*',
-'QValueList<KDataToolInfo>&' => 'kde_KDataToolInfoValueList*',
-'QPtrList<KAction>&' => 'kde_KActionPtrList*',
-'QPtrList<KSSLCertificate>&' => 'kde_KSSLCertificatePtrList*',
-'QPtrList<KXMLGUIClient>*' => 'kde_KXMLGUIClientPtrList*',
-'QPtrList<QDockWindow>*' => 'qt_QDockWindowPtrList*',
-'QPtrList<QPixmap>' => 'qt_QPixmapPtrList*',
-'QPtrList<QPoint>' => 'qt_QPointPtrList*',
-'KService::Ptr&' => 'kde_KServicePtr*',
-'ClassContext*' => 'kde_ClassContext*',
-'ClassStoreIface*' => 'kde_ClassStoreIface*',
-'ClipboardDocumentIface*' => 'kde_ClipboardDocumentIface*',
-'CodeCompletionDocumentIface*' => 'kde_CodeCompletionDocumentIface*',
-'CursorDocumentIface*' => 'kde_CursorDocumentIface*',
-'DebugDocumentIface*' => 'kde_DebugDocumentIface*',
-'DocumentInterface*' => 'kde_DocumentInterface*',
-'EditDocumentIface*' => 'kde_EditDocumentIface*',
-'EditorInterface*' => 'kde_EditorInterface*',
-'FileContext*' => 'kde_FileContext*',
-'KDevAppFrontendIface*' => 'kde_KDevAppFrontendIface*',
-'KDevCoreIface*' => 'kde_KDevCoreIface*',
-'KDevMakeFrontendIface*' => 'kde_KDevMakeFrontendIface*',
-'KEditor*' => 'kde_KEditor*',
-'KEditor::Document*' => 'kde_Document*',
-'ParsedClassContainer&' => 'kde_ParsedClassContainer*',
-'ParsedContainer&' => 'kde_ParsedContainer*',
-'ParsedScopeContainer&' => 'kde_ParsedScopeContainer*',
-'QValueList<ParsedMethod>*' => 'kde_ParsedMethodList*',
-'QValueList<CompletionEntry>' => 'kde_CompletionEntryValueList*',
-'StatusDocumentIface*' => 'kde_StatusDocumentIface*',
-'UndoDocumentIface*' => 'kde_UndoDocumentIface*',
-'KShortcut&' => 'kde_KShortcut*',
-'KShortcut' => 'kde_KShortcut*',
-'KShortcut*' => 'kde_KShortcut*',
-'KKey&' => 'kde_KKey*',
-'KKey*' => 'kde_KKey*',
-'KKeyNative&' => 'kde_KKeyNative*',
-'KKeyNative*' => 'kde_KKeyNative*',
-'KKeyVariations&' => 'kde_KKeyVariations*',
-'KKeyVariations*' => 'kde_KKeyVariations*',
-'KKeyX11&' => 'kde_KKeyX11*',
-'KKeyX11' => 'kde_KKeyX11*',
-'KKeyX11*' => 'kde_KKeyX11*',
-'KAccelActions' => 'kde_KAccelActions*',
-'KRandomSequence&' => 'kde_KRandomSequence*',
-'KIcon::Context' => 'int',
-'KIcon::Group' => 'int',
-);
-
-
- # Initialize %builtins, used by resolveType
- my @noreflist = qw( const int char long double template
- unsigned signed float void bool true false uint
- uint32 uint64 extern static inline virtual operator );
- foreach my $r ( @noreflist ) {
- $builtins{ $r } = $r;
- }
-
-}
-
-sub interfacemap
-{
- my ( $interfaceType ) = @_;
- return $interfacemap{$interfaceType};
-}
-
-sub ctypemap
-{
- my ( $cType ) = @_;
- return $ctypemap{$cType};
-}
-
-sub setctypemap
-{
- my ( $cType, $cValue ) = @_;
-
- $ctypemap{$cType} = $cValue;
- return;
-}
-
-sub addNamespace
-{
- my ( $className ) = @_;
-
- if ( $className =~ /Bridge$/ ) {
- return $className;
- }
-
- if ( $className =~ /^(AbstractView|Attr|CDATASection|CSSCharsetRule|CSSException|CSSFontFaceRule|CSSImportRule|CSSMediaRule|CSSPageRule|CSSPrimitiveValue|CSSRule|CSSRuleList|CSSStyleDeclaration|CSSStyleRule|CSSStyleSheet|CSSUnknownRule|CSSValue|CSSValueList|CharacterData|Comment|Counter|CustomNodeFilter|DOMException|DOMImplementation|DOMString|Document|DocumentFragment|DocumentStyle|DocumentType|DomShared|Element|Entity|EntityReference|EventException|EventListener|LinkStyle|MediaList|MutationEvent|NamedNodeMap|Node|NodeFilter|NodeIterator|NodeList|Notation|ProcessingInstruction|RGBColor|Range|RangeException|Rect|StyleSheet|StyleSheetList|Text|TreeWalker|UIEvent|HTML.*)/ )
- {
- return "DOM::".$className;
- }
-
- if ( $className =~ /^(BrowserExtension|BrowserHostExtensionBrowserInterface|ComponentFactory|DockMainWindow|Event|Factory|GUIActivateEvent|HistoryProvider|MainWindow|OpenURLEvent|Part|PartActivateEvent|PartBase|PartManager|PartSelectEvent|Plugin|PluginInfo|ReadOnlyPart|ReadWritePart|URLArgs|WindowArgs)/ )
- {
- return "KParts::".$className;
- }
-
- if ( $className =~ /^(AuthInfo|AutoLogin|CacheInfo|ChmodJob|Connection|CopyInfo|CopyJob|DefaultProgress|DeleteJob|FileCopyJob|Job|ListJob|MetaData|MimetypeJob|MultiGetJob|NetAccess|NetRC|PasswordDialog|PreviewJob|ProgressBase|RenameDlg|Scheduler|SessionData|SimpleJob|SkipDlg|Slave|SlaveBase|SlaveConfig|SlaveInterface|StatJob|StatusbarProgress|TCPSlaveBase|Task|TransferJob|UDSAtom)/ )
- {
- return "KIO::".$className;
- }
-
- if ( $className =~ /^(DrawContentsEvent|MouseDoubleClickEvent|MouseEvent|MouseMoveEvent|MousePressEvent|MouseReleaseEvent)/ )
- {
- return "khtml::".$className;
- }
-
- if ( $className =~ /^(OfferList)/ )
- {
- return "KTrader::".$className;
- }
-
- if ( $className =~ /^(BlockSelectionInterface|ClipboardInterface|CodeCompletionInterface|CompletionEntry|ConfigInterface|Cursor|CursorInterface|Document|EditInterface|Editor|HighlightingInterface|Mark|MarkInterface|PopupMenuInterface|PrintInterface|SearchInterface|SelectionInterface|UndoInterface|View|ViewCursorInterface)/ )
- {
- return "KTextEditor::".$className;
- }
-
-
- return $className;
-}
-
-
-# Helper for resolveType. This one is recursive and returns undef if not found.
-sub resolveTypeInternal($$$)
-{
- my ( $argType, $contextClass, $rootnode ) = @_;
-
- #print "resolveTypeInternal type:'$argType' context:'$contextClass->{astNodeName}' ($contextClass)\n";
-
- my $contextClassName = join( "::", kdocAstUtil::heritage($contextClass) );
-
- # 'A' resolves to 'A' in context 'A' ;) (i.e. classname itself)
- return $contextClassName if ( $argType eq $contextClass->{astNodeName} );
-
- # Try as an identifier of contextClass
- #print "Trying as ".$contextClassName."::".$argType."\n";
-
- my $node = kdocAstUtil::findRef( $rootnode, $contextClassName."::".$argType );
-
- #print "Found as $node->{NodeType}\n" if $node;
-
- return $contextClassName."::".$argType if ( $node
- && $node->{NodeType} ne 'method'
- && $node->{NodeType} ne 'deleted'
- && $node->{NodeType} ne 'var' );
-
- my $found;
-
- # Then look at ancestors, and try for each one
- Iter::Ancestors( $contextClass, $rootnode, undef, undef,
- sub {
- my ( $ances, $name, $type, $template ) = @_;
- unless ($found) {
- $found = resolveTypeInternal( $argType, $ances, $rootnode );
- }
- },
- undef
- );
-
- return $found;
-}
-
-=head2
-
- Look up a type, following the class hierarchy.
- e.g. "Mode", if ContextClassName is A, will be looked as A::Mode,
- then as B::Mode (if B is a parent class of A), then as Qt::Mode,
- then as just Mode.
-
-=cut
-
-sub resolveType($$$)
-{
- my ( $argType, $contextClass, $rootnode ) = @_;
- $argType =~ s/\s*(\*)\s*$/$1/g; # remove space before *
- #print "resolveType: '$argType'\n";
-
- # Look for builtin words (int etc.)
- return $builtins{ $argType } if exists $builtins{ $argType };
-
- # Parse 'const' in front of it, and '*' or '&' after it
- my $prefix = $argType =~ s/^const\s+// ? 'const ' : '';
- my $suffix = $argType =~ s/\s*([\&\*]+)$// ? $1 : '';
- #print "resolveType: prefix:$prefix, '$argType', suffix:$suffix\n";
-
- # Launch the (possibly recursive) resolveTypeInternal
- my $result = resolveTypeInternal( $argType, $contextClass, $rootnode );
- return $prefix.$result.$suffix if $result;
-
- # Not found, so look as a toplevel class
- #print "Checking that ".$argType." exists.\n";
- return $prefix.$argType.$suffix if ( kdocAstUtil::findRef( $rootnode, $argType ) );
-
- #print "resolveType: $argType not found (context $contextClass->{astNodeName})\n\n";
-
- return $prefix.$argType.$suffix;
-}
-
-1;
diff --git a/dcopidlng/kdocAstUtil.pm b/dcopidlng/kdocAstUtil.pm
deleted file mode 100644
index 9c8c0dd15..000000000
--- a/dcopidlng/kdocAstUtil.pm
+++ /dev/null
@@ -1,762 +0,0 @@
-=head1 kdocAstUtil
-
- Utilities for syntax trees.
-
-=cut
-
-
-package kdocAstUtil;
-
-use Ast;
-use Carp;
-use File::Basename;
-use kdocUtil;
-use Iter;
-use strict;
-
-use vars qw/ $depth $refcalls $refiters @noreflist %noref /;
-
-sub BEGIN {
-# statistics for findRef
-
- $depth = 0;
- $refcalls = 0;
- $refiters = 0;
-
-# findRef will ignore these words
-
- @noreflist = qw( const int char long double template
- unsigned signed float void bool true false uint
- uint32 uint64 extern static inline virtual operator );
-
- foreach my $r ( @noreflist ) {
- $noref{ $r } = 1;
- }
-}
-
-
-=head2 findNodes
-
- Parameters: outlist ref, full list ref, key, value
-
- Find all nodes in full list that have property "key=value".
- All resulting nodes are stored in outlist.
-
-=cut
-
-sub findNodes
-{
- my( $rOutList, $rInList, $key, $value ) = @_;
-
- my $node;
-
- foreach $node ( @{$rInList} ) {
- next if !exists $node->{ $key };
- if ( $node->{ $key } eq $value ) {
- push @$rOutList, $node;
- }
- }
-}
-
-=head2 allTypes
-
- Parameters: node list ref
- returns: list
-
- Returns a sorted list of all distinct "NodeType"s in the nodes
- in the list.
-
-=cut
-
-sub allTypes
-{
- my ( $lref ) = @_;
-
- my %types = ();
- foreach my $node ( @{$lref} ) {
- $types{ $node->{NodeType} } = 1;
- }
-
- return sort keys %types;
-}
-
-
-
-
-=head2 findRef
-
- Parameters: root, ident, report-on-fail
- Returns: node, or undef
-
- Given a root node and a fully qualified identifier (:: separated),
- this function will try to find a child of the root node that matches
- the identifier.
-
-=cut
-
-sub findRef
-{
- my( $root, $name, $r ) = @_;
-
- confess "findRef: no name" if !defined $name || $name eq "";
-
- $name =~ s/\s+//g;
- return undef if exists $noref{ $name };
-
- $name =~ s/^#//g;
-
- my ($iter, @tree) = split /(?:\:\:|#)/, $name;
- my $kid;
-
- $refcalls++;
-
- # Upward search for the first token
- return undef if !defined $iter;
-
- while ( !defined findIn( $root, $iter ) ) {
- return undef if !defined $root->{Parent};
- $root = $root->{Parent};
- }
- $root = $root->{KidHash}->{$iter};
- carp if !defined $root;
-
- # first token found, resolve the rest of the tree downwards
- foreach $iter ( @tree ) {
- confess "iter in $name is undefined\n" if !defined $iter;
- next if $iter =~ /^\s*$/;
-
- unless ( defined findIn( $root, $iter ) ) {
- confess "findRef: failed on '$name' at '$iter'\n"
- if defined $r;
- return undef;
- }
-
- $root = $root->{KidHash}->{ $iter };
- carp if !defined $root;
- }
-
- return $root;
-}
-
-=head2 findIn
-
- node, name: search for a child
-
-=cut
-
-sub findIn
-{
- return undef unless defined $_[0]->{KidHash};
-
- my $ret = $_[0]->{KidHash}->{ $_[1] };
-
- return $ret;
-}
-
-=head2 linkReferences
-
- Parameters: root, node
-
- Recursively links references in the documentation for each node
- to real nodes if they can be found. This should be called once
- the entire parse tree is filled.
-
-=cut
-
-sub linkReferences
-{
- my( $root, $node ) = @_;
-
- if ( exists $node->{DocNode} ) {
- linkDocRefs( $root, $node, $node->{DocNode} );
-
- if( exists $node->{Compound} ) {
- linkSee( $root, $node, $node->{DocNode} );
- }
- }
-
- my $kids = $node->{Kids};
- return unless defined $kids;
-
- foreach my $kid ( @$kids ) {
- # only continue in a leaf node if it has documentation.
- next if !exists $kid->{Kids} && !exists $kid->{DocNode};
- if( !exists $kid->{Compound} ) {
- linkSee( $root, $node, $kid->{DocNode} );
- }
- linkReferences( $root, $kid );
- }
-}
-
-sub linkNamespaces
-{
- my ( $node ) = @_;
-
- if ( defined $node->{ImpNames} ) {
- foreach my $space ( @{$node->{ImpNames}} ) {
- my $spnode = findRef( $node, $space );
-
- if( defined $spnode ) {
- $node->AddPropList( "ExtNames", $spnode );
- }
- else {
- warn "namespace not found: $space\n";
- }
- }
- }
-
- return unless defined $node->{Compound} || !defined $node->{Kids};
-
-
- foreach my $kid ( @{$node->{Kids}} ) {
- next unless localComp( $kid );
-
- linkNamespaces( $kid );
- }
-}
-
-sub calcStats
-{
- my ( $stats, $root, $node ) = @_;
-# stats:
-# num types
-# num nested
-# num global funcs
-# num methods
-
-
- my $type = $node->{NodeType};
-
- if ( $node eq $root ) {
- # global methods
- if ( defined $node->{Kids} ) {
- foreach my $kid ( @{$node->{Kids}} ) {
- $stats->{Global}++ if $kid->{NodeType} eq "method";
- }
- }
-
- $node->AddProp( "Stats", $stats );
- }
- elsif ( kdocAstUtil::localComp( $node )
- || $type eq "enum" || $type eq "typedef" ) {
- $stats->{Types}++;
- $stats->{Nested}++ if $node->{Parent} ne $root;
- }
- elsif( $type eq "method" ) {
- $stats->{Methods}++;
- }
-
- return unless defined $node->{Compound} || !defined $node->{Kids};
-
- foreach my $kid ( @{$node->{Kids}} ) {
- next if defined $kid->{ExtSource};
- calcStats( $stats, $root, $kid );
- }
-}
-
-=head2 linkDocRefs
-
- Parameters: root, node, docnode
-
- Link references in the docs if they can be found. This should
- be called once the entire parse tree is filled.
-
-=cut
-
-sub linkDocRefs
-{
- my ( $root, $node, $docNode ) = @_;
- return unless exists $docNode->{Text};
-
- my ($text, $ref, $item, $tosearch);
-
- foreach $item ( @{$docNode->{Text}} ) {
- next if $item->{NodeType} ne 'Ref';
-
- $text = $item->{astNodeName};
-
- if ( $text =~ /^(?:#|::)/ ) {
- $text = $';
- $tosearch = $node;
- }
- else {
- $tosearch = $root;
- }
-
- $ref = findRef( $tosearch, $text );
- $item->AddProp( 'Ref', $ref ) if defined $ref;
-
- confess "Ref failed for ", $item->{astNodeName},
- "\n" unless defined $ref;
- }
-}
-
-sub linkSee
-{
- my ( $root, $node, $docNode ) = @_;
- return unless exists $docNode->{See};
-
- my ( $text, $tosearch, $ref );
-
- foreach $text ( @{$docNode->{See}} ) {
- if ( $text =~ /^\s*(?:#|::)/ ) {
- $text = $';
- $tosearch = $node;
- }
- else {
- $tosearch = $root;
- }
-
- $ref = findRef( $tosearch, $text );
- $docNode->AddPropList( 'SeeRef', $ref )
- if defined $ref;
- }
-}
-
-
-
-#
-# Inheritance utilities
-#
-
-=head2 makeInherit
-
- Parameter: $rootnode, $parentnode
-
- Make an inheritance graph from the parse tree that begins
- at rootnode. parentnode is the node that is the parent of
- all base class nodes.
-
-=cut
-
-sub makeInherit
-{
- my( $rnode, $parent ) = @_;
-
- foreach my $node ( @{ $rnode->{Kids} } ) {
- next if !defined $node->{Compound};
-
- # set parent to root if no inheritance
-
- if ( !exists $node->{InList} ) {
- newInherit( $node, "Global", $parent );
- $parent->AddPropList( 'InBy', $node );
-
- makeInherit( $node, $parent );
- next;
- }
-
- # link each ancestor
- my $acount = 0;
-ANITER:
- foreach my $in ( @{ $node->{InList} } ) {
- unless ( defined $in ) {
- Carp::cluck "warning: $node->{astNodeName} "
- ." has undef in InList.";
- next ANITER;
- }
-
- my $ref = kdocAstUtil::findRef( $rnode,
- $in->{astNodeName} );
-
- if( !defined $ref ) {
- # ancestor undefined
- warn "warning: ", $node->{astNodeName},
- " inherits unknown class '",
- $in->{astNodeName},"'\n";
-
- $parent->AddPropList( 'InBy', $node );
- }
- else {
- # found ancestor
- $in->AddProp( "Node", $ref );
- $ref->AddPropList( 'InBy', $node );
- $acount++;
- }
- }
-
- if ( $acount == 0 ) {
- # inherits no known class: just parent it to global
- newInherit( $node, "Global", $parent );
- $parent->AddPropList( 'InBy', $node );
- }
- makeInherit( $node, $parent );
- }
-}
-
-=head2 newInherit
-
- p: $node, $name, $lnode?
-
- Add a new ancestor to $node with raw name = $name and
- node = lnode.
-=cut
-
-sub newInherit
-{
- my ( $node, $name, $link ) = @_;
-
- my $n = Ast::New( $name );
- $n->AddProp( "Node", $link ) unless !defined $link;
-
- $node->AddPropList( "InList", $n );
- return $n;
-}
-
-=head2 inheritName
-
- pr: $inheritance node.
-
- Returns the name of the inherited node. This checks for existence
- of a linked node and will use the "raw" name if it is not found.
-
-=cut
-
-sub inheritName
-{
- my ( $innode ) = @_;
-
- return defined $innode->{Node} ?
- $innode->{Node}->{astNodeName}
- : $innode->{astNodeName};
-}
-
-=head2 inheritedBy
-
- Parameters: out listref, node
-
- Recursively searches for nodes that inherit from this one, returning
- a list of inheriting nodes in the list ref.
-
-=cut
-
-sub inheritedBy
-{
- my ( $list, $node ) = @_;
-
- return unless exists $node->{InBy};
-
- foreach my $kid ( @{ $node->{InBy} } ) {
- push @$list, $kid;
- inheritedBy( $list, $kid );
- }
-}
-
-=head2 hasLocalInheritor
-
- Parameter: node
- Returns: 0 on fail
-
- Checks if the node has an inheritor that is defined within the
- current library. This is useful for drawing the class hierarchy,
- since you don't want to display classes that have no relationship
- with classes within this library.
-
- NOTE: perhaps we should cache the value to reduce recursion on
- subsequent calls.
-
-=cut
-
-sub hasLocalInheritor
-{
- my $node = shift;
-
- return 0 if !exists $node->{InBy};
-
- my $in;
- foreach $in ( @{$node->{InBy}} ) {
- return 1 if !exists $in->{ExtSource}
- || hasLocalInheritor( $in );
- }
-
- return 0;
-}
-
-
-
-=head2 allMembers
-
- Parameters: hashref outlist, node, $type
-
- Fills the outlist hashref with all the methods of outlist,
- recursively traversing the inheritance tree.
-
- If type is not specified, it is assumed to be "method"
-
-=cut
-
-sub allMembers
-{
- my ( $outlist, $n, $type ) = @_;
- my $in;
- $type = "method" if !defined $type;
-
- if ( exists $n->{InList} ) {
-
- foreach $in ( @{$n->{InList}} ) {
- next if !defined $in->{Node};
- my $i = $in->{Node};
-
- allMembers( $outlist, $i )
- unless $i == $main::rootNode;
- }
- }
-
- return unless exists $n->{Kids};
-
- foreach $in ( @{$n->{Kids}} ) {
- next if $in->{NodeType} ne $type;
-
- $outlist->{ $in->{astNodeName} } = $in;
- }
-}
-
-=head2 findOverride
-
- Parameters: root, node, name
-
- Looks for nodes of the same name as the parameter, in its parent
- and the parent's ancestors. It returns a node if it finds one.
-
-=cut
-
-sub findOverride
-{
- my ( $root, $node, $name ) = @_;
- return undef if !exists $node->{InList};
-
- foreach my $in ( @{$node->{InList}} ) {
- my $n = $in->{Node};
- next unless defined $n && $n != $root && exists $n->{KidHash};
-
- my $ref = $n->{KidHash}->{ $name };
-
- return $n if defined $ref && $ref->{NodeType} eq "method";
-
- if ( exists $n->{InList} ) {
- $ref = findOverride( $root, $n, $name );
- return $ref if defined $ref;
- }
- }
-
- return undef;
-}
-
-=head2 attachChild
-
- Parameters: parent, child
-
- Attaches child to the parent, setting Access, Kids
- and KidHash of respective nodes.
-
-=cut
-
-sub attachChild
-{
- my ( $parent, $child ) = @_;
- confess "Attempt to attach ".$child->{astNodeName}." to an ".
- "undefined parent\n" if !defined $parent;
-
- $child->AddProp( "Access", $parent->{KidAccess} );
- $child->AddProp( "Parent", $parent );
-
- $parent->AddPropList( "Kids", $child );
-
- if( !exists $parent->{KidHash} ) {
- my $kh = Ast::New( "LookupTable" );
- $parent->AddProp( "KidHash", $kh );
- }
-
- $parent->{KidHash}->AddProp( $child->{astNodeName},
- $child );
-}
-
-=head2 makeClassList
-
- Parameters: node, outlist ref
-
- fills outlist with a sorted list of all direct, non-external
- compound children of node.
-
-=cut
-
-sub makeClassList
-{
- my ( $rootnode, $list ) = @_;
-
- @$list = ();
-
- Iter::LocalCompounds( $rootnode,
- sub {
- my $node = shift;
-
- my $her = join ( "::", heritage( $node ) );
- $node->AddProp( "FullName", $her );
-
- if ( !exists $node->{DocNode}->{Internal} ||
- !$main::skipInternal ) {
- push @$list, $node;
- }
- } );
-
- @$list = sort { $a->{FullName} cmp $b->{FullName} } @$list;
-}
-
-#
-# Debugging utilities
-#
-
-=head2 dumpAst
-
- Parameters: node, deep
- Returns: none
-
- Does a recursive dump of the node and its children.
- If deep is set, it is used as the recursion property, otherwise
- "Kids" is used.
-
-=cut
-
-sub dumpAst
-{
- my ( $node, $deep ) = @_;
-
- $deep = "Kids" if !defined $deep;
-
- print "\t" x $depth, $node->{astNodeName},
- " (", $node->{NodeType}, ")\n";
-
- my $kid;
-
- foreach $kid ( $node->GetProps() ) {
- print "\t" x $depth, " -\t", $kid, " -> ", $node->{$kid},"\n"
- unless $kid =~ /^(astNodeName|NodeType|$deep)$/;
- }
- if ( exists $node->{InList} ) {
- print "\t" x $depth, " -\tAncestors -> ";
- foreach my $innode ( @{$node->{InList}} ) {
- print $innode->{astNodeName} . ",";
- }
- print "\n";
- }
-
- print "\t" x $depth, " -\n" if (defined $node->{ $deep } && scalar(@{$node->{ $deep }}) != 0);
-
- $depth++;
- foreach $kid ( @{$node->{ $deep }} ) {
- dumpAst( $kid );
- }
-
- print "\t" x $depth, "Documentation nodes:\n" if defined
- @{ $node->{Doc}->{ "Text" }};
-
- foreach $kid ( @{ $node->{Doc}->{ "Text" }} ) {
- dumpAst( $kid );
- }
-
- $depth--;
-}
-
-=head2 testRef
-
- Parameters: rootnode
-
- Interactive testing of referencing system. Calling this
- will use the readline library to allow interactive entering of
- identifiers. If a matching node is found, its node name will be
- printed.
-
-=cut
-
-sub testRef {
- require Term::ReadLine;
-
- my $rootNode = $_[ 0 ];
-
- my $term = new Term::ReadLine 'Testing findRef';
-
- my $OUT = $term->OUT || *STDOUT{IO};
- my $prompt = "Identifier: ";
-
- while( defined ($_ = $term->readline($prompt)) ) {
-
- my $node = kdocAstUtil::findRef( $rootNode, $_ );
-
- if( defined $node ) {
- print $OUT "Reference: '", $node->{astNodeName},
- "', Type: '", $node->{NodeType},"'\n";
- }
- else {
- print $OUT "No reference found.\n";
- }
-
- $term->addhistory( $_ ) if /\S/;
- }
-}
-
-sub printDebugStats
-{
- print "findRef: ", $refcalls, " calls, ",
- $refiters, " iterations.\n";
-}
-
-sub External
-{
- return defined $_[0]->{ExtSource};
-}
-
-sub Compound
-{
- return defined $_[0]->{Compound};
-}
-
-sub localComp
-{
- my ( $node ) = $_[0];
- return defined $node->{Compound}
- && !defined $node->{ExtSource}
- && $node->{NodeType} ne "Forward";
-}
-
-sub hasDoc
-{
- return defined $_[0]->{DocNode};
-}
-
-### Warning: this returns the list of parents, e.g. the 3 words in KParts::ReadOnlyPart::SomeEnum
-### It has nothing do to with inheritance.
-sub heritage
-{
- my $node = shift;
- my @heritage;
-
- while( 1 ) {
- push @heritage, $node->{astNodeName};
-
- last unless defined $node->{Parent};
- $node = $node->{Parent};
- last unless defined $node->{Parent};
- }
-
- return reverse @heritage;
-}
-
-sub refHeritage
-{
- my $node = shift;
- my @heritage;
-
- while( 1 ) {
- push @heritage, $node;
-
- last unless defined $node->{Parent};
- $node = $node->{Parent};
- last unless defined $node->{Parent};
- }
-
- return reverse @heritage;
-
-}
-
-
-1;
diff --git a/dcopidlng/kdocLib.pm b/dcopidlng/kdocLib.pm
deleted file mode 100644
index 6eac4dff5..000000000
--- a/dcopidlng/kdocLib.pm
+++ /dev/null
@@ -1,245 +0,0 @@
-
-=head1 kdocLib
-
-Writes out a library file.
-
-NOTES ON THE NEW FORMAT
-
- Stores: class name, members, hierarchy
- node types are not stored
-
-
- File Format Spec
- ----------------
-
- header
- zero or more members, each of
- method
- member
- class, each of
- inheritance
- zero or more members
-
-
-
- Unrecognized lines ignored.
-
- Sample
- ------
-
- <! KDOC Library HTML Reference File>
- <VERSION="2.0">
- <BASE URL="http://www.kde.org/API/kdecore/">
-
- <C NAME="KApplication" REF="KApplication.html">
- <IN NAME="QObject">
- <ME NAME="getConfig" REF="KApplication.html#getConfig">
- <M NAME="" REF="">
- </C>
-
-=cut
-
-package kdocLib;
-use strict;
-
-use Carp;
-use File::Path;
-use File::Basename;
-
-use Ast;
-use kdocAstUtil;
-use kdocUtil;
-
-
-use vars qw/ $exe $lib $root $plang $outputdir $docpath $url $compress /;
-
-BEGIN {
- $exe = basename $0;
-}
-
-sub writeDoc
-{
- ( $lib, $root, $plang, $outputdir, $docpath, $url,
- $compress ) = @_;
- my $outfile = "$outputdir/$lib.kalyptus";
- $url = $docpath unless defined $url;
-
- mkpath( $outputdir ) unless -f $outputdir;
-
- if( $compress ) {
- open( LIB, "| gzip -9 > \"$outfile.gz\"" )
- || die "$exe: couldn't write to $outfile.gz\n";
-
- }
- else {
- open( LIB, ">$outfile" )
- || die "$exe: couldn't write to $outfile\n";
- }
-
- my $libdesc = "";
- if ( defined $root->{LibDoc} ) {
- $libdesc="<LIBDESC>".$root->{LibDoc}->{astNodeName}."</LIBDESC>";
- }
-
- print LIB<<LTEXT;
-<! KDOC Library HTML Reference File>
-<VERSION="$main::Version">
-<BASE URL="$url">
-<PLANG="$plang">
-<LIBNAME>$lib</LIBNAME>
-$libdesc
-
-LTEXT
-
- writeNode( $root, "" );
- close LIB;
-}
-
-sub writeNode
-{
- my ( $n, $prefix ) = @_;
- return if !exists $n->{Compound};
- return if exists $n->{Forward} && !exists $n->{KidAccess};
-
- if( $n != $root ) {
- $prefix .= $n->{astNodeName};
- print LIB "<C NAME=\"", $n->{astNodeName},
- "\" REF=\"$prefix.html\">\n";
- }
- else {
- print LIB "<STATS>\n";
- my $stats = $root->{Stats};
- foreach my $stat ( keys %$stats ) {
- print LIB "<STAT NAME=\"$stat\">",
- $stats->{$stat},"</STAT>\n";
- }
- print LIB "</STATS>\n";
- }
-
- if( exists $n->{Ancestors} ) {
- my $in;
- foreach $in ( @{$n->{Ancestors}} ) {
- $in =~ s/\s+//g;
- print LIB "<IN NAME=\"",$in,"\">\n";
- }
- }
-
- return if !exists $n->{Kids};
- my $kid;
- my $type;
-
- foreach $kid ( @{$n->{Kids}} ) {
- next if exists $kid->{ExtSource}
- || $kid->{Access} eq "private";
-
- if ( exists $kid->{Compound} ) {
- if( $n != $root ) {
- writeNode( $kid, $prefix."::" );
- }
- else {
- writeNode( $kid, "" );
- }
- next;
- }
-
- $type = $kid->{NodeType} eq "method" ?
- "ME" : "M";
-
- print LIB "<$type NAME=\"", $kid->{astNodeName},
- "\" REF=\"$prefix.html#", $kid->{astNodeName}, "\">\n";
- }
-
- if( $n != $root ) {
- print LIB "</C>\n";
- }
-}
-
-sub readLibrary
-{
- my( $rootsub, $name, $path, $relurl ) = @_;
- $path = "." unless defined $path;
- my $real = $path."/".$name.".kalyptus";
- my $url = ".";
- my @stack = ();
- my $version = "2.0";
- my $new;
- my $root = undef;
- my $n = undef;
- my $havecomp = -r "$real.gz";
- my $haveuncomp = -r "$real";
-
- if ( $haveuncomp ) {
- open( LIB, "$real" ) || die "Can't read lib $real\n";
- }
-
- if( $havecomp ) {
- if ( $haveuncomp ) {
- warn "$exe: two libs exist: $real and $real.gz. "
- ."Using $real\n";
- }
- else {
- open( LIB, "gunzip < \"$real.gz\"|" )
- || die "Can't read pipe gunzip < \"$real.gz\": $?\n";
- }
- }
-
- while( <LIB> ) {
- next if /^\s*$/;
- if ( !/^\s*</ ) {
- close LIB;
- #readOldLibrary( $root, $name, $path );
- return;
- }
-
- if( /<VER\w+\s+([\d\.]+)>/ ) {
- # TODO: what do we do with the version number?
- $version = $1;
- }
- elsif ( /<BASE\s*URL\s*=\s*"(.*?)"/ ) {
- $url = $1;
- $url .= "/" unless $url =~ m:/$:;
-
- my $test = kdocUtil::makeRelativePath( $relurl, $url );
- $url = $test;
- }
- elsif( /<PLANG\s*=\s*"(.*?)">/ ) {
- $root = $rootsub->( $1 );
- $n = $root;
- }
- elsif ( /<C\s*NAME="(.*?)"\s*REF="(.*?)"\s*>/ ) {
- # class
- $new = Ast::New( $1 );
- $new->AddProp( "NodeType", "class" );
- $new->AddProp( "Compound", 1 );
- $new->AddProp( "ExtSource", $name );
-
- # already escaped at this point!
- $new->AddProp( "Ref", $url.$2 );
-
- $root = $n = $rootsub->( "CXX" ) unless defined $root;
- kdocAstUtil::attachChild( $n, $new );
- push @stack, $n;
- $n = $new;
- }
- elsif ( m#<IN\s*NAME\s*=\s*"(.*?)"\s*># ) {
- # ancestor
- kdocAstUtil::newInherit( $n, $1 );
- }
- elsif ( m#</C># ) {
- # end class
- $n = pop @stack;
- }
- elsif ( m#<(M\w*)\s+NAME="(.*?)"\s+REF="(.*?)"\s*># ) {
- # member
- $new = Ast::New( $2 );
- $new->AddProp( "NodeType", $1 eq "ME" ? "method" : "var" );
- $new->AddProp( "ExtSource", $name );
- $new->AddProp( "Flags", "" );
- $new->AddProp( "Ref", $url.$3 );
-
- kdocAstUtil::attachChild( $n, $new );
- }
- }
-}
-
-1;
diff --git a/dcopidlng/kdocParseDoc.pm b/dcopidlng/kdocParseDoc.pm
deleted file mode 100644
index e5f19d50c..000000000
--- a/dcopidlng/kdocParseDoc.pm
+++ /dev/null
@@ -1,419 +0,0 @@
-package kdocParseDoc;
-
-use Ast;
-use strict;
-
-use vars qw/ $buffer $docNode %extraprops $currentProp $propType /;
-
-=head1 kdocParseDoc
-
- Routines for parsing of javadoc comments.
-
-=head2 newDocComment
-
- Parameters: begin (starting line of declaration)
-
- Reads a doc comment to the end and creates a new doc node.
-
- Read a line
- check if it changes the current context
- yes
- flush old context
- check if it is a non-text tag
- (ie internal/deprecated etc)
- yes
- reset context to text
- set associated property
- no
- set the new context
- assign text to new buffer
- no add to text buffer
- continue
- at end
- flush anything pending.
-
-=cut
-
-sub newDocComment
-{
- my( $text ) = @_;
- return undef unless $text =~ m#/\*\*+#;
-
- setType( "DocText", 2 );
- $text =~ m#/\*#; # need to do the match again, otherwise /***/ doesn't parse
- ### TODO update this method from kdoc
- $buffer = $'; # everything after the first \*
- $docNode = undef;
- %extraprops = (); # used for textprops when flushing.
- my $finished = 0;
- my $inbounded = 0;
-
- if ( $buffer =~ m#\*/# ) {
- $buffer = $`;
- $finished = 1;
- }
-
-PARSELOOP:
- while ( defined $text && !$finished ) {
- # read text and remove leading junk
- $text = main::readSourceLine();
- next if !defined $text;
- $text =~ s#^\s*\*(?!\/)##;
-
-# if ( $text =~ /^\s*<\/pre>/i ) {
-# flushProp();
-# $inbounded = 0;
-# }
- if( $inbounded ) {
- if ( $text =~ m#\*/# ) {
- $finished = 1;
- $text = $`;
- }
- $buffer .= $text;
- next PARSELOOP;
- }
-# elsif ( $text =~ /^\s*<pre>/i ) {
-# textProp( "Pre" );
-# $inbounded = 1;
-# }
- elsif ( $text =~ /^\s*$/ ) {
- textProp( "ParaBreak", "\n" );
- }
- elsif ( $text =~ /^\s*\@internal\s*/ ) {
- codeProp( "Internal", 1 );
- }
- elsif ( $text =~ /^\s*\@deprecated\s*/ ) {
- codeProp( "Deprecated", 1 );
- }
- elsif ( $text =~ /^\s*\@reimplemented\s*/ ) {
- codeProp( "Reimplemented", 1 );
- }
- elsif ( $text =~ /^\s*\@group\s*/ ) {
- # logical group tag in which this node belongs
- # multiples allowed
-
- my $groups = $';
- $groups =~ s/^\s*(.*?)\s*$/$1/;
-
- if ( $groups ne "" ) {
- foreach my $g ( split( /[^_\w]+/, $groups) ) {
-
- codeProp( "InGroup", $g );
- }
- }
- }
- elsif ( $text =~ /^\s*\@defgroup\s+(\w+)\s*/ ) {
- # parse group tag and description
- my $grptag = $1;
- my $grpdesc = $' eq "" ? $grptag : $';
-
- # create group node
- my $grpnode = Ast::New( $grptag );
- $grpnode->AddProp( "Desc", $grpdesc );
- $grpnode->AddProp( "NodeType", "GroupDef" );
-
- # attach
- codeProp( "Groups", $grpnode );
- }
- elsif ( $text =~ /^\s*\@see\s*/ ) {
- docListProp( "See" );
- }
- elsif( $text =~ /^\s*\@short\s*/ ) {
- docProp( "ClassShort" );
- }
- elsif( $text =~ /^\s*\@author\s*/ ) {
- docProp( "Author" );
-
- }
- elsif( $text =~ /^\s*\@version\s*/ ) {
- docProp( "Version" );
- }
- elsif( $text =~ /^\s*\@id\s*/ ) {
-
- docProp( "Id" );
- }
- elsif( $text =~ /^\s*\@since\s*/ ) {
- docProp( "Since" );
- }
- elsif( $text =~ /^\s*\@returns?\s*/ ) {
- docProp( "Returns" );
- }
- elsif( $text =~ /^\s*\@(?:throws|exception|raises)\s*/ ) {
- docListProp( "Throws" );
- }
- elsif( $text =~ /^\s*\@image\s+([^\s]+)\s*/ ) {
- textProp( "Image" );
- $extraprops{ "Path" } = $1;
- }
- elsif( $text =~ /^\s*\@param\s+(\w+)\s*/ ) {
- textProp( "Param" );
- $extraprops{ "Name" } = $1;
- }
- elsif( $text =~ /^\s*\@sect\s+/ ) {
-
- textProp( "DocSection" );
- }
- elsif( $text =~ /^\s*\@li\s+/ ) {
-
- textProp( "ListItem" );
- }
- elsif ( $text =~ /^\s*\@libdoc\s+/ ) {
- # Defines the text for the entire library
- docProp( "LibDoc" );
- }
- else {
- if ( $text =~ m#\*/# ) {
- $finished = 1;
- $text = $`;
- }
- $buffer .= $text;
- }
- }
-
- flushProp();
-
-
- return undef if !defined $docNode;
-
-# postprocess docnode
-
- # add a . to the end of the short if required.
- my $short = $docNode->{ClassShort};
-
- if ( defined $short ) {
- if ( !($short =~ /\.\s*$/) ) {
- $docNode->{ClassShort} =~ s/\s*$/./;
- }
- }
- else {
- # use first line of normal text as short name.
- if ( defined $docNode->{Text} ) {
- my $node;
- foreach $node ( @{$docNode->{Text}} ) {
- next if $node->{NodeType} ne "DocText";
- $short = $node->{astNodeName};
- $short = $`."." if $short =~ /\./;
- $docNode->{ClassShort} = $short;
- goto shortdone;
- }
- }
- }
-shortdone:
-
-# Join and break all word list props so that they are one string per list
-# node, ie remove all commas and spaces.
-
- recombineOnWords( $docNode, "See" );
- recombineOnWords( $docNode, "Throws" );
-
- return $docNode;
-}
-
-=head3 setType
-
- Parameters: propname, proptype ( 0 = single, 1 = list, 2 = text )
-
- Set the name and type of the pending property.
-
-=cut
-
-sub setType
-{
- ( $currentProp, $propType ) = @_;
-}
-
-=head3 flushProp
-
- Flush any pending item and reset the buffer. type is set to DocText.
-
-=cut
-
-sub flushProp
-{
- return if $buffer eq "";
- initDocNode() unless defined $docNode;
-
- if( $propType == 1 ) {
- # list prop
- $docNode->AddPropList( $currentProp, $buffer );
- }
- elsif ( $propType == 2 ) {
- # text prop
- my $textnode = Ast::New( $buffer );
- $textnode->AddProp( 'NodeType', $currentProp );
- $docNode->AddPropList( 'Text', $textnode );
-
- foreach my $prop ( keys %extraprops ) {
- $textnode->AddProp( $prop,
- $extraprops{ $prop } );
- }
-
- %extraprops = ();
- }
- else {
- # one-off prop
- $docNode->AddProp( $currentProp, $buffer );
- }
-
- # reset buffer
- $buffer = "";
- setType( "DocText", 2 );
-}
-
-=head3 codeProp
-
- Flush the last node, add a new property and reset type to DocText.
-
-=cut
-
-sub codeProp
-{
- my( $prop, $val ) = @_;
-
- flushProp();
-
- initDocNode() unless defined $docNode;
- $docNode->AddPropList( $prop, $val );
-
- setType( "DocText", 2 );
-
-}
-
-=head3 docListProp
-
- The next item is a list property of docNode.
-
-=cut
-
-sub docListProp
-{
- my( $prop ) = @_;
-
- flushProp();
-
- $buffer = $';
- setType( $prop, 1 );
-}
-
-=head3 docProp
-
- The next item is a simple property of docNode.
-
-=cut
-
-sub docProp
-{
- my( $prop ) = @_;
-
- flushProp();
-
- $buffer = $';
- setType( $prop, 0 );
-}
-
-=head3 textProp
-
- Parameters: prop, val
-
- Set next item to be a 'Text' list node. if val is assigned, the
- new node is assigned that text and flushed immediately. If this
- is the case, the next item is given the 'DocText' text property.
-
-=cut
-
-sub textProp
-{
- my( $prop, $val ) = @_;
-
- flushProp();
-
- if ( defined $val ) {
- $buffer = $val;
- setType( $prop, 2 );
- flushProp();
- $prop = "DocText";
- }
-
- setType( $prop, 2 );
- $buffer = $';
-}
-
-
-=head3 initDocNode
-
- Creates docNode if it is not defined.
-
-=cut
-
-sub initDocNode
-{
- $docNode = Ast::New( "Doc" );
- $docNode->AddProp( "NodeType", "DocNode" );
-}
-
-sub recombineOnWords
-{
- my ( $docNode, $prop ) = @_;
-
- if ( exists $docNode->{$prop} ) {
- my @oldsee = @{$docNode->{$prop}};
- @{$docNode->{$prop}} = split (/[\s,]+/, join( " ", @oldsee ));
- }
-}
-
-###############
-
-=head2 attachDoc
-
-Connects a docnode to a code node, setting any other properties
-if required, such as groups, internal/deprecated flags etc.
-
-=cut
-
-sub attachDoc
-{
- my ( $node, $doc, $rootnode ) = @_;
-
- $node->AddProp( "DocNode", $doc );
- $node->AddProp( "Internal", 1 ) if defined $doc->{Internal};
- $node->AddProp( "Deprecated", 1 ) if defined $doc->{Deprecated};
-
- # attach group definitions if they exist
- if ( defined $doc->{Groups} ) {
- my $groupdef = $rootnode->{Groups};
- if( !defined $groupdef ) {
- $groupdef = Ast::New( "Groups" );
- $rootnode->AddProp( "Groups", $groupdef );
- }
-
- foreach my $grp ( @{$doc->{Groups}} ) {
- if ( defined $groupdef->{ $grp->{astNodeName} } ) {
- $groupdef->{ $grp->{ astNodeName}
- }->AddProp( "Desc", $grp->{Desc} );
- }
- else {
- $groupdef->AddProp( $grp->{astNodeName}, $grp );
- }
- }
- }
-
- # attach node to group index(es)
- # create groups if not found, they may be parsed later.
-
- if ( defined $doc->{InGroup} ) {
- my $groupdef = $rootnode->{Groups};
-
- foreach my $grp ( @{$doc->{InGroup}} ) {
- if ( !exists $groupdef->{$grp} ) {
- my $newgrp = Ast::New( $grp );
- $newgrp->AddProp( "Desc", $grp );
- $newgrp->AddProp( "NodeType", "GroupDef" );
- $groupdef->AddProp( $grp, $newgrp );
- }
-
- $groupdef->{$grp}->AddPropList( "Kids", $node );
- }
- }
-}
-
-1;
diff --git a/dcopidlng/kdocUtil.pm b/dcopidlng/kdocUtil.pm
deleted file mode 100644
index 629147ac3..000000000
--- a/dcopidlng/kdocUtil.pm
+++ /dev/null
@@ -1,189 +0,0 @@
-
-package kdocUtil;
-
-use strict;
-
-
-=head1 kdocUtil
-
- General utilities.
-
-=head2 countReg
-
- Parameters: string, regexp
-
- Returns the number of times of regexp occurs in string.
-
-=cut
-
-sub countReg
-{
- my( $str, $regexp ) = @_;
- my( $count ) = 0;
-
- while( $str =~ /$regexp/s ) {
- $count++;
-
- $str =~ s/$regexp//s;
- }
-
- return $count;
-}
-
-=head2 findCommonPrefix
-
- Parameters: string, string
-
- Returns the prefix common to both strings. An empty string
- is returned if the strings have no common prefix.
-
-=cut
-
-sub findCommonPrefix
-{
- my @s1 = split( "/", $_[0] );
- my @s2 = split( "/", $_[1] );
- my $accum = "";
- my $len = ($#s2 > $#s1 ) ? $#s1 : $#s2;
-
- for my $i ( 0..$len ) {
-# print "Compare: $i '$s1[$i]', '$s2[$i]'\n";
- last if $s1[ $i ] ne $s2[ $i ];
- $accum .= $s1[ $i ]."/";
- }
-
- return $accum;
-}
-
-=head2 makeRelativePath
-
- Parameters: localpath, destpath
-
- Returns a relative path to the destination from the local path,
- after removal of any common prefix.
-
-=cut
-
-sub makeRelativePath
-{
- my ( $from, $to ) = @_;
-
- # remove prefix
- $from .= '/' unless $from =~ m#/$#;
- $to .= '/' unless $to =~ m#/$#;
-
- my $pfx = findCommonPrefix( $from, $to );
-
- if ( $pfx ne "" ) {
- $from =~ s/^$pfx//g;
- $to =~ s/^$pfx//g;
- }
-# print "Prefix is '$pfx'\n";
-
- $from =~ s#/+#/#g;
- $to =~ s#/+#/#g;
- $pfx = countReg( $from, '\/' );
-
- my $rel = "../" x $pfx;
- $rel .= $to;
-
- return $rel;
-}
-
-sub hostName
-{
- my $host = "";
- my @hostenvs = qw( HOST HOSTNAME COMPUTERNAME );
-
- # Host name
- foreach my $evar ( @hostenvs ) {
- next unless defined $ENV{ $evar };
-
- $host = $ENV{ $evar };
- last;
- }
-
- if( $host eq "" ) {
- $host = `uname -n`;
- chop $host;
- }
-
- return $host;
-}
-
-sub userName
-{
- my $who = "";
- my @userenvs = qw( USERNAME USER LOGNAME );
-
- # User name
- foreach my $evar ( @userenvs ) {
- next unless defined $ENV{ $evar };
-
- $who = $ENV{ $evar };
- last;
- }
-
- if( $who eq "" ) {
- if ( $who = `whoami` ) {
- chop $who;
- }
- elsif ( $who - `who am i` ) {
- $who = ( split (/ /, $who ) )[0];
- }
- }
-
- return $who;
-}
-
-=head2 splitUnnested
- Helper to split a list using a delimiter, but looking for
- nesting with (), {}, [] and <>.
- Example: splitting int a, QPair<c,b> d, e=","
- on ',' will give 3 items in the list.
-
- Parameter: delimiter, string
- Returns: array, after splitting the string
-
- Thanks to Ashley Winters
-=cut
-sub splitUnnested($$) {
- my $delim = shift;
- my $string = shift;
- my(%open) = (
- '[' => ']',
- '(' => ')',
- '<' => '>',
- '{' => '}',
- );
- my(%close) = reverse %open;
- my @ret;
- my $depth = 0;
- my $start = 0;
- my $indoublequotes = 0;
- while($string =~ /($delim|<<|>>|[][}{)(><\"])/g) {
- my $c = $1;
- if(!$depth and !$indoublequotes and $c eq $delim) {
- my $len = pos($string) - $start - 1;
- push @ret, substr($string, $start, $len);
- $start = pos($string);
- } elsif($open{$c}) {
- $depth++;
- } elsif($close{$c}) {
- $depth--;
- } elsif($c eq '"') {
- if ($indoublequotes) {
- $indoublequotes = 0;
- } else {
- $indoublequotes = 1;
- }
- }
- }
-
- my $subs = substr($string, $start);
- push @ret, $subs if ($subs);
- return @ret;
-}
-
-1;
-