diff options
-rw-r--r-- | build2/test/rule.cxx | 9 | ||||
-rw-r--r-- | build2/test/script/parser | 6 | ||||
-rw-r--r-- | build2/test/script/parser.cxx | 8 |
3 files changed, 8 insertions, 15 deletions
diff --git a/build2/test/rule.cxx b/build2/test/rule.cxx index f48a3d1..dd1e029 100644 --- a/build2/test/rule.cxx +++ b/build2/test/rule.cxx @@ -13,6 +13,7 @@ #include <build2/test/script/parser> #include <build2/test/script/runner> +#include <build2/test/script/script> using namespace std; using namespace butl; @@ -308,6 +309,7 @@ namespace build2 perform_script (action, target& t) { using namespace script; + using script::script; for (target* pt: t.prerequisite_targets) { @@ -319,11 +321,12 @@ namespace build2 try { + script s (t, st); + concurrent_runner r; + ifdstream ifs (sp); parser p; - concurrent_runner run; - - p.parse (ifs, sp, t, st, run); + p.parse (ifs, sp, s, r); } catch (const io_error& e) { diff --git a/build2/test/script/parser b/build2/test/script/parser index 267c575..732b664 100644 --- a/build2/test/script/parser +++ b/build2/test/script/parser @@ -29,11 +29,7 @@ namespace build2 // Issue diagnostics and throw failed in case of an error. // void - parse (istream&, - const path& name, - target& test, - target& script, - runner&); + parse (istream&, const path& name, script&, runner&); // Recursive descent parser. // diff --git a/build2/test/script/parser.cxx b/build2/test/script/parser.cxx index fd8010c..57068c6 100644 --- a/build2/test/script/parser.cxx +++ b/build2/test/script/parser.cxx @@ -18,11 +18,7 @@ namespace build2 using type = token_type; void parser:: - parse (istream& is, - const path& p, - target& test_t, - target& script_t, - runner& r) + parse (istream& is, const path& p, script& s, runner& r) { path_ = &p; @@ -30,9 +26,7 @@ namespace build2 lexer_ = &l; base_parser::lexer_ = &l; - script s (test_t, script_t); script_ = &s; - runner_ = &r; token t; |