Build fix
[vala-hackers-guide.git] / valac-data.svg
blob9c2efdf75113f772ef9233ee8d8b3bfdde04c012
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <!-- Created with Inkscape (http://www.inkscape.org/) -->
3 <svg
4 xmlns:dc="http://purl.org/dc/elements/1.1/"
5 xmlns:cc="http://web.resource.org/cc/"
6 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7 xmlns:svg="http://www.w3.org/2000/svg"
8 xmlns="http://www.w3.org/2000/svg"
9 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
10 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
11 width="744.09448819"
12 height="1052.3622047"
13 id="svg2"
14 sodipodi:version="0.32"
15 inkscape:version="0.45.1"
16 sodipodi:docbase="/home/rodney/dev/my-vala/doc/hackers/figures"
17 sodipodi:docname="valac-data.svg"
18 inkscape:output_extension="org.inkscape.output.svg.inkscape">
19 <defs
20 id="defs4">
21 <marker
22 inkscape:stockid="Arrow2Lend"
23 orient="auto"
24 refY="0.0"
25 refX="0.0"
26 id="Arrow2Lend"
27 style="overflow:visible;">
28 <path
29 id="path3235"
30 style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;"
31 d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
32 transform="scale(1.1) rotate(180) translate(1,0)" />
33 </marker>
34 </defs>
35 <sodipodi:namedview
36 id="base"
37 pagecolor="#ffffff"
38 bordercolor="#666666"
39 borderopacity="1.0"
40 gridtolerance="10000"
41 guidetolerance="10"
42 objecttolerance="10"
43 inkscape:pageopacity="0.0"
44 inkscape:pageshadow="2"
45 inkscape:zoom="1"
46 inkscape:cx="434.8954"
47 inkscape:cy="868.1"
48 inkscape:document-units="px"
49 inkscape:current-layer="layer1"
50 inkscape:window-width="889"
51 inkscape:window-height="679"
52 inkscape:window-x="0"
53 inkscape:window-y="26" />
54 <metadata
55 id="metadata7">
56 <rdf:RDF>
57 <cc:Work
58 rdf:about="">
59 <dc:format>image/svg+xml</dc:format>
60 <dc:type
61 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
62 </cc:Work>
63 </rdf:RDF>
64 </metadata>
66 inkscape:label="Layer 1"
67 inkscape:groupmode="layer"
68 id="layer1">
69 <path
70 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
71 d="M 137,70.362183 L 164,88.362183"
72 id="path3197" />
73 <path
74 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
75 d="M 138,131.36218 L 163,108.36218"
76 id="path3199" />
77 <path
78 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
79 d="M 258,98.362183 L 284,99.362183"
80 id="path3201" />
81 <path
82 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
83 d="M 368,100.36218 L 396,93.362183"
84 id="path3203" />
85 <path
86 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
87 d="M 449,163.36218 L 445,198.36218"
88 id="path3205" />
89 <path
90 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
91 d="M 442,288.36218 L 442,304.36218"
92 id="path3207" />
93 <path
94 style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Lend)"
95 d="M 139,194.36218 C 193.8069,194.36218 239.76086,234.15327 261.90625,259.08093 C 280.3125,279.79968 312.4748,327.36218 386,327.36218"
96 id="path3209"
97 sodipodi:nodetypes="ccz" />
98 <rect
99 style="opacity:1;fill:none;stroke:#000000;stroke-width:1.52751458;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
100 id="rect2160"
101 width="68.472481"
102 height="38.472481"
103 x="68.763756"
104 y="52.125938"
105 ry="9.8067122" />
106 <text
107 xml:space="preserve"
108 style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
109 x="88.421875"
110 y="75.835815"
111 id="text3134"><tspan
112 sodipodi:role="line"
113 id="tspan3136"
114 x="88.421875"
115 y="75.835815">.vala</tspan></text>
116 <text
117 id="text3140"
118 y="134.67273"
119 x="88.304688"
120 style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
121 xml:space="preserve"><tspan
122 y="134.67273"
123 x="88.304688"
124 id="tspan3142"
125 sodipodi:role="line">.vapi</tspan></text>
126 <text
127 xml:space="preserve"
128 style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
129 x="98"
130 y="199.36218"
131 id="text3146"><tspan
132 sodipodi:role="line"
133 id="tspan3148"
134 x="98"
135 y="199.36218">.c</tspan></text>
136 <rect
137 ry="9.8067122"
138 y="61.125946"
139 x="162.76376"
140 height="83.472488"
141 width="95.472504"
142 id="rect3150"
143 style="opacity:1;fill:none;stroke:#000000;stroke-width:1.52751458;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
144 <path
145 style="fill:none;stroke:#000000;stroke-width:1.52751458;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1"
146 d="M 293.57048,56.125946 C 293.57048,56.125946 312.53524,46.692118 331.50001,56.125946 C 350.46478,65.559774 360.42955,62.125946 360.42955,62.125946 C 365.86247,62.125946 370.23627,66.49974 370.23627,71.932658 C 370.23627,71.932658 367.23627,89.897425 367.23627,105.86219 C 367.23627,121.82696 370.23627,135.79172 370.23627,135.79172 C 370.23627,141.22464 365.86247,145.59843 360.42955,145.59843 C 347.78637,145.59843 350.64319,138.09843 326.50001,132.59843 C 303.30649,127.31477 297.21366,145.59843 284.57048,145.59843 C 279.13756,145.59843 274.76376,141.22464 274.76376,135.79172 C 274.76376,125.14854 282.76376,114.50537 282.76376,103.86219 C 282.76376,93.219012 274.76376,82.575835 274.76376,71.932658 C 274.76376,66.49974 288.13756,56.125946 293.57048,56.125946 z "
147 id="rect3152"
148 sodipodi:nodetypes="czcczcczccccc" />
149 <path
150 sodipodi:type="star"
151 style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
152 id="path3163"
153 sodipodi:sides="5"
154 sodipodi:cx="475"
155 sodipodi:cy="101.36218"
156 sodipodi:r1="47.507893"
157 sodipodi:r2="38.434692"
158 sodipodi:arg1="0.85988695"
159 sodipodi:arg2="1.4882055"
160 inkscape:flatsided="true"
161 inkscape:rounded="0.93"
162 inkscape:randomized="0.071"
163 d="M 508.3933,139.91036 C 467.50888,173.3742 496.1851,166.86576 451.08861,143.24746 C 405.99211,119.62916 417.24787,143.30695 429.03126,91.47939 C 440.81465,39.651833 419.13202,59.553864 470.39081,56.019102 C 521.64961,52.484339 503.76273,33.360411 520.68727,81.327036 C 537.61182,129.29366 549.27771,106.44652 508.3933,139.91036 z "
164 transform="translate(-34,0)" />
165 <path
166 sodipodi:type="star"
167 style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
168 id="path3165"
169 sodipodi:sides="5"
170 sodipodi:cx="618"
171 sodipodi:cy="110.36218"
172 sodipodi:r1="56.080299"
173 sodipodi:r2="35.514645"
174 sodipodi:arg1="0.87377495"
175 sodipodi:arg2="1.5788422"
176 inkscape:flatsided="false"
177 inkscape:rounded="0.93"
178 inkscape:randomized="0.071"
179 d="M 655.23869,149.68215 C 627.82911,169.78068 656.29721,143.21919 621.17959,144.91919 C 591.00205,146.38004 610.13732,172.82185 587.71756,154.63154 C 561.62769,133.46347 595.7806,153.2355 585.213,121.3185 C 576.13197,93.891337 557.06961,127.31253 563.62555,98.16296 C 571.25469,64.241597 573.01745,105.71175 600.26202,83.861726 C 623.67403,65.085397 585.55746,57.567819 614.47924,56.481192 C 648.13553,55.216683 608.93036,65.051975 638.71566,81.387825 C 664.31098,95.425674 658.3667,58.269693 669.5829,85.482305 C 682.63519,117.14963 662.38659,92.829319 653.09774,125.14806 C 645.11558,152.92045 678.79251,132.41092 655.23869,149.68215 z "
180 transform="matrix(0.9310943,-0.3647785,0.3647785,0.9310943,-176.05747,355.94454)" />
181 <rect
182 ry="9.8067122"
183 y="112.12594"
184 x="68.763756"
185 height="38.472481"
186 width="68.472481"
187 id="rect3167"
188 style="opacity:1;fill:none;stroke:#000000;stroke-width:1.52751458;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
189 <rect
190 style="opacity:1;fill:none;stroke:#000000;stroke-width:1.52751458;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
191 id="rect3169"
192 width="68.472481"
193 height="38.472481"
194 x="69.242279"
195 y="176.85056"
196 ry="9.8067122" />
197 <text
198 xml:space="preserve"
199 style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
200 x="438.70886"
201 y="231.05055"
202 id="text3171"><tspan
203 sodipodi:role="line"
204 id="tspan3173"
205 x="438.70886"
206 y="231.05055">C code</tspan><tspan
207 sodipodi:role="line"
208 x="438.70886"
209 y="246.05055"
210 id="tspan3175">.c .h</tspan></text>
211 <text
212 xml:space="preserve"
213 style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
214 x="198.86037"
215 y="107.23035"
216 id="text3177"><tspan
217 sodipodi:role="line"
218 id="tspan3179"
219 x="198.86037"
220 y="107.23035">AST</tspan></text>
221 <text
222 xml:space="preserve"
223 style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
224 x="309.7998"
225 y="103.13395"
226 id="text3181"><tspan
227 sodipodi:role="line"
228 id="tspan3183"
229 x="309.7998"
230 y="103.13395">AST'</tspan></text>
231 <text
232 xml:space="preserve"
233 style="font-size:12px;font-style:normal;font-weight:normal;text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
234 x="443.3577"
235 y="103.11823"
236 id="text3185"><tspan
237 sodipodi:role="line"
238 id="tspan3187"
239 x="443.3577"
240 y="103.11823">CCode</tspan><tspan
241 sodipodi:role="line"
242 x="443.3577"
243 y="118.11823"
244 id="tspan3189">Tree</tspan></text>
245 <rect
246 style="opacity:1;fill:none;stroke:#000000;stroke-width:2;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
247 id="rect3191"
248 width="104"
249 height="46"
250 x="387"
251 y="304.36218" />
252 <text
253 xml:space="preserve"
254 style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
255 x="405.56641"
256 y="331.83582"
257 id="text3193"><tspan
258 sodipodi:role="line"
259 id="tspan3195"
260 x="405.56641"
261 y="331.83582">Executable</tspan></text>
262 <rect
263 ry="9.8067122"
264 y="176.85056"
265 x="69.242279"
266 height="38.472481"
267 width="68.472481"
268 id="rect3427"
269 style="opacity:1;fill:none;stroke:#000000;stroke-width:1.52751458;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
270 <text
271 xml:space="preserve"
272 style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
273 x="153"
274 y="163.36218"
275 id="text3429"><tspan
276 sodipodi:role="line"
277 id="tspan3431"
278 x="153"
279 y="163.36218">Vala code is</tspan><tspan
280 sodipodi:role="line"
281 x="153"
282 y="178.36218"
283 id="tspan3435">parsed in an AST</tspan></text>
284 <text
285 xml:space="preserve"
286 style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
287 x="267"
288 y="163.36218"
289 id="text3439"><tspan
290 sodipodi:role="line"
291 id="tspan3441"
292 x="267"
293 y="163.36218">AST is transformed,</tspan><tspan
294 sodipodi:role="line"
295 x="267"
296 y="178.36218"
297 id="tspan2218">e.g. symbols resolved</tspan></text>
298 <text
299 xml:space="preserve"
300 style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
301 x="500"
302 y="59.362183"
303 id="text3445"><tspan
304 sodipodi:role="line"
305 x="500"
306 y="59.362183"
307 id="tspan3457">A tree is built,</tspan><tspan
308 sodipodi:role="line"
309 x="500"
310 y="74.362183"
311 id="tspan3459">representing</tspan><tspan
312 sodipodi:role="line"
313 x="500"
314 y="89.362183"
315 id="tspan3463">the C code.</tspan></text>
316 <text
317 xml:space="preserve"
318 style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
319 x="501"
320 y="164.36218"
321 id="text3465"><tspan
322 sodipodi:role="line"
323 id="tspan3467"
324 x="501"
325 y="164.36218">The tree is</tspan><tspan
326 sodipodi:role="line"
327 x="501"
328 y="179.36218"
329 id="tspan3469">converted</tspan><tspan
330 sodipodi:role="line"
331 x="501"
332 y="194.36218"
333 id="tspan3471">into real C</tspan><tspan
334 sodipodi:role="line"
335 x="501"
336 y="209.36218"
337 id="tspan3473">code.</tspan></text>
338 <text
339 xml:space="preserve"
340 style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
341 x="505"
342 y="273.36218"
343 id="text3475"><tspan
344 sodipodi:role="line"
345 id="tspan3477"
346 x="505"
347 y="273.36218">gcc is used</tspan><tspan
348 sodipodi:role="line"
349 x="505"
350 y="288.36218"
351 id="tspan3479">to build the</tspan><tspan
352 sodipodi:role="line"
353 x="505"
354 y="303.36218"
355 id="tspan3481">final program</tspan><tspan
356 sodipodi:role="line"
357 x="505"
358 y="318.36218"
359 id="tspan3483">or library.</tspan></text>
360 <text
361 xml:space="preserve"
362 style="font-size:12px;font-style:italic;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
363 x="71"
364 y="237.36218"
365 id="text3485"><tspan
366 sodipodi:role="line"
367 id="tspan3487"
368 x="71"
369 y="237.36218">User supplies</tspan><tspan
370 sodipodi:role="line"
371 x="71"
372 y="252.36218"
373 id="tspan3489">Vala code and</tspan><tspan
374 sodipodi:role="line"
375 x="71"
376 y="267.36218"
377 id="tspan3493">sometimes plain</tspan><tspan
378 sodipodi:role="line"
379 x="71"
380 y="282.36218"
381 id="tspan3497">C code.</tspan></text>
382 </g>
383 </svg>