~ubuntu-branches/ubuntu/raring/vala-0.20/raring-proposed

« back to all changes in this revision

Viewing changes to vala/valawhilestatement.c

  • Committer: Package Import Robot
  • Author(s): Sebastien Bacher
  • Date: 2013-04-05 13:45:05 UTC
  • Revision ID: package-import@ubuntu.com-20130405134505-yyk3rec9904i7p8o
Tags: upstream-0.20.1
ImportĀ upstreamĀ versionĀ 0.20.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* valawhilestatement.c generated by valac, the Vala compiler
 
2
 * generated from valawhilestatement.vala, do not modify */
 
3
 
 
4
/* valawhilestatement.vala
 
5
 *
 
6
 * Copyright (C) 2006-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 <glib.h>
 
27
#include <glib-object.h>
 
28
#include <stdlib.h>
 
29
#include <string.h>
 
30
#include <valagee.h>
 
31
 
 
32
 
 
33
#define VALA_TYPE_CODE_NODE (vala_code_node_get_type ())
 
34
#define VALA_CODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_NODE, ValaCodeNode))
 
35
#define VALA_CODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_NODE, ValaCodeNodeClass))
 
36
#define VALA_IS_CODE_NODE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_NODE))
 
37
#define VALA_IS_CODE_NODE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_NODE))
 
38
#define VALA_CODE_NODE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_NODE, ValaCodeNodeClass))
 
39
 
 
40
typedef struct _ValaCodeNode ValaCodeNode;
 
41
typedef struct _ValaCodeNodeClass ValaCodeNodeClass;
 
42
typedef struct _ValaCodeNodePrivate ValaCodeNodePrivate;
 
43
 
 
44
#define VALA_TYPE_CODE_VISITOR (vala_code_visitor_get_type ())
 
45
#define VALA_CODE_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_VISITOR, ValaCodeVisitor))
 
46
#define VALA_CODE_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_VISITOR, ValaCodeVisitorClass))
 
47
#define VALA_IS_CODE_VISITOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_VISITOR))
 
48
#define VALA_IS_CODE_VISITOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_VISITOR))
 
49
#define VALA_CODE_VISITOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_VISITOR, ValaCodeVisitorClass))
 
50
 
 
51
typedef struct _ValaCodeVisitor ValaCodeVisitor;
 
52
typedef struct _ValaCodeVisitorClass ValaCodeVisitorClass;
 
53
 
 
54
#define VALA_TYPE_CODE_CONTEXT (vala_code_context_get_type ())
 
55
#define VALA_CODE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_CONTEXT, ValaCodeContext))
 
56
#define VALA_CODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_CONTEXT, ValaCodeContextClass))
 
57
#define VALA_IS_CODE_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_CONTEXT))
 
58
#define VALA_IS_CODE_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_CONTEXT))
 
59
#define VALA_CODE_CONTEXT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_CONTEXT, ValaCodeContextClass))
 
60
 
 
61
typedef struct _ValaCodeContext ValaCodeContext;
 
62
typedef struct _ValaCodeContextClass ValaCodeContextClass;
 
63
 
 
64
#define VALA_TYPE_CODE_GENERATOR (vala_code_generator_get_type ())
 
65
#define VALA_CODE_GENERATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_CODE_GENERATOR, ValaCodeGenerator))
 
66
#define VALA_CODE_GENERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_CODE_GENERATOR, ValaCodeGeneratorClass))
 
67
#define VALA_IS_CODE_GENERATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_CODE_GENERATOR))
 
68
#define VALA_IS_CODE_GENERATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_CODE_GENERATOR))
 
69
#define VALA_CODE_GENERATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_CODE_GENERATOR, ValaCodeGeneratorClass))
 
70
 
 
71
typedef struct _ValaCodeGenerator ValaCodeGenerator;
 
72
typedef struct _ValaCodeGeneratorClass ValaCodeGeneratorClass;
 
73
 
 
74
#define VALA_TYPE_DATA_TYPE (vala_data_type_get_type ())
 
75
#define VALA_DATA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_DATA_TYPE, ValaDataType))
 
76
#define VALA_DATA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_DATA_TYPE, ValaDataTypeClass))
 
77
#define VALA_IS_DATA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_DATA_TYPE))
 
78
#define VALA_IS_DATA_TYPE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_DATA_TYPE))
 
79
#define VALA_DATA_TYPE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_DATA_TYPE, ValaDataTypeClass))
 
80
 
 
81
typedef struct _ValaDataType ValaDataType;
 
82
typedef struct _ValaDataTypeClass ValaDataTypeClass;
 
83
 
 
84
#define VALA_TYPE_EXPRESSION (vala_expression_get_type ())
 
85
#define VALA_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_EXPRESSION, ValaExpression))
 
86
#define VALA_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_EXPRESSION, ValaExpressionClass))
 
87
#define VALA_IS_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_EXPRESSION))
 
88
#define VALA_IS_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_EXPRESSION))
 
89
#define VALA_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_EXPRESSION, ValaExpressionClass))
 
90
 
 
91
typedef struct _ValaExpression ValaExpression;
 
92
typedef struct _ValaExpressionClass ValaExpressionClass;
 
93
 
 
94
#define VALA_TYPE_SYMBOL (vala_symbol_get_type ())
 
95
#define VALA_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SYMBOL, ValaSymbol))
 
96
#define VALA_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SYMBOL, ValaSymbolClass))
 
97
#define VALA_IS_SYMBOL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SYMBOL))
 
98
#define VALA_IS_SYMBOL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SYMBOL))
 
99
#define VALA_SYMBOL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SYMBOL, ValaSymbolClass))
 
100
 
 
101
typedef struct _ValaSymbol ValaSymbol;
 
102
typedef struct _ValaSymbolClass ValaSymbolClass;
 
103
 
 
104
#define VALA_TYPE_VARIABLE (vala_variable_get_type ())
 
105
#define VALA_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_VARIABLE, ValaVariable))
 
106
#define VALA_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_VARIABLE, ValaVariableClass))
 
107
#define VALA_IS_VARIABLE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_VARIABLE))
 
108
#define VALA_IS_VARIABLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_VARIABLE))
 
109
#define VALA_VARIABLE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_VARIABLE, ValaVariableClass))
 
110
 
 
111
typedef struct _ValaVariable ValaVariable;
 
112
typedef struct _ValaVariableClass ValaVariableClass;
 
113
 
 
114
#define VALA_TYPE_ATTRIBUTE (vala_attribute_get_type ())
 
115
#define VALA_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_ATTRIBUTE, ValaAttribute))
 
116
#define VALA_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_ATTRIBUTE, ValaAttributeClass))
 
117
#define VALA_IS_ATTRIBUTE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_ATTRIBUTE))
 
118
#define VALA_IS_ATTRIBUTE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_ATTRIBUTE))
 
119
#define VALA_ATTRIBUTE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_ATTRIBUTE, ValaAttributeClass))
 
120
 
 
121
typedef struct _ValaAttribute ValaAttribute;
 
122
typedef struct _ValaAttributeClass ValaAttributeClass;
 
123
 
 
124
#define VALA_TYPE_STATEMENT (vala_statement_get_type ())
 
125
#define VALA_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_STATEMENT, ValaStatement))
 
126
#define VALA_IS_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_STATEMENT))
 
127
#define VALA_STATEMENT_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), VALA_TYPE_STATEMENT, ValaStatementIface))
 
128
 
 
129
typedef struct _ValaStatement ValaStatement;
 
130
typedef struct _ValaStatementIface ValaStatementIface;
 
131
 
 
132
#define VALA_TYPE_WHILE_STATEMENT (vala_while_statement_get_type ())
 
133
#define VALA_WHILE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatement))
 
134
#define VALA_WHILE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatementClass))
 
135
#define VALA_IS_WHILE_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_WHILE_STATEMENT))
 
136
#define VALA_IS_WHILE_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_WHILE_STATEMENT))
 
137
#define VALA_WHILE_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatementClass))
 
138
 
 
139
typedef struct _ValaWhileStatement ValaWhileStatement;
 
140
typedef struct _ValaWhileStatementClass ValaWhileStatementClass;
 
141
typedef struct _ValaWhileStatementPrivate ValaWhileStatementPrivate;
 
142
 
 
143
#define VALA_TYPE_BLOCK (vala_block_get_type ())
 
144
#define VALA_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BLOCK, ValaBlock))
 
145
#define VALA_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BLOCK, ValaBlockClass))
 
146
#define VALA_IS_BLOCK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BLOCK))
 
147
#define VALA_IS_BLOCK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BLOCK))
 
148
#define VALA_BLOCK_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BLOCK, ValaBlockClass))
 
149
 
 
150
typedef struct _ValaBlock ValaBlock;
 
151
typedef struct _ValaBlockClass ValaBlockClass;
 
152
#define _vala_code_node_unref0(var) ((var == NULL) ? NULL : (var = (vala_code_node_unref (var), NULL)))
 
153
 
 
154
#define VALA_TYPE_SOURCE_REFERENCE (vala_source_reference_get_type ())
 
155
#define VALA_SOURCE_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReference))
 
156
#define VALA_SOURCE_REFERENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReferenceClass))
 
157
#define VALA_IS_SOURCE_REFERENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_SOURCE_REFERENCE))
 
158
#define VALA_IS_SOURCE_REFERENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_SOURCE_REFERENCE))
 
159
#define VALA_SOURCE_REFERENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_SOURCE_REFERENCE, ValaSourceReferenceClass))
 
160
 
 
161
typedef struct _ValaSourceReference ValaSourceReference;
 
162
typedef struct _ValaSourceReferenceClass ValaSourceReferenceClass;
 
163
 
 
164
#define VALA_TYPE_LITERAL (vala_literal_get_type ())
 
165
#define VALA_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LITERAL, ValaLiteral))
 
166
#define VALA_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LITERAL, ValaLiteralClass))
 
167
#define VALA_IS_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LITERAL))
 
168
#define VALA_IS_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LITERAL))
 
169
#define VALA_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LITERAL, ValaLiteralClass))
 
170
 
 
171
typedef struct _ValaLiteral ValaLiteral;
 
172
typedef struct _ValaLiteralClass ValaLiteralClass;
 
173
 
 
174
#define VALA_TYPE_BOOLEAN_LITERAL (vala_boolean_literal_get_type ())
 
175
#define VALA_BOOLEAN_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BOOLEAN_LITERAL, ValaBooleanLiteral))
 
176
#define VALA_BOOLEAN_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BOOLEAN_LITERAL, ValaBooleanLiteralClass))
 
177
#define VALA_IS_BOOLEAN_LITERAL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BOOLEAN_LITERAL))
 
178
#define VALA_IS_BOOLEAN_LITERAL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BOOLEAN_LITERAL))
 
179
#define VALA_BOOLEAN_LITERAL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BOOLEAN_LITERAL, ValaBooleanLiteralClass))
 
180
 
 
181
typedef struct _ValaBooleanLiteral ValaBooleanLiteral;
 
182
typedef struct _ValaBooleanLiteralClass ValaBooleanLiteralClass;
 
183
 
 
184
#define VALA_TYPE_BREAK_STATEMENT (vala_break_statement_get_type ())
 
185
#define VALA_BREAK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_BREAK_STATEMENT, ValaBreakStatement))
 
186
#define VALA_BREAK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_BREAK_STATEMENT, ValaBreakStatementClass))
 
187
#define VALA_IS_BREAK_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_BREAK_STATEMENT))
 
188
#define VALA_IS_BREAK_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_BREAK_STATEMENT))
 
189
#define VALA_BREAK_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_BREAK_STATEMENT, ValaBreakStatementClass))
 
190
 
 
191
typedef struct _ValaBreakStatement ValaBreakStatement;
 
192
typedef struct _ValaBreakStatementClass ValaBreakStatementClass;
 
193
 
 
194
#define VALA_TYPE_UNARY_OPERATOR (vala_unary_operator_get_type ())
 
195
 
 
196
#define VALA_TYPE_UNARY_EXPRESSION (vala_unary_expression_get_type ())
 
197
#define VALA_UNARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_UNARY_EXPRESSION, ValaUnaryExpression))
 
198
#define VALA_UNARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_UNARY_EXPRESSION, ValaUnaryExpressionClass))
 
199
#define VALA_IS_UNARY_EXPRESSION(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_UNARY_EXPRESSION))
 
200
#define VALA_IS_UNARY_EXPRESSION_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_UNARY_EXPRESSION))
 
201
#define VALA_UNARY_EXPRESSION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_UNARY_EXPRESSION, ValaUnaryExpressionClass))
 
202
 
 
203
typedef struct _ValaUnaryExpression ValaUnaryExpression;
 
204
typedef struct _ValaUnaryExpressionClass ValaUnaryExpressionClass;
 
205
 
 
206
#define VALA_TYPE_IF_STATEMENT (vala_if_statement_get_type ())
 
207
#define VALA_IF_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_IF_STATEMENT, ValaIfStatement))
 
208
#define VALA_IF_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_IF_STATEMENT, ValaIfStatementClass))
 
209
#define VALA_IS_IF_STATEMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_IF_STATEMENT))
 
210
#define VALA_IS_IF_STATEMENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_IF_STATEMENT))
 
211
#define VALA_IF_STATEMENT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_IF_STATEMENT, ValaIfStatementClass))
 
212
 
 
213
typedef struct _ValaIfStatement ValaIfStatement;
 
214
typedef struct _ValaIfStatementClass ValaIfStatementClass;
 
215
 
 
216
#define VALA_TYPE_LOOP (vala_loop_get_type ())
 
217
#define VALA_LOOP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), VALA_TYPE_LOOP, ValaLoop))
 
218
#define VALA_LOOP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), VALA_TYPE_LOOP, ValaLoopClass))
 
219
#define VALA_IS_LOOP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), VALA_TYPE_LOOP))
 
220
#define VALA_IS_LOOP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), VALA_TYPE_LOOP))
 
221
#define VALA_LOOP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), VALA_TYPE_LOOP, ValaLoopClass))
 
222
 
 
223
typedef struct _ValaLoop ValaLoop;
 
224
typedef struct _ValaLoopClass ValaLoopClass;
 
225
 
 
226
struct _ValaCodeNode {
 
227
        GTypeInstance parent_instance;
 
228
        volatile int ref_count;
 
229
        ValaCodeNodePrivate * priv;
 
230
        GList* attributes;
 
231
};
 
232
 
 
233
struct _ValaCodeNodeClass {
 
234
        GTypeClass parent_class;
 
235
        void (*finalize) (ValaCodeNode *self);
 
236
        void (*accept) (ValaCodeNode* self, ValaCodeVisitor* visitor);
 
237
        void (*accept_children) (ValaCodeNode* self, ValaCodeVisitor* visitor);
 
238
        gboolean (*check) (ValaCodeNode* self, ValaCodeContext* context);
 
239
        void (*emit) (ValaCodeNode* self, ValaCodeGenerator* codegen);
 
240
        void (*replace_type) (ValaCodeNode* self, ValaDataType* old_type, ValaDataType* new_type);
 
241
        void (*replace_expression) (ValaCodeNode* self, ValaExpression* old_node, ValaExpression* new_node);
 
242
        gchar* (*to_string) (ValaCodeNode* self);
 
243
        void (*get_defined_variables) (ValaCodeNode* self, ValaCollection* collection);
 
244
        void (*get_used_variables) (ValaCodeNode* self, ValaCollection* collection);
 
245
};
 
246
 
 
247
struct _ValaStatementIface {
 
248
        GTypeInterface parent_iface;
 
249
};
 
250
 
 
251
struct _ValaWhileStatement {
 
252
        ValaCodeNode parent_instance;
 
253
        ValaWhileStatementPrivate * priv;
 
254
};
 
255
 
 
256
struct _ValaWhileStatementClass {
 
257
        ValaCodeNodeClass parent_class;
 
258
};
 
259
 
 
260
struct _ValaWhileStatementPrivate {
 
261
        ValaExpression* _condition;
 
262
        ValaBlock* _body;
 
263
};
 
264
 
 
265
typedef enum  {
 
266
        VALA_UNARY_OPERATOR_NONE,
 
267
        VALA_UNARY_OPERATOR_PLUS,
 
268
        VALA_UNARY_OPERATOR_MINUS,
 
269
        VALA_UNARY_OPERATOR_LOGICAL_NEGATION,
 
270
        VALA_UNARY_OPERATOR_BITWISE_COMPLEMENT,
 
271
        VALA_UNARY_OPERATOR_INCREMENT,
 
272
        VALA_UNARY_OPERATOR_DECREMENT,
 
273
        VALA_UNARY_OPERATOR_REF,
 
274
        VALA_UNARY_OPERATOR_OUT
 
275
} ValaUnaryOperator;
 
276
 
 
277
 
 
278
static gpointer vala_while_statement_parent_class = NULL;
 
279
static ValaStatementIface* vala_while_statement_vala_statement_parent_iface = NULL;
 
280
 
 
281
gpointer vala_code_node_ref (gpointer instance);
 
282
void vala_code_node_unref (gpointer instance);
 
283
GParamSpec* vala_param_spec_code_node (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
284
void vala_value_set_code_node (GValue* value, gpointer v_object);
 
285
void vala_value_take_code_node (GValue* value, gpointer v_object);
 
286
gpointer vala_value_get_code_node (const GValue* value);
 
287
GType vala_code_node_get_type (void) G_GNUC_CONST;
 
288
gpointer vala_code_visitor_ref (gpointer instance);
 
289
void vala_code_visitor_unref (gpointer instance);
 
290
GParamSpec* vala_param_spec_code_visitor (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
291
void vala_value_set_code_visitor (GValue* value, gpointer v_object);
 
292
void vala_value_take_code_visitor (GValue* value, gpointer v_object);
 
293
gpointer vala_value_get_code_visitor (const GValue* value);
 
294
GType vala_code_visitor_get_type (void) G_GNUC_CONST;
 
295
gpointer vala_code_context_ref (gpointer instance);
 
296
void vala_code_context_unref (gpointer instance);
 
297
GParamSpec* vala_param_spec_code_context (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
298
void vala_value_set_code_context (GValue* value, gpointer v_object);
 
299
void vala_value_take_code_context (GValue* value, gpointer v_object);
 
300
gpointer vala_value_get_code_context (const GValue* value);
 
301
GType vala_code_context_get_type (void) G_GNUC_CONST;
 
302
GType vala_code_generator_get_type (void) G_GNUC_CONST;
 
303
GType vala_data_type_get_type (void) G_GNUC_CONST;
 
304
GType vala_expression_get_type (void) G_GNUC_CONST;
 
305
GType vala_symbol_get_type (void) G_GNUC_CONST;
 
306
GType vala_variable_get_type (void) G_GNUC_CONST;
 
307
GType vala_attribute_get_type (void) G_GNUC_CONST;
 
308
GType vala_statement_get_type (void) G_GNUC_CONST;
 
309
GType vala_while_statement_get_type (void) G_GNUC_CONST;
 
310
GType vala_block_get_type (void) G_GNUC_CONST;
 
311
#define VALA_WHILE_STATEMENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), VALA_TYPE_WHILE_STATEMENT, ValaWhileStatementPrivate))
 
312
enum  {
 
313
        VALA_WHILE_STATEMENT_DUMMY_PROPERTY
 
314
};
 
315
gpointer vala_source_reference_ref (gpointer instance);
 
316
void vala_source_reference_unref (gpointer instance);
 
317
GParamSpec* vala_param_spec_source_reference (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
 
318
void vala_value_set_source_reference (GValue* value, gpointer v_object);
 
319
void vala_value_take_source_reference (GValue* value, gpointer v_object);
 
320
gpointer vala_value_get_source_reference (const GValue* value);
 
321
GType vala_source_reference_get_type (void) G_GNUC_CONST;
 
322
ValaWhileStatement* vala_while_statement_new (ValaExpression* condition, ValaBlock* body, ValaSourceReference* source_reference);
 
323
ValaWhileStatement* vala_while_statement_construct (GType object_type, ValaExpression* condition, ValaBlock* body, ValaSourceReference* source_reference);
 
324
ValaCodeNode* vala_code_node_construct (GType object_type);
 
325
void vala_while_statement_set_body (ValaWhileStatement* self, ValaBlock* value);
 
326
void vala_code_node_set_source_reference (ValaCodeNode* self, ValaSourceReference* value);
 
327
void vala_while_statement_set_condition (ValaWhileStatement* self, ValaExpression* value);
 
328
static void vala_while_statement_real_accept (ValaCodeNode* base, ValaCodeVisitor* visitor);
 
329
void vala_code_visitor_visit_while_statement (ValaCodeVisitor* self, ValaWhileStatement* stmt);
 
330
static void vala_while_statement_real_accept_children (ValaCodeNode* base, ValaCodeVisitor* visitor);
 
331
ValaExpression* vala_while_statement_get_condition (ValaWhileStatement* self);
 
332
void vala_code_node_accept (ValaCodeNode* self, ValaCodeVisitor* visitor);
 
333
void vala_code_visitor_visit_end_full_expression (ValaCodeVisitor* self, ValaExpression* expr);
 
334
ValaBlock* vala_while_statement_get_body (ValaWhileStatement* self);
 
335
static gboolean vala_while_statement_always_true (ValaWhileStatement* self, ValaExpression* condition);
 
336
GType vala_literal_get_type (void) G_GNUC_CONST;
 
337
GType vala_boolean_literal_get_type (void) G_GNUC_CONST;
 
338
gboolean vala_boolean_literal_get_value (ValaBooleanLiteral* self);
 
339
static gboolean vala_while_statement_always_false (ValaWhileStatement* self, ValaExpression* condition);
 
340
static gboolean vala_while_statement_real_check (ValaCodeNode* base, ValaCodeContext* context);
 
341
void vala_block_insert_statement (ValaBlock* self, gint index, ValaStatement* stmt);
 
342
ValaSourceReference* vala_code_node_get_source_reference (ValaCodeNode* self);
 
343
ValaBreakStatement* vala_break_statement_new (ValaSourceReference* source);
 
344
ValaBreakStatement* vala_break_statement_construct (GType object_type, ValaSourceReference* source);
 
345
GType vala_break_statement_get_type (void) G_GNUC_CONST;
 
346
GType vala_unary_operator_get_type (void) G_GNUC_CONST;
 
347
ValaUnaryExpression* vala_unary_expression_new (ValaUnaryOperator op, ValaExpression* _inner, ValaSourceReference* source);
 
348
ValaUnaryExpression* vala_unary_expression_construct (GType object_type, ValaUnaryOperator op, ValaExpression* _inner, ValaSourceReference* source);
 
349
GType vala_unary_expression_get_type (void) G_GNUC_CONST;
 
350
ValaBlock* vala_block_new (ValaSourceReference* source_reference);
 
351
ValaBlock* vala_block_construct (GType object_type, ValaSourceReference* source_reference);
 
352
void vala_block_add_statement (ValaBlock* self, ValaStatement* stmt);
 
353
ValaIfStatement* vala_if_statement_new (ValaExpression* cond, ValaBlock* true_stmt, ValaBlock* false_stmt, ValaSourceReference* source);
 
354
ValaIfStatement* vala_if_statement_construct (GType object_type, ValaExpression* cond, ValaBlock* true_stmt, ValaBlock* false_stmt, ValaSourceReference* source);
 
355
GType vala_if_statement_get_type (void) G_GNUC_CONST;
 
356
ValaLoop* vala_loop_new (ValaBlock* body, ValaSourceReference* source_reference);
 
357
ValaLoop* vala_loop_construct (GType object_type, ValaBlock* body, ValaSourceReference* source_reference);
 
358
GType vala_loop_get_type (void) G_GNUC_CONST;
 
359
ValaCodeNode* vala_code_node_get_parent_node (ValaCodeNode* self);
 
360
void vala_block_replace_statement (ValaBlock* self, ValaStatement* old_stmt, ValaStatement* new_stmt);
 
361
gboolean vala_code_node_check (ValaCodeNode* self, ValaCodeContext* context);
 
362
void vala_code_node_set_parent_node (ValaCodeNode* self, ValaCodeNode* value);
 
363
static void vala_while_statement_finalize (ValaCodeNode* obj);
 
364
 
 
365
 
 
366
/**
 
367
 * Creates a new while statement.
 
368
 *
 
369
 * @param cond   loop condition
 
370
 * @param body   loop body
 
371
 * @param source reference to source code
 
372
 * @return       newly created while statement
 
373
 */
 
