diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/pidl/expr.yp | 6 | ||||
-rw-r--r-- | source4/pidl/idl.yp | 2 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Expr.pm | 6 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/IDL.pm | 423 | ||||
-rw-r--r-- | source4/pidl/tests/Util.pm | 12 | ||||
-rwxr-xr-x | source4/pidl/tests/util.pl | 1 |
6 files changed, 231 insertions, 219 deletions
diff --git a/source4/pidl/expr.yp b/source4/pidl/expr.yp index 58704ff89e..6faef27588 100644 --- a/source4/pidl/expr.yp +++ b/source4/pidl/expr.yp @@ -110,7 +110,11 @@ sub _Dereference($$) sub _Error($) { my ($self) = @_; - $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'"); + if (defined($self->YYData->{LAST_TOKEN})) { + $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'"); + } else { + $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."'"); + } } sub Run { diff --git a/source4/pidl/idl.yp b/source4/pidl/idl.yp index 3030348c5c..5ef4dca379 100644 --- a/source4/pidl/idl.yp +++ b/source4/pidl/idl.yp @@ -179,7 +179,7 @@ typedecl: usertype ';' { $_[1] }; sign: 'signed' | 'unsigned'; existingtype: - | sign identifier { "$_[1] $_[2]" } + sign identifier { ($_[1]?$_[1]:"signed") ." $_[2]" } | identifier ; diff --git a/source4/pidl/lib/Parse/Pidl/Expr.pm b/source4/pidl/lib/Parse/Pidl/Expr.pm index fc0a3a92aa..c6e5cd3dca 100644 --- a/source4/pidl/lib/Parse/Pidl/Expr.pm +++ b/source4/pidl/lib/Parse/Pidl/Expr.pm @@ -1349,7 +1349,11 @@ sub _Dereference($$) sub _Error($) { my ($self) = @_; - $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'"); + if (defined($self->YYData->{LAST_TOKEN})) { + $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."' near `". $self->YYData->{LAST_TOKEN} . "'"); + } else { + $self->YYData->{ERROR}->("Parse error in `".$self->YYData->{FULL_INPUT}."'"); + } } sub Run { diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index 13a34fae64..3d9eb4ea74 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -37,7 +37,7 @@ sub new { "import" => 6, "include" => 11 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'importlib' => 9, 'interface' => 8, @@ -106,7 +106,7 @@ sub new { } }, {#State 13 - DEFAULT => -125 + DEFAULT => -124 }, {#State 14 DEFAULT => -10 @@ -161,7 +161,7 @@ sub new { } }, {#State 22 - DEFAULT => -121 + DEFAULT => -120 }, {#State 23 ACTIONS => { @@ -187,10 +187,10 @@ sub new { ACTIONS => { "(" => 36 }, - DEFAULT => -96 + DEFAULT => -95 }, {#State 27 - DEFAULT => -94 + DEFAULT => -93 }, {#State 28 DEFAULT => -7 @@ -230,7 +230,7 @@ sub new { } }, {#State 35 - DEFAULT => -93 + DEFAULT => -92 }, {#State 36 ACTIONS => { @@ -238,7 +238,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'text' => 46, @@ -266,7 +266,7 @@ sub new { "const" => 58, "struct" => 61 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'typedecl' => 62, 'function' => 51, @@ -284,7 +284,7 @@ sub new { } }, {#State 40 - DEFAULT => -95 + DEFAULT => -94 }, {#State 41 ACTIONS => { @@ -304,7 +304,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -98 + DEFAULT => -97 }, {#State 42 ACTIONS => { @@ -313,22 +313,22 @@ sub new { } }, {#State 43 - DEFAULT => -104 + DEFAULT => -103 }, {#State 44 - DEFAULT => -124 + DEFAULT => -123 }, {#State 45 - DEFAULT => -103 + DEFAULT => -102 }, {#State 46 - DEFAULT => -105 + DEFAULT => -104 }, {#State 47 ACTIONS => { ";" => 86 }, - DEFAULT => -126, + DEFAULT => -125, GOTOS => { 'optional_semicolon' => 87 } @@ -342,7 +342,7 @@ sub new { } }, {#State 49 - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'property_list' => 89 } @@ -351,7 +351,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 91 } @@ -370,7 +370,7 @@ sub new { "const" => 58, "struct" => 61 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'typedecl' => 62, 'function' => 51, @@ -419,7 +419,7 @@ sub new { DEFAULT => -18 }, {#State 56 - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'property_list' => 103 } @@ -445,7 +445,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 105 } @@ -457,7 +457,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 106 } @@ -466,7 +466,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 90 }, - DEFAULT => -123, + DEFAULT => -122, GOTOS => { 'optional_identifier' => 107 } @@ -489,7 +489,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 108, @@ -503,7 +503,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 109, @@ -517,7 +517,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 110, @@ -531,7 +531,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 111, @@ -545,7 +545,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 112, @@ -559,7 +559,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 113, @@ -573,7 +573,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 114, @@ -587,7 +587,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 115, @@ -602,7 +602,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 117, @@ -616,7 +616,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 118, @@ -630,7 +630,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 119, @@ -644,7 +644,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 115, @@ -659,7 +659,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 121, @@ -673,7 +673,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 122, @@ -687,7 +687,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 123, @@ -701,7 +701,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 124, @@ -710,10 +710,10 @@ sub new { } }, {#State 85 - DEFAULT => -97 + DEFAULT => -96 }, {#State 86 - DEFAULT => -127 + DEFAULT => -126 }, {#State 87 DEFAULT => -12 @@ -748,13 +748,13 @@ sub new { } }, {#State 90 - DEFAULT => -122 + DEFAULT => -121 }, {#State 91 ACTIONS => { "{" => 128 }, - DEFAULT => -77, + DEFAULT => -76, GOTOS => { 'union_body' => 129, 'opt_union_body' => 127 @@ -764,7 +764,7 @@ sub new { ACTIONS => { ";" => 86 }, - DEFAULT => -126, + DEFAULT => -125, GOTOS => { 'optional_semicolon' => 130 } @@ -776,13 +776,13 @@ sub new { DEFAULT => -40 }, {#State 95 - DEFAULT => -48 + DEFAULT => -47 }, {#State 96 - DEFAULT => -46 + DEFAULT => -45 }, {#State 97 - DEFAULT => -45 + DEFAULT => -44 }, {#State 98 ACTIONS => { @@ -793,7 +793,7 @@ sub new { } }, {#State 99 - DEFAULT => -47 + DEFAULT => -46 }, {#State 100 DEFAULT => -41 @@ -824,7 +824,7 @@ sub new { } }, {#State 104 - DEFAULT => -81, + DEFAULT => -80, GOTOS => { 'pointers' => 140 } @@ -833,7 +833,7 @@ sub new { ACTIONS => { "{" => 142 }, - DEFAULT => -67, + DEFAULT => -66, GOTOS => { 'struct_body' => 141, 'opt_struct_body' => 143 @@ -843,7 +843,7 @@ sub new { ACTIONS => { "{" => 144 }, - DEFAULT => -50, + DEFAULT => -49, GOTOS => { 'opt_enum_body' => 146, 'enum_body' => 145 @@ -853,7 +853,7 @@ sub new { ACTIONS => { "{" => 148 }, - DEFAULT => -58, + DEFAULT => -57, GOTOS => { 'bitmap_body' => 149, 'opt_bitmap_body' => 147 @@ -877,7 +877,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -115 + DEFAULT => -114 }, {#State 109 ACTIONS => { @@ -888,7 +888,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -106 + DEFAULT => -105 }, {#State 110 ACTIONS => { @@ -908,7 +908,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -110 + DEFAULT => -109 }, {#State 111 ACTIONS => { @@ -928,7 +928,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -118 + DEFAULT => -117 }, {#State 112 ACTIONS => { @@ -939,7 +939,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -117 + DEFAULT => -116 }, {#State 113 ACTIONS => { @@ -950,7 +950,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -108 + DEFAULT => -107 }, {#State 114 ACTIONS => { @@ -970,7 +970,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -114 + DEFAULT => -113 }, {#State 115 ACTIONS => { @@ -990,7 +990,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -100 + DEFAULT => -99 }, {#State 116 ACTIONS => { @@ -1007,7 +1007,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -112 + DEFAULT => -111 }, {#State 118 ACTIONS => { @@ -1018,7 +1018,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -113 + DEFAULT => -112 }, {#State 119 ACTIONS => { @@ -1038,7 +1038,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -116 + DEFAULT => -115 }, {#State 120 ACTIONS => { @@ -1055,7 +1055,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -111 + DEFAULT => -110 }, {#State 122 ACTIONS => { @@ -1066,7 +1066,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -107 + DEFAULT => -106 }, {#State 123 ACTIONS => { @@ -1077,7 +1077,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -109 + DEFAULT => -108 }, {#State 124 ACTIONS => { @@ -1097,7 +1097,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -99 + DEFAULT => -98 }, {#State 125 DEFAULT => -14 @@ -1111,22 +1111,22 @@ sub new { } }, {#State 127 - DEFAULT => -79 + DEFAULT => -78 }, {#State 128 - DEFAULT => -74, + DEFAULT => -73, GOTOS => { 'union_elements' => 154 } }, {#State 129 - DEFAULT => -78 + DEFAULT => -77 }, {#State 130 DEFAULT => -15 }, {#State 131 - DEFAULT => -44 + DEFAULT => -43 }, {#State 132 ACTIONS => { @@ -1169,16 +1169,16 @@ sub new { } }, {#State 141 - DEFAULT => -68 + DEFAULT => -67 }, {#State 142 - DEFAULT => -83, + DEFAULT => -82, GOTOS => { 'element_list1' => 159 } }, {#State 143 - DEFAULT => -69 + DEFAULT => -68 }, {#State 144 ACTIONS => { @@ -1191,19 +1191,19 @@ sub new { } }, {#State 145 - DEFAULT => -51 + DEFAULT => -50 }, {#State 146 - DEFAULT => -52 + DEFAULT => -51 }, {#State 147 - DEFAULT => -60 + DEFAULT => -59 }, {#State 148 ACTIONS => { 'IDENTIFIER' => 22 }, - DEFAULT => -63, + DEFAULT => -62, GOTOS => { 'identifier' => 165, 'bitmap_element' => 164, @@ -1212,7 +1212,7 @@ sub new { } }, {#State 149 - DEFAULT => -59 + DEFAULT => -58 }, {#State 150 ACTIONS => { @@ -1220,7 +1220,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 167, @@ -1234,7 +1234,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 168, @@ -1248,7 +1248,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 169, @@ -1260,7 +1260,7 @@ sub new { ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 171 } @@ -1269,7 +1269,7 @@ sub new { ACTIONS => { "}" => 172 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'optional_base_element' => 174, 'property_list' => 173 @@ -1277,11 +1277,11 @@ sub new { }, {#State 155 ACTIONS => { - "," => -85, + "," => -84, "void" => 178, - ")" => -85 + ")" => -84 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_element' => 175, 'element_list2' => 177, @@ -1303,13 +1303,13 @@ sub new { } }, {#State 158 - DEFAULT => -82 + DEFAULT => -81 }, {#State 159 ACTIONS => { "}" => 182 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_element' => 183, 'property_list' => 176 @@ -1319,10 +1319,10 @@ sub new { ACTIONS => { "=" => 184 }, - DEFAULT => -55 + DEFAULT => -54 }, {#State 161 - DEFAULT => -53 + DEFAULT => -52 }, {#State 162 ACTIONS => { @@ -1334,10 +1334,10 @@ sub new { ACTIONS => { "," => 187 }, - DEFAULT => -64 + DEFAULT => -63 }, {#State 164 - DEFAULT => -61 + DEFAULT => -60 }, {#State 165 ACTIONS => { @@ -1367,7 +1367,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -120 + DEFAULT => -119 }, {#State 168 ACTIONS => { @@ -1387,7 +1387,7 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -101 + DEFAULT => -100 }, {#State 169 ACTIONS => { @@ -1398,7 +1398,7 @@ sub new { "{" => 76, "=" => 79 }, - DEFAULT => -119 + DEFAULT => -118 }, {#State 170 ACTIONS => { @@ -1407,7 +1407,7 @@ sub new { "]" => 190, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 191, @@ -1421,13 +1421,13 @@ sub new { } }, {#State 172 - DEFAULT => -76 + DEFAULT => -75 }, {#State 173 ACTIONS => { "[" => 17 }, - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_or_empty' => 193, 'base_element' => 194, @@ -1436,10 +1436,10 @@ sub new { } }, {#State 174 - DEFAULT => -75 + DEFAULT => -74 }, {#State 175 - DEFAULT => -87 + DEFAULT => -86 }, {#State 176 ACTIONS => { @@ -1453,7 +1453,6 @@ sub new { "[" => 17, "struct" => 61 }, - DEFAULT => -43, GOTOS => { 'existingtype' => 99, 'bitmap' => 65, @@ -1473,7 +1472,7 @@ sub new { } }, {#State 178 - DEFAULT => -86 + DEFAULT => -85 }, {#State 179 DEFAULT => -28 @@ -1489,7 +1488,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 201, @@ -1498,7 +1497,7 @@ sub new { } }, {#State 182 - DEFAULT => -66 + DEFAULT => -65 }, {#State 183 ACTIONS => { @@ -1511,7 +1510,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 203, @@ -1520,7 +1519,7 @@ sub new { } }, {#State 185 - DEFAULT => -49 + DEFAULT => -48 }, {#State 186 ACTIONS => { @@ -1546,7 +1545,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 206, @@ -1555,13 +1554,13 @@ sub new { } }, {#State 189 - DEFAULT => -57 + DEFAULT => -56 }, {#State 190 ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 207 } @@ -1590,7 +1589,7 @@ sub new { DEFAULT => -35 }, {#State 193 - DEFAULT => -73 + DEFAULT => -72 }, {#State 194 ACTIONS => { @@ -1598,7 +1597,7 @@ sub new { } }, {#State 195 - DEFAULT => -72 + DEFAULT => -71 }, {#State 196 ACTIONS => { @@ -1613,7 +1612,6 @@ sub new { "[" => 17, "struct" => 61 }, - DEFAULT => -43, GOTOS => { 'existingtype' => 99, 'bitmap' => 65, @@ -1627,13 +1625,13 @@ sub new { } }, {#State 197 - DEFAULT => -81, + DEFAULT => -80, GOTOS => { 'pointers' => 211 } }, {#State 198 - DEFAULT => -92, + DEFAULT => -91, GOTOS => { 'base_element' => 212, 'property_list' => 176 @@ -1650,7 +1648,7 @@ sub new { 'TEXT' => 13, 'IDENTIFIER' => 22 }, - DEFAULT => -102, + DEFAULT => -101, GOTOS => { 'identifier' => 45, 'anytext' => 214, @@ -1679,7 +1677,7 @@ sub new { } }, {#State 202 - DEFAULT => -84 + DEFAULT => -83 }, {#State 203 ACTIONS => { @@ -1699,13 +1697,13 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -56 + DEFAULT => -55 }, {#State 204 - DEFAULT => -54 + DEFAULT => -53 }, {#State 205 - DEFAULT => -62 + DEFAULT => -61 }, {#State 206 ACTIONS => { @@ -1725,25 +1723,25 @@ sub new { "." => 82, ">" => 83 }, - DEFAULT => -65 + DEFAULT => -64 }, {#State 207 - DEFAULT => -90 + DEFAULT => -89 }, {#State 208 ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 216 } }, {#State 209 - DEFAULT => -71 + DEFAULT => -70 }, {#State 210 - DEFAULT => -70 + DEFAULT => -69 }, {#State 211 ACTIONS => { @@ -1755,7 +1753,7 @@ sub new { } }, {#State 212 - DEFAULT => -88 + DEFAULT => -87 }, {#State 213 DEFAULT => -27 @@ -1784,13 +1782,13 @@ sub new { DEFAULT => -25 }, {#State 216 - DEFAULT => -91 + DEFAULT => -90 }, {#State 217 ACTIONS => { "[" => 170 }, - DEFAULT => -89, + DEFAULT => -88, GOTOS => { 'array_len' => 219 } @@ -1799,7 +1797,7 @@ sub new { DEFAULT => -26 }, {#State 219 - DEFAULT => -80 + DEFAULT => -79 } ], yyrules => @@ -2085,42 +2083,39 @@ sub 'sign', 1, undef ], [#Rule 43 - 'existingtype', 0, undef - ], - [#Rule 44 'existingtype', 2, sub #line 182 "idl.yp" -{ "$_[1] $_[2]" } +{ ($_[1]?$_[1]:"signed") ." $_[2]" } ], - [#Rule 45 + [#Rule 44 'existingtype', 1, undef ], - [#Rule 46 + [#Rule 45 'type', 1, undef ], - [#Rule 47 + [#Rule 46 'type', 1, undef ], - [#Rule 48 + [#Rule 47 'type', 1, sub #line 186 "idl.yp" { "void" } ], - [#Rule 49 + [#Rule 48 'enum_body', 3, sub #line 188 "idl.yp" { $_[2] } ], - [#Rule 50 + [#Rule 49 'opt_enum_body', 0, undef ], - [#Rule 51 + [#Rule 50 'opt_enum_body', 1, undef ], - [#Rule 52 + [#Rule 51 'enum', 3, sub #line 191 "idl.yp" @@ -2130,40 +2125,40 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 53 + [#Rule 52 'enum_elements', 1, sub #line 199 "idl.yp" { [ $_[1] ] } ], - [#Rule 54 + [#Rule 53 'enum_elements', 3, sub #line 200 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 55 + [#Rule 54 'enum_element', 1, undef ], - [#Rule 56 + [#Rule 55 'enum_element', 3, sub #line 204 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 57 + [#Rule 56 'bitmap_body', 3, sub #line 207 "idl.yp" { $_[2] } ], - [#Rule 58 + [#Rule 57 'opt_bitmap_body', 0, undef ], - [#Rule 59 + [#Rule 58 'opt_bitmap_body', 1, undef ], - [#Rule 60 + [#Rule 59 'bitmap', 3, sub #line 210 "idl.yp" @@ -2173,43 +2168,43 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 61 + [#Rule 60 'bitmap_elements', 1, sub #line 218 "idl.yp" { [ $_[1] ] } ], - [#Rule 62 + [#Rule 61 'bitmap_elements', 3, sub #line 219 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 63 + [#Rule 62 'opt_bitmap_elements', 0, undef ], - [#Rule 64 + [#Rule 63 'opt_bitmap_elements', 1, undef ], - [#Rule 65 + [#Rule 64 'bitmap_element', 3, sub #line 224 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 66 + [#Rule 65 'struct_body', 3, sub #line 227 "idl.yp" { $_[2] } ], - [#Rule 67 + [#Rule 66 'opt_struct_body', 0, undef ], - [#Rule 68 + [#Rule 67 'opt_struct_body', 1, undef ], - [#Rule 69 + [#Rule 68 'struct', 3, sub #line 231 "idl.yp" @@ -2219,7 +2214,7 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 70 + [#Rule 69 'empty_element', 2, sub #line 239 "idl.yp" @@ -2233,40 +2228,40 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 71 + [#Rule 70 'base_or_empty', 2, undef ], - [#Rule 72 + [#Rule 71 'base_or_empty', 1, undef ], - [#Rule 73 + [#Rule 72 'optional_base_element', 2, sub #line 253 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 74 + [#Rule 73 'union_elements', 0, undef ], - [#Rule 75 + [#Rule 74 'union_elements', 2, sub #line 258 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 76 + [#Rule 75 'union_body', 3, sub #line 261 "idl.yp" { $_[2] } ], - [#Rule 77 + [#Rule 76 'opt_union_body', 0, undef ], - [#Rule 78 + [#Rule 77 'opt_union_body', 1, undef ], - [#Rule 79 + [#Rule 78 'union', 3, sub #line 265 "idl.yp" @@ -2276,7 +2271,7 @@ sub "ELEMENTS" => $_[3] }} ], - [#Rule 80 + [#Rule 79 'base_element', 5, sub #line 273 "idl.yp" @@ -2290,117 +2285,120 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 81 + [#Rule 80 'pointers', 0, sub #line 287 "idl.yp" { 0 } ], - [#Rule 82 + [#Rule 81 'pointers', 2, sub #line 288 "idl.yp" { $_[1]+1 } ], - [#Rule 83 + [#Rule 82 'element_list1', 0, undef ], - [#Rule 84 + [#Rule 83 'element_list1', 3, sub #line 293 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 85 + [#Rule 84 'element_list2', 0, undef ], - [#Rule 86 + [#Rule 85 'element_list2', 1, undef ], - [#Rule 87 + [#Rule 86 'element_list2', 1, sub #line 299 "idl.yp" { [ $_[1] ] } ], - [#Rule 88 + [#Rule 87 'element_list2', 3, sub #line 300 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 89 + [#Rule 88 'array_len', 0, undef ], - [#Rule 90 + [#Rule 89 'array_len', 3, sub #line 305 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 91 + [#Rule 90 'array_len', 4, sub #line 306 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 92 + [#Rule 91 'property_list', 0, undef ], - [#Rule 93 + [#Rule 92 'property_list', 4, sub #line 312 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 94 + [#Rule 93 'properties', 1, sub #line 315 "idl.yp" { $_[1] } ], - [#Rule 95 + [#Rule 94 'properties', 3, sub #line 316 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 96 + [#Rule 95 'property', 1, sub #line 319 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 97 + [#Rule 96 'property', 4, sub #line 320 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 98 + [#Rule 97 'listtext', 1, undef ], - [#Rule 99 + [#Rule 98 'listtext', 3, sub #line 325 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 100 + [#Rule 99 'commalisttext', 1, undef ], - [#Rule 101 + [#Rule 100 'commalisttext', 3, sub #line 330 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 102 + [#Rule 101 'anytext', 0, sub #line 334 "idl.yp" { "" } ], + [#Rule 102 + 'anytext', 1, undef + ], [#Rule 103 'anytext', 1, undef ], @@ -2408,120 +2406,117 @@ sub 'anytext', 1, undef ], [#Rule 105 - 'anytext', 1, undef - ], - [#Rule 106 'anytext', 3, sub #line 336 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 107 + [#Rule 106 'anytext', 3, sub #line 337 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 108 + [#Rule 107 'anytext', 3, sub #line 338 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 109 + [#Rule 108 'anytext', 3, sub #line 339 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 110 + [#Rule 109 'anytext', 3, sub #line 340 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 111 + [#Rule 110 'anytext', 3, sub #line 341 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 112 + [#Rule 111 'anytext', 3, sub #line 342 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 113 + [#Rule 112 'anytext', 3, sub #line 343 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 114 + [#Rule 113 'anytext', 3, sub #line 344 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 115 + [#Rule 114 'anytext', 3, sub #line 345 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 116 + [#Rule 115 'anytext', 3, sub #line 346 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 117 + [#Rule 116 'anytext', 3, sub #line 347 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 118 + [#Rule 117 'anytext', 3, sub #line 348 "idl.yp" { "$_[1]$_[2]$_[3]" } ], - [#Rule 119 + [#Rule 118 'anytext', 5, sub #line 349 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 120 + [#Rule 119 'anytext', 5, sub #line 350 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 121 + [#Rule 120 'identifier', 1, undef ], - [#Rule 122 + [#Rule 121 'optional_identifier', 1, undef ], - [#Rule 123 + [#Rule 122 'optional_identifier', 0, undef ], - [#Rule 124 + [#Rule 123 'constant', 1, undef ], - [#Rule 125 + [#Rule 124 'text', 1, sub #line 364 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 126 + [#Rule 125 'optional_semicolon', 0, undef ], - [#Rule 127 + [#Rule 126 'optional_semicolon', 1, undef ] ], diff --git a/source4/pidl/tests/Util.pm b/source4/pidl/tests/Util.pm index 2f43abe1ed..cfa1422674 100644 --- a/source4/pidl/tests/Util.pm +++ b/source4/pidl/tests/Util.pm @@ -18,14 +18,22 @@ my $warnings = ""; undef &Parse::Pidl::warning; *Parse::Pidl::warning = sub { my ($e, $l) = @_; - $warnings .= "$e->{FILE}:$e->{LINE}: $l\n"; + if (defined($e)) { + $warnings .= "$e->{FILE}:$e->{LINE}: $l\n"; + } else { + $warnings .= "$l\n"; + } }; my $errors = ""; undef &Parse::Pidl::error; *Parse::Pidl::error = sub { my ($e, $l) = @_; - $errors .= "$e->{FILE}:$e->{LINE}: $l\n"; + if (defined($e)) { + $errors .= "$e->{FILE}:$e->{LINE}: $l\n"; + } else { + $errors .= "$l\n"; + } }; use Test::More; diff --git a/source4/pidl/tests/util.pl b/source4/pidl/tests/util.pl index cea59af1b6..19cb90c080 100755 --- a/source4/pidl/tests/util.pl +++ b/source4/pidl/tests/util.pl @@ -2,6 +2,7 @@ # (C) 2007 Jelmer Vernooij <jelmer@samba.org> # Published under the GNU General Public License use strict; +use warnings; use Test::More tests => 56; use FindBin qw($RealBin); |