diff options
Diffstat (limited to 'src/ebuild/parsers.rs')
| -rw-r--r-- | src/ebuild/parsers.rs | 20 |
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)); |
