1 /* valaccodeconditionalexpression.c generated by valac, the Vala compiler
2  * generated from valaccodeconditionalexpression.vala, do not modify */
3 
4 /* valaccodeconditionalexpression.vala
5  *
6  * Copyright (C) 2006-2008  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 "valaccode.h"
27 #include <glib.h>
28 
29 #define _vala_ccode_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_ccode_node_unref (var), NULL)))
30 
31 struct _ValaCCodeConditionalExpressionPrivate {
32 	ValaCCodeExpression* _condition;
33 	ValaCCodeExpression* _true_expression;
34 	ValaCCodeExpression* _false_expression;
35 };
36 
37 static gint ValaCCodeConditionalExpression_private_offset;
38 static gpointer vala_ccode_conditional_expression_parent_class = NULL;
39 
40 static void vala_ccode_conditional_expression_real_write (ValaCCodeNode* base,
41                                                    ValaCCodeWriter* writer);
42 static void vala_ccode_conditional_expression_real_write_inner (ValaCCodeExpression* base,
43                                                          ValaCCodeWriter* writer);
44 static void vala_ccode_conditional_expression_finalize (ValaCCodeNode * obj);
45 static GType vala_ccode_conditional_expression_get_type_once (void);
46 
47 static inline gpointer
vala_ccode_conditional_expression_get_instance_private(ValaCCodeConditionalExpression * self)48 vala_ccode_conditional_expression_get_instance_private (ValaCCodeConditionalExpression* self)
49 {
50 	return G_STRUCT_MEMBER_P (self, ValaCCodeConditionalExpression_private_offset);
51 }
52 
53 ValaCCodeExpression*
vala_ccode_conditional_expression_get_condition(ValaCCodeConditionalExpression * self)54 vala_ccode_conditional_expression_get_condition (ValaCCodeConditionalExpression* self)
55 {
56 	ValaCCodeExpression* result;
57 	ValaCCodeExpression* _tmp0_;
58 	g_return_val_if_fail (self != NULL, NULL);
59 	_tmp0_ = self->priv->_condition;
60 	result = _tmp0_;
61 	return result;
62 }
63 
64 static gpointer
_vala_ccode_node_ref0(gpointer self)65 _vala_ccode_node_ref0 (gpointer self)
66 {
67 	return self ? vala_ccode_node_ref (self) : NULL;
68 }
69 
70 void
vala_ccode_conditional_expression_set_condition(ValaCCodeConditionalExpression * self,ValaCCodeExpression * value)71 vala_ccode_conditional_expression_set_condition (ValaCCodeConditionalExpression* self,
72                                                  ValaCCodeExpression* value)
73 {
74 	ValaCCodeExpression* _tmp0_;
75 	g_return_if_fail (self != NULL);
76 	_tmp0_ = _vala_ccode_node_ref0 (value);
77 	_vala_ccode_node_unref0 (self->priv->_condition);
78 	self->priv->_condition = _tmp0_;
79 }
80 
81 ValaCCodeExpression*
vala_ccode_conditional_expression_get_true_expression(ValaCCodeConditionalExpression * self)82 vala_ccode_conditional_expression_get_true_expression (ValaCCodeConditionalExpression* self)
83 {
84 	ValaCCodeExpression* result;
85 	ValaCCodeExpression* _tmp0_;
86 	g_return_val_if_fail (self != NULL, NULL);
87 	_tmp0_ = self->priv->_true_expression;
88 	result = _tmp0_;
89 	return result;
90 }
91 
92 void
vala_ccode_conditional_expression_set_true_expression(ValaCCodeConditionalExpression * self,ValaCCodeExpression * value)93 vala_ccode_conditional_expression_set_true_expression (ValaCCodeConditionalExpression* self,
94                                                        ValaCCodeExpression* value)
95 {
96 	ValaCCodeExpression* _tmp0_;
97 	g_return_if_fail (self != NULL);
98 	_tmp0_ = _vala_ccode_node_ref0 (value);
99 	_vala_ccode_node_unref0 (self->priv->_true_expression);
100 	self->priv->_true_expression = _tmp0_;
101 }
102 
103 ValaCCodeExpression*
vala_ccode_conditional_expression_get_false_expression(ValaCCodeConditionalExpression * self)104 vala_ccode_conditional_expression_get_false_expression (ValaCCodeConditionalExpression* self)
105 {
106 	ValaCCodeExpression* result;
107 	ValaCCodeExpression* _tmp0_;
108 	g_return_val_if_fail (self != NULL, NULL);
109 	_tmp0_ = self->priv->_false_expression;
110 	result = _tmp0_;
111 	return result;
112 }
113 
114 void
vala_ccode_conditional_expression_set_false_expression(ValaCCodeConditionalExpression * self,ValaCCodeExpression * value)115 vala_ccode_conditional_expression_set_false_expression (ValaCCodeConditionalExpression* self,
116                                                         ValaCCodeExpression* value)
117 {
118 	ValaCCodeExpression* _tmp0_;
119 	g_return_if_fail (self != NULL);
120 	_tmp0_ = _vala_ccode_node_ref0 (value);
121 	_vala_ccode_node_unref0 (self->priv->_false_expression);
122 	self->priv->_false_expression = _tmp0_;
123 }
124 
125 ValaCCodeConditionalExpression*
vala_ccode_conditional_expression_construct(GType object_type,ValaCCodeExpression * cond,ValaCCodeExpression * true_expr,ValaCCodeExpression * false_expr)126 vala_ccode_conditional_expression_construct (GType object_type,
127                                              ValaCCodeExpression* cond,
128                                              ValaCCodeExpression* true_expr,
129                                              ValaCCodeExpression* false_expr)
130 {
131 	ValaCCodeConditionalExpression* self = NULL;
132 	g_return_val_if_fail (cond != NULL, NULL);
133 	g_return_val_if_fail (true_expr != NULL, NULL);
134 	g_return_val_if_fail (false_expr != NULL, NULL);
135 	self = (ValaCCodeConditionalExpression*) vala_ccode_expression_construct (object_type);
136 	vala_ccode_conditional_expression_set_condition (self, cond);
137 	vala_ccode_conditional_expression_set_true_expression (self, true_expr);
138 	vala_ccode_conditional_expression_set_false_expression (self, false_expr);
139 	return self;
140 }
141 
142 ValaCCodeConditionalExpression*
vala_ccode_conditional_expression_new(ValaCCodeExpression * cond,ValaCCodeExpression * true_expr,ValaCCodeExpression * false_expr)143 vala_ccode_conditional_expression_new (ValaCCodeExpression* cond,
144                                        ValaCCodeExpression* true_expr,
145                                        ValaCCodeExpression* false_expr)
146 {
147 	return vala_ccode_conditional_expression_construct (VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION, cond, true_expr, false_expr);
148 }
149 
150 static void
vala_ccode_conditional_expression_real_write(ValaCCodeNode * base,ValaCCodeWriter * writer)151 vala_ccode_conditional_expression_real_write (ValaCCodeNode* base,
152                                               ValaCCodeWriter* writer)
153 {
154 	ValaCCodeConditionalExpression * self;
155 	ValaCCodeExpression* _tmp0_;
156 	ValaCCodeExpression* _tmp1_;
157 	ValaCCodeExpression* _tmp2_;
158 	self = (ValaCCodeConditionalExpression*) base;
159 	g_return_if_fail (writer != NULL);
160 	_tmp0_ = self->priv->_condition;
161 	vala_ccode_expression_write_inner (_tmp0_, writer);
162 	vala_ccode_writer_write_string (writer, " ? ");
163 	_tmp1_ = self->priv->_true_expression;
164 	vala_ccode_expression_write_inner (_tmp1_, writer);
165 	vala_ccode_writer_write_string (writer, " : ");
166 	_tmp2_ = self->priv->_false_expression;
167 	vala_ccode_expression_write_inner (_tmp2_, writer);
168 }
169 
170 static void
vala_ccode_conditional_expression_real_write_inner(ValaCCodeExpression * base,ValaCCodeWriter * writer)171 vala_ccode_conditional_expression_real_write_inner (ValaCCodeExpression* base,
172                                                     ValaCCodeWriter* writer)
173 {
174 	ValaCCodeConditionalExpression * self;
175 	self = (ValaCCodeConditionalExpression*) base;
176 	g_return_if_fail (writer != NULL);
177 	vala_ccode_writer_write_string (writer, "(");
178 	vala_ccode_node_write ((ValaCCodeNode*) self, writer);
179 	vala_ccode_writer_write_string (writer, ")");
180 }
181 
182 static void
vala_ccode_conditional_expression_class_init(ValaCCodeConditionalExpressionClass * klass,gpointer klass_data)183 vala_ccode_conditional_expression_class_init (ValaCCodeConditionalExpressionClass * klass,
184                                               gpointer klass_data)
185 {
186 	vala_ccode_conditional_expression_parent_class = g_type_class_peek_parent (klass);
187 	((ValaCCodeNodeClass *) klass)->finalize = vala_ccode_conditional_expression_finalize;
188 	g_type_class_adjust_private_offset (klass, &ValaCCodeConditionalExpression_private_offset);
189 	((ValaCCodeNodeClass *) klass)->write = (void (*) (ValaCCodeNode*, ValaCCodeWriter*)) vala_ccode_conditional_expression_real_write;
190 	((ValaCCodeExpressionClass *) klass)->write_inner = (void (*) (ValaCCodeExpression*, ValaCCodeWriter*)) vala_ccode_conditional_expression_real_write_inner;
191 }
192 
193 static void
vala_ccode_conditional_expression_instance_init(ValaCCodeConditionalExpression * self,gpointer klass)194 vala_ccode_conditional_expression_instance_init (ValaCCodeConditionalExpression * self,
195                                                  gpointer klass)
196 {
197 	self->priv = vala_ccode_conditional_expression_get_instance_private (self);
198 }
199 
200 static void
vala_ccode_conditional_expression_finalize(ValaCCodeNode * obj)201 vala_ccode_conditional_expression_finalize (ValaCCodeNode * obj)
202 {
203 	ValaCCodeConditionalExpression * self;
204 	self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_CCODE_CONDITIONAL_EXPRESSION, ValaCCodeConditionalExpression);
205 	_vala_ccode_node_unref0 (self->priv->_condition);
206 	_vala_ccode_node_unref0 (self->priv->_true_expression);
207 	_vala_ccode_node_unref0 (self->priv->_false_expression);
208 	VALA_CCODE_NODE_CLASS (vala_ccode_conditional_expression_parent_class)->finalize (obj);
209 }
210 
211 /**
212  * Represents a conditional expression in C code.
213  */
214 static GType
vala_ccode_conditional_expression_get_type_once(void)215 vala_ccode_conditional_expression_get_type_once (void)
216 {
217 	static const GTypeInfo g_define_type_info = { sizeof (ValaCCodeConditionalExpressionClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_ccode_conditional_expression_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaCCodeConditionalExpression), 0, (GInstanceInitFunc) vala_ccode_conditional_expression_instance_init, NULL };
218 	GType vala_ccode_conditional_expression_type_id;
219 	vala_ccode_conditional_expression_type_id = g_type_register_static (VALA_TYPE_CCODE_EXPRESSION, "ValaCCodeConditionalExpression", &g_define_type_info, 0);
220 	ValaCCodeConditionalExpression_private_offset = g_type_add_instance_private (vala_ccode_conditional_expression_type_id, sizeof (ValaCCodeConditionalExpressionPrivate));
221 	return vala_ccode_conditional_expression_type_id;
222 }
223 
224 GType
vala_ccode_conditional_expression_get_type(void)225 vala_ccode_conditional_expression_get_type (void)
226 {
227 	static volatile gsize vala_ccode_conditional_expression_type_id__volatile = 0;
228 	if (g_once_init_enter (&vala_ccode_conditional_expression_type_id__volatile)) {
229 		GType vala_ccode_conditional_expression_type_id;
230 		vala_ccode_conditional_expression_type_id = vala_ccode_conditional_expression_get_type_once ();
231 		g_once_init_leave (&vala_ccode_conditional_expression_type_id__volatile, vala_ccode_conditional_expression_type_id);
232 	}
233 	return vala_ccode_conditional_expression_type_id__volatile;
234 }
235 
236