Skip to content

Commit

Permalink
Move extension groups to Cabal-described
Browse files Browse the repository at this point in the history
  • Loading branch information
philderbeast committed Jan 5, 2024
1 parent 347e5b1 commit 84e1045
Show file tree
Hide file tree
Showing 5 changed files with 507 additions and 505 deletions.
1 change: 1 addition & 0 deletions Cabal-described/Cabal-described.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,6 @@ library

exposed-modules:
Distribution.Described
Distribution.Described.Extension
Distribution.Utils.CharSet
Distribution.Utils.GrammarRegex
50 changes: 1 addition & 49 deletions Cabal-described/src/Distribution/Described.hs
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE ViewPatterns #-}
module Distribution.Described (
Described (..),
describeDoc,
Expand All @@ -22,10 +20,6 @@ module Distribution.Described (
reSpacedComma,
reHsString,
reUnqualComponent,
-- * Language Extensions
reKnownExtension,
reDisableExtension,
reXs,
-- *
describeFlagAssignmentNonEmpty,
-- * Lists
Expand Down Expand Up @@ -108,7 +102,7 @@ import Distribution.Types.UnqualComponentName (UnqualComponentName)
import Distribution.Utils.Path (LicenseFile, PackageDir, SourceDir, SymbolicPath)
import Distribution.Verbosity (Verbosity)
import Distribution.Version (Version, VersionRange)
import Language.Haskell.Extension
import Language.Haskell.Extension (Extension, Language, knownLanguages)

-- | Class describing the pretty/parsec format of a.
class (Pretty a, Parsec a) => Described a where
Expand Down Expand Up @@ -187,42 +181,6 @@ reComma = reChar ','
reSpacedComma :: GrammarRegex a
reSpacedComma = RESpaces <> reComma <> RESpaces

-------------------------------------------------------------------------------
-- Language extensions
-------------------------------------------------------------------------------

reXs :: [KnownExtension] -> GrammarRegex a
reXs xs = REUnion (fromString . prettyShow <$> xs)

reKnownExtension :: GrammarRegex a
reKnownExtension = REUnion
[ RENamed "interactive-extension" $ reXs xGroupInteractive
, RENamed "phase-extension" $ reXs xGroupPhase
, RENamed "syntax-extension" $ reXs xGroupSyntax
, RENamed "import-export-extension" $ reXs xGroupImportExport
, RENamed "type-extension" $ reXs xGroupTypes
, RENamed "record-extension" $ reXs xGroupRecords
, RENamed "deriving-extension" $ reXs xGroupDeriving
, RENamed "pattern-extension" $ reXs xGroupPatterns
, RENamed "classes-instances-extension" $ reXs xGroupClassesInstances
, RENamed "literals-extension" $ reXs xGroupLiterals
, RENamed "constraint-extension" $ reXs xGroupConstraints
, RENamed "type-signature-extension" $ reXs xGroupTypeSignatures
, RENamed "binding-generalisation-extension" $ reXs xGroupBindingsGeneralisation
, RENamed "template-haskell-extension" $ reXs xGroupTemplates
, RENamed "bang-strict-extension" $ reXs xGroupBangStrict
, RENamed "parallel-concurrent-extension" $ reXs xGroupParallelConcurrent
, RENamed "unboxed-primitive-extension" $ reXs xGroupUnboxedPrimitive
, RENamed "foreign-extension" $ reXs xGroupForeign
, RENamed "safe-extension" $ reXs xGroupSafe
, RENamed "miscellaneous-extension" $ reXs xGroupMiscellaneous
, RENamed "bugs-extension" $ reXs xGroupBugs
, RENamed "ungrouped-extension" $ reXs xUngrouped
]

reDisableExtension :: GrammarRegex a
reDisableExtension = REUnion ["No" <> RENamed "enable-extension" reKnownExtension]

-------------------------------------------------------------------------------
-- Character sets
-------------------------------------------------------------------------------
Expand Down Expand Up @@ -442,12 +400,6 @@ instance Described ExeDependency where
instance Described ExposedModule where
describe _ = RETodo

instance Described Extension where
describe _ = REUnion
[ RENamed "enable-extension" reKnownExtension
, RENamed "disable-extension" reDisableExtension
]

instance Described FlagAssignment where
describe _ = REMunch RESpaces1 $
REUnion [fromString "+", fromString "-"] <> describe (Proxy :: Proxy FlagName)
Expand Down
Loading

0 comments on commit 84e1045

Please sign in to comment.