diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-09-06 22:25:54 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:17:48 -0500 |
commit | c92781b333de6d9f7e5a9330ad4b1681c402cf91 (patch) | |
tree | 45f4fe4385c54fd8fbf9bb2da62667a17f38ece0 /source4/pidl | |
parent | 53605701152cea3fdaefcad788b38b88689e9bc7 (diff) | |
download | samba-c92781b333de6d9f7e5a9330ad4b1681c402cf91.tar.gz samba-c92781b333de6d9f7e5a9330ad4b1681c402cf91.tar.bz2 samba-c92781b333de6d9f7e5a9330ad4b1681c402cf91.zip |
r18194: Allow empty bitmap {} declarations.
(This used to be commit 084b5002b9a8c9790ce81480fe26d57e52789dbb)
Diffstat (limited to 'source4/pidl')
-rw-r--r-- | source4/pidl/idl.yp | 4 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/IDL.pm | 689 |
2 files changed, 354 insertions, 339 deletions
diff --git a/source4/pidl/idl.yp b/source4/pidl/idl.yp index 1f6f22e1a1..43f1db82c8 100644 --- a/source4/pidl/idl.yp +++ b/source4/pidl/idl.yp @@ -174,7 +174,7 @@ enum_element: identifier | identifier '=' anytext { "$_[1]$_[2]$_[3]" } ; -bitmap_body: '{' bitmap_elements '}' { $_[2] }; +bitmap_body: '{' opt_bitmap_elements '}' { $_[2] }; opt_bitmap_body: | bitmap_body; bitmap: 'bitmap' optional_identifier opt_bitmap_body {{ @@ -189,6 +189,8 @@ bitmap_elements: | bitmap_elements ',' bitmap_element { push(@{$_[1]}, $_[3]); $_[1] } ; +opt_bitmap_elements: | bitmap_elements; + bitmap_element: identifier '=' anytext { "$_[1] ( $_[3] )" } ; diff --git a/source4/pidl/lib/Parse/Pidl/IDL.pm b/source4/pidl/lib/Parse/Pidl/IDL.pm index dddbb26e76..b9c39f186e 100644 --- a/source4/pidl/lib/Parse/Pidl/IDL.pm +++ b/source4/pidl/lib/Parse/Pidl/IDL.pm @@ -509,7 +509,7 @@ sub new { ACTIONS => { '' => 2 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'interface' => 3, 'coclass' => 4, @@ -559,7 +559,7 @@ sub new { } }, {#State 9 - DEFAULT => -111 + DEFAULT => -113 }, {#State 10 ACTIONS => { @@ -570,10 +570,10 @@ sub new { ACTIONS => { "(" => 16 }, - DEFAULT => -86 + DEFAULT => -88 }, {#State 12 - DEFAULT => -84 + DEFAULT => -86 }, {#State 13 ACTIONS => { @@ -602,7 +602,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'listtext' => 26, @@ -621,7 +621,7 @@ sub new { } }, {#State 18 - DEFAULT => -83 + DEFAULT => -85 }, {#State 19 ACTIONS => { @@ -643,13 +643,13 @@ sub new { } }, {#State 22 - DEFAULT => -115 + DEFAULT => -117 }, {#State 23 - DEFAULT => -93 + DEFAULT => -95 }, {#State 24 - DEFAULT => -95 + DEFAULT => -97 }, {#State 25 ACTIONS => { @@ -669,7 +669,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -88 + DEFAULT => -90 }, {#State 26 ACTIONS => { @@ -678,13 +678,13 @@ sub new { } }, {#State 27 - DEFAULT => -94 + DEFAULT => -96 }, {#State 28 - DEFAULT => -114 + DEFAULT => -116 }, {#State 29 - DEFAULT => -85 + DEFAULT => -87 }, {#State 30 DEFAULT => -9 @@ -699,7 +699,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -720,7 +720,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -116, + DEFAULT => -118, GOTOS => { 'optional_semicolon' => 72 } @@ -739,7 +739,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 74, @@ -753,7 +753,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 75, @@ -767,7 +767,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 76, @@ -781,7 +781,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 77, @@ -795,7 +795,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 78, @@ -809,7 +809,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 79, @@ -823,7 +823,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -838,7 +838,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 82, @@ -852,7 +852,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 83, @@ -866,7 +866,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 84, @@ -880,7 +880,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 80, @@ -895,7 +895,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 86, @@ -909,7 +909,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 87, @@ -923,7 +923,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 88, @@ -937,7 +937,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 89, @@ -951,7 +951,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 90, @@ -960,10 +960,10 @@ sub new { } }, {#State 50 - DEFAULT => -87 + DEFAULT => -89 }, {#State 51 - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'property_list' => 91 } @@ -972,7 +972,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 93 } @@ -991,7 +991,7 @@ sub new { "const" => 60, "struct" => 63 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'typedecl' => 64, 'function' => 53, @@ -1040,7 +1040,7 @@ sub new { DEFAULT => -10 }, {#State 58 - DEFAULT => -82, + DEFAULT => -84, GOTOS => { 'property_list' => 105 } @@ -1066,7 +1066,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 107 } @@ -1078,7 +1078,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 108 } @@ -1087,7 +1087,7 @@ sub new { ACTIONS => { 'IDENTIFIER' => 92 }, - DEFAULT => -113, + DEFAULT => -115, GOTOS => { 'optional_identifier' => 109 } @@ -1105,7 +1105,7 @@ sub new { DEFAULT => -29 }, {#State 71 - DEFAULT => -117 + DEFAULT => -119 }, {#State 72 DEFAULT => -4 @@ -1133,7 +1133,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -105 + DEFAULT => -107 }, {#State 75 ACTIONS => { @@ -1144,7 +1144,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -96 + DEFAULT => -98 }, {#State 76 ACTIONS => { @@ -1164,7 +1164,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -104 + DEFAULT => -106 }, {#State 77 ACTIONS => { @@ -1184,7 +1184,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -100 + DEFAULT => -102 }, {#State 78 ACTIONS => { @@ -1204,7 +1204,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -108 + DEFAULT => -110 }, {#State 79 ACTIONS => { @@ -1215,7 +1215,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -107 + DEFAULT => -109 }, {#State 80 ACTIONS => { @@ -1235,7 +1235,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -90 + DEFAULT => -92 }, {#State 81 ACTIONS => { @@ -1252,7 +1252,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -102 + DEFAULT => -104 }, {#State 83 ACTIONS => { @@ -1263,7 +1263,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -103 + DEFAULT => -105 }, {#State 84 ACTIONS => { @@ -1283,7 +1283,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -106 + DEFAULT => -108 }, {#State 85 ACTIONS => { @@ -1300,7 +1300,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -101 + DEFAULT => -103 }, {#State 87 ACTIONS => { @@ -1311,7 +1311,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -98 + DEFAULT => -100 }, {#State 88 ACTIONS => { @@ -1322,7 +1322,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -97 + DEFAULT => -99 }, {#State 89 ACTIONS => { @@ -1333,7 +1333,7 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -99 + DEFAULT => -101 }, {#State 90 ACTIONS => { @@ -1353,7 +1353,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -89 + DEFAULT => -91 }, {#State 91 ACTIONS => { @@ -1380,13 +1380,13 @@ sub new { } }, {#State 92 - DEFAULT => -112 + DEFAULT => -114 }, {#State 93 ACTIONS => { "{" => 116 }, - DEFAULT => -67, + DEFAULT => -69, GOTOS => { 'union_body' => 117, 'opt_union_body' => 115 @@ -1396,7 +1396,7 @@ sub new { ACTIONS => { ";" => 71 }, - DEFAULT => -116, + DEFAULT => -118, GOTOS => { 'optional_semicolon' => 118 } @@ -1456,7 +1456,7 @@ sub new { } }, {#State 106 - DEFAULT => -71, + DEFAULT => -73, GOTOS => { 'pointers' => 128 } @@ -1465,7 +1465,7 @@ sub new { ACTIONS => { "{" => 130 }, - DEFAULT => -57, + DEFAULT => -59, GOTOS => { 'struct_body' => 129, 'opt_struct_body' => 131 @@ -1500,7 +1500,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 138, @@ -1514,7 +1514,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 139, @@ -1528,7 +1528,7 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, 'anytext' => 140, @@ -1545,16 +1545,16 @@ sub new { } }, {#State 115 - DEFAULT => -69 + DEFAULT => -71 }, {#State 116 - DEFAULT => -64, + DEFAULT => -66, GOTOS => { 'union_elements' => 142 } }, {#State 117 - DEFAULT => -68 + DEFAULT => -70 }, {#State 118 DEFAULT => -7 @@ -1603,16 +1603,16 @@ sub new { } }, {#State 129 - DEFAULT => -58 + DEFAULT => -60 }, {#State 130 - DEFAULT => -73, + DEFAULT => -75, GOTOS => { 'element_list1' => 147 } }, {#State 131 - DEFAULT => -59 + DEFAULT => -61 }, {#State 132 ACTIONS => { @@ -1637,10 +1637,12 @@ sub new { ACTIONS => { 'IDENTIFIER' => 9 }, + DEFAULT => -55, GOTOS => { 'identifier' => 153, - 'bitmap_elements' => 152, - 'bitmap_element' => 151 + 'bitmap_element' => 152, + 'bitmap_elements' => 151, + 'opt_bitmap_elements' => 154 } }, {#State 137 @@ -1664,7 +1666,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -110 + DEFAULT => -112 }, {#State 139 ACTIONS => { @@ -1684,7 +1686,7 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -91 + DEFAULT => -93 }, {#State 140 ACTIONS => { @@ -1695,70 +1697,70 @@ sub new { "{" => 40, "=" => 43 }, - DEFAULT => -109 + DEFAULT => -111 }, {#State 141 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 155 + 'array_len' => 156 } }, {#State 142 ACTIONS => { - "}" => 156 + "}" => 157 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'optional_base_element' => 158, - 'property_list' => 157 + 'optional_base_element' => 159, + 'property_list' => 158 } }, {#State 143 ACTIONS => { - "," => -75, - "void" => 162, - ")" => -75 + "," => -77, + "void" => 163, + ")" => -77 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'base_element' => 159, - 'element_list2' => 161, - 'property_list' => 160 + 'base_element' => 160, + 'element_list2' => 162, + 'property_list' => 161 } }, {#State 144 ACTIONS => { - ";" => 163 + ";" => 164 } }, {#State 145 ACTIONS => { - "[" => 154, - "=" => 165 + "[" => 155, + "=" => 166 }, GOTOS => { - 'array_len' => 164 + 'array_len' => 165 } }, {#State 146 - DEFAULT => -72 + DEFAULT => -74 }, {#State 147 ACTIONS => { - "}" => 166 + "}" => 167 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'base_element' => 167, - 'property_list' => 160 + 'base_element' => 168, + 'property_list' => 161 } }, {#State 148 ACTIONS => { - "=" => 168 + "=" => 169 }, DEFAULT => -47 }, @@ -1767,18 +1769,18 @@ sub new { }, {#State 150 ACTIONS => { - "}" => 169, - "," => 170 + "}" => 170, + "," => 171 } }, {#State 151 - DEFAULT => -53 - }, - {#State 152 ACTIONS => { - "}" => 171, "," => 172 - } + }, + DEFAULT => -56 + }, + {#State 152 + DEFAULT => -53 }, {#State 153 ACTIONS => { @@ -1787,46 +1789,51 @@ sub new { }, {#State 154 ACTIONS => { + "}" => 174 + } + }, + {#State 155 + ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, - "]" => 174, + "]" => 175, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 175, + 'anytext' => 176, 'text' => 24, 'constant' => 27 } }, - {#State 155 + {#State 156 ACTIONS => { - ";" => 176 + ";" => 177 } }, - {#State 156 - DEFAULT => -66 - }, {#State 157 + DEFAULT => -68 + }, + {#State 158 ACTIONS => { "[" => 7 }, - DEFAULT => -82, + DEFAULT => -84, GOTOS => { - 'base_or_empty' => 177, - 'base_element' => 178, - 'empty_element' => 179, - 'property_list' => 180 + 'base_or_empty' => 178, + 'base_element' => 179, + 'empty_element' => 180, + 'property_list' => 181 } }, - {#State 158 - DEFAULT => -65 - }, {#State 159 - DEFAULT => -77 + DEFAULT => -67 }, {#State 160 + DEFAULT => -79 + }, + {#State 161 ACTIONS => { 'IDENTIFIER' => 9, "signed" => 102, @@ -1846,86 +1853,83 @@ sub new { 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 181, + 'type' => 182, 'union' => 70, 'sign' => 100 } }, - {#State 161 + {#State 162 ACTIONS => { - "," => 182, - ")" => 183 + "," => 183, + ")" => 184 } }, - {#State 162 - DEFAULT => -76 - }, {#State 163 - DEFAULT => -20 + DEFAULT => -78 }, {#State 164 + DEFAULT => -20 + }, + {#State 165 ACTIONS => { - "=" => 184 + "=" => 185 } }, - {#State 165 + {#State 166 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 185, + 'anytext' => 186, 'text' => 24, 'constant' => 27 } }, - {#State 166 - DEFAULT => -56 - }, {#State 167 + DEFAULT => -58 + }, + {#State 168 ACTIONS => { - ";" => 186 + ";" => 187 } }, - {#State 168 + {#State 169 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 187, + 'anytext' => 188, 'text' => 24, 'constant' => 27 } }, - {#State 169 + {#State 170 DEFAULT => -41 }, - {#State 170 + {#State 171 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { 'identifier' => 148, - 'enum_element' => 188 + 'enum_element' => 189 } }, - {#State 171 - DEFAULT => -49 - }, {#State 172 ACTIONS => { 'IDENTIFIER' => 9 }, GOTOS => { 'identifier' => 153, - 'bitmap_element' => 189 + 'bitmap_element' => 190 } }, {#State 173 @@ -1934,24 +1938,27 @@ sub new { 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 190, + 'anytext' => 191, 'text' => 24, 'constant' => 27 } }, {#State 174 + DEFAULT => -49 + }, + {#State 175 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 191 + 'array_len' => 192 } }, - {#State 175 + {#State 176 ACTIONS => { "-" => 35, ":" => 34, @@ -1967,30 +1974,30 @@ sub new { "(" => 44, "*" => 46, "." => 47, - "]" => 192, + "]" => 193, ">" => 48 } }, - {#State 176 - DEFAULT => -27 - }, {#State 177 - DEFAULT => -63 + DEFAULT => -27 }, {#State 178 - ACTIONS => { - ";" => 193 - } + DEFAULT => -65 }, {#State 179 - DEFAULT => -62 + ACTIONS => { + ";" => 194 + } }, {#State 180 + DEFAULT => -64 + }, + {#State 181 ACTIONS => { 'IDENTIFIER' => 9, "signed" => 102, "union" => 52, - ";" => 194, + ";" => 195, "enum" => 65, "bitmap" => 66, 'void' => 97, @@ -2006,50 +2013,50 @@ sub new { 'identifier' => 99, 'struct' => 59, 'enum' => 61, - 'type' => 181, + 'type' => 182, 'union' => 70, 'sign' => 100 } }, - {#State 181 - DEFAULT => -71, + {#State 182 + DEFAULT => -73, GOTOS => { - 'pointers' => 195 + 'pointers' => 196 } }, - {#State 182 - DEFAULT => -82, + {#State 183 + DEFAULT => -84, GOTOS => { - 'base_element' => 196, - 'property_list' => 160 + 'base_element' => 197, + 'property_list' => 161 } }, - {#State 183 + {#State 184 ACTIONS => { - ";" => 197 + ";" => 198 } }, - {#State 184 + {#State 185 ACTIONS => { 'CONSTANT' => 28, 'TEXT' => 22, 'IDENTIFIER' => 9 }, - DEFAULT => -92, + DEFAULT => -94, GOTOS => { 'identifier' => 23, - 'anytext' => 198, + 'anytext' => 199, 'text' => 24, 'constant' => 27 } }, - {#State 185 + {#State 186 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 199, + ";" => 200, "+" => 39, "~" => 38, "&" => 41, @@ -2063,10 +2070,10 @@ sub new { ">" => 48 } }, - {#State 186 - DEFAULT => -74 - }, {#State 187 + DEFAULT => -76 + }, + {#State 188 ACTIONS => { "-" => 35, ":" => 34, @@ -2086,13 +2093,13 @@ sub new { }, DEFAULT => -48 }, - {#State 188 + {#State 189 DEFAULT => -46 }, - {#State 189 + {#State 190 DEFAULT => -54 }, - {#State 190 + {#State 191 ACTIONS => { "-" => 35, ":" => 34, @@ -2110,48 +2117,48 @@ sub new { "." => 47, ">" => 48 }, - DEFAULT => -55 - }, - {#State 191 - DEFAULT => -80 + DEFAULT => -57 }, {#State 192 + DEFAULT => -82 + }, + {#State 193 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 200 + 'array_len' => 201 } }, - {#State 193 - DEFAULT => -61 - }, {#State 194 - DEFAULT => -60 + DEFAULT => -63 }, {#State 195 + DEFAULT => -62 + }, + {#State 196 ACTIONS => { 'IDENTIFIER' => 9, "*" => 146 }, GOTOS => { - 'identifier' => 201 + 'identifier' => 202 } }, - {#State 196 - DEFAULT => -78 - }, {#State 197 - DEFAULT => -19 + DEFAULT => -80 }, {#State 198 + DEFAULT => -19 + }, + {#State 199 ACTIONS => { "-" => 35, ":" => 34, "?" => 36, "<" => 37, - ";" => 202, + ";" => 203, "+" => 39, "~" => 38, "&" => 41, @@ -2165,26 +2172,26 @@ sub new { ">" => 48 } }, - {#State 199 - DEFAULT => -17 - }, {#State 200 - DEFAULT => -81 + DEFAULT => -17 }, {#State 201 + DEFAULT => -83 + }, + {#State 202 ACTIONS => { - "[" => 154 + "[" => 155 }, - DEFAULT => -79, + DEFAULT => -81, GOTOS => { - 'array_len' => 203 + 'array_len' => 204 } }, - {#State 202 + {#State 203 DEFAULT => -18 }, - {#State 203 - DEFAULT => -70 + {#State 204 + DEFAULT => -72 } ], yyrules => @@ -2198,19 +2205,19 @@ sub new { [#Rule 2 'idl', 2, sub -#line 19 "pidl/idl.yp" +#line 19 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 3 'idl', 2, sub -#line 20 "pidl/idl.yp" +#line 20 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 4 'coclass', 7, sub -#line 24 "pidl/idl.yp" +#line 24 "idl.yp" {$_[3] => { "TYPE" => "COCLASS", "PROPERTIES" => $_[1], @@ -2226,13 +2233,13 @@ sub [#Rule 6 'interface_names', 4, sub -#line 36 "pidl/idl.yp" +#line 36 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 7 'interface', 8, sub -#line 40 "pidl/idl.yp" +#line 40 "idl.yp" {$_[3] => { "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], @@ -2249,19 +2256,19 @@ sub [#Rule 9 'base_interface', 2, sub -#line 53 "pidl/idl.yp" +#line 53 "idl.yp" { $_[2] } ], [#Rule 10 'definitions', 1, sub -#line 57 "pidl/idl.yp" +#line 57 "idl.yp" { [ $_[1] ] } ], [#Rule 11 'definitions', 2, sub -#line 58 "pidl/idl.yp" +#line 58 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], [#Rule 12 @@ -2282,7 +2289,7 @@ sub [#Rule 17 'const', 7, sub -#line 66 "pidl/idl.yp" +#line 66 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2296,7 +2303,7 @@ sub [#Rule 18 'const', 8, sub -#line 76 "pidl/idl.yp" +#line 76 "idl.yp" {{ "TYPE" => "CONST", "DTYPE" => $_[2], @@ -2311,7 +2318,7 @@ sub [#Rule 19 'function', 7, sub -#line 90 "pidl/idl.yp" +#line 90 "idl.yp" {{ "TYPE" => "FUNCTION", "NAME" => $_[3], @@ -2325,7 +2332,7 @@ sub [#Rule 20 'declare', 5, sub -#line 102 "pidl/idl.yp" +#line 102 "idl.yp" {{ "TYPE" => "DECLARE", "PROPERTIES" => $_[2], @@ -2347,7 +2354,7 @@ sub [#Rule 24 'decl_enum', 1, sub -#line 116 "pidl/idl.yp" +#line 116 "idl.yp" {{ "TYPE" => "ENUM" }} @@ -2355,7 +2362,7 @@ sub [#Rule 25 'decl_bitmap', 1, sub -#line 122 "pidl/idl.yp" +#line 122 "idl.yp" {{ "TYPE" => "BITMAP" }} @@ -2363,7 +2370,7 @@ sub [#Rule 26 'decl_union', 1, sub -#line 128 "pidl/idl.yp" +#line 128 "idl.yp" {{ "TYPE" => "UNION" }} @@ -2371,7 +2378,7 @@ sub [#Rule 27 'typedef', 6, sub -#line 134 "pidl/idl.yp" +#line 134 "idl.yp" {{ "TYPE" => "TYPEDEF", "PROPERTIES" => $_[2], @@ -2397,7 +2404,7 @@ sub [#Rule 32 'typedecl', 2, sub -#line 147 "pidl/idl.yp" +#line 147 "idl.yp" { $_[1] } ], [#Rule 33 @@ -2412,7 +2419,7 @@ sub [#Rule 36 'existingtype', 2, sub -#line 152 "pidl/idl.yp" +#line 152 "idl.yp" { "$_[1] $_[2]" } ], [#Rule 37 @@ -2427,13 +2434,13 @@ sub [#Rule 40 'type', 1, sub -#line 156 "pidl/idl.yp" +#line 156 "idl.yp" { "void" } ], [#Rule 41 'enum_body', 3, sub -#line 158 "pidl/idl.yp" +#line 158 "idl.yp" { $_[2] } ], [#Rule 42 @@ -2445,7 +2452,7 @@ sub [#Rule 44 'enum', 3, sub -#line 161 "pidl/idl.yp" +#line 161 "idl.yp" {{ "TYPE" => "ENUM", "NAME" => $_[2], @@ -2455,13 +2462,13 @@ sub [#Rule 45 'enum_elements', 1, sub -#line 169 "pidl/idl.yp" +#line 169 "idl.yp" { [ $_[1] ] } ], [#Rule 46 'enum_elements', 3, sub -#line 170 "pidl/idl.yp" +#line 170 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 47 @@ -2470,13 +2477,13 @@ sub [#Rule 48 'enum_element', 3, sub -#line 174 "pidl/idl.yp" +#line 174 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 49 'bitmap_body', 3, sub -#line 177 "pidl/idl.yp" +#line 177 "idl.yp" { $_[2] } ], [#Rule 50 @@ -2488,7 +2495,7 @@ sub [#Rule 52 'bitmap', 3, sub -#line 180 "pidl/idl.yp" +#line 180 "idl.yp" {{ "TYPE" => "BITMAP", "NAME" => $_[2], @@ -2498,47 +2505,53 @@ sub [#Rule 53 'bitmap_elements', 1, sub -#line 188 "pidl/idl.yp" +#line 188 "idl.yp" { [ $_[1] ] } ], [#Rule 54 'bitmap_elements', 3, sub -#line 189 "pidl/idl.yp" +#line 189 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], [#Rule 55 + 'opt_bitmap_elements', 0, undef + ], + [#Rule 56 + 'opt_bitmap_elements', 1, undef + ], + [#Rule 57 'bitmap_element', 3, sub -#line 192 "pidl/idl.yp" +#line 194 "idl.yp" { "$_[1] ( $_[3] )" } ], - [#Rule 56 + [#Rule 58 'struct_body', 3, sub -#line 195 "pidl/idl.yp" +#line 197 "idl.yp" { $_[2] } ], - [#Rule 57 + [#Rule 59 'opt_struct_body', 0, undef ], - [#Rule 58 + [#Rule 60 'opt_struct_body', 1, undef ], - [#Rule 59 + [#Rule 61 'struct', 3, sub -#line 199 "pidl/idl.yp" +#line 201 "idl.yp" {{ "TYPE" => "STRUCT", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 60 + [#Rule 62 'empty_element', 2, sub -#line 207 "pidl/idl.yp" +#line 209 "idl.yp" {{ "NAME" => "", "TYPE" => "EMPTY", @@ -2549,53 +2562,53 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 61 + [#Rule 63 'base_or_empty', 2, undef ], - [#Rule 62 + [#Rule 64 'base_or_empty', 1, undef ], - [#Rule 63 + [#Rule 65 'optional_base_element', 2, sub -#line 221 "pidl/idl.yp" +#line 223 "idl.yp" { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] } ], - [#Rule 64 + [#Rule 66 'union_elements', 0, undef ], - [#Rule 65 + [#Rule 67 'union_elements', 2, sub -#line 226 "pidl/idl.yp" +#line 228 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 66 + [#Rule 68 'union_body', 3, sub -#line 229 "pidl/idl.yp" +#line 231 "idl.yp" { $_[2] } ], - [#Rule 67 + [#Rule 69 'opt_union_body', 0, undef ], - [#Rule 68 + [#Rule 70 'opt_union_body', 1, undef ], - [#Rule 69 + [#Rule 71 'union', 3, sub -#line 233 "pidl/idl.yp" +#line 235 "idl.yp" {{ "TYPE" => "UNION", "NAME" => $_[2], "ELEMENTS" => $_[3] }} ], - [#Rule 70 + [#Rule 72 'base_element', 5, sub -#line 241 "pidl/idl.yp" +#line 243 "idl.yp" {{ "NAME" => $_[4], "TYPE" => $_[2], @@ -2606,238 +2619,238 @@ sub "LINE" => $_[0]->YYData->{LINE}, }} ], - [#Rule 71 + [#Rule 73 'pointers', 0, sub -#line 255 "pidl/idl.yp" +#line 257 "idl.yp" { 0 } ], - [#Rule 72 + [#Rule 74 'pointers', 2, sub -#line 256 "pidl/idl.yp" +#line 258 "idl.yp" { $_[1]+1 } ], - [#Rule 73 + [#Rule 75 'element_list1', 0, undef ], - [#Rule 74 + [#Rule 76 'element_list1', 3, sub -#line 261 "pidl/idl.yp" +#line 263 "idl.yp" { push(@{$_[1]}, $_[2]); $_[1] } ], - [#Rule 75 + [#Rule 77 'element_list2', 0, undef ], - [#Rule 76 + [#Rule 78 'element_list2', 1, undef ], - [#Rule 77 + [#Rule 79 'element_list2', 1, sub -#line 267 "pidl/idl.yp" +#line 269 "idl.yp" { [ $_[1] ] } ], - [#Rule 78 + [#Rule 80 'element_list2', 3, sub -#line 268 "pidl/idl.yp" +#line 270 "idl.yp" { push(@{$_[1]}, $_[3]); $_[1] } ], - [#Rule 79 + [#Rule 81 'array_len', 0, undef ], - [#Rule 80 + [#Rule 82 'array_len', 3, sub -#line 273 "pidl/idl.yp" +#line 275 "idl.yp" { push(@{$_[3]}, "*"); $_[3] } ], - [#Rule 81 + [#Rule 83 'array_len', 4, sub -#line 274 "pidl/idl.yp" +#line 276 "idl.yp" { push(@{$_[4]}, "$_[2]"); $_[4] } ], - [#Rule 82 + [#Rule 84 'property_list', 0, undef ], - [#Rule 83 + [#Rule 85 'property_list', 4, sub -#line 280 "pidl/idl.yp" +#line 282 "idl.yp" { FlattenHash([$_[1],$_[3]]); } ], - [#Rule 84 + [#Rule 86 'properties', 1, sub -#line 283 "pidl/idl.yp" +#line 285 "idl.yp" { $_[1] } ], - [#Rule 85 + [#Rule 87 'properties', 3, sub -#line 284 "pidl/idl.yp" +#line 286 "idl.yp" { FlattenHash([$_[1], $_[3]]); } ], - [#Rule 86 + [#Rule 88 'property', 1, sub -#line 287 "pidl/idl.yp" +#line 289 "idl.yp" {{ "$_[1]" => "1" }} ], - [#Rule 87 + [#Rule 89 'property', 4, sub -#line 288 "pidl/idl.yp" +#line 290 "idl.yp" {{ "$_[1]" => "$_[3]" }} ], - [#Rule 88 + [#Rule 90 'listtext', 1, undef ], - [#Rule 89 + [#Rule 91 'listtext', 3, sub -#line 293 "pidl/idl.yp" +#line 295 "idl.yp" { "$_[1] $_[3]" } ], - [#Rule 90 + [#Rule 92 'commalisttext', 1, undef ], - [#Rule 91 + [#Rule 93 'commalisttext', 3, sub -#line 298 "pidl/idl.yp" +#line 300 "idl.yp" { "$_[1],$_[3]" } ], - [#Rule 92 + [#Rule 94 'anytext', 0, sub -#line 302 "pidl/idl.yp" +#line 304 "idl.yp" { "" } ], - [#Rule 93 - 'anytext', 1, undef - ], - [#Rule 94 - 'anytext', 1, undef - ], [#Rule 95 'anytext', 1, undef ], [#Rule 96 - 'anytext', 3, -sub -#line 304 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 97 - 'anytext', 3, -sub -#line 305 "pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 98 'anytext', 3, sub -#line 306 "pidl/idl.yp" +#line 306 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 99 'anytext', 3, sub -#line 307 "pidl/idl.yp" +#line 307 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 100 'anytext', 3, sub -#line 308 "pidl/idl.yp" +#line 308 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 101 'anytext', 3, sub -#line 309 "pidl/idl.yp" +#line 309 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 102 'anytext', 3, sub -#line 310 "pidl/idl.yp" +#line 310 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 103 'anytext', 3, sub -#line 311 "pidl/idl.yp" +#line 311 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 104 'anytext', 3, sub -#line 312 "pidl/idl.yp" +#line 312 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 105 'anytext', 3, sub -#line 313 "pidl/idl.yp" +#line 313 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 106 'anytext', 3, sub -#line 314 "pidl/idl.yp" +#line 314 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 107 'anytext', 3, sub -#line 315 "pidl/idl.yp" +#line 315 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 108 'anytext', 3, sub -#line 316 "pidl/idl.yp" +#line 316 "idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 109 + 'anytext', 3, +sub +#line 317 "idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 110 + 'anytext', 3, +sub +#line 318 "idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 111 'anytext', 5, sub -#line 317 "pidl/idl.yp" +#line 319 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 110 + [#Rule 112 'anytext', 5, sub -#line 318 "pidl/idl.yp" +#line 320 "idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 111 + [#Rule 113 'identifier', 1, undef ], - [#Rule 112 + [#Rule 114 'optional_identifier', 1, undef ], - [#Rule 113 + [#Rule 115 'optional_identifier', 0, undef ], - [#Rule 114 + [#Rule 116 'constant', 1, undef ], - [#Rule 115 + [#Rule 117 'text', 1, sub -#line 332 "pidl/idl.yp" +#line 334 "idl.yp" { "\"$_[1]\"" } ], - [#Rule 116 + [#Rule 118 'optional_semicolon', 0, undef ], - [#Rule 117 + [#Rule 119 'optional_semicolon', 1, undef ] ], @@ -2845,7 +2858,7 @@ sub bless($self,$class); } -#line 343 "pidl/idl.yp" +#line 345 "idl.yp" ##################################################################### |