aboutsummaryrefslogtreecommitdiff
path: root/build2/parser.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'build2/parser.cxx')
-rw-r--r--build2/parser.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/build2/parser.cxx b/build2/parser.cxx
index 0c45e17..66af0a5 100644
--- a/build2/parser.cxx
+++ b/build2/parser.cxx
@@ -1396,13 +1396,17 @@ namespace build2
fail (t) << "expected newline instead of " << t << " after " << k
<< (k != "else" ? "-expression" : "");
- // This can be a block or a single line.
+ // This can be a block or a single line. The block part is a bit
+ // tricky, consider:
//
- if (next (t, tt) == type::lcbrace)
+ // else
+ // {hxx cxx}{options}: install = false
+ //
+ // So we treat it as a block if it's followed immediately by newline.
+ //
+ if (next (t, tt) == type::lcbrace && peek () == type::newline)
{
- if (next (t, tt) != type::newline)
- fail (t) << "expected newline after {";
-
+ next (t, tt); // Get newline.
next (t, tt);
if (take)