summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/pidl/expr.yp6
-rw-r--r--source4/pidl/idl.yp2
-rw-r--r--source4/pidl/lib/Parse/Pidl/Expr.pm6
-rw-r--r--source4/pidl/lib/Parse/Pidl/IDL.pm423
-rw-r--r--source4/pidl/tests/Util.pm12
-rwxr-xr-xsource4/pidl/tests/util.pl1
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);