summaryrefslogtreecommitdiff
path: root/source4/build/pidl/parser.pm
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-08-11 19:48:36 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:57:51 -0500
commit1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a (patch)
tree3b193a8d482844dbdd05ae335882c800908bdd0f /source4/build/pidl/parser.pm
parentca72bdfecbea2e332821bc292b4bb34f6c96ac2e (diff)
downloadsamba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.tar.gz
samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.tar.bz2
samba-1d3b81e6c0c4c654c7395fe84b053cd77ef7d81a.zip
r1736: - Pidl updates:
- Support for "object oriented" interfaces in pidl - Support for inherited interfaces in pidl - Simplification of the support for properties on an interface - Start on dcom rpc torture tests (This used to be commit 45c3d0036b8510102816f9cdff9210098259cc5f)
Diffstat (limited to 'source4/build/pidl/parser.pm')
-rw-r--r--source4/build/pidl/parser.pm28
1 files changed, 5 insertions, 23 deletions
diff --git a/source4/build/pidl/parser.pm b/source4/build/pidl/parser.pm
index bc9eaa627f..51d561d4b2 100644
--- a/source4/build/pidl/parser.pm
+++ b/source4/build/pidl/parser.pm
@@ -13,10 +13,6 @@ use client;
my %needed;
my %structs;
-my $if_uuid;
-my $if_version;
-my $if_endpoints;
-
sub pidl($)
{
print OUT shift;
@@ -622,7 +618,7 @@ sub ParseElementPrintBuffer($$)
}
if (util::array_size($e)) {
- ParseArrayPrint($e, $var_prefix);
+ ParseArrayPrint($e, $var_prefix)
} elsif (my $switch = util::has_property($e, "switch_is")) {
ParseElementPrintSwitch($e, $var_prefix, $switch);
} else {
@@ -1340,7 +1336,7 @@ sub ParseFunctionPull($)
sub FunctionTable($)
{
my($interface) = shift;
- my($data) = $interface->{DATA};
+ my($data) = $interface->{INHERITED_DATA};
my $count = 0;
my $uname = uc $interface->{NAME};
@@ -1368,11 +1364,11 @@ sub FunctionTable($)
my $endpoints;
- if (! defined $if_endpoints) {
- $if_endpoints = $interface->{NAME};
+ if (! defined $interface->{PROPERTIES}->{endpoints}) {
+ $interface->{PROPERTIES}->{endpoints} = $interface->{NAME};
}
- my @e = split / /, $if_endpoints;
+ my @e = split / /, $interface->{PROPERTIES}->{endpoints};
my $endpoint_count = $#e + 1;
pidl "static const char * const $interface->{NAME}\_endpoint_strings[] = {\n\t";
@@ -1501,17 +1497,6 @@ sub BuildNeeded($)
}
#####################################################################
-# parse the interface definitions
-sub ModuleHeader($)
-{
- my($h) = shift;
-
- $if_uuid = $h->{PROPERTIES}->{uuid};
- $if_version = $h->{PROPERTIES}->{version};
- $if_endpoints = $h->{PROPERTIES}->{endpoints};
-}
-
-#####################################################################
# parse a parsed IDL structure back into an IDL file
sub Parse($$)
{
@@ -1523,9 +1508,6 @@ sub Parse($$)
pidl "/* parser auto-generated by pidl */\n\n";
pidl "#include \"includes.h\"\n\n";
foreach my $x (@{$idl}) {
- ($x->{TYPE} eq "MODULEHEADER") &&
- ModuleHeader($x);
-
if ($x->{TYPE} eq "INTERFACE") {
BuildNeeded($x);
ParseInterface($x);