fourmolu-0.4.0.0: src/Ormolu/Parser/Result.hs
{-# LANGUAGE RecordWildCards #-}
-- | A type for result of parsing.
module Ormolu.Parser.Result
( SourceSnippet (..),
ParseResult (..),
)
where
import Data.Text (Text)
import GHC.Data.EnumSet (EnumSet)
import GHC.Hs
import GHC.LanguageExtensions.Type
import GHC.Types.SrcLoc
import Ormolu.Parser.Anns
import Ormolu.Parser.CommentStream
import Ormolu.Parser.Pragma (Pragma)
-- | Either a 'ParseResult', or a raw snippet.
data SourceSnippet = RawSnippet Text | ParsedSnippet ParseResult
-- | A collection of data that represents a parsed module in Ormolu.
data ParseResult = ParseResult
{ -- | 'ParsedSource' from GHC
prParsedSource :: HsModule,
-- | Ormolu-specfic representation of annotations
prAnns :: Anns,
-- | Stack header
prStackHeader :: Maybe (RealLocated Comment),
-- | Pragmas and the associated comments
prPragmas :: [([RealLocated Comment], Pragma)],
-- | Comment stream
prCommentStream :: CommentStream,
-- | Whether or not record dot syntax is enabled
prUseRecordDot :: Bool,
-- | Enabled extensions
prExtensions :: EnumSet Extension,
-- | Indentation level, can be non-zero in case of region formatting
prIndent :: Int
}