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