| Copyright | (c) Niklas Broberg 2009 |
|---|---|
| License | BSD-style (see the file LICENSE.txt) |
| Maintainer | Niklas Broberg, d00nibro@chalmers.se |
| Stability | stable |
| Portability | portable |
| Safe Haskell | Safe-Inferred |
| Language | Haskell98 |
Language.Haskell.Exts.SrcLoc
Description
This module defines various data types representing source location information, of varying degree of preciseness.
Synopsis
- showInt :: Int -> String
- data SrcLoc = SrcLoc {}
- noLoc :: SrcLoc
- data SrcSpan = SrcSpan {}
- srcSpanStart :: SrcSpan -> (Int, Int)
- srcSpanEnd :: SrcSpan -> (Int, Int)
- mkSrcSpan :: SrcLoc -> SrcLoc -> SrcSpan
- mergeSrcSpan :: SrcSpan -> SrcSpan -> SrcSpan
- isNullSpan :: SrcSpan -> Bool
- spanSize :: SrcSpan -> (Int, Int)
- data Loc a = Loc {}
- data SrcSpanInfo = SrcSpanInfo {
- srcInfoSpan :: SrcSpan
- srcInfoPoints :: [SrcSpan]
- noInfoSpan :: SrcSpan -> SrcSpanInfo
- noSrcSpan :: SrcSpanInfo
- infoSpan :: SrcSpan -> [SrcSpan] -> SrcSpanInfo
- combSpanInfo :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo
- combSpanMaybe :: SrcSpanInfo -> Maybe SrcSpanInfo -> SrcSpanInfo
- (<++>) :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo
- (<+?>) :: SrcSpanInfo -> Maybe SrcSpanInfo -> SrcSpanInfo
- (<?+>) :: Maybe SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo
- (<**) :: SrcSpanInfo -> [SrcSpan] -> SrcSpanInfo
- (<^^>) :: SrcSpan -> SrcSpan -> SrcSpanInfo
- class SrcInfo si where
- toSrcInfo :: SrcLoc -> [SrcSpan] -> SrcLoc -> si
- fromSrcInfo :: SrcSpanInfo -> si
- getPointLoc :: si -> SrcLoc
- fileName :: si -> String
- startLine :: si -> Int
- startColumn :: si -> Int
Documentation
A single position in the source.
Instances
| Data SrcLoc Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcLoc -> c SrcLoc # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcLoc # toConstr :: SrcLoc -> Constr # dataTypeOf :: SrcLoc -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcLoc) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcLoc) # gmapT :: (forall b. Data b => b -> b) -> SrcLoc -> SrcLoc # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcLoc -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcLoc -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcLoc -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcLoc -> m SrcLoc # | |||||
| Generic SrcLoc Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Associated Types
| |||||
| Show SrcLoc Source # | |||||
| Eq SrcLoc Source # | |||||
| Ord SrcLoc Source # | |||||
| Pretty SrcLoc Source # | |||||
Defined in Language.Haskell.Exts.Pretty | |||||
| SrcInfo SrcLoc Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc | |||||
| type Rep SrcLoc Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc type Rep SrcLoc = D1 ('MetaData "SrcLoc" "Language.Haskell.Exts.SrcLoc" "haskell-src-exts-1.23.1-3bFD7V47GX93PNfb8k9gm3" 'False) (C1 ('MetaCons "SrcLoc" 'PrefixI 'True) (S1 ('MetaSel ('Just "srcFilename") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 String) :*: (S1 ('MetaSel ('Just "srcLine") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int) :*: S1 ('MetaSel ('Just "srcColumn") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Int)))) | |||||
A portion of the source, spanning one or more lines and zero or more columns.
Constructors
| SrcSpan | |
Fields | |
Instances
srcSpanStart :: SrcSpan -> (Int, Int) Source #
Returns srcSpanStartLine and srcSpanStartColumn in a pair.
srcSpanEnd :: SrcSpan -> (Int, Int) Source #
Returns srcSpanEndLine and srcSpanEndColumn in a pair.
mkSrcSpan :: SrcLoc -> SrcLoc -> SrcSpan Source #
Combine two locations in the source to denote a span.
mergeSrcSpan :: SrcSpan -> SrcSpan -> SrcSpan Source #
Merge two source spans into a single span from the start of the first to the end of the second. Assumes that the two spans relate to the same source file.
isNullSpan :: SrcSpan -> Bool Source #
Test if a given span starts and ends at the same location.
An entity located in the source.
Instances
| Generic (Loc a) Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Associated Types
| |||||
| Show a => Show (Loc a) Source # | |||||
| Eq a => Eq (Loc a) Source # | |||||
| Ord a => Ord (Loc a) Source # | |||||
| type Rep (Loc a) Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc type Rep (Loc a) = D1 ('MetaData "Loc" "Language.Haskell.Exts.SrcLoc" "haskell-src-exts-1.23.1-3bFD7V47GX93PNfb8k9gm3" 'False) (C1 ('MetaCons "Loc" 'PrefixI 'True) (S1 ('MetaSel ('Just "loc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SrcSpan) :*: S1 ('MetaSel ('Just "unLoc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a))) | |||||
data SrcSpanInfo Source #
A portion of the source, extended with information on the position of entities within the span.
Constructors
| SrcSpanInfo | |
Fields
| |
Instances
| Data SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcSpanInfo -> c SrcSpanInfo # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcSpanInfo # toConstr :: SrcSpanInfo -> Constr # dataTypeOf :: SrcSpanInfo -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcSpanInfo) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcSpanInfo) # gmapT :: (forall b. Data b => b -> b) -> SrcSpanInfo -> SrcSpanInfo # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpanInfo -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpanInfo -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcSpanInfo -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcSpanInfo -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcSpanInfo -> m SrcSpanInfo # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpanInfo -> m SrcSpanInfo # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpanInfo -> m SrcSpanInfo # | |||||
| Generic SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Associated Types
| |||||
| Show SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Methods showsPrec :: Int -> SrcSpanInfo -> ShowS # show :: SrcSpanInfo -> String # showList :: [SrcSpanInfo] -> ShowS # | |||||
| Eq SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc | |||||
| Ord SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Methods compare :: SrcSpanInfo -> SrcSpanInfo -> Ordering # (<) :: SrcSpanInfo -> SrcSpanInfo -> Bool # (<=) :: SrcSpanInfo -> SrcSpanInfo -> Bool # (>) :: SrcSpanInfo -> SrcSpanInfo -> Bool # (>=) :: SrcSpanInfo -> SrcSpanInfo -> Bool # max :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo # min :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo # | |||||
| SrcInfo SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc Methods toSrcInfo :: SrcLoc -> [SrcSpan] -> SrcLoc -> SrcSpanInfo Source # fromSrcInfo :: SrcSpanInfo -> SrcSpanInfo Source # getPointLoc :: SrcSpanInfo -> SrcLoc Source # fileName :: SrcSpanInfo -> String Source # startLine :: SrcSpanInfo -> Int Source # startColumn :: SrcSpanInfo -> Int Source # | |||||
| Parseable (NonGreedy (ListOf (ModulePragma SrcSpanInfo))) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (NonGreedy (ListOf (ModulePragma SrcSpanInfo))) Source # parseWithMode :: ParseMode -> String -> ParseResult (NonGreedy (ListOf (ModulePragma SrcSpanInfo))) Source # parseWithComments :: ParseMode -> String -> ParseResult (NonGreedy (ListOf (ModulePragma SrcSpanInfo)), [Comment]) Source # parser :: Maybe [Fixity] -> P (NonGreedy (ListOf (ModulePragma SrcSpanInfo))) | |||||
| Parseable (NonGreedy (ModuleHeadAndImports SrcSpanInfo)) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (NonGreedy (ModuleHeadAndImports SrcSpanInfo)) Source # parseWithMode :: ParseMode -> String -> ParseResult (NonGreedy (ModuleHeadAndImports SrcSpanInfo)) Source # parseWithComments :: ParseMode -> String -> ParseResult (NonGreedy (ModuleHeadAndImports SrcSpanInfo), [Comment]) Source # parser :: Maybe [Fixity] -> P (NonGreedy (ModuleHeadAndImports SrcSpanInfo)) | |||||
| Parseable (NonGreedy (PragmasAndModuleHead SrcSpanInfo)) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (NonGreedy (PragmasAndModuleHead SrcSpanInfo)) Source # parseWithMode :: ParseMode -> String -> ParseResult (NonGreedy (PragmasAndModuleHead SrcSpanInfo)) Source # parseWithComments :: ParseMode -> String -> ParseResult (NonGreedy (PragmasAndModuleHead SrcSpanInfo), [Comment]) Source # parser :: Maybe [Fixity] -> P (NonGreedy (PragmasAndModuleHead SrcSpanInfo)) | |||||
| Parseable (NonGreedy (PragmasAndModuleName SrcSpanInfo)) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (NonGreedy (PragmasAndModuleName SrcSpanInfo)) Source # parseWithMode :: ParseMode -> String -> ParseResult (NonGreedy (PragmasAndModuleName SrcSpanInfo)) Source # parseWithComments :: ParseMode -> String -> ParseResult (NonGreedy (PragmasAndModuleName SrcSpanInfo), [Comment]) Source # parser :: Maybe [Fixity] -> P (NonGreedy (PragmasAndModuleName SrcSpanInfo)) | |||||
| Parseable (Decl SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (Decl SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (Decl SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (Decl SrcSpanInfo) | |||||
| Parseable (Exp SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (Exp SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (Exp SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (Exp SrcSpanInfo) | |||||
| Parseable (ImportDecl SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (ImportDecl SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (ImportDecl SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (ImportDecl SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (ImportDecl SrcSpanInfo) | |||||
| Parseable (Module SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (Module SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (Module SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (Module SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (Module SrcSpanInfo) | |||||
| Parseable (Pat SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (Pat SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (Pat SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (Pat SrcSpanInfo) | |||||
| Parseable (Stmt SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (Stmt SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (Stmt SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (Stmt SrcSpanInfo) | |||||
| Parseable (Type SrcSpanInfo) Source # | |||||
Defined in Language.Haskell.Exts.Parser Methods parse :: String -> ParseResult (Type SrcSpanInfo) Source # parseWithMode :: ParseMode -> String -> ParseResult (Type SrcSpanInfo) Source # parseWithComments :: ParseMode -> String -> ParseResult (Type SrcSpanInfo, [Comment]) Source # parser :: Maybe [Fixity] -> P (Type SrcSpanInfo) | |||||
| type Rep SrcSpanInfo Source # | |||||
Defined in Language.Haskell.Exts.SrcLoc type Rep SrcSpanInfo = D1 ('MetaData "SrcSpanInfo" "Language.Haskell.Exts.SrcLoc" "haskell-src-exts-1.23.1-3bFD7V47GX93PNfb8k9gm3" 'False) (C1 ('MetaCons "SrcSpanInfo" 'PrefixI 'True) (S1 ('MetaSel ('Just "srcInfoSpan") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SrcSpan) :*: S1 ('MetaSel ('Just "srcInfoPoints") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 [SrcSpan]))) | |||||
noInfoSpan :: SrcSpan -> SrcSpanInfo Source #
Generate a SrcSpanInfo with no positional information for entities.
noSrcSpan :: SrcSpanInfo Source #
A bogus SrcSpanInfo, the location is noLoc.
`noSrcSpan = noInfoSpan (mkSrcSpan noLoc noLoc)`
infoSpan :: SrcSpan -> [SrcSpan] -> SrcSpanInfo Source #
Generate a SrcSpanInfo with the supplied positional information for entities.
combSpanInfo :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo Source #
Combine two SrcSpanInfos into one that spans the combined source area of
the two arguments, leaving positional information blank.
combSpanMaybe :: SrcSpanInfo -> Maybe SrcSpanInfo -> SrcSpanInfo Source #
Like (<+?>), but it also concatenates the srcInfoPoints.
(<++>) :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo infixl 5 Source #
Short name for combSpanInfo
(<+?>) :: SrcSpanInfo -> Maybe SrcSpanInfo -> SrcSpanInfo infixl 4 Source #
Optionally combine the first argument with the second,
or return it unchanged if the second argument is Nothing.
(<?+>) :: Maybe SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfo infixl 4 Source #
Optionally combine the second argument with the first,
or return it unchanged if the first argument is Nothing.
(<**) :: SrcSpanInfo -> [SrcSpan] -> SrcSpanInfo infixl 4 Source #
Add more positional information for entities of a span.
(<^^>) :: SrcSpan -> SrcSpan -> SrcSpanInfo infixl 6 Source #
Merge two SrcSpans and lift them to a SrcInfoSpan with
no positional information for entities.
class SrcInfo si where Source #
A class to work over all kinds of source location information.
Minimal complete definition
Methods
toSrcInfo :: SrcLoc -> [SrcSpan] -> SrcLoc -> si Source #
fromSrcInfo :: SrcSpanInfo -> si Source #
getPointLoc :: si -> SrcLoc Source #
fileName :: si -> String Source #
startLine :: si -> Int Source #
startColumn :: si -> Int Source #
Instances
| SrcInfo SrcLoc Source # | |
Defined in Language.Haskell.Exts.SrcLoc | |
| SrcInfo SrcSpan Source # | |
Defined in Language.Haskell.Exts.SrcLoc | |
| SrcInfo SrcSpanInfo Source # | |
Defined in Language.Haskell.Exts.SrcLoc Methods toSrcInfo :: SrcLoc -> [SrcSpan] -> SrcLoc -> SrcSpanInfo Source # fromSrcInfo :: SrcSpanInfo -> SrcSpanInfo Source # getPointLoc :: SrcSpanInfo -> SrcLoc Source # fileName :: SrcSpanInfo -> String Source # startLine :: SrcSpanInfo -> Int Source # startColumn :: SrcSpanInfo -> Int Source # | |