aboutsummaryrefslogtreecommitdiff
path: root/src/runner.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-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