374
ValaWhileStatement* vala_while_statement_construct (GType object_type, ValaExpression* condition, ValaBlock* body, ValaSourceReference* source_reference) {
 
375
        ValaWhileStatement* self = NULL;
 
376
        ValaBlock* _tmp0_;
 
377
        ValaSourceReference* _tmp1_;
 
378
        ValaExpression* _tmp2_;
 
379
        g_return_val_if_fail (condition != NULL, NULL);
 
380
        g_return_val_if_fail (body != NULL, NULL);
 
381
        self = (ValaWhileStatement*) vala_code_node_construct (object_type);
 
382
        _tmp0_ = body;
 
383
        vala_while_statement_set_body (self, _tmp0_);
 
384
        _tmp1_ = source_reference;
 
385
        vala_code_node_set_source_reference ((ValaCodeNode*) self, _tmp1_);
 
386
        _tmp2_ = condition;
 
387
        vala_while_statement_set_condition (self, _tmp2_);
 
388
        return self;
 
389
}
 
390
 
 
391
 
 
392
ValaWhileStatement* vala_while_statement_new (ValaExpression* condition, ValaBlock* body, ValaSourceReference* source_reference) {
 
393
        return vala_while_statement_construct (VALA_TYPE_WHILE_STATEMENT, condition, body, source_reference);
 
394
}
 
