diff options
author | Andrew Tridgell <tridge@samba.org> | 2003-11-15 07:49:03 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2003-11-15 07:49:03 +0000 |
commit | 5a28ca7bf3250f951826aa0726e4487b88062abe (patch) | |
tree | e59602931956fa85755bb53241719aba6d71f4bd /source4/build/pidl/idl.gram | |
parent | ba5a060136145abdfa4915fe0fecc4afe1180627 (diff) | |
download | samba-5a28ca7bf3250f951826aa0726e4487b88062abe.tar.gz samba-5a28ca7bf3250f951826aa0726e4487b88062abe.tar.bz2 samba-5a28ca7bf3250f951826aa0726e4487b88062abe.zip |
support a new value() attribute that allows us to auto-fill certain
elements. Used at the moment for string lengths.
the regular expression isn't right, but it works for the case I need.
Perl expert needed :)
(This used to be commit c7ddd6b2aadeb3bbd2ad520a9e074866b434cbba)
Diffstat (limited to 'source4/build/pidl/idl.gram')
-rw-r--r-- | source4/build/pidl/idl.gram | 11 |
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+/ | '*' |