summaryrefslogtreecommitdiff
path: root/source4/build/pidl/validator.pm
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/validator.pm')
-rw-r--r--source4/build/pidl/validator.pm16
1 files changed, 16 insertions, 0 deletions
diff --git a/source4/build/pidl/validator.pm b/source4/build/pidl/validator.pm
index bb86fcca50..647a906878 100644
--- a/source4/build/pidl/validator.pm
+++ b/source4/build/pidl/validator.pm
@@ -17,6 +17,13 @@ sub fatal($$)
die("$pos->{FILE}:$pos->{LINE}:$s\n");
}
+sub nonfatal($$)
+{
+ my $pos = shift;
+ my $s = shift;
+ warn ("$pos->{FILE}:$pos->{LINE}:warning:$s\n");
+}
+
sub el_name($)
{
my $e = shift;
@@ -56,6 +63,7 @@ my %property_list = (
# function
"id" => {},# what is that? --metze
+ "noid" => {},
"in" => {},
"out" => {},
@@ -251,6 +259,14 @@ sub ValidFunction($)
ValidProperties($fn);
+ if (util::has_property($fn, "id")) {
+ nonfatal $fn, "[id()] is not correctly supported yet ($fn->{NAME})";
+ }
+
+ if (util::has_property($fn, "id") and util::has_property($fn, "noid")) {
+ fatal $fn, "function can't have [id()] and [noid] property ($fn->{NAME})";
+ }
+
foreach my $e (@{$fn->{ELEMENTS}}) {
$e->{PARENT} = $fn;
if (util::has_property($e, "ref") && !$e->{POINTERS}) {