Line data Source code
1 : /* valaccodefragment.vala
2 : *
3 : * Copyright (C) 2006-2007 Jürg Billeter
4 : *
5 : * This library is free software; you can redistribute it and/or
6 : * modify it under the terms of the GNU Lesser General Public
7 : * License as published by the Free Software Foundation; either
8 : * version 2.1 of the License, or (at your option) any later version.
9 :
10 : * This library is distributed in the hope that it will be useful,
11 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 : * Lesser General Public License for more details.
14 :
15 : * You should have received a copy of the GNU Lesser General Public
16 : * License along with this library; if not, write to the Free Software
17 : * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 : *
19 : * Author:
20 : * Jürg Billeter <j@bitron.ch>
21 : */
22 :
23 : using GLib;
24 :
25 : /**
26 : * Represents a container for C code nodes.
27 : */
28 177490 : public class Vala.CCodeFragment : CCodeNode {
29 92510 : private List<CCodeNode> children = new ArrayList<CCodeNode> ();
30 :
31 : /**
32 : * Appends the specified code node to this code fragment.
33 : *
34 : * @param node a C code node
35 : */
36 110579 : public void append (CCodeNode node) {
37 110579 : children.add (node);
38 : }
39 :
40 : /**
41 : * Returns the list of children.
42 : *
43 : * @return children list
44 : */
45 5699 : public unowned List<CCodeNode> get_children () {
46 5699 : return children;
47 : }
48 :
49 9731 : public override void write (CCodeWriter writer) {
50 98117 : foreach (CCodeNode node in children) {
51 44193 : node.write (writer);
52 : }
53 : }
54 :
55 3733 : public override void write_declaration (CCodeWriter writer) {
56 40179 : foreach (CCodeNode node in children) {
57 18223 : node.write_declaration (writer);
58 : }
59 : }
60 :
61 3109 : public override void write_combined (CCodeWriter writer) {
62 43255 : foreach (CCodeNode node in children) {
63 20073 : node.write_combined (writer);
64 : }
65 : }
66 : }
|