summaryrefslogtreecommitdiff
path: root/source4/build
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-10-14 10:30:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:53 -0500
commitdc94f05f62de8e2f0088c56cef16889eef926df7 (patch)
tree6f48910425c8ca42a8203026bbb7e85667c1cbfc /source4/build
parent12f2ac5857fd01615a05a6b52d78d97900e0d26c (diff)
downloadsamba-dc94f05f62de8e2f0088c56cef16889eef926df7.tar.gz
samba-dc94f05f62de8e2f0088c56cef16889eef926df7.tar.bz2
samba-dc94f05f62de8e2f0088c56cef16889eef926df7.zip
r2973: Allow comma's inside parentheses in property arguments
(This used to be commit ab2a788fe75ddaf8ff493477f2006a03959e6ab5)
Diffstat (limited to 'source4/build')
-rw-r--r--source4/build/pidl/idl.pm510
-rw-r--r--source4/build/pidl/idl.yp7
2 files changed, 283 insertions, 234 deletions
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