module UHC.Light.Compiler.Base.Parser2 ( parsePkgKey, parsePkgKeys ) where import UHC.Light.Compiler.Base.HsName.Builtin import UHC.Light.Compiler.Base.Common import UHC.Light.Compiler.Scanner.Common import UHC.Light.Compiler.Scanner.Scanner import UHC.Light.Compiler.Base.ParseUtils import UHC.Light.Compiler.Base.Parser import UU.Parsing import UHC.Util.ParseUtils import UHC.Util.ScanUtils import UHC.Light.Compiler.Base.FileSearchLocation import UHC.Light.Compiler.Module.ImportExport import qualified Data.Set as Set import qualified UHC.Util.Rel as Rel import Data.Version {-# LINE 41 "src/ehc/Base/Parser2.chs" #-} pPkgKey :: P PkgKey pPkgKey = (concat <$> pList1_ng (pVarid <|> pConid <|> ("-" <$ pMINUS))) <+> pMb (pMINUS *> pVersion) pVersion :: P Version pVersion = (\v -> Version (map read v) []) <$> pList1Sep pDOT pInteger10 {-# LINE 49 "src/ehc/Base/Parser2.chs" #-} scanOptsPkgKey = defaultScanOpts {scoSpecChars = Set.fromList ".-", scoAllowFloat = False} parsePkgKey :: String -> Maybe PkgKey parsePkgKey = parseString scanOptsPkgKey pPkgKey parsePkgKeys :: String -> Maybe [PkgKey] parsePkgKeys = parseString scanOptsPkgKey (pList pPkgKey)