Portability | portable |
---|---|
Stability | stable |
Maintainer | Niklas Broberg, d00nibro@chalmers.se |
This module defines various data types representing source location information, of varying degree of preciseness.
- data SrcLoc = SrcLoc {}
- data SrcSpan = SrcSpan {}
- mkSrcSpan :: SrcLoc -> SrcLoc -> SrcSpan
- mergeSrcSpan :: SrcSpan -> SrcSpan -> SrcSpan
- data Loc a = Loc {}
- data SrcSpanInfo = SrcSpanInfo {
- srcInfoSpan :: SrcSpan
- srcInfoPoints :: [SrcSpan]
- noInfoSpan :: SrcSpan -> SrcSpanInfo
- infoSpan :: SrcSpan -> [SrcSpan] -> SrcSpanInfo
- combSpanInfo :: SrcSpanInfo -> 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.
A portion of the source, spanning one or more lines and zero or more columns.
mergeSrcSpan :: SrcSpan -> SrcSpan -> SrcSpanSource
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 are given in the order they appear in the source.
Test if a given span starts and ends at the same location.
An entity located in the source.
data SrcSpanInfo Source
A portion of the source, extended with information on the position of entities within the span.
infoSpan :: SrcSpan -> [SrcSpan] -> SrcSpanInfoSource
(<++>) :: SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfoSource
(<+?>) :: SrcSpanInfo -> Maybe SrcSpanInfo -> SrcSpanInfoSource
(<?+>) :: Maybe SrcSpanInfo -> SrcSpanInfo -> SrcSpanInfoSource
(<**) :: SrcSpanInfo -> [SrcSpan] -> SrcSpanInfoSource
(<^^>) :: SrcSpan -> SrcSpan -> SrcSpanInfoSource