From f50a3a56b59698ffce3965711898a94e7849aa78 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 18 Nov 2022 07:00:36 +0200 Subject: Complete low verbosity diagnostics rework --- libbuild2/build/script/parser.cxx | 6 +++--- libbuild2/build/script/parser.hxx | 15 ++++++++------- libbuild2/build/script/parser.test.cxx | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) (limited to 'libbuild2/build') diff --git a/libbuild2/build/script/parser.cxx b/libbuild2/build/script/parser.cxx index b406f12..5dd9179 100644 --- a/libbuild2/build/script/parser.cxx +++ b/libbuild2/build/script/parser.cxx @@ -1429,12 +1429,12 @@ namespace build2 exec_lines (begin, end, exec_cmd); } - names parser:: + pair parser:: execute_diag_preamble (const scope& rs, const scope& bs, environment& e, const script& s, runner& r, bool diag, bool enter, bool leave) { - tracer trace ("exec_diag_preamble"); + tracer trace ("execute_diag_preamble"); assert (!s.diag_preamble.empty ()); @@ -1499,7 +1499,7 @@ namespace build2 if (leave) runner_->leave (e, s.end_loc); - return ns; + return make_pair (ns, dl.tokens.front ().location ()); } void parser:: diff --git a/libbuild2/build/script/parser.hxx b/libbuild2/build/script/parser.hxx index 1328bae..3121320 100644 --- a/libbuild2/build/script/parser.hxx +++ b/libbuild2/build/script/parser.hxx @@ -174,17 +174,18 @@ namespace build2 } // If the diag argument is true, then execute the preamble including - // the (trailing) diagnostics line and return the resulting names (see - // exec_special() for the diagnostics line execution semantics). - // Otherwise, execute the preamble excluding the diagnostics line and - // return an empty names list. If requested, call the runner's enter() - // and leave() functions that initialize/clean up the environment - // before/after the preamble execution. + // the (trailing) diagnostics line and return the resulting names and + // its location (see exec_special() for the diagnostics line execution + // semantics). Otherwise, execute the preamble excluding the + // diagnostics line and return an empty names list and location. If + // requested, call the runner's enter() and leave() functions that + // initialize/clean up the environment before/after the preamble + // execution. // // Note: having both root and base scopes for testing (where we pass // global scope for both). // - names + pair execute_diag_preamble (const scope& root, const scope& base, environment&, const script&, runner&, bool diag, bool enter, bool leave); diff --git a/libbuild2/build/script/parser.test.cxx b/libbuild2/build/script/parser.test.cxx index e1ee3ef..97eac22 100644 --- a/libbuild2/build/script/parser.test.cxx +++ b/libbuild2/build/script/parser.test.cxx @@ -323,7 +323,7 @@ namespace build2 e, s, r, true /* diag */, true /* enter */, - true /* leave */)); + true /* leave */).first); cout << "diag: " << diag << endl; } -- cgit v1.1