diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2016-10-19 15:08:30 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2016-11-04 09:26:30 +0200 |
commit | 996136ec9b8d002b7f1cbd2d7eeac850a561143d (patch) | |
tree | 87bc68bfdf086191725fe211444f71ca4904f6fb /build2/test/script/script | |
parent | 56eb8c36b5b408e08760fa18cf893e5e8a613b7a (diff) |
Implement two-stage testscript parsing
Diffstat (limited to 'build2/test/script/script')
-rw-r--r-- | build2/test/script/script | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/build2/test/script/script b/build2/test/script/script index 590013a..e3afbca 100644 --- a/build2/test/script/script +++ b/build2/test/script/script @@ -12,6 +12,8 @@ #include <build2/test/target> +#include <build2/test/script/token> // replay_tokens + namespace build2 { class target; @@ -20,6 +22,18 @@ namespace build2 { namespace script { + // Pre-parse representation. + // + enum class line_type {variable, test}; + + struct line + { + line_type type; + replay_tokens tokens; + }; + + // Parse object model. + // enum class redirect_type { none, @@ -118,6 +132,11 @@ namespace build2 // value& append (const variable&); + + // Pre-parse. + // + public: + vector<line> lines; }; class script: public scope |