diff options
Diffstat (limited to 'source4/build/pidl/validator.pm')
-rw-r--r-- | source4/build/pidl/validator.pm | 16 |
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}) { |