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 | ||
