summaryrefslogtreecommitdiff
path: root/source4/build/pidl/idl.gram
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/idl.gram')
-rw-r--r--source4/build/pidl/idl.gram11
1 files changed, 9 insertions, 2 deletions
diff --git a/source4/build/pidl/idl.gram b/source4/build/pidl/idl.gram
index 956b3e9ff9..4605c4c712 100644
--- a/source4/build/pidl/idl.gram
+++ b/source4/build/pidl/idl.gram
@@ -107,11 +107,12 @@ property: 'unique'
| 'size_is' '(' expression ')' {{ "$item[1]" => "$item{expression}" }}
| 'length_is' '(' expression ')' {{ "$item[1]" => "$item{expression}" }}
| 'switch_is' '(' expression ')' {{ "$item[1]" => "$item{expression}" }}
+ | 'value' '(' anytext ')' {{ "$item[1]" => "$item{anytext}" }}
| 'switch_type' '(' type ')' {{ "$item[1]" => $item{type} }}
identifier: /[\w?]+/
-expression: /[\w?\/+*-]+/
+expression: /[\w.?\/+*-_]+/
function : type identifier '(' <commit> element_list2 ');'
{{
@@ -132,7 +133,13 @@ type :
| identifier { $item[1] }
| <error>
-text: /[\w\s.?-]*/
+text: /[\w\s\..?-]*/
+
+anytext: call(s?)
+ {{ "$item[1][0]" }}
+
+call: expression '(' <commit> expression ')'
+ {{ "$item[1]($item[4])" }}
constant: /-?\d+/
| '*'