395
 
 
396
 
 
397
static void vala_while_statement_real_accept (ValaCodeNode* base, ValaCodeVisitor* visitor) {
 
398
        ValaWhileStatement * self;
 
399
        ValaCodeVisitor* _tmp0_;
 
400
        self = (ValaWhileStatement*) base;
 
401
        g_return_if_fail (visitor != NULL);
 
402
        _tmp0_ = visitor;
 
403
        vala_code_visitor_visit_while_statement (_tmp0_, self);
 
404
}
 
405
 
 
406
 
 
407
static void vala_while_statement_real_accept_children (ValaCodeNode* base, ValaCodeVisitor* visitor) {
 
408
        ValaWhileStatement * self;
 
409
        ValaExpression* _tmp0_;
 
410
        ValaExpression* _tmp1_;
 
411
        ValaCodeVisitor* _tmp2_;
 
412
        ValaCodeVisitor* _tmp3_;
 
413
        ValaExpression* _tmp4_;
 
414
        ValaExpression* _tmp5_;
 
415
        ValaBlock* _tmp6_;
 
416
        ValaBlock* _tmp7_;
 
417
        ValaCodeVisitor* _tmp8_;
 
418
        self = (ValaWhileStatement*) base;
 
419
        g_return_if_fail (visitor != NULL);
 
420
        _tmp0_ = vala_while_statement_get_condition (self);
 
421
        _tmp1_ = _tmp0_;
 
422
        _tmp2_ = visitor;
 
423
        vala_code_node_accept ((ValaCodeNode*) _tmp1_, _tmp2_);
 
424
        _tmp3_ = visitor;
 
425
        _tmp4_ = vala_while_statement_get_condition (self);
 
426
        _tmp5_ = _tmp4_;
 
427
        vala_code_visitor_visit_end_full_expression (_tmp3_, _tmp5_);
 
428
        _tmp6_ = vala_while_statement_get_body (self);
 
429
        _tmp7_ = _tmp6_;
 
430
        _tmp8_ = visitor;
 
431
        vala_code_node_accept ((ValaCodeNode*) _tmp7_, _tmp8_);
 
432
}
 
