Plain source file: src/compiler/GF/Infra/Location.hs (2015-03-03)
-- | Source locations
module GF.Infra.Location where import GF.Text.Pretty -- ** Source locations class HasSourcePath a where sourcePath :: a -> FilePath data Location = NoLoc | Local Int Int | External FilePath Location deriving (Show,Eq,Ord) -- | Attaching location information data L a = L Location a deriving Show instance Functor L where fmap f (L loc x) = L loc (f x) unLoc :: L a -> a unLoc (L _ x) = x noLoc = L NoLoc ppLocation :: FilePath -> Location -> Doc ppLocation fpath NoLoc = pp fpath ppLocation fpath (External p l) = ppLocation p l ppLocation fpath (Local b e) | b == e = fpath <> ":" <> b | otherwise = fpath <> ":" <> b <> "-" <> e ppL (L loc x) msg = hang (ppLocation "" loc<>":") 4 ("In"<+>x<>":"<+>msg)
(HTML for this module was generated on 2015-03-03. About the conversion tool.)