3 * Copyright (C) 2006-2007 Jürg Billeter
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 * Jürg Billeter <j@bitron.ch>
23 [CCode (cprefix = "G", lower_case_cprefix = "g_", cheader_filename = "glib.h")]
25 [CCode (cheader_filename = "gidlparser.h")]
27 public List<IdlModule> parse_file (string filename) throws MarkupError;
31 [CCode (free_function = "g_idl_module_free", cheader_filename = "gidlmodule.h")]
32 public class IdlModule {
34 public List<IdlNode> entries;
37 [CCode (cprefix = "G_IDL_NODE_", cheader_filename = "gidlnode.h")]
38 public enum IdlNodeTypeId {
62 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
63 public class IdlNode {
64 public IdlNodeTypeId type;
69 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
70 public class IdlNodeFunction {
71 public bool deprecated;
73 public bool is_method;
74 public bool is_setter;
75 public bool is_getter;
76 public bool is_constructor;
77 public bool wraps_vfunc;
81 public IdlNodeParam result;
82 public List<IdlNodeParam> parameters;
86 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
87 public class IdlNodeVFunc
89 public bool must_chain_up;
90 public bool must_be_implemented;
91 public bool must_not_be_implemented;
92 public bool is_class_closure;
94 public List<IdlNodeParam> parameters;
95 public IdlNodeParam result;
100 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
101 public class IdlNodeSignal {
102 public bool deprecated;
104 public bool run_first;
105 public bool run_last;
106 public bool run_cleanup;
107 public bool no_recurse;
108 public bool detailed;
110 public bool no_hooks;
112 public bool has_class_closure;
113 public bool true_stops_emit;
115 public int class_closure;
117 public List<IdlNodeParam> parameters;
118 public IdlNodeParam result;
122 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
123 public class IdlNodeBoxed {
124 public bool deprecated;
126 public string gtype_name;
127 public string gtype_init;
129 public List<IdlNode> members;
133 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
134 public class IdlNodeEnum {
135 public bool deprecated;
137 public string gtype_name;
138 public string gtype_init;
140 public List<IdlNode> values;
144 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
145 public class IdlNodeField {
146 public bool readable;
147 public bool writable;
151 public IdlNodeType type;
155 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
156 public class IdlNodeConstant {
157 public bool deprecated;
159 public IdlNodeType type;
165 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
166 public class IdlNodeInterface {
167 public bool deprecated;
169 public string gtype_name;
170 public string gtype_init;
172 public string parent;
174 public List<string> interfaces;
175 public List<string> prerequisites;
177 public List<IdlNode> members;
181 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
182 public class IdlNodeParam {
186 public bool optional;
189 public bool transfer;
190 public bool shallow_transfer;
192 public IdlNodeType type;
196 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
197 public class IdlNodeProperty {
198 public bool deprecated;
202 public bool readable;
203 public bool writable;
204 public bool @construct;
205 public bool construct_only;
207 public IdlNodeType type;
211 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
212 public class IdlNodeStruct {
213 public bool deprecated;
215 public List<IdlNode> members;
219 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
220 public class IdlNodeUnion {
221 public bool deprecated;
223 public List<IdlNode> members;
227 [CCode (free_function = "g_idl_node_free", cheader_filename = "gidlnode.h")]
228 public class IdlNodeType {
229 public bool is_pointer;
230 public bool is_basic;
231 public bool is_array;
232 public bool is_glist;
233 public bool is_gslist;
234 public bool is_ghashtable;
235 public bool is_interface;
236 public bool is_error;
239 public string unparsed;
241 public bool zero_terminated;
242 public bool has_length;
245 public IdlNodeType parameter_type1;
246 public IdlNodeType parameter_type2;
248 public string @interface;
249 public string[] errors;
252 [CCode (cname = "TypeTag", cprefix = "TYPE_TAG_", cheader_filename = "gmetadata.h")]