aboutsummaryrefslogtreecommitdiff
path: root/src/runner.h
diff options
context:
space:
mode:
authorMike Buland <eichlan@xagasoft.com>2009-12-21 18:04:02 +0000
committerMike Buland <eichlan@xagasoft.com>2009-12-21 18:04:02 +0000
commitfb28f6800864176be2ffca29e8e664b641f33170 (patch)
treeba9180ac442939edc4eacbe1fdae93c5a7f87cee /src/runner.h
parent51e21a316be6e052251b3dfc7d671061ebd67cee (diff)
downloadbuild-fb28f6800864176be2ffca29e8e664b641f33170.tar.gz
build-fb28f6800864176be2ffca29e8e664b641f33170.tar.bz2
build-fb28f6800864176be2ffca29e8e664b641f33170.tar.xz
build-fb28f6800864176be2ffca29e8e664b641f33170.zip
m3 is copied into trunk, we should be good to go, now.
Diffstat (limited to 'src/runner.h')
-rw-r--r--src/runner.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/runner.h b/src/runner.h
new file mode 100644
index 0000000..98894da
--- /dev/null
+++ b/src/runner.h
@@ -0,0 +1,43 @@
1#ifndef RUNNER_H
2#define RUNNER_H
3
4#include "astbranch.h"
5
6class Runner
7{
8public:
9 Runner( class Ast &rAst, class Context &rCont );
10 virtual ~Runner();
11
12 /**
13 * Run through and pull out all of the functions. Maybe more later.
14 */
15 void initialize();
16 class Variable execExpr( AstBranch::NodeList::const_iterator e );
17 class Variable execExpr( AstBranch::NodeList::const_iterator e,
18 const class Variable &vIn );
19 void run();
20 Variable run( AstBranch::NodeList::const_iterator n );
21 class Variable execFunc( const class AstBranch *pFunc,
22 class Variable &vIn );
23 void execProfile( class Target *pTarget, const Bu::FString &sProfile );
24 void execAction( const Bu::FString &sName );
25
26 Context &getContext();
27
28private:
29 class Target *buildTarget( const Bu::FString &sOutput,
30 AstBranch::NodeList::const_iterator n );
31 class Rule *buildRule( const Bu::FString &sName,
32 AstBranch::NodeList::const_iterator n );
33 void attachDefaults();
34 Variable doSet( const AstBranch *pRoot );
35
36private:
37 class Ast &rAst;
38 class Context &rCont;
39 Target *pCurTarget;
40 Rule *pCurRule;
41};
42
43#endif