@@ -57,9 +57,9 @@ instance NFData Dependency where rnf = genericRnf
57
57
58
58
instance Pretty Dependency where
59
59
pretty (Dependency name ver sublibs) = pretty name
60
- <+ > optionalMonoid
61
- (sublibs /= Set. singleton LMainLibName )
62
- (PP. colon <+ > PP. braces prettySublibs)
60
+ <<> > optionalMonoid
61
+ (sublibs /= Set. singleton LMainLibName )
62
+ (PP. colon <<> > PP. braces prettySublibs)
63
63
<+> pretty ver
64
64
where
65
65
optionalMonoid True x = x
@@ -81,12 +81,40 @@ versionGuardMultilibs expr = do
81
81
else
82
82
expr
83
83
84
+ -- |
85
+ --
86
+ -- >>> simpleParsec "mylib:sub" :: Maybe Dependency
87
+ -- Just (Dependency (PackageName "mylib") AnyVersion (fromList [LSubLibName (UnqualComponentName "sub")]))
88
+ --
89
+ -- >>> simpleParsec "mylib:{sub1,sub2}" :: Maybe Dependency
90
+ -- Just (Dependency (PackageName "mylib") AnyVersion (fromList [LSubLibName (UnqualComponentName "sub1"),LSubLibName (UnqualComponentName "sub2")]))
91
+ --
92
+ -- >>> simpleParsec "mylib:{ sub1 , sub2 }" :: Maybe Dependency
93
+ -- Just (Dependency (PackageName "mylib") AnyVersion (fromList [LSubLibName (UnqualComponentName "sub1"),LSubLibName (UnqualComponentName "sub2")]))
94
+ --
95
+ -- >>> simpleParsec "mylib:{ sub1 , sub2 } ^>= 42" :: Maybe Dependency
96
+ -- Just (Dependency (PackageName "mylib") (MajorBoundVersion (mkVersion [42])) (fromList [LSubLibName (UnqualComponentName "sub1"),LSubLibName (UnqualComponentName "sub2")]))
97
+ --
98
+ -- Spaces around colon are not allowed:
99
+ --
100
+ -- >>> simpleParsec "mylib: sub" :: Maybe Dependency
101
+ -- Nothing
102
+ --
103
+ -- >>> simpleParsec "mylib :sub" :: Maybe Dependency
104
+ -- Nothing
105
+ --
106
+ -- >>> simpleParsec "mylib: {sub1,sub2}" :: Maybe Dependency
107
+ -- Nothing
108
+ --
109
+ -- >>> simpleParsec "mylib :{sub1,sub2}" :: Maybe Dependency
110
+ -- Nothing
111
+ --
84
112
instance Parsec Dependency where
85
113
parsec = do
86
- name <- lexemeParsec
114
+ name <- parsec
87
115
88
116
libs <- option [LMainLibName ]
89
- $ (char ' :' *> spaces *> )
117
+ $ (char ' :' *> )
90
118
$ versionGuardMultilibs
91
119
$ pure <$> parseLib name <|> parseMultipleLibs name
92
120
0 commit comments