aboutsummaryrefslogtreecommitdiff
path: root/libbuild2/script/parser.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2021-10-14 10:39:50 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2021-10-14 11:57:28 +0200
commit3a2969cf54fb21273b7949095c709f6aa9a2a6d9 (patch)
tree280611d6fa951589dbd9faa165b31df8dbf364af /libbuild2/script/parser.cxx
parent51aabbc8814c229e48c02836a32c402834c3425e (diff)
Pass along parse_names_result during script command parsing
Diffstat (limited to 'libbuild2/script/parser.cxx')
-rw-r--r--libbuild2/script/parser.cxx33
1 files changed, 19 insertions, 14 deletions
diff --git a/libbuild2/script/parser.cxx b/libbuild2/script/parser.cxx
index f234d58..b0431a9 100644
--- a/libbuild2/script/parser.cxx
+++ b/libbuild2/script/parser.cxx
@@ -97,14 +97,16 @@ namespace build2
}
optional<process_path> parser::
- parse_program (token& t, type& tt, bool, bool, names& ns)
+ parse_program (token& t, type& tt,
+ bool, bool,
+ names& ns, parse_names_result& pr)
{
- parse_names (t, tt,
- ns,
- pattern_mode::ignore,
- true /* chunk */,
- "command line",
- nullptr);
+ pr = parse_names (t, tt,
+ ns,
+ pattern_mode::ignore,
+ true /* chunk */,
+ "command line",
+ nullptr);
return nullopt;
}
@@ -1048,10 +1050,13 @@ namespace build2
//
reset_quoted (t);
+ parse_names_result pr;
if (prog)
{
optional<process_path> pp (
- parse_program (t, tt, p == pending::program_first, env, ns));
+ parse_program (t, tt,
+ p == pending::program_first, env,
+ ns, pr));
// During pre-parsing we are not interested in the
// parse_program() call result, so just discard the potentially
@@ -1072,12 +1077,12 @@ namespace build2
}
}
else
- parse_names (t, tt,
- ns,
- pattern_mode::ignore,
- true /* chunk */,
- "command line",
- nullptr);
+ pr = parse_names (t, tt,
+ ns,
+ pattern_mode::ignore,
+ true /* chunk */,
+ "command line",
+ nullptr);
// Nothing else to do if we are pre-parsing.
//