"length_is" => ["ELEMENT"],
);
-
-my($res);
-
sub warning($$)
-{
- my $l = shift;
- my $m = shift;
-
- print "$l->{FILE}:$l->{LINE}:Warning:$m\n";
-}
-
-sub error($$)
{
my ($l,$m) = @_;
- print "$l->{FILE}:$l->{LINE}:$m\n";
+
+ print STDERR "$l->{FILE}:$l->{LINE}:warning:$m\n";
}
sub CheckTypedef($)
{
- my $td = shift;
+ my ($td) = @_;
if (has_property($td, "nodiscriminant")) {
- error($td, "nodiscriminant property not supported");
+ warning($td, "nodiscriminant property not supported");
}
if ($td->{TYPE} eq "BITMAP") {
my $e = shift;
if (has_property($e, "noheader")) {
- error($e, "noheader property not supported");
+ warning($e, "noheader property not supported");
return;
}
}
if (has_property($e, "compression")) {
- error($e, "compression() property not supported");
+ warning($e, "compression() property not supported");
}
if (has_property($e, "obfuscation")) {
- error($e, "obfuscation() property not supported");
+ warning($e, "obfuscation() property not supported");
}
if (has_property($e, "sptr")) {
- error($e, "sptr() pointer property not supported");
+ warning($e, "sptr() pointer property not supported");
}
if (has_property($e, "relative")) {
- error($e, "relative() pointer property not supported");
+ warning($e, "relative() pointer property not supported");
}
- if (has_property($td, "flag")) {
+ if (has_property($e, "flag")) {
warning($e, "ignoring flag() property");
}
- if (has_property($td, "value")) {
+ if (has_property($e, "value")) {
warning($e, "ignoring value() property");
}
-
- StripProperties($e);
}
sub CheckFunction($)
my $fn = shift;
if (has_property($fn, "noopnum")) {
- error($fn, "noopnum not converted. Opcodes will be out of sync.");
+ warning($fn, "noopnum not converted. Opcodes will be out of sync.");
}
-
- StripProperties($fn);
-
-
}
sub CheckInterface($)
if (has_property($if, "pointer_default_top") and
$if->{PROPERTIES}->{pointer_default_top} ne "ref") {
- error($if, "pointer_default_top() is pidl-specific");
+ warning($if, "pointer_default_top() is pidl-specific");
}
- StripProperties($if);
-
foreach my $x (@{$if->{DATA}}) {
if ($x->{TYPE} eq "DECLARE") {
warning($if, "the declare keyword is pidl-specific");
{
my $pidl = shift;
my $nidl = [];
- my $res = "";
- foreach my $x (@{$pidl}) {
- push (@$nidl, CheckInterface($x))
- if ($x->{TYPE} eq "INTERFACE");
+ foreach (@{$pidl}) {
+ push (@$nidl, CheckInterface($_)) if ($_->{TYPE} eq "INTERFACE");
}
-
- return $res;
}
1;
package Parse::Pidl::Samba4::COM::Header;
-use Parse::Pidl::Typelist;
-use Parse::Pidl::Util qw(has_property);
+use Parse::Pidl::Typelist qw(mapType);
+use Parse::Pidl::Util qw(has_property is_constant);
use vars qw($VERSION);
$VERSION = '0.01';
foreach my $a (@{$f->{ELEMENTS}}) {
- $res .= ", " . Parse::Pidl::Typelist::mapType($a->{TYPE}) . " ";
+ $res .= ", " . mapType($a->{TYPE}) . " ";
my $l = $a->{POINTERS};
$l-- if (Parse::Pidl::Typelist::scalar_is_reference($a->{TYPE}));
$res .= "*";
}
- if (defined $a->{ARRAY_LEN}[0] &&
- !Parse::Pidl::Util::is_constant($a->{ARRAY_LEN}[0]) &&
+ if (defined $a->{ARRAY_LEN}[0] && !is_constant($a->{ARRAY_LEN}[0]) &&
!$a->{POINTERS}) {
$res .= "*";
}
$res .= $a->{NAME};
- if (defined $a->{ARRAY_LEN}[0] && Parse::Pidl::Util::is_constant($a->{ARRAY_LEN}[0])) {
+ if (defined $a->{ARRAY_LEN}[0] && is_constant($a->{ARRAY_LEN}[0])) {
$res .= "[$a->{ARRAY_LEN}[0]]";
}
}
my $f = shift;
my $res = "";
- foreach my $a (@{$f->{ELEMENTS}}) {
- $res .= ", $a->{NAME}";
- }
+ foreach (@{$f->{ELEMENTS}}) { $res .= ", $_->{NAME}"; }
return $res;
}
my $data = $interface->{DATA};
foreach my $d (@{$data}) {
- $res .= "\t" . Parse::Pidl::Typelist::mapType($d->{RETURN_TYPE}) . " (*$d->{NAME}) (struct $interface->{NAME} *d, TALLOC_CTX *mem_ctx" . GetArgumentProtoList($d) . ");\\\n" if ($d->{TYPE} eq "FUNCTION");
+ $res .= "\t" . mapType($d->{RETURN_TYPE}) . " (*$d->{NAME}) (struct $interface->{NAME} *d, TALLOC_CTX *mem_ctx" . GetArgumentProtoList($d) . ");\\\n" if ($d->{TYPE} eq "FUNCTION");
}
$res .= "\n";
$res .= "struct $interface->{NAME}_vtable {\n";