diff options
Diffstat (limited to 'src/runner.h')
-rw-r--r-- | src/runner.h | 43 |
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 | |||
6 | class Runner | ||
7 | { | ||
8 | public: | ||
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 | |||
28 | private: | ||
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 | |||
36 | private: | ||
37 | class Ast &rAst; | ||
38 | class Context &rCont; | ||
39 | Target *pCurTarget; | ||
40 | Rule *pCurRule; | ||
41 | }; | ||
42 | |||
43 | #endif | ||