static void vala_ccode_return_statement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeReturnStatement * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeLineDirective* _tmp1_;
	ValaCCodeLineDirective* _tmp2_;
	ValaCCodeWriter* _tmp3_;
	ValaCCodeExpression* _tmp4_;
	ValaCCodeWriter* _tmp8_;
	ValaCCodeWriter* _tmp9_;
	self = (ValaCCodeReturnStatement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	_tmp1_ = vala_ccode_node_get_line ((ValaCCodeNode*) self);
	_tmp2_ = _tmp1_;
	vala_ccode_writer_write_indent (_tmp0_, _tmp2_);
	_tmp3_ = writer;
	vala_ccode_writer_write_string (_tmp3_, "return");
	_tmp4_ = self->priv->_return_expression;
	if (_tmp4_ != NULL) {
		ValaCCodeWriter* _tmp5_;
		ValaCCodeExpression* _tmp6_;
		ValaCCodeWriter* _tmp7_;
		_tmp5_ = writer;
		vala_ccode_writer_write_string (_tmp5_, " ");
		_tmp6_ = self->priv->_return_expression;
		_tmp7_ = writer;
		vala_ccode_node_write ((ValaCCodeNode*) _tmp6_, _tmp7_);
	}
	_tmp8_ = writer;
	vala_ccode_writer_write_string (_tmp8_, ";");
	_tmp9_ = writer;
	vala_ccode_writer_write_newline (_tmp9_);
}
static void vala_ccode_switch_statement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeSwitchStatement * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeLineDirective* _tmp1_;
	ValaCCodeLineDirective* _tmp2_;
	ValaCCodeWriter* _tmp3_;
	ValaCCodeExpression* _tmp4_;
	ValaCCodeWriter* _tmp5_;
	ValaCCodeWriter* _tmp6_;
	ValaCCodeWriter* _tmp7_;
	self = (ValaCCodeSwitchStatement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	_tmp1_ = vala_ccode_node_get_line ((ValaCCodeNode*) self);
	_tmp2_ = _tmp1_;
	vala_ccode_writer_write_indent (_tmp0_, _tmp2_);
	_tmp3_ = writer;
	vala_ccode_writer_write_string (_tmp3_, "switch (");
	_tmp4_ = self->priv->_expression;
	_tmp5_ = writer;
	vala_ccode_node_write ((ValaCCodeNode*) _tmp4_, _tmp5_);
	_tmp6_ = writer;
	vala_ccode_writer_write_string (_tmp6_, ")");
	_tmp7_ = writer;
	VALA_CCODE_NODE_CLASS (vala_ccode_switch_statement_parent_class)->write ((ValaCCodeNode*) VALA_CCODE_BLOCK (self), _tmp7_);
}
static void vala_ccode_empty_statement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeEmptyStatement * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeWriter* _tmp1_;
	ValaCCodeWriter* _tmp2_;
	self = (ValaCCodeEmptyStatement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	vala_ccode_writer_write_indent (_tmp0_, NULL);
	_tmp1_ = writer;
	vala_ccode_writer_write_string (_tmp1_, ";");
	_tmp2_ = writer;
	vala_ccode_writer_write_newline (_tmp2_);
}
static void vala_ccode_do_statement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeDoStatement * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeLineDirective* _tmp1_;
	ValaCCodeLineDirective* _tmp2_;
	ValaCCodeWriter* _tmp3_;
	ValaCCodeStatement* _tmp4_;
	ValaCCodeStatement* _tmp8_;
	ValaCCodeWriter* _tmp9_;
	ValaCCodeWriter* _tmp10_;
	ValaCCodeExpression* _tmp11_;
	ValaCCodeWriter* _tmp12_;
	ValaCCodeWriter* _tmp13_;
	self = (ValaCCodeDoStatement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	_tmp1_ = vala_ccode_node_get_line ((ValaCCodeNode*) self);
	_tmp2_ = _tmp1_;
	vala_ccode_writer_write_indent (_tmp0_, _tmp2_);
	_tmp3_ = writer;
	vala_ccode_writer_write_string (_tmp3_, "do");
	_tmp4_ = self->priv->_body;
	if (G_TYPE_CHECK_INSTANCE_TYPE (_tmp4_, VALA_TYPE_CCODE_BLOCK)) {
		ValaCCodeStatement* _tmp5_;
		ValaCCodeBlock* _tmp6_;
		ValaCCodeBlock* cblock;
		ValaCCodeBlock* _tmp7_;
		_tmp5_ = self->priv->_body;
		_tmp6_ = _vala_ccode_node_ref0 (G_TYPE_CHECK_INSTANCE_CAST (_tmp5_, VALA_TYPE_CCODE_BLOCK, ValaCCodeBlock));
		cblock = _tmp6_;
		_tmp7_ = cblock;
		vala_ccode_block_set_suppress_newline (_tmp7_, TRUE);
		_vala_ccode_node_unref0 (cblock);
	}
	_tmp8_ = self->priv->_body;
	_tmp9_ = writer;
	vala_ccode_node_write ((ValaCCodeNode*) _tmp8_, _tmp9_);
	_tmp10_ = writer;
	vala_ccode_writer_write_string (_tmp10_, " while (");
	_tmp11_ = self->priv->_condition;
	_tmp12_ = writer;
	vala_ccode_node_write ((ValaCCodeNode*) _tmp11_, _tmp12_);
	_tmp13_ = writer;
	vala_ccode_writer_write_string (_tmp13_, ");");
}
static void vala_ccode_continue_statement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeContinueStatement * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeLineDirective* _tmp1_;
	ValaCCodeLineDirective* _tmp2_;
	ValaCCodeWriter* _tmp3_;
	ValaCCodeWriter* _tmp4_;
	self = (ValaCCodeContinueStatement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	_tmp1_ = vala_ccode_node_get_line ((ValaCCodeNode*) self);
	_tmp2_ = _tmp1_;
	vala_ccode_writer_write_indent (_tmp0_, _tmp2_);
	_tmp3_ = writer;
	vala_ccode_writer_write_string (_tmp3_, "continue;");
	_tmp4_ = writer;
	vala_ccode_writer_write_newline (_tmp4_);
}
static void vala_ccode_label_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeLabel * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeWriter* _tmp1_;
	const gchar* _tmp2_;
	ValaCCodeWriter* _tmp3_;
	ValaCCodeWriter* _tmp4_;
	self = (ValaCCodeLabel*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	vala_ccode_writer_write_indent (_tmp0_, NULL);
	_tmp1_ = writer;
	_tmp2_ = self->priv->_name;
	vala_ccode_writer_write_string (_tmp1_, _tmp2_);
	_tmp3_ = writer;
	vala_ccode_writer_write_string (_tmp3_, ":");
	_tmp4_ = writer;
	vala_ccode_writer_write_newline (_tmp4_);
}
static void vala_ccode_include_directive_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeIncludeDirective * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeWriter* _tmp1_;
	gboolean _tmp2_;
	ValaCCodeWriter* _tmp11_;
	self = (ValaCCodeIncludeDirective*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	vala_ccode_writer_write_indent (_tmp0_, NULL);
	_tmp1_ = writer;
	vala_ccode_writer_write_string (_tmp1_, "#include ");
	_tmp2_ = self->priv->_local;
	if (_tmp2_) {
		ValaCCodeWriter* _tmp3_;
		ValaCCodeWriter* _tmp4_;
		const gchar* _tmp5_;
		ValaCCodeWriter* _tmp6_;
		_tmp3_ = writer;
		vala_ccode_writer_write_string (_tmp3_, "\"");
		_tmp4_ = writer;
		_tmp5_ = self->priv->_filename;
		vala_ccode_writer_write_string (_tmp4_, _tmp5_);
		_tmp6_ = writer;
		vala_ccode_writer_write_string (_tmp6_, "\"");
	} else {
		ValaCCodeWriter* _tmp7_;
		ValaCCodeWriter* _tmp8_;
		const gchar* _tmp9_;
		ValaCCodeWriter* _tmp10_;
		_tmp7_ = writer;
		vala_ccode_writer_write_string (_tmp7_, "<");
		_tmp8_ = writer;
		_tmp9_ = self->priv->_filename;
		vala_ccode_writer_write_string (_tmp8_, _tmp9_);
		_tmp10_ = writer;
		vala_ccode_writer_write_string (_tmp10_, ">");
	}
	_tmp11_ = writer;
	vala_ccode_writer_write_newline (_tmp11_);
}
static void vala_ccode_macro_replacement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeMacroReplacement * self;
	ValaCCodeWriter* _tmp0_;
	ValaCCodeWriter* _tmp1_;
	ValaCCodeWriter* _tmp2_;
	const gchar* _tmp3_;
	ValaCCodeWriter* _tmp4_;
	const gchar* _tmp5_;
	ValaCCodeWriter* _tmp10_;
	self = (ValaCCodeMacroReplacement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = writer;
	vala_ccode_writer_write_indent (_tmp0_, NULL);
	_tmp1_ = writer;
	vala_ccode_writer_write_string (_tmp1_, "#define ");
	_tmp2_ = writer;
	_tmp3_ = self->priv->_name;
	vala_ccode_writer_write_string (_tmp2_, _tmp3_);
	_tmp4_ = writer;
	vala_ccode_writer_write_string (_tmp4_, " ");
	_tmp5_ = self->priv->_replacement;
	if (_tmp5_ != NULL) {
		ValaCCodeWriter* _tmp6_;
		const gchar* _tmp7_;
		_tmp6_ = writer;
		_tmp7_ = self->priv->_replacement;
		vala_ccode_writer_write_string (_tmp6_, _tmp7_);
	} else {
		ValaCCodeExpression* _tmp8_;
		ValaCCodeWriter* _tmp9_;
		_tmp8_ = self->priv->_replacement_expression;
		_tmp9_ = writer;
		vala_ccode_expression_write_inner (_tmp8_, _tmp9_);
	}
	_tmp10_ = writer;
	vala_ccode_writer_write_newline (_tmp10_);
}
static void vala_ccode_if_statement_real_write (ValaCCodeNode* base, ValaCCodeWriter* writer) {
	ValaCCodeIfStatement * self;
	gboolean _tmp0_;
	ValaCCodeWriter* _tmp5_;
	ValaCCodeExpression* _tmp6_;
	ValaCCodeWriter* _tmp9_;
	gboolean _tmp10_ = FALSE;
	ValaCCodeStatement* _tmp11_;
	gboolean _tmp13_;
	ValaCCodeStatement* _tmp17_;
	ValaCCodeWriter* _tmp18_;
	ValaCCodeStatement* _tmp19_;
	self = (ValaCCodeIfStatement*) base;
	g_return_if_fail (writer != NULL);
	_tmp0_ = self->priv->_else_if;
	if (!_tmp0_) {
		ValaCCodeWriter* _tmp1_;
		ValaCCodeLineDirective* _tmp2_;
		ValaCCodeLineDirective* _tmp3_;
		_tmp1_ = writer;
		_tmp2_ = vala_ccode_node_get_line ((ValaCCodeNode*) self);
		_tmp3_ = _tmp2_;
		vala_ccode_writer_write_indent (_tmp1_, _tmp3_);
	} else {
		ValaCCodeWriter* _tmp4_;
		_tmp4_ = writer;
		vala_ccode_writer_write_string (_tmp4_, " ");
	}
	_tmp5_ = writer;
	vala_ccode_writer_write_string (_tmp5_, "if (");
	_tmp6_ = self->priv->_condition;
	if (_tmp6_ != NULL) {
		ValaCCodeExpression* _tmp7_;
		ValaCCodeWriter* _tmp8_;
		_tmp7_ = self->priv->_condition;
		_tmp8_ = writer;
		vala_ccode_node_write ((ValaCCodeNode*) _tmp7_, _tmp8_);
	}
	_tmp9_ = writer;
	vala_ccode_writer_write_string (_tmp9_, ")");
	_tmp11_ = self->priv->_false_statement;
	if (_tmp11_ != NULL) {
		ValaCCodeStatement* _tmp12_;
		_tmp12_ = self->priv->_true_statement;
		_tmp10_ = VALA_IS_CCODE_BLOCK (_tmp12_);
	} else {
		_tmp10_ = FALSE;
	}
	_tmp13_ = _tmp10_;
	if (_tmp13_) {
		ValaCCodeStatement* _tmp14_;
		ValaCCodeBlock* _tmp15_;
		ValaCCodeBlock* cblock;
		ValaCCodeBlock* _tmp16_;
		_tmp14_ = self->priv->_true_statement;
		_tmp15_ = _vala_ccode_node_ref0 (VALA_CCODE_BLOCK (_tmp14_));
		cblock = _tmp15_;
		_tmp16_ = cblock;
		vala_ccode_block_set_suppress_newline (_tmp16_, TRUE);
		_vala_ccode_node_unref0 (cblock);
	}
	_tmp17_ = self->priv->_true_statement;
	_tmp18_ = writer;
	vala_ccode_node_write ((ValaCCodeNode*) _tmp17_, _tmp18_);
	_tmp19_ = self->priv->_false_statement;
	if (_tmp19_ != NULL) {
		ValaCCodeWriter* _tmp20_;
		gboolean _tmp21_;
		gboolean _tmp22_;
		ValaCCodeStatement* _tmp26_;
		ValaCCodeStatement* _tmp30_;
		ValaCCodeWriter* _tmp31_;
		_tmp20_ = writer;
		_tmp21_ = vala_ccode_writer_get_bol (_tmp20_);
		_tmp22_ = _tmp21_;
		if (_tmp22_) {
			ValaCCodeWriter* _tmp23_;
			ValaCCodeWriter* _tmp24_;
			_tmp23_ = writer;
			vala_ccode_writer_write_indent (_tmp23_, NULL);
			_tmp24_ = writer;
			vala_ccode_writer_write_string (_tmp24_, "else");
		} else {
			ValaCCodeWriter* _tmp25_;
			_tmp25_ = writer;
			vala_ccode_writer_write_string (_tmp25_, " else");
		}
		_tmp26_ = self->priv->_false_statement;
		if (VALA_IS_CCODE_IF_STATEMENT (_tmp26_)) {
			ValaCCodeStatement* _tmp27_;
			ValaCCodeIfStatement* _tmp28_;
			ValaCCodeIfStatement* cif;
			ValaCCodeIfStatement* _tmp29_;
			_tmp27_ = self->priv->_false_statement;
			_tmp28_ = _vala_ccode_node_ref0 (VALA_CCODE_IF_STATEMENT (_tmp27_));
			cif = _tmp28_;
			_tmp29_ = cif;
			vala_ccode_if_statement_set_else_if (_tmp29_, TRUE);
			_vala_ccode_node_unref0 (cif);
		}
		_tmp30_ = self->priv->_false_statement;
		_tmp31_ = writer;
		vala_ccode_node_write ((ValaCCodeNode*) _tmp30_, _tmp31_);
	}
}