widl: Added support for nameless structs and unions.
[wine/multimedia.git] / tools / winapi / function.pm
blobc53daa6d603e5c481846f05a91f9d3faedf6eb58
2 # Copyright 1999, 2000, 2001 Patrik Stridvall
4 # This library is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU Lesser General Public
6 # License as published by the Free Software Foundation; either
7 # version 2.1 of the License, or (at your option) any later version.
9 # This library is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 # Lesser General Public License for more details.
14 # You should have received a copy of the GNU Lesser General Public
15 # License along with this library; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 package function;
21 use strict;
23 sub new($) {
24 my $proto = shift;
25 my $class = ref($proto) || $proto;
26 my $self = {};
27 bless ($self, $class);
29 return $self;
32 sub file($$) {
33 my $self = shift;
34 my $file = \${$self->{FILE}};
36 local $_ = shift;
38 if(defined($_)) { $$file = $_; }
40 return $$file;
43 sub debug_channels($$) {
44 my $self = shift;
45 my $debug_channels = \${$self->{DEBUG_CHANNELS}};
47 local $_ = shift;
49 if(defined($_)) { $$debug_channels = $_; }
51 return $$debug_channels;
54 sub documentation_line($$) {
55 my $self = shift;
56 my $documentation_line = \${$self->{DOCUMENTATION_LINE}};
58 local $_ = shift;
60 if(defined($_)) { $$documentation_line = $_; }
62 return $$documentation_line;
65 sub documentation($$) {
66 my $self = shift;
67 my $documentation = \${$self->{DOCUMENTATION}};
69 local $_ = shift;
71 if(defined($_)) { $$documentation = $_; }
73 return $$documentation;
76 sub function_line($$) {
77 my $self = shift;
78 my $function_line = \${$self->{FUNCTION_LINE}};
80 local $_ = shift;
82 if(defined($_)) { $$function_line = $_; }
84 return $$function_line;
87 sub linkage($$) {
88 my $self = shift;
89 my $linkage = \${$self->{LINKAGE}};
91 local $_ = shift;
93 if(defined($_)) { $$linkage = $_; }
95 return $$linkage;
98 sub return_type($$) {
99 my $self = shift;
100 my $return_type = \${$self->{RETURN_TYPE}};
102 local $_ = shift;
104 if(defined($_)) { $$return_type = $_; }
106 return $$return_type;
109 sub calling_convention($$) {
110 my $self = shift;
111 my $calling_convention = \${$self->{CALLING_CONVENTION}};
113 local $_ = shift;
115 if(defined($_)) { $$calling_convention = $_; }
117 return $$calling_convention;
120 sub internal_name($$) {
121 my $self = shift;
122 my $internal_name = \${$self->{INTERNAL_NAME}};
124 local $_ = shift;
126 if(defined($_)) { $$internal_name = $_; }
128 return $$internal_name;
131 sub argument_types($$) {
132 my $self = shift;
133 my $argument_types = \${$self->{ARGUMENT_TYPES}};
135 local $_ = shift;
137 if(defined($_)) { $$argument_types = $_; }
139 return $$argument_types;
142 sub argument_names($$) {
143 my $self = shift;
144 my $argument_names = \${$self->{ARGUMENT_NAMES}};
146 local $_ = shift;
148 if(defined($_)) { $$argument_names = $_; }
150 return $$argument_names;
153 sub argument_documentations($$) {
154 my $self = shift;
155 my $argument_documentations = \${$self->{ARGUMENT_DOCUMENTATIONS}};
157 local $_ = shift;
159 if(defined($_)) { $$argument_documentations = $_; }
161 return $$argument_documentations;
164 sub statements_line($$) {
165 my $self = shift;
166 my $statements_line = \${$self->{STATEMENTS_LINE}};
168 local $_ = shift;
170 if(defined($_)) { $$statements_line = $_; }
172 return $$statements_line;
175 sub statements($$) {
176 my $self = shift;
177 my $statements = \${$self->{STATEMENTS}};
179 local $_ = shift;
181 if(defined($_)) { $$statements = $_; }
183 return $$statements;