433
 
 
434
 
 
435
static gpointer _vala_code_node_ref0 (gpointer self) {
 
436
        return self ? vala_code_node_ref (self) : NULL;
 
437
}
 
438
 
 
439
 
 
440
static gboolean vala_while_statement_always_true (ValaWhileStatement* self, ValaExpression* condition) {
 
441
        gboolean result = FALSE;
 
442
        ValaExpression* _tmp0_;
 
443
        ValaBooleanLiteral* _tmp1_;
 
444
        ValaBooleanLiteral* literal;
 
445
        gboolean _tmp2_ = FALSE;
 
446
        ValaBooleanLiteral* _tmp3_;
 
447
        gboolean _tmp7_;
 
448
        g_return_val_if_fail (self != NULL, FALSE);
 
449
        g_return_val_if_fail (condition != NULL, FALSE);
 
450
        _tmp0_ = condition;
 
451
        _tmp1_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, VALA_TYPE_BOOLEAN_LITERAL) ? ((ValaBooleanLiteral*) _tmp0_) : NULL);
 
452
        literal = _tmp1_;
 
453
        _tmp3_ = literal;
 
454
        if (_tmp3_ != NULL) {
 
455
                ValaBooleanLiteral* _tmp4_;
 
456
                gboolean _tmp5_;
 
457
                gboolean _tmp6_;
 
458
                _tmp4_ = literal;
 
459
                _tmp5_ = vala_boolean_literal_get_value (_tmp4_);
 
460
                _tmp6_ = _tmp5_;
 
461
                _tmp2_ = _tmp6_;
 
462
        } else {
 
463
                _tmp2_ = FALSE;
 
464
        }
 
