annotate dmdscript_tango/test/testscript.d @ 0:55c2951c07be

initial, files origin, premoved tree
author saaadel
date Sun, 24 Jan 2010 12:34:47 +0200
parents
children 8363a4bf6a8f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
1
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
2 /* Digital Mars DMDScript source code.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
3 * Copyright (c) 2000-2002 by Chromium Communications
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
4 * D version Copyright (c) 2004-2005 by Digital Mars
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
5 * All Rights Reserved
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
6 * written by Walter Bright
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
7 * www.digitalmars.com
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
8 * Use at your own risk. There is no warranty, express or implied.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
9 * License for redistribution is by the GNU General Public License in gpl.txt.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
10 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
11 * A binary, non-exclusive license for commercial use can be
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
12 * purchased from www.digitalmars.com/dscript/buy.html.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
13 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
14 * DMDScript is implemented in the D Programming Language,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
15 * www.digitalmars.com/d/
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
16 *
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
17 * For a C++ implementation of DMDScript, including COM support,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
18 * see www.digitalmars.com/dscript/cppscript.html.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
19 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
20
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
21
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
22 module testscript;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
23
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
24 import std.path;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
25 import std.file;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
26 import std.stdio;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
27 import std.c.stdlib;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
28 import std.gc;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
29
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
30 import dmdscript.script;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
31 import dmdscript.program;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
32 import dmdscript.errmsgs;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
33
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
34 enum
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
35 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
36 EXITCODE_INIT_ERROR = 1,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
37 EXITCODE_INVALID_ARGS = 2,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
38 EXITCODE_RUNTIME_ERROR = 3,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
39 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
40
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
41 version (Windows)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
42 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
43 pragma(lib, "dmdscript");
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
44 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
45
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
46
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
47
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
48 /**************************************************
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
49 Usage:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
50
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
51 ds
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
52 will run test.ds
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
53
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
54 ds foo
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
55 will run foo.ds
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
56
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
57 ds foo.js
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
58 will run foo.js
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
59
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
60 ds foo1 foo2 foo.bar
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
61 will run foo1.ds, foo2.ds, foo.bar
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
62
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
63 The -iinc flag will prefix the source files with the contents of file inc.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
64 There can be multiple -i's. The include list is reset to empty any time
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
65 a new -i is encountered that is not preceded by a -i.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
66
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
67 ds -iinc foo
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
68 will prefix foo.ds with inc
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
69
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
70 ds -iinc1 -iinc2 foo bar
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
71 will prefix foo.ds with inc1+inc2, and will prefix bar.ds
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
72 with inc1+inc2
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
73
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
74 ds -iinc1 -iinc2 foo -iinc3 bar
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
75 will prefix foo.ds with inc1+inc2, and will prefix bar.ds
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
76 with inc3
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
77
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
78 ds -iinc1 -iinc2 foo -i bar
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
79 will prefix foo.ds with inc1+inc2, and will prefix bar.ds
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
80 with nothing
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
81
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
82 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
83
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
84 int main(char[][] args)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
85 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
86 uint errors = 0;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
87 char[][] includes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
88 SrcFile[] srcfiles;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
89 int result;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
90 bool verbose;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
91 ErrInfo errinfo;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
92
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
93 fwritefln(stderr, dmdscript.script.banner());
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
94
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
95 for (size_t i = 1; i < args.length; i++)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
96 { char[] p = args[i];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
97
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
98 if (p[0] == '-')
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
99 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
100 switch (p[1])
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
101 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
102 case 'i':
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
103 if (p[2])
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
104 includes ~= p[2 .. length];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
105 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
106
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
107 case 'v':
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
108 verbose = 1;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
109 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
110
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
111 default:
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
112 writefln(errmsgtbl[ERR_BAD_SWITCH],p);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
113 errors++;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
114 break;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
115 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
116 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
117 else
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
118 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
119 srcfiles ~= new SrcFile(p, includes);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
120 includes = null;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
121 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
122 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
123 if (errors)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
124 return EXITCODE_INVALID_ARGS;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
125
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
126 if (srcfiles.length == 0)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
127 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
128 srcfiles ~= new SrcFile("test", null);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
129 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
130
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
131 fwritefln(stderr, "%d source files", srcfiles.length);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
132
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
133 // Read files, parse them, execute them
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
134 foreach (SrcFile m; srcfiles)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
135 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
136 if (verbose)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
137 writefln("read %s:", m.srcfile);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
138 m.read();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
139 if (verbose)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
140 writefln("compile %s:", m.srcfile);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
141 m.compile();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
142 if (verbose)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
143 writefln("execute %s:", m.srcfile);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
144 m.execute();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
145 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
146
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
147 return EXIT_SUCCESS;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
148 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
149
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
150
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
151 class SrcFile
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
152 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
153 char[] srcfile;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
154 char[][] includes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
155
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
156 Program program;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
157 char[] buffer;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
158
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
159 this(char[] srcfilename, char[][] includes)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
160 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
161 /* DMDScript source files default to a '.ds' extension
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
162 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
163
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
164 srcfile = std.path.defaultExt(srcfilename, "ds");
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
165 this.includes = includes;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
166 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
167
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
168 void read()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
169 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
170 /* Read the source file, prepend the include files,
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
171 * and put it all in buffer[]. Allocate an extra byte
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
172 * to buffer[] and terminate it with a 0x1A.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
173 * (If the 0x1A isn't at the end, the lexer will put
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
174 * one there, forcing an extra copy to be made of the
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
175 * source text.)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
176 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
177
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
178 //writef("read file '%s'\n",srcfile);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
179
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
180 // Read the includes[] files
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
181 size_t i;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
182 void[] buf;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
183 ulong len;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
184
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
185 len = std.file.getSize(srcfile);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
186 foreach (char[] filename; includes)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
187 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
188 len += std.file.getSize(filename);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
189 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
190 len++; // leave room for sentinal
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
191
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
192 assert(len < uint.max);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
193
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
194 // Prefix the includes[] files
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
195
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
196 int sz = cast(int)len;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
197 buffer = new tchar[sz];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
198
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
199 foreach (char[] filename; includes)
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
200 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
201 buf = std.file.read(filename);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
202 buffer[i .. i + buf.length] = cast(char[])buf[];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
203 i += buf.length;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
204 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
205
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
206 buf = std.file.read(srcfile);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
207 buffer[i .. i + buf.length] = cast(char[])buf[];
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
208 i += buf.length;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
209
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
210 buffer[i] = 0x1A; // ending sentinal
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
211 i++;
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
212 assert(i == len);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
213 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
214
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
215 void compile()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
216 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
217 /* Create a DMDScript program, and compile our text buffer.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
218 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
219
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
220 program = new Program();
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
221 program.compile(srcfile, buffer, null);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
222 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
223
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
224 void execute()
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
225 {
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
226 /* Execute the resulting program.
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
227 */
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
228
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
229 program.execute(null);
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
230 }
55c2951c07be initial, files origin, premoved tree
saaadel
parents:
diff changeset
231 }