summaryrefslogtreecommitdiff
path: root/source4/build/pidl/idl.yp
diff options
context:
space:
mode:
Diffstat (limited to 'source4/build/pidl/idl.yp')
-rw-r--r--source4/build/pidl/idl.yp28
1 files changed, 26 insertions, 2 deletions
diff --git a/source4/build/pidl/idl.yp b/source4/build/pidl/idl.yp
index f77062adf6..73b9a44b3f 100644
--- a/source4/build/pidl/idl.yp
+++ b/source4/build/pidl/idl.yp
@@ -55,7 +55,7 @@ definitions:
;
-definition: function | const | typedef
+definition: function | const | typedef | declare
;
const: 'const' identifier identifier '=' anytext ';'
@@ -86,6 +86,30 @@ function: property_list type identifier '(' element_list2 ')' ';'
}}
;
+declare: 'declare' property_list decl_type identifier';'
+ {{
+ "TYPE" => "DECLARE",
+ "PROPERTIES" => $_[2],
+ "NAME" => $_[4],
+ "DATA" => $_[3],
+ }}
+;
+
+decl_type: decl_enum | decl_bitmap
+;
+
+decl_enum: 'enum'
+ {{
+ "TYPE" => "ENUM"
+ }}
+;
+
+decl_bitmap: 'bitmap'
+ {{
+ "TYPE" => "BITMAP"
+ }}
+;
+
typedef: 'typedef' property_list type identifier array_len ';'
{{
"TYPE" => "TYPEDEF",
@@ -327,7 +351,7 @@ again:
if (s/^([\w_]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
if ($1 =~
- /^(coclass|interface|const|typedef|union
+ /^(coclass|interface|const|typedef|declare|union
|struct|enum|bitmap|void|case|default)$/x) {
return $1;
}