From dc94f05f62de8e2f0088c56cef16889eef926df7 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 14 Oct 2004 10:30:08 +0000 Subject: r2973: Allow comma's inside parentheses in property arguments (This used to be commit ab2a788fe75ddaf8ff493477f2006a03959e6ab5) --- source4/build/pidl/idl.pm | 510 +++++++++++++++++++++++++--------------------- source4/build/pidl/idl.yp | 7 +- 2 files changed, 283 insertions(+), 234 deletions(-) (limited to 'source4/build') diff --git a/source4/build/pidl/idl.pm b/source4/build/pidl/idl.pm index a485082f4b..9a3f20a6e3 100644 --- a/source4/build/pidl/idl.pm +++ b/source4/build/pidl/idl.pm @@ -546,7 +546,7 @@ sub new { } }, {#State 7 - DEFAULT => -65 + DEFAULT => -67 }, {#State 8 ACTIONS => { @@ -578,7 +578,7 @@ sub new { 'CONSTANT' => 23, 'TEXT' => 17 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'listtext' => 21, @@ -613,13 +613,13 @@ sub new { } }, {#State 17 - DEFAULT => -67 + DEFAULT => -69 }, {#State 18 - DEFAULT => -53 + DEFAULT => -55 }, {#State 19 - DEFAULT => -55 + DEFAULT => -57 }, {#State 20 ACTIONS => { @@ -642,10 +642,10 @@ sub new { } }, {#State 22 - DEFAULT => -54 + DEFAULT => -56 }, {#State 23 - DEFAULT => -66 + DEFAULT => -68 }, {#State 24 DEFAULT => -47 @@ -674,7 +674,7 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, @@ -688,7 +688,7 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, @@ -702,7 +702,7 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, @@ -716,7 +716,7 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, @@ -730,7 +730,7 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, @@ -744,12 +744,13 @@ sub new { 'CONSTANT' => 23, 'TEXT' => 17 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, 'anytext' => 51, - 'constant' => 22 + 'constant' => 22, + 'commalisttext' => 52 } }, {#State 33 @@ -758,11 +759,11 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 52, + 'anytext' => 53, 'constant' => 22 } }, @@ -772,11 +773,11 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 53, + 'anytext' => 54, 'constant' => 22 } }, @@ -786,11 +787,11 @@ sub new { 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 54, + 'anytext' => 55, 'constant' => 22 } }, @@ -800,11 +801,11 @@ sub new { 'CONSTANT' => 23, 'TEXT' => 17 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 55, + 'anytext' => 56, 'constant' => 22 } }, @@ -814,17 +815,17 @@ sub new { {#State 38 ACTIONS => { 'IDENTIFIER' => 7, - "enum" => 56, - 'void' => 57 + "enum" => 57, + 'void' => 58 }, DEFAULT => -44, GOTOS => { - 'identifier' => 59, - 'struct' => 60, - 'enum' => 61, - 'type' => 62, - 'union' => 63, - 'property_list' => 58 + 'identifier' => 60, + 'struct' => 61, + 'enum' => 62, + 'type' => 63, + 'union' => 64, + 'property_list' => 59 } }, {#State 39 @@ -832,7 +833,7 @@ sub new { }, {#State 40 ACTIONS => { - "}" => 64, + "}" => 65, "typedef" => 38, "const" => 44 }, @@ -841,25 +842,25 @@ sub new { 'const' => 43, 'function' => 39, 'typedef' => 45, - 'definition' => 65, + 'definition' => 66, 'property_list' => 41 } }, {#State 41 ACTIONS => { 'IDENTIFIER' => 7, - "enum" => 56, + "enum" => 57, "[" => 5, - 'void' => 57 + 'void' => 58 }, DEFAULT => -44, GOTOS => { - 'identifier' => 59, - 'struct' => 60, - 'enum' => 61, - 'type' => 66, - 'union' => 63, - 'property_list' => 58 + 'identifier' => 60, + 'struct' => 61, + 'enum' => 62, + 'type' => 67, + 'union' => 64, + 'property_list' => 59 } }, {#State 42 @@ -873,26 +874,26 @@ sub new { 'IDENTIFIER' => 7 }, GOTOS => { - 'identifier' => 67 + 'identifier' => 68 } }, {#State 45 DEFAULT => -10 }, {#State 46 - DEFAULT => -56 + DEFAULT => -58 }, {#State 47 - DEFAULT => -63 + DEFAULT => -65 }, {#State 48 - DEFAULT => -61 + DEFAULT => -63 }, {#State 49 - DEFAULT => -62 + DEFAULT => -64 }, {#State 50 - DEFAULT => -60 + DEFAULT => -62 }, {#State 51 ACTIONS => { @@ -904,20 +905,26 @@ sub new { "|" => 31, "*" => 33, "." => 34, - ")" => 68, ">" => 35 - } + }, + DEFAULT => -52 }, {#State 52 - DEFAULT => -58 + ACTIONS => { + "," => 69, + ")" => 70 + } }, {#State 53 - DEFAULT => -57 + DEFAULT => -60 }, {#State 54 DEFAULT => -59 }, {#State 55 + DEFAULT => -61 + }, + {#State 56 ACTIONS => { "-" => 27, "+" => 28, @@ -931,254 +938,282 @@ sub new { }, DEFAULT => -51 }, - {#State 56 + {#State 57 ACTIONS => { - "{" => 69 + "{" => 71 } }, - {#State 57 + {#State 58 DEFAULT => -18 }, - {#State 58 + {#State 59 ACTIONS => { - "union" => 70, + "union" => 72, "[" => 5, - "struct" => 71 + "struct" => 73 } }, - {#State 59 + {#State 60 DEFAULT => -17 }, - {#State 60 + {#State 61 DEFAULT => -14 }, - {#State 61 + {#State 62 DEFAULT => -16 }, - {#State 62 + {#State 63 ACTIONS => { 'IDENTIFIER' => 7 }, GOTOS => { - 'identifier' => 72 + 'identifier' => 74 } }, - {#State 63 + {#State 64 DEFAULT => -15 }, - {#State 64 + {#State 65 DEFAULT => -3 }, - {#State 65 + {#State 66 DEFAULT => -7 }, - {#State 66 + {#State 67 ACTIONS => { 'IDENTIFIER' => 7 }, GOTOS => { - 'identifier' => 73 + 'identifier' => 75 } }, - {#State 67 + {#State 68 ACTIONS => { 'IDENTIFIER' => 7 }, GOTOS => { - 'identifier' => 74 + 'identifier' => 76 } }, - {#State 68 + {#State 69 + ACTIONS => { + 'IDENTIFIER' => 7, + 'CONSTANT' => 23, + 'TEXT' => 17 + }, + DEFAULT => -54, + GOTOS => { + 'identifier' => 18, + 'text' => 19, + 'anytext' => 77, + 'constant' => 22 + } + }, + {#State 70 ACTIONS => { 'CONSTANT' => 23, 'TEXT' => 17, 'IDENTIFIER' => 7 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 75, + 'anytext' => 78, 'constant' => 22 } }, - {#State 69 + {#State 71 ACTIONS => { 'IDENTIFIER' => 7 }, GOTOS => { - 'identifier' => 76, - 'enum_element' => 77, - 'enum_elements' => 78 + 'identifier' => 79, + 'enum_element' => 80, + 'enum_elements' => 81 } }, - {#State 70 + {#State 72 ACTIONS => { - "{" => 79 + "{" => 82 } }, - {#State 71 + {#State 73 ACTIONS => { - "{" => 80 + "{" => 83 } }, - {#State 72 + {#State 74 ACTIONS => { - "[" => 82 + "[" => 85 }, DEFAULT => -41, GOTOS => { - 'array_len' => 81 + 'array_len' => 84 } }, - {#State 73 + {#State 75 ACTIONS => { - "(" => 83 + "(" => 86 } }, - {#State 74 + {#State 76 ACTIONS => { - "=" => 84 + "=" => 87 } }, - {#State 75 - DEFAULT => -64 + {#State 77 + ACTIONS => { + "-" => 27, + "+" => 28, + "&" => 29, + "/" => 30, + "(" => 32, + "|" => 31, + "*" => 33, + "." => 34, + ">" => 35 + }, + DEFAULT => -53 }, - {#State 76 + {#State 78 + DEFAULT => -66 + }, + {#State 79 ACTIONS => { - "=" => 85 + "=" => 88 }, DEFAULT => -22 }, - {#State 77 + {#State 80 DEFAULT => -20 }, - {#State 78 + {#State 81 ACTIONS => { - "}" => 86, - "," => 87 + "}" => 89, + "," => 90 } }, - {#State 79 + {#State 82 ACTIONS => { - "[" => 90 + "[" => 93 }, GOTOS => { - 'union_elements' => 88, - 'union_element' => 89 + 'union_elements' => 91, + 'union_element' => 92 } }, - {#State 80 + {#State 83 DEFAULT => -35, GOTOS => { - 'element_list1' => 91 + 'element_list1' => 94 } }, - {#State 81 + {#State 84 ACTIONS => { - ";" => 92 + ";" => 95 } }, - {#State 82 + {#State 85 ACTIONS => { 'IDENTIFIER' => 7, 'CONSTANT' => 23, 'TEXT' => 17, - "]" => 94 + "]" => 97 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 93, + 'anytext' => 96, 'constant' => 22 } }, - {#State 83 + {#State 86 ACTIONS => { - "void" => 97, + "void" => 100, "," => -37, ")" => -37 }, DEFAULT => -44, GOTOS => { - 'base_element' => 95, - 'element_list2' => 98, - 'property_list' => 96 + 'base_element' => 98, + 'element_list2' => 101, + 'property_list' => 99 } }, - {#State 84 + {#State 87 ACTIONS => { 'IDENTIFIER' => 7, 'CONSTANT' => 23, 'TEXT' => 17 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 99, + 'anytext' => 102, 'constant' => 22 } }, - {#State 85 + {#State 88 ACTIONS => { 'IDENTIFIER' => 7, 'CONSTANT' => 23, 'TEXT' => 17 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 100, + 'anytext' => 103, 'constant' => 22 } }, - {#State 86 + {#State 89 DEFAULT => -19 }, - {#State 87 + {#State 90 ACTIONS => { 'IDENTIFIER' => 7 }, GOTOS => { - 'identifier' => 76, - 'enum_element' => 101 + 'identifier' => 79, + 'enum_element' => 104 } }, - {#State 88 + {#State 91 ACTIONS => { - "}" => 102, - "[" => 90 + "}" => 105, + "[" => 93 }, GOTOS => { - 'union_element' => 103 + 'union_element' => 106 } }, - {#State 89 + {#State 92 DEFAULT => -26 }, - {#State 90 + {#State 93 ACTIONS => { - "case" => 104, - "default" => 105 + "case" => 107, + "default" => 108 } }, - {#State 91 + {#State 94 ACTIONS => { - "}" => 106 + "}" => 109 }, DEFAULT => -44, GOTOS => { - 'base_element' => 107, - 'property_list' => 96 + 'base_element' => 110, + 'property_list' => 99 } }, - {#State 92 + {#State 95 DEFAULT => -13 }, - {#State 93 + {#State 96 ACTIONS => { "-" => 27, "+" => 28, @@ -1188,49 +1223,49 @@ sub new { "|" => 31, "*" => 33, "." => 34, - "]" => 108, + "]" => 111, ">" => 35 } }, - {#State 94 + {#State 97 DEFAULT => -42 }, - {#State 95 + {#State 98 DEFAULT => -39 }, - {#State 96 + {#State 99 ACTIONS => { 'IDENTIFIER' => 7, - "enum" => 56, + "enum" => 57, "[" => 5, - 'void' => 57 + 'void' => 58 }, DEFAULT => -44, GOTOS => { - 'identifier' => 59, - 'struct' => 60, - 'enum' => 61, - 'type' => 109, - 'union' => 63, - 'property_list' => 58 + 'identifier' => 60, + 'struct' => 61, + 'enum' => 62, + 'type' => 112, + 'union' => 64, + 'property_list' => 59 } }, - {#State 97 + {#State 100 DEFAULT => -38 }, - {#State 98 + {#State 101 ACTIONS => { - "," => 110, - ")" => 111 + "," => 113, + ")" => 114 } }, - {#State 99 + {#State 102 ACTIONS => { "-" => 27, "|" => 31, "(" => 32, "*" => 33, - ";" => 112, + ";" => 115, "+" => 28, "&" => 29, "/" => 30, @@ -1238,7 +1273,7 @@ sub new { ">" => 35 } }, - {#State 100 + {#State 103 ACTIONS => { "-" => 27, "+" => 28, @@ -1252,100 +1287,100 @@ sub new { }, DEFAULT => -23 }, - {#State 101 + {#State 104 DEFAULT => -21 }, - {#State 102 + {#State 105 DEFAULT => -25 }, - {#State 103 + {#State 106 DEFAULT => -27 }, - {#State 104 + {#State 107 ACTIONS => { - "(" => 113 + "(" => 116 } }, - {#State 105 + {#State 108 ACTIONS => { - "]" => 114 + "]" => 117 } }, - {#State 106 + {#State 109 DEFAULT => -24 }, - {#State 107 + {#State 110 ACTIONS => { - ";" => 115 + ";" => 118 } }, - {#State 108 + {#State 111 DEFAULT => -43 }, - {#State 109 + {#State 112 DEFAULT => -33, GOTOS => { - 'pointers' => 116 + 'pointers' => 119 } }, - {#State 110 + {#State 113 DEFAULT => -44, GOTOS => { - 'base_element' => 117, - 'property_list' => 96 + 'base_element' => 120, + 'property_list' => 99 } }, - {#State 111 + {#State 114 ACTIONS => { - ";" => 118 + ";" => 121 } }, - {#State 112 + {#State 115 DEFAULT => -11 }, - {#State 113 + {#State 116 ACTIONS => { 'IDENTIFIER' => 7, 'CONSTANT' => 23, 'TEXT' => 17 }, - DEFAULT => -52, + DEFAULT => -54, GOTOS => { 'identifier' => 18, 'text' => 19, - 'anytext' => 119, + 'anytext' => 122, 'constant' => 22 } }, - {#State 114 + {#State 117 ACTIONS => { - ";" => 120 + ";" => 123 }, DEFAULT => -44, GOTOS => { - 'base_element' => 121, - 'property_list' => 96 + 'base_element' => 124, + 'property_list' => 99 } }, - {#State 115 + {#State 118 DEFAULT => -36 }, - {#State 116 + {#State 119 ACTIONS => { 'IDENTIFIER' => 7, - "*" => 123 + "*" => 126 }, GOTOS => { - 'identifier' => 122 + 'identifier' => 125 } }, - {#State 117 + {#State 120 DEFAULT => -40 }, - {#State 118 + {#State 121 DEFAULT => -12 }, - {#State 119 + {#State 122 ACTIONS => { "-" => 27, "+" => 28, @@ -1355,60 +1390,60 @@ sub new { "|" => 31, "*" => 33, "." => 34, - ")" => 124, + ")" => 127, ">" => 35 } }, - {#State 120 + {#State 123 DEFAULT => -31 }, - {#State 121 + {#State 124 ACTIONS => { - ";" => 125 + ";" => 128 } }, - {#State 122 + {#State 125 ACTIONS => { - "[" => 82 + "[" => 85 }, DEFAULT => -41, GOTOS => { - 'array_len' => 126 + 'array_len' => 129 } }, - {#State 123 + {#State 126 DEFAULT => -34 }, - {#State 124 + {#State 127 ACTIONS => { - "]" => 127 + "]" => 130 } }, - {#State 125 + {#State 128 DEFAULT => -30 }, - {#State 126 + {#State 129 DEFAULT => -32 }, - {#State 127 + {#State 130 ACTIONS => { - ";" => 128 + ";" => 131 }, DEFAULT => -44, GOTOS => { - 'base_element' => 129, - 'property_list' => 96 + 'base_element' => 132, + 'property_list' => 99 } }, - {#State 128 + {#State 131 DEFAULT => -29 }, - {#State 129 + {#State 132 ACTIONS => { - ";" => 130 + ";" => 133 } }, - {#State 130 + {#State 133 DEFAULT => -28 } ], @@ -1731,84 +1766,93 @@ sub { "$_[1] $_[3]" } ], [#Rule 52 - 'anytext', 0, -sub -#line 201 "build/pidl/idl.yp" -{ "" } + 'commalisttext', 1, undef ], [#Rule 53 - 'anytext', 1, undef + 'commalisttext', 3, +sub +#line 202 "build/pidl/idl.yp" +{ "$_[1],$_[3]" } ], [#Rule 54 - 'anytext', 1, undef + 'anytext', 0, +sub +#line 206 "build/pidl/idl.yp" +{ "" } ], [#Rule 55 'anytext', 1, undef ], [#Rule 56 - 'anytext', 3, -sub -#line 203 "build/pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 57 - 'anytext', 3, -sub -#line 204 "build/pidl/idl.yp" -{ "$_[1]$_[2]$_[3]" } + 'anytext', 1, undef ], [#Rule 58 'anytext', 3, sub -#line 205 "build/pidl/idl.yp" +#line 208 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 59 'anytext', 3, sub -#line 206 "build/pidl/idl.yp" +#line 209 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 60 'anytext', 3, sub -#line 207 "build/pidl/idl.yp" +#line 210 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 61 'anytext', 3, sub -#line 208 "build/pidl/idl.yp" +#line 211 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 62 'anytext', 3, sub -#line 209 "build/pidl/idl.yp" +#line 212 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 63 'anytext', 3, sub -#line 210 "build/pidl/idl.yp" +#line 213 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]" } ], [#Rule 64 + 'anytext', 3, +sub +#line 214 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 65 + 'anytext', 3, +sub +#line 215 "build/pidl/idl.yp" +{ "$_[1]$_[2]$_[3]" } + ], + [#Rule 66 'anytext', 5, sub -#line 211 "build/pidl/idl.yp" +#line 216 "build/pidl/idl.yp" { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ], - [#Rule 65 + [#Rule 67 'identifier', 1, undef ], - [#Rule 66 + [#Rule 68 'constant', 1, undef ], - [#Rule 67 + [#Rule 69 'text', 1, sub -#line 220 "build/pidl/idl.yp" +#line 225 "build/pidl/idl.yp" { "\"$_[1]\"" } ] ], @@ -1816,7 +1860,7 @@ sub bless($self,$class); } -#line 226 "build/pidl/idl.yp" +#line 231 "build/pidl/idl.yp" use util; diff --git a/source4/build/pidl/idl.yp b/source4/build/pidl/idl.yp index 981b0be612..bf94bedcdf 100644 --- a/source4/build/pidl/idl.yp +++ b/source4/build/pidl/idl.yp @@ -197,6 +197,11 @@ listtext: | listtext ',' anytext { "$_[1] $_[3]" } ; +commalisttext: + anytext + | commalisttext ',' anytext { "$_[1],$_[3]" } +; + anytext: #empty { "" } | identifier | constant | text @@ -208,7 +213,7 @@ anytext: #empty | anytext '&' anytext { "$_[1]$_[2]$_[3]" } | anytext '/' anytext { "$_[1]$_[2]$_[3]" } | anytext '+' anytext { "$_[1]$_[2]$_[3]" } - | anytext '(' anytext ')' anytext { "$_[1]$_[2]$_[3]$_[4]$_[5]" } + | anytext '(' commalisttext ')' anytext { "$_[1]$_[2]$_[3]$_[4]$_[5]" } ; identifier: IDENTIFIER -- cgit