summaryrefslogtreecommitdiff
path: root/src/ebuild/parsers.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ebuild/parsers.rs')
-rw-r--r--src/ebuild/parsers.rs20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/ebuild/parsers.rs b/src/ebuild/parsers.rs
index 8ab2978..bf5a03e 100644
--- a/src/ebuild/parsers.rs
+++ b/src/ebuild/parsers.rs
@@ -117,20 +117,29 @@ where
let all_of_group = Depend::parser()
.separated_by(whitespace1())
.at_least(1)
- .delimited_by(tag("(").followed_by(whitespace1()), tag(")"))
+ .delimited_by(
+ tag("(").followed_by(whitespace1()),
+ tag(")").preceded_by(whitespace1().opt()),
+ )
.map(|exprs| Depend::AllOf(exprs));
let any_of_group = Depend::parser()
.separated_by(whitespace1())
.at_least(1)
- .delimited_by(tag("(").followed_by(whitespace1()), tag(")"))
+ .delimited_by(
+ tag("(").followed_by(whitespace1()),
+ tag(")").preceded_by(whitespace1().opt()),
+ )
.preceded_by(tag("||").followed_by(whitespace1()))
.map(|exprs| Depend::AnyOf(exprs));
let one_of_group = Depend::parser()
.separated_by(whitespace1())
.at_least(1)
- .delimited_by(tag("(").followed_by(whitespace1()), tag(")"))
+ .delimited_by(
+ tag("(").followed_by(whitespace1()),
+ tag(")").preceded_by(whitespace1().opt()),
+ )
.preceded_by(tag("^^").followed_by(whitespace1()))
.map(|exprs| Depend::OneOf(exprs));
@@ -140,7 +149,10 @@ where
Depend::parser()
.separated_by(whitespace1())
.at_least(1)
- .delimited_by(tag("(").followed_by(whitespace1()), tag(")")),
+ .delimited_by(
+ tag("(").followed_by(whitespace1()),
+ tag(")").preceded_by(whitespace1().opt()),
+ ),
)
.map(|(conditional, exprs)| Depend::ConditionalGroup(conditional, exprs));