aboutsummaryrefslogtreecommitdiff
path: root/paludis/elike_dep_parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'paludis/elike_dep_parser.cc')
-rw-r--r--paludis/elike_dep_parser.cc14
1 files changed, 14 insertions, 0 deletions
diff --git a/paludis/elike_dep_parser.cc b/paludis/elike_dep_parser.cc
index 682a67ec0..54c0ba273 100644
--- a/paludis/elike_dep_parser.cc
+++ b/paludis/elike_dep_parser.cc
@@ -188,6 +188,20 @@ namespace
callbacks.on_any()();
parse(parser, callbacks, true, true);
}
+ else if (parser.consume(simple_parser::exact("^^")))
+ {
+ if (! parser.consume(+simple_parser::any_of(" \t\r\n")))
+ error(parser, callbacks, "Expected space after '^^'");
+
+ if (! parser.consume(simple_parser::exact("(")))
+ error(parser, callbacks, "Expected '(' after '^^' then space");
+
+ if (! parser.consume(+simple_parser::any_of(" \t\r\n")))
+ error(parser, callbacks, "Expected space after '^^ ('");
+
+ callbacks.on_exactly_one()();
+ parse(parser, callbacks, true, true);
+ }
else if (parser.consume(+simple_parser::any_except(" \t\r\n") >> word))
{
if ('?' == word.at(word.length() - 1))