diff options
Diffstat (limited to 'source4/build/pidl/idl.yp')
-rw-r--r-- | source4/build/pidl/idl.yp | 28 |
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; } |