1 /* valanamedargument.c generated by valac, the Vala compiler
2 * generated from valanamedargument.vala, do not modify */
3
4 /* valanamedargument.vala
5 *
6 * Copyright (C) 2009-2010 Jürg Billeter
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 * Author:
23 * Jürg Billeter <j@bitron.ch>
24 */
25
26 #include "vala.h"
27 #include <stdlib.h>
28 #include <string.h>
29 #include <glib.h>
30 #include <valagee.h>
31 #include <glib-object.h>
32
33 #define _g_free0(var) (var = (g_free (var), NULL))
34 #define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
35
36 struct _ValaNamedArgumentPrivate {
37 gchar* _name;
38 ValaExpression* _inner;
39 };
40
41 static gint ValaNamedArgument_private_offset;
42 static gpointer vala_named_argument_parent_class = NULL;
43
44 static void vala_named_argument_real_accept (ValaCodeNode* base,
45 ValaCodeVisitor* visitor);
46 static void vala_named_argument_real_accept_children (ValaCodeNode* base,
47 ValaCodeVisitor* visitor);
48 static void vala_named_argument_real_replace_expression (ValaCodeNode* base,
49 ValaExpression* old_node,
50 ValaExpression* new_node);
51 static gboolean vala_named_argument_real_is_pure (ValaExpression* base);
52 static gboolean vala_named_argument_real_check (ValaCodeNode* base,
53 ValaCodeContext* context);
54 static void vala_named_argument_real_emit (ValaCodeNode* base,
55 ValaCodeGenerator* codegen);
56 static void vala_named_argument_real_get_defined_variables (ValaCodeNode* base,
57 ValaCollection* collection);
58 static void vala_named_argument_real_get_used_variables (ValaCodeNode* base,
59 ValaCollection* collection);
60 static void vala_named_argument_finalize (ValaCodeNode * obj);
61 static GType vala_named_argument_get_type_once (void);
62
63 static inline gpointer
vala_named_argument_get_instance_private(ValaNamedArgument * self)64 vala_named_argument_get_instance_private (ValaNamedArgument* self)
65 {
66 return G_STRUCT_MEMBER_P (self, ValaNamedArgument_private_offset);
67 }
68
69 const gchar*
vala_named_argument_get_name(ValaNamedArgument * self)70 vala_named_argument_get_name (ValaNamedArgument* self)
71 {
72 const gchar* result;
73 const gchar* _tmp0_;
74 g_return_val_if_fail (self != NULL, NULL);
75 _tmp0_ = self->priv->_name;
76 result = _tmp0_;
77 return result;
78 }
79
80 void
vala_named_argument_set_name(ValaNamedArgument * self,const gchar * value)81 vala_named_argument_set_name (ValaNamedArgument* self,
82 const gchar* value)
83 {
84 gchar* _tmp0_;
85 g_return_if_fail (self != NULL);
86 _tmp0_ = g_strdup (value);
87 _g_free0 (self->priv->_name);
88 self->priv->_name = _tmp0_;
89 }
90
91 ValaExpression*
vala_named_argument_get_inner(ValaNamedArgument * self)92 vala_named_argument_get_inner (ValaNamedArgument* self)
93 {
94 ValaExpression* result;
95 ValaExpression* _tmp0_;
96 g_return_val_if_fail (self != NULL, NULL);
97 _tmp0_ = self->priv->_inner;
98 result = _tmp0_;
99 return result;
100 }
101
102 static gpointer
_vala_code_node_ref0(gpointer self)103 _vala_code_node_ref0 (gpointer self)
104 {
105 return self ? vala_code_node_ref (self) : NULL;
106 }
107
108 void
vala_named_argument_set_inner(ValaNamedArgument * self,ValaExpression * value)109 vala_named_argument_set_inner (ValaNamedArgument* self,
110 ValaExpression* value)
111 {
112 ValaExpression* _tmp0_;
113 ValaExpression* _tmp1_;
114 g_return_if_fail (self != NULL);
115 _tmp0_ = _vala_code_node_ref0 (value);
116 _vala_code_node_unref0 (self->priv->_inner);
117 self->priv->_inner = _tmp0_;
118 _tmp1_ = self->priv->_inner;
119 vala_code_node_set_parent_node ((ValaCodeNode*) _tmp1_, (ValaCodeNode*) self);
120 }
121
122 ValaNamedArgument*
vala_named_argument_construct(GType object_type,const gchar * name,ValaExpression * inner,ValaSourceReference * source_reference)123 vala_named_argument_construct (GType object_type,
124 const gchar* name,
125 ValaExpression* inner,
126 ValaSourceReference* source_reference)
127 {
128 ValaNamedArgument* self = NULL;
129 g_return_val_if_fail (name != NULL, NULL);
130 g_return_val_if_fail (inner != NULL, NULL);
131 self = (ValaNamedArgument*) vala_expression_construct (object_type);
132 vala_named_argument_set_name (self, name);
133 vala_named_argument_set_inner (self, inner);
134 vala_code_node_set_source_reference ((ValaCodeNode*) self, source_reference);
135 return self;
136 }
137
138 ValaNamedArgument*
vala_named_argument_new(const gchar * name,ValaExpression * inner,ValaSourceReference * source_reference)139 vala_named_argument_new (const gchar* name,
140 ValaExpression* inner,
141 ValaSourceReference* source_reference)
142 {
143 return vala_named_argument_construct (VALA_TYPE_NAMED_ARGUMENT, name, inner, source_reference);
144 }
145
146 static void
vala_named_argument_real_accept(ValaCodeNode * base,ValaCodeVisitor * visitor)147 vala_named_argument_real_accept (ValaCodeNode* base,
148 ValaCodeVisitor* visitor)
149 {
150 ValaNamedArgument * self;
151 self = (ValaNamedArgument*) base;
152 g_return_if_fail (visitor != NULL);
153 vala_code_visitor_visit_named_argument (visitor, self);
154 vala_code_visitor_visit_expression (visitor, (ValaExpression*) self);
155 }
156
157 static void
vala_named_argument_real_accept_children(ValaCodeNode * base,ValaCodeVisitor * visitor)158 vala_named_argument_real_accept_children (ValaCodeNode* base,
159 ValaCodeVisitor* visitor)
160 {
161 ValaNamedArgument * self;
162 ValaExpression* _tmp0_;
163 ValaExpression* _tmp1_;
164 self = (ValaNamedArgument*) base;
165 g_return_if_fail (visitor != NULL);
166 _tmp0_ = vala_named_argument_get_inner (self);
167 _tmp1_ = _tmp0_;
168 vala_code_node_accept ((ValaCodeNode*) _tmp1_, visitor);
169 }
170
171 static void
vala_named_argument_real_replace_expression(ValaCodeNode * base,ValaExpression * old_node,ValaExpression * new_node)172 vala_named_argument_real_replace_expression (ValaCodeNode* base,
173 ValaExpression* old_node,
174 ValaExpression* new_node)
175 {
176 ValaNamedArgument * self;
177 ValaExpression* _tmp0_;
178 ValaExpression* _tmp1_;
179 self = (ValaNamedArgument*) base;
180 g_return_if_fail (old_node != NULL);
181 g_return_if_fail (new_node != NULL);
182 _tmp0_ = vala_named_argument_get_inner (self);
183 _tmp1_ = _tmp0_;
184 if (_tmp1_ == old_node) {
185 vala_named_argument_set_inner (self, new_node);
186 }
187 }
188
189 static gboolean
vala_named_argument_real_is_pure(ValaExpression * base)190 vala_named_argument_real_is_pure (ValaExpression* base)
191 {
192 ValaNamedArgument * self;
193 ValaExpression* _tmp0_;
194 ValaExpression* _tmp1_;
195 gboolean result = FALSE;
196 self = (ValaNamedArgument*) base;
197 _tmp0_ = vala_named_argument_get_inner (self);
198 _tmp1_ = _tmp0_;
199 result = vala_expression_is_pure (_tmp1_);
200 return result;
201 }
202
203 static gboolean
vala_named_argument_real_check(ValaCodeNode * base,ValaCodeContext * context)204 vala_named_argument_real_check (ValaCodeNode* base,
205 ValaCodeContext* context)
206 {
207 ValaNamedArgument * self;
208 gboolean _tmp0_;
209 gboolean _tmp1_;
210 ValaExpression* _tmp4_;
211 ValaExpression* _tmp5_;
212 ValaDataType* _tmp6_;
213 ValaDataType* _tmp7_;
214 ValaExpression* _tmp8_;
215 ValaExpression* _tmp9_;
216 ValaExpression* _tmp10_;
217 ValaExpression* _tmp11_;
218 ValaExpression* _tmp12_;
219 ValaExpression* _tmp13_;
220 ValaDataType* _tmp14_;
221 ValaDataType* _tmp15_;
222 ValaExpression* _tmp16_;
223 ValaExpression* _tmp17_;
224 ValaDataType* _tmp18_;
225 ValaDataType* _tmp19_;
226 gboolean _tmp20_;
227 gboolean _tmp21_;
228 gboolean result = FALSE;
229 self = (ValaNamedArgument*) base;
230 g_return_val_if_fail (context != NULL, FALSE);
231 _tmp0_ = vala_code_node_get_checked ((ValaCodeNode*) self);
232 _tmp1_ = _tmp0_;
233 if (_tmp1_) {
234 gboolean _tmp2_;
235 gboolean _tmp3_;
236 _tmp2_ = vala_code_node_get_error ((ValaCodeNode*) self);
237 _tmp3_ = _tmp2_;
238 result = !_tmp3_;
239 return result;
240 }
241 vala_code_node_set_checked ((ValaCodeNode*) self, TRUE);
242 _tmp4_ = vala_named_argument_get_inner (self);
243 _tmp5_ = _tmp4_;
244 _tmp6_ = vala_expression_get_target_type ((ValaExpression*) self);
245 _tmp7_ = _tmp6_;
246 vala_expression_set_target_type (_tmp5_, _tmp7_);
247 _tmp8_ = vala_named_argument_get_inner (self);
248 _tmp9_ = _tmp8_;
249 if (!vala_code_node_check ((ValaCodeNode*) _tmp9_, context)) {
250 vala_code_node_set_error ((ValaCodeNode*) self, TRUE);
251 result = FALSE;
252 return result;
253 }
254 _tmp10_ = vala_named_argument_get_inner (self);
255 _tmp11_ = _tmp10_;
256 _tmp12_ = vala_named_argument_get_inner (self);
257 _tmp13_ = _tmp12_;
258 _tmp14_ = vala_expression_get_value_type (_tmp13_);
259 _tmp15_ = _tmp14_;
260 vala_expression_set_target_type (_tmp11_, _tmp15_);
261 _tmp16_ = vala_named_argument_get_inner (self);
262 _tmp17_ = _tmp16_;
263 _tmp18_ = vala_expression_get_value_type (_tmp17_);
264 _tmp19_ = _tmp18_;
265 vala_expression_set_value_type ((ValaExpression*) self, _tmp19_);
266 _tmp20_ = vala_code_node_get_error ((ValaCodeNode*) self);
267 _tmp21_ = _tmp20_;
268 result = !_tmp21_;
269 return result;
270 }
271
272 static void
vala_named_argument_real_emit(ValaCodeNode * base,ValaCodeGenerator * codegen)273 vala_named_argument_real_emit (ValaCodeNode* base,
274 ValaCodeGenerator* codegen)
275 {
276 ValaNamedArgument * self;
277 ValaExpression* _tmp0_;
278 ValaExpression* _tmp1_;
279 self = (ValaNamedArgument*) base;
280 g_return_if_fail (codegen != NULL);
281 _tmp0_ = vala_named_argument_get_inner (self);
282 _tmp1_ = _tmp0_;
283 vala_code_node_emit ((ValaCodeNode*) _tmp1_, codegen);
284 vala_code_visitor_visit_named_argument ((ValaCodeVisitor*) codegen, self);
285 vala_code_visitor_visit_expression ((ValaCodeVisitor*) codegen, (ValaExpression*) self);
286 }
287
288 static void
vala_named_argument_real_get_defined_variables(ValaCodeNode * base,ValaCollection * collection)289 vala_named_argument_real_get_defined_variables (ValaCodeNode* base,
290 ValaCollection* collection)
291 {
292 ValaNamedArgument * self;
293 ValaExpression* _tmp0_;
294 ValaExpression* _tmp1_;
295 self = (ValaNamedArgument*) base;
296 g_return_if_fail (collection != NULL);
297 _tmp0_ = vala_named_argument_get_inner (self);
298 _tmp1_ = _tmp0_;
299 vala_code_node_get_defined_variables ((ValaCodeNode*) _tmp1_, collection);
300 }
301
302 static void
vala_named_argument_real_get_used_variables(ValaCodeNode * base,ValaCollection * collection)303 vala_named_argument_real_get_used_variables (ValaCodeNode* base,
304 ValaCollection* collection)
305 {
306 ValaNamedArgument * self;
307 ValaExpression* _tmp0_;
308 ValaExpression* _tmp1_;
309 self = (ValaNamedArgument*) base;
310 g_return_if_fail (collection != NULL);
311 _tmp0_ = vala_named_argument_get_inner (self);
312 _tmp1_ = _tmp0_;
313 vala_code_node_get_used_variables ((ValaCodeNode*) _tmp1_, collection);
314 }
315
316 static void
vala_named_argument_class_init(ValaNamedArgumentClass * klass,gpointer klass_data)317 vala_named_argument_class_init (ValaNamedArgumentClass * klass,
318 gpointer klass_data)
319 {
320 vala_named_argument_parent_class = g_type_class_peek_parent (klass);
321 ((ValaCodeNodeClass *) klass)->finalize = vala_named_argument_finalize;
322 g_type_class_adjust_private_offset (klass, &ValaNamedArgument_private_offset);
323 ((ValaCodeNodeClass *) klass)->accept = (void (*) (ValaCodeNode*, ValaCodeVisitor*)) vala_named_argument_real_accept;
324 ((ValaCodeNodeClass *) klass)->accept_children = (void (*) (ValaCodeNode*, ValaCodeVisitor*)) vala_named_argument_real_accept_children;
325 ((ValaCodeNodeClass *) klass)->replace_expression = (void (*) (ValaCodeNode*, ValaExpression*, ValaExpression*)) vala_named_argument_real_replace_expression;
326 ((ValaExpressionClass *) klass)->is_pure = (gboolean (*) (ValaExpression*)) vala_named_argument_real_is_pure;
327 ((ValaCodeNodeClass *) klass)->check = (gboolean (*) (ValaCodeNode*, ValaCodeContext*)) vala_named_argument_real_check;
328 ((ValaCodeNodeClass *) klass)->emit = (void (*) (ValaCodeNode*, ValaCodeGenerator*)) vala_named_argument_real_emit;
329 ((ValaCodeNodeClass *) klass)->get_defined_variables = (void (*) (ValaCodeNode*, ValaCollection*)) vala_named_argument_real_get_defined_variables;
330 ((ValaCodeNodeClass *) klass)->get_used_variables = (void (*) (ValaCodeNode*, ValaCollection*)) vala_named_argument_real_get_used_variables;
331 }
332
333 static void
vala_named_argument_instance_init(ValaNamedArgument * self,gpointer klass)334 vala_named_argument_instance_init (ValaNamedArgument * self,
335 gpointer klass)
336 {
337 self->priv = vala_named_argument_get_instance_private (self);
338 }
339
340 static void
vala_named_argument_finalize(ValaCodeNode * obj)341 vala_named_argument_finalize (ValaCodeNode * obj)
342 {
343 ValaNamedArgument * self;
344 self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_NAMED_ARGUMENT, ValaNamedArgument);
345 _g_free0 (self->priv->_name);
346 _vala_code_node_unref0 (self->priv->_inner);
347 VALA_CODE_NODE_CLASS (vala_named_argument_parent_class)->finalize (obj);
348 }
349
350 static GType
vala_named_argument_get_type_once(void)351 vala_named_argument_get_type_once (void)
352 {
353 static const GTypeInfo g_define_type_info = { sizeof (ValaNamedArgumentClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_named_argument_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaNamedArgument), 0, (GInstanceInitFunc) vala_named_argument_instance_init, NULL };
354 GType vala_named_argument_type_id;
355 vala_named_argument_type_id = g_type_register_static (VALA_TYPE_EXPRESSION, "ValaNamedArgument", &g_define_type_info, 0);
356 ValaNamedArgument_private_offset = g_type_add_instance_private (vala_named_argument_type_id, sizeof (ValaNamedArgumentPrivate));
357 return vala_named_argument_type_id;
358 }
359
360 GType
vala_named_argument_get_type(void)361 vala_named_argument_get_type (void)
362 {
363 static volatile gsize vala_named_argument_type_id__volatile = 0;
364 if (g_once_init_enter (&vala_named_argument_type_id__volatile)) {
365 GType vala_named_argument_type_id;
366 vala_named_argument_type_id = vala_named_argument_get_type_once ();
367 g_once_init_leave (&vala_named_argument_type_id__volatile, vala_named_argument_type_id);
368 }
369 return vala_named_argument_type_id__volatile;
370 }
371
372