465
        _tmp7_ = _tmp2_;
 
466
        result = _tmp7_;
 
467
        _vala_code_node_unref0 (literal);
 
468
        return result;
 
469
}
 
470
 
 
471
 
 
472
static gboolean vala_while_statement_always_false (ValaWhileStatement* self, ValaExpression* condition) {
 
473
        gboolean result = FALSE;
 
474
        ValaExpression* _tmp0_;
 
475
        ValaBooleanLiteral* _tmp1_;
 
476
        ValaBooleanLiteral* literal;
 
477
        gboolean _tmp2_ = FALSE;
 
478
        ValaBooleanLiteral* _tmp3_;
 
479
        gboolean _tmp7_;
 
480
        g_return_val_if_fail (self != NULL, FALSE);
 
481
        g_return_val_if_fail (condition != NULL, FALSE);
 
482
        _tmp0_ = condition;
 
483
        _tmp1_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, VALA_TYPE_BOOLEAN_LITERAL) ? ((ValaBooleanLiteral*) _tmp0_) : NULL);
 
484
        literal = _tmp1_;
 
485
        _tmp3_ = literal;
 
486
        if (_tmp3_ != NULL) {
 
487
                ValaBooleanLiteral* _tmp4_;
 
488
                gboolean _tmp5_;
 
489
                gboolean _tmp6_;
 
490
                _tmp4_ = literal;
 
491
                _tmp5_ = vala_boolean_literal_get_value (_tmp4_);
 
492
                _tmp6_ = _tmp5_;
 
493
                _tmp2_ = !_tmp6_;
 
494
        } else {
 
495
                _tmp2_ = FALSE;
 
496
        }
 
497
        _tmp7_ = _tmp2_;
 
498
        result = _tmp7_;
 
499
        _vala_code_node_unref0 (literal);
 
500
        return result;
 
501
}
 
502
 
 
503
 
 
504
static gboolean vala_while_statement_real_check (ValaCodeNode* base, ValaCodeContext* context) {
 
505
        ValaWhileStatement * self;
 
506
        gboolean result = FALSE;
 
507
        ValaExpression* _tmp0_;
 
508
        ValaExpression* _tmp1_;
 
509
        gboolean _tmp2_ = FALSE;
 
510
        ValaBlock* _tmp43_;
 
511
        ValaBlock* _tmp44_;
 
512
        ValaSourceReference* _tmp45_;
 
513
        ValaSourceReference* _tmp46_;
 
514
        ValaLoop* _tmp47_;
 
515
        ValaLoop* loop;
 
516
        ValaCodeNode* _tmp48_;
 
517
        ValaCodeNode* _tmp49_;
 
518
        ValaBlock* _tmp50_;
 
519
        ValaBlock* parent_block;
 
520
        ValaCodeContext* _tmp51_;
 
521
        gboolean _tmp52_ = FALSE;
 
522
        self = (ValaWhileStatement*) base;
 
523
        g_return_val_if_fail (context != NULL, FALSE);
 
524
        _tmp0_ = vala_while_statement_get_condition (self);
 
525
        _tmp1_ = _tmp0_;
 
526
        _tmp2_ = vala_while_statement_always_true (self, _tmp1_);
 
527
        if (_tmp2_) {
 
528
        } else {
 
529
                ValaExpression* _tmp3_;
 
530
                ValaExpression* _tmp4_;
 
531
                gboolean _tmp5_ = FALSE;
 
532
                _tmp3_ = vala_while_statement_get_condition (self);
 
533
                _tmp4_ = _tmp3_;
 
534
                _tmp5_ = vala_while_statement_always_false (self, _tmp4_);
 
535
                if (_tmp5_) {
 
536
                        ValaBlock* _tmp6_;
 
537
                        ValaBlock* _tmp7_;
 
538
                        ValaExpression* _tmp8_;
 
539
                        ValaExpression* _tmp9_;
 
540
                        ValaSourceReference* _tmp10_;
 
541
                        ValaSourceReference* _tmp11_;
 
542
                        ValaBreakStatement* _tmp12_;
 
543
                        ValaBreakStatement* _tmp13_;
 
544
                        _tmp6_ = vala_while_statement_get_body (self);
 
545
                        _tmp7_ = _tmp6_;
 
546
                        _tmp8_ = vala_while_statement_get_condition (self);
 
547
                        _tmp9_ = _tmp8_;
 
548
                        _tmp10_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp9_);
 
549
                        _tmp11_ = _tmp10_;
 
550
                        _tmp12_ = vala_break_statement_new (_tmp11_);
 
551
                        _tmp13_ = _tmp12_;
 
552
                        vala_block_insert_statement (_tmp7_, 0, (ValaStatement*) _tmp13_);
 
553
                        _vala_code_node_unref0 (_tmp13_);
 
554
                } else {
 
555
                        ValaExpression* _tmp14_;
 
556
                        ValaExpression* _tmp15_;
 
557
                        ValaExpression* _tmp16_;
 
558
                        ValaExpression* _tmp17_;
 
559
                        ValaSourceReference* _tmp18_;
 
560
                        ValaSourceReference* _tmp19_;
 
561
                        ValaUnaryExpression* _tmp20_;
 
562
                        ValaUnaryExpression* if_condition;
 
563
                        ValaExpression* _tmp21_;
 
564
                        ValaExpression* _tmp22_;
 
565
                        ValaSourceReference* _tmp23_;
 
566
                        ValaSourceReference* _tmp24_;
 
567
                        ValaBlock* _tmp25_;
 
568
                        ValaBlock* true_block;
 
569
                        ValaBlock* _tmp26_;
 
570
                        ValaExpression* _tmp27_;
 
571
                        ValaExpression* _tmp28_;
 
572
                        ValaSourceReference* _tmp29_;
 
573
                        ValaSourceReference* _tmp30_;
 
574
                        ValaBreakStatement* _tmp31_;
 
575
                        ValaBreakStatement* _tmp32_;
 
576
                        ValaUnaryExpression* _tmp33_;
 
577
                        ValaBlock* _tmp34_;
 
578
                        ValaExpression* _tmp35_;
 
579
                        ValaExpression* _tmp36_;
 
580
                        ValaSourceReference* _tmp37_;
 
581
                        ValaSourceReference* _tmp38_;
 
582
                        ValaIfStatement* _tmp39_;
 
583
                        ValaIfStatement* if_stmt;
 
584
                        ValaBlock* _tmp40_;
 
585
                        ValaBlock* _tmp41_;
 
586
                        ValaIfStatement* _tmp42_;
 
587
                        _tmp14_ = vala_while_statement_get_condition (self);
 
588
                        _tmp15_ = _tmp14_;
 
589
                        _tmp16_ = vala_while_statement_get_condition (self);
 
590
                        _tmp17_ = _tmp16_;
 
591
                        _tmp18_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp17_);
 
592
                        _tmp19_ = _tmp18_;
 
593
                        _tmp20_ = vala_unary_expression_new (VALA_UNARY_OPERATOR_LOGICAL_NEGATION, _tmp15_, _tmp19_);
 
594
                        if_condition = _tmp20_;
 
595
                        _tmp21_ = vala_while_statement_get_condition (self);
 
596
                        _tmp22_ = _tmp21_;
 
597
                        _tmp23_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp22_);
 
598
                        _tmp24_ = _tmp23_;
 
599
                        _tmp25_ = vala_block_new (_tmp24_);
 
600
                        true_block = _tmp25_;
 
601
                        _tmp26_ = true_block;
 
602
                        _tmp27_ = vala_while_statement_get_condition (self);
 
603
                        _tmp28_ = _tmp27_;
 
604
                        _tmp29_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp28_);
 
605
                        _tmp30_ = _tmp29_;
 
606
                        _tmp31_ = vala_break_statement_new (_tmp30_);
 
607
                        _tmp32_ = _tmp31_;
 
608
                        vala_block_add_statement (_tmp26_, (ValaStatement*) _tmp32_);
 
609
                        _vala_code_node_unref0 (_tmp32_);
 
610
                        _tmp33_ = if_condition;
 
611
                        _tmp34_ = true_block;
 
612
                        _tmp35_ = vala_while_statement_get_condition (self);
 
613
                        _tmp36_ = _tmp35_;
 
614
                        _tmp37_ = vala_code_node_get_source_reference ((ValaCodeNode*) _tmp36_);
 
615
                        _tmp38_ = _tmp37_;
 
616
                        _tmp39_ = vala_if_statement_new ((ValaExpression*) _tmp33_, _tmp34_, NULL, _tmp38_);
 
617
                        if_stmt = _tmp39_;
 
618
                        _tmp40_ = vala_while_statement_get_body (self);
 
619
                        _tmp41_ = _tmp40_;
 
620
                        _tmp42_ = if_stmt;
 
621
                        vala_block_insert_statement (_tmp41_, 0, (ValaStatement*) _tmp42_);
 
622
                        _vala_code_node_unref0 (if_stmt);
 
623
                        _vala_code_node_unref0 (true_block);
 
624
                        _vala_code_node_unref0 (if_condition);
 
625
                }
 
626
        }
 
627
        _tmp43_ = vala_while_statement_get_body (self);
 
628
        _tmp44_ = _tmp43_;
 
629
        _tmp45_ = vala_code_node_get_source_reference ((ValaCodeNode*) self);
 
630
        _tmp46_ = _tmp45_;
 
631
        _tmp47_ = vala_loop_new (_tmp44_, _tmp46_);
 
632
        loop = _tmp47_;
 
633
        _tmp48_ = vala_code_node_get_parent_node ((ValaCodeNode*) self);
 
634
        _tmp49_ = _tmp48_;
 
635
        _tmp50_ = _vala_code_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp49_, VALA_TYPE_BLOCK, ValaBlock));
 
636
        parent_block = _tmp50_;
 
637
        vala_block_replace_statement (parent_block, (ValaStatement*) self, (ValaStatement*) loop);
 
638
        _tmp51_ = context;
 
639
        _tmp52_ = vala_code_node_check ((ValaCodeNode*) loop, _tmp51_);
 
640
        result = _tmp52_;
 
641
        _vala_code_node_unref0 (parent_block);
 
642
        _vala_code_node_unref0 (loop);
 
643
        return result;
 
644
}
 
645
 
 
646
 
 
647
ValaExpression* vala_while_statement_get_condition (ValaWhileStatement* self) {
 
648
        ValaExpression* result;
 
649
        ValaExpression* _tmp0_;
 
650
        g_return_val_if_fail (self != NULL, NULL);
 
651
        _tmp0_ = self->priv->_condition;
 
652
        result = _tmp0_;
 
653
        return result;
 
654
}
 
655
 
 
656
 
 
657
void vala_while_statement_set_condition (ValaWhileStatement* self, ValaExpression* value) {
 
658
        ValaExpression* _tmp0_;
 
659
        ValaExpression* _tmp1_;
 
660
        ValaExpression* _tmp2_;
 
661
        g_return_if_fail (self != NULL);
 
662
        _tmp0_ = value;
 
663
        _tmp1_ = _vala_code_node_ref0 (_tmp0_);
 
664
        _vala_code_node_unref0 (self->priv->_condition);
 
665
        self->priv->_condition = _tmp1_;
 
666
        _tmp2_ = self->priv->_condition;
 
667
        vala_code_node_set_parent_node ((ValaCodeNode*) _tmp2_, (ValaCodeNode*) self);
 
668
}
 
669
 
 
670
 
 
671
ValaBlock* vala_while_statement_get_body (ValaWhileStatement* self) {
 
672
        ValaBlock* result;
 
673
        ValaBlock* _tmp0_;
 
674
        g_return_val_if_fail (self != NULL, NULL);
 
675
        _tmp0_ = self->priv->_body;
 
676
        result = _tmp0_;
 
677
        return result;
 
678
}
 
679
 
 
680
 
 
681
void vala_while_statement_set_body (ValaWhileStatement* self, ValaBlock* value) {
 
682
        ValaBlock* _tmp0_;
 
683
        ValaBlock* _tmp1_;
 
684
        ValaBlock* _tmp2_;
 
685
        g_return_if_fail (self != NULL);
 
686
        _tmp0_ = value;
 
687
        _tmp1_ = _vala_code_node_ref0 (_tmp0_);
 
688
        _vala_code_node_unref0 (self->priv->_body);
 
689
        self->priv->_body = _tmp1_;
 
690
        _tmp2_ = self->priv->_body;
 
691
        vala_code_node_set_parent_node ((ValaCodeNode*) _tmp2_, (ValaCodeNode*) self);
 
692
}
 
693
 
 
694
 
 
695
static void vala_while_statement_class_init (ValaWhileStatementClass * klass) {
 
696
        vala_while_statement_parent_class = g_type_class_peek_parent (klass);
 
697
        VALA_CODE_NODE_CLASS (klass)->finalize = vala_while_statement_finalize;
 
698
        g_type_class_add_private (klass, sizeof (ValaWhileStatementPrivate));
 
699
        VALA_CODE_NODE_CLASS (klass)->accept = vala_while_statement_real_accept;
 
700
        VALA_CODE_NODE_CLASS (klass)->accept_children = vala_while_statement_real_accept_children;
 
701
        VALA_CODE_NODE_CLASS (klass)->check = vala_while_statement_real_check;
 
702
}
 
703
 
 
704
 
 
705
static void vala_while_statement_vala_statement_interface_init (ValaStatementIface * iface) {
 
706
        vala_while_statement_vala_statement_parent_iface = g_type_interface_peek_parent (iface);
 
707
}
 
708
 
 
709
 
 
710
static void vala_while_statement_instance_init (ValaWhileStatement * self) {
 
711
        self->priv = VALA_WHILE_STATEMENT_GET_PRIVATE (self);
 
712
}
 
713
 
 
714
 
 
715
static void vala_while_statement_finalize (ValaCodeNode* obj) {
 
716
        ValaWhileStatement * self;
 
717
        self = G_TYPE_CHECK_INSTANCE_CAST (obj, VALA_TYPE_WHILE_STATEMENT, ValaWhileStatement);
 
718
        _vala_code_node_unref0 (self->priv->_condition);
 
719
        _vala_code_node_unref0 (self->priv->_body);
 
720
        VALA_CODE_NODE_CLASS (vala_while_statement_parent_class)->finalize (obj);
 
721
}
 
722
 
 
723
 
 
724
/**
 
725
 * Represents a while iteration statement in the source code.
 
726
 */
 
727
GType vala_while_statement_get_type (void) {
 
728
        static volatile gsize vala_while_statement_type_id__volatile = 0;
 
729
        if (g_once_init_enter (&vala_while_statement_type_id__volatile)) {
 
730
                static const GTypeInfo g_define_type_info = { sizeof (ValaWhileStatementClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) vala_while_statement_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (ValaWhileStatement), 0, (GInstanceInitFunc) vala_while_statement_instance_init, NULL };
 
731
                static const GInterfaceInfo vala_statement_info = { (GInterfaceInitFunc) vala_while_statement_vala_statement_interface_init, (GInterfaceFinalizeFunc) NULL, NULL};
 
732
                GType vala_while_statement_type_id;
 
733
                vala_while_statement_type_id = g_type_register_static (VALA_TYPE_CODE_NODE, "ValaWhileStatement", &g_define_type_info, 0);
 
734
                g_type_add_interface_static (vala_while_statement_type_id, VALA_TYPE_STATEMENT, &vala_statement_info);
 
735
                g_once_init_leave (&vala_while_statement_type_id__volatile, vala_while_statement_type_id);
 
736
        }
 
737
        return vala_while_statement_type_id__volatile;
 
738
}
 
739
 
 
740
 
 
741