diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-11-06 21:54:19 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:24:57 -0500 |
commit | d8ecabe452f36302105c6412ae5ab93cabfe5cf2 (patch) | |
tree | d5f8e1c8d246e6a95a5aa91e1776047104f046f0 /source4/pidl/idl.yp | |
parent | 6317ba1cf71faa7b77072649d92205a38f800fd1 (diff) | |
download | samba-d8ecabe452f36302105c6412ae5ab93cabfe5cf2.tar.gz samba-d8ecabe452f36302105c6412ae5ab93cabfe5cf2.tar.bz2 samba-d8ecabe452f36302105c6412ae5ab93cabfe5cf2.zip |
r19585: Add support for some more standard IDL instructions:
- `include' (replaces helper())
- `import' (replaces depends())
Add support for parsing importlib() - importlib() is now ignored (with a
warning), but no longer causes syntax errors.
helper() and depends() are now marked deprecated and will cause warnings.
(This used to be commit 1ccab71cb8a9e3db9448b6679d01ad00e1c1e9a3)
Diffstat (limited to 'source4/pidl/idl.yp')
-rw-r--r-- | source4/pidl/idl.yp | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/source4/pidl/idl.yp b/source4/pidl/idl.yp index 8c2d039ad7..932730d7bf 100644 --- a/source4/pidl/idl.yp +++ b/source4/pidl/idl.yp @@ -18,10 +18,35 @@ idl: #empty { {} } | idl interface { push(@{$_[1]}, $_[2]); $_[1] } | idl coclass { push(@{$_[1]}, $_[2]); $_[1] } + | idl import { push(@{$_[1]}, $_[2]); $_[1] } + | idl include { push(@{$_[1]}, $_[2]); $_[1] } + | idl importlib { push(@{$_[1]}, $_[2]); $_[1] } +; + +import: 'import' commalisttext ';' {{ + "TYPE" => "IMPORT", + "PATHS" => [ $_[2] ], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE} + }} +; +include: 'import' commalisttext ';' {{ + "TYPE" => "INCLUDE", + "PATHS" => [ $_[2] ], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE} + }} +; +importlib: 'importlib' commalisttext ';' {{ + "TYPE" => "IMPORTLIB", + "PATHS" => [ $_[2] ], + "FILE" => $_[0]->YYData->{INPUT_FILENAME}, + "LINE" => $_[0]->YYData->{LINE} + }} ; coclass: property_list 'coclass' identifier '{' interface_names '}' optional_semicolon - {$_[3] => { + {{ "TYPE" => "COCLASS", "PROPERTIES" => $_[1], "NAME" => $_[3], @@ -37,7 +62,7 @@ interface_names: ; interface: property_list 'interface' identifier base_interface '{' definitions '}' optional_semicolon - {$_[3] => { + {{ "TYPE" => "INTERFACE", "PROPERTIES" => $_[1], "NAME" => $_[3], @@ -442,7 +467,8 @@ again: $parser->YYData->{LAST_TOKEN} = $1; if ($1 =~ /^(coclass|interface|const|typedef|declare|union - |struct|enum|bitmap|void|unsigned|signed)$/x) { + |struct|enum|bitmap|void|unsigned|signed|import|include + |importlib)$/x) { return $1; } return('IDENTIFIER',$1); |