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 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 static List
<IdlModule
> parse_file (string! filename
, out Error error
);
30 [CCode (cheader_filename
= "gidlmodule.h")]
31 [ReferenceType (free_function
= "g_idl_module_free")]
32 public struct IdlModule
{
34 public List
<IdlNode
> entries
;
37 [CCode (cprefix
= "G_IDL_NODE_", cheader_filename
= "gidlnode.h")]
38 public enum IdlNodeTypeId
{
61 [CCode (cheader_filename
= "gidlnode.h")]
62 [ReferenceType (free_function
= "g_idl_node_free")]
63 public struct IdlNode
{
64 public IdlNodeTypeId type
;
68 [CCode (cheader_filename
= "gidlnode.h")]
69 [ReferenceType (free_function
= "g_idl_node_free")]
70 public struct 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
;
85 [CCode (cheader_filename
= "gidlnode.h")]
86 [ReferenceType (free_function
= "g_idl_node_free")]
87 public struct IdlNodeSignal
{
88 public bool deprecated
;
90 public bool run_first
;
92 public bool run_cleanup
;
93 public bool no_recurse
;
98 public bool has_class_closure
;
99 public bool true_stops_emit
;
101 public int class_closure
;
103 public List
<IdlNodeParam
> parameters
;
104 public IdlNodeParam result
;
107 [CCode (cheader_filename
= "gidlnode.h")]
108 [ReferenceType (free_function
= "g_idl_node_free")]
109 public struct IdlNodeBoxed
{
110 public bool deprecated
;
112 public string gtype_name
;
113 public string gtype_init
;
115 public List
<IdlNode
> members
;
118 [CCode (cheader_filename
= "gidlnode.h")]
119 [ReferenceType (free_function
= "g_idl_node_free")]
120 public struct IdlNodeEnum
{
121 public bool deprecated
;
123 public string gtype_name
;
124 public string gtype_init
;
126 public List
<IdlNode
> values
;
129 [CCode (cheader_filename
= "gidlnode.h")]
130 [ReferenceType (free_function
= "g_idl_node_free")]
131 public struct IdlNodeField
{
132 public bool readable
;
133 public bool writable
;
137 public IdlNodeType type
;
140 [CCode (cheader_filename
= "gidlnode.h")]
141 [ReferenceType (free_function
= "g_idl_node_free")]
142 public struct IdlNodeConstant
{
143 public bool deprecated
;
145 public IdlNodeType type
;
150 [CCode (cheader_filename
= "gidlnode.h")]
151 [ReferenceType (free_function
= "g_idl_node_free")]
152 public struct IdlNodeInterface
{
153 public bool deprecated
;
155 public string gtype_name
;
156 public string gtype_init
;
158 public string parent
;
160 public List
<string> interfaces
;
161 public List
<string> prerequisites
;
163 public List
<IdlNode
> members
;
166 [CCode (cheader_filename
= "gidlnode.h")]
167 [ReferenceType (free_function
= "g_idl_node_free")]
168 public struct IdlNodeParam
{
172 public bool optional
;
175 public bool transfer
;
176 public bool shallow_transfer
;
178 public IdlNodeType type
;
181 [CCode (cheader_filename
= "gidlnode.h")]
182 [ReferenceType (free_function
= "g_idl_node_free")]
183 public struct IdlNodeProperty
{
184 public bool deprecated
;
188 public bool readable
;
189 public bool writable
;
190 public bool @
construct;
191 public bool construct_only
;
193 public IdlNodeType type
;
196 [CCode (cheader_filename
= "gidlnode.h")]
197 [ReferenceType (free_function
= "g_idl_node_free")]
198 public struct IdlNodeStruct
{
199 public bool deprecated
;
201 public List
<IdlNode
> members
;
204 [CCode (cheader_filename
= "gidlnode.h")]
205 [ReferenceType (free_function
= "g_idl_node_free")]
206 public struct IdlNodeType
{
207 public bool is_pointer
;
208 public bool is_basic
;
209 public bool is_array
;
210 public bool is_glist
;
211 public bool is_gslist
;
212 public bool is_ghashtable
;
213 public bool is_interface
;
214 public bool is_error
;
217 public string unparsed
;
219 public bool zero_terminated
;
220 public bool has_length
;
223 public IdlNodeType parameter_type1
;
224 public IdlNodeType parameter_type2
;
226 public string @
interface;
227 public string[] errors
;
230 [CCode (cprefix
= "TYPE_TAG_", cheader_filename
= "gmetadata.h")]