summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl/Compat.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl/Compat.pm')
-rw-r--r--source4/pidl/lib/Parse/Pidl/Compat.pm163
1 files changed, 0 insertions, 163 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/Compat.pm b/source4/pidl/lib/Parse/Pidl/Compat.pm
deleted file mode 100644
index 7519021144..0000000000
--- a/source4/pidl/lib/Parse/Pidl/Compat.pm
+++ /dev/null
@@ -1,163 +0,0 @@
-###################################################
-# IDL Compatibility checker
-# Copyright jelmer@samba.org 2005
-# released under the GNU GPL
-
-package Parse::Pidl::Compat;
-
-use Parse::Pidl qw(warning);
-use Parse::Pidl::Util qw(has_property);
-use strict;
-
-use vars qw($VERSION);
-$VERSION = '0.01';
-
-my %supported_properties = (
- # interface
- "helpstring" => ["INTERFACE", "FUNCTION"],
- "version" => ["INTERFACE"],
- "uuid" => ["INTERFACE"],
- "endpoint" => ["INTERFACE"],
- "pointer_default" => ["INTERFACE"],
-
- # dcom
- "object" => ["INTERFACE"],
- "local" => ["INTERFACE", "FUNCTION"],
- "iid_is" => ["ELEMENT"],
- "call_as" => ["FUNCTION"],
- "idempotent" => ["FUNCTION"],
-
- # function
- "in" => ["ELEMENT"],
- "out" => ["ELEMENT"],
-
- # pointer
- "ref" => ["ELEMENT"],
- "ptr" => ["ELEMENT"],
- "unique" => ["ELEMENT"],
- "ignore" => ["ELEMENT"],
-
- "value" => ["ELEMENT"],
-
- # generic
- "public" => ["FUNCTION", "TYPEDEF"],
- "nopush" => ["FUNCTION", "TYPEDEF"],
- "nopull" => ["FUNCTION", "TYPEDEF"],
- "noprint" => ["FUNCTION", "TYPEDEF"],
- "noejs" => ["FUNCTION", "TYPEDEF"],
-
- # union
- "switch_is" => ["ELEMENT"],
- "switch_type" => ["ELEMENT", "TYPEDEF"],
- "case" => ["ELEMENT"],
- "default" => ["ELEMENT"],
-
- # subcontext
- "subcontext" => ["ELEMENT"],
- "subcontext_size" => ["ELEMENT"],
-
- # enum
- "enum16bit" => ["TYPEDEF"],
- "v1_enum" => ["TYPEDEF"],
-
- # bitmap
- "bitmap8bit" => ["TYPEDEF"],
- "bitmap16bit" => ["TYPEDEF"],
- "bitmap32bit" => ["TYPEDEF"],
- "bitmap64bit" => ["TYPEDEF"],
-
- # array
- "range" => ["ELEMENT"],
- "size_is" => ["ELEMENT"],
- "string" => ["ELEMENT"],
- "noheader" => ["ELEMENT"],
- "charset" => ["ELEMENT"],
- "length_is" => ["ELEMENT"],
-);
-
-sub CheckTypedef($)
-{
- my ($td) = @_;
-
- if (has_property($td, "nodiscriminant")) {
- warning($td, "nodiscriminant property not supported");
- }
-
- if ($td->{TYPE} eq "BITMAP") {
- warning($td, "converting bitmap to scalar");
- #FIXME
- }
-
- if (has_property($td, "gensize")) {
- warning($td, "ignoring gensize() property. ");
- }
-
- if (has_property($td, "enum8bit") and has_property($td, "enum16bit")) {
- warning($td, "8 and 16 bit enums not supported, converting to scalar");
- #FIXME
- }
-
- StripProperties($td);
-}
-
-sub CheckElement($)
-{
- my $e = shift;
-
- if (has_property($e, "noheader")) {
- warning($e, "noheader property not supported");
- return;
- }
-
- if (has_property($e, "subcontext")) {
- warning($e, "converting subcontext to byte array");
- #FIXME
- }
-
- if (has_property($e, "compression")) {
- warning($e, "compression() property not supported");
- }
-
- if (has_property($e, "sptr")) {
- warning($e, "sptr() pointer property not supported");
- }
-
- if (has_property($e, "relative")) {
- warning($e, "relative() pointer property not supported");
- }
-
- if (has_property($e, "flag")) {
- warning($e, "ignoring flag() property");
- }
-
- if (has_property($e, "value")) {
- warning($e, "ignoring value() property");
- }
-}
-
-sub CheckFunction($)
-{
- my $fn = shift;
-
- if (has_property($fn, "noopnum")) {
- warning($fn, "noopnum not converted. Opcodes will be out of sync.");
- }
-}
-
-sub CheckInterface($)
-{
- my $if = shift;
-
-}
-
-sub Check($)
-{
- my $pidl = shift;
- my $nidl = [];
-
- foreach (@{$pidl}) {
- push (@$nidl, CheckInterface($_)) if ($_->{TYPE} eq "INTERFACE");
- }
-}
-
-1;