module Language.Ginger.SourcePosition where import Data.Text (Text) import qualified Data.Text as Text data SourcePosition = SourcePosition { SourcePosition -> Text sourceFile :: !Text , SourcePosition -> Int sourceLine :: !Int , SourcePosition -> Int sourceColumn :: !Int } deriving (Int -> SourcePosition -> ShowS [SourcePosition] -> ShowS SourcePosition -> String (Int -> SourcePosition -> ShowS) -> (SourcePosition -> String) -> ([SourcePosition] -> ShowS) -> Show SourcePosition forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> SourcePosition -> ShowS showsPrec :: Int -> SourcePosition -> ShowS $cshow :: SourcePosition -> String show :: SourcePosition -> String $cshowList :: [SourcePosition] -> ShowS showList :: [SourcePosition] -> ShowS Show, SourcePosition -> SourcePosition -> Bool (SourcePosition -> SourcePosition -> Bool) -> (SourcePosition -> SourcePosition -> Bool) -> Eq SourcePosition forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: SourcePosition -> SourcePosition -> Bool == :: SourcePosition -> SourcePosition -> Bool $c/= :: SourcePosition -> SourcePosition -> Bool /= :: SourcePosition -> SourcePosition -> Bool Eq, Eq SourcePosition Eq SourcePosition => (SourcePosition -> SourcePosition -> Ordering) -> (SourcePosition -> SourcePosition -> Bool) -> (SourcePosition -> SourcePosition -> Bool) -> (SourcePosition -> SourcePosition -> Bool) -> (SourcePosition -> SourcePosition -> Bool) -> (SourcePosition -> SourcePosition -> SourcePosition) -> (SourcePosition -> SourcePosition -> SourcePosition) -> Ord SourcePosition SourcePosition -> SourcePosition -> Bool SourcePosition -> SourcePosition -> Ordering SourcePosition -> SourcePosition -> SourcePosition forall a. Eq a => (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a $ccompare :: SourcePosition -> SourcePosition -> Ordering compare :: SourcePosition -> SourcePosition -> Ordering $c< :: SourcePosition -> SourcePosition -> Bool < :: SourcePosition -> SourcePosition -> Bool $c<= :: SourcePosition -> SourcePosition -> Bool <= :: SourcePosition -> SourcePosition -> Bool $c> :: SourcePosition -> SourcePosition -> Bool > :: SourcePosition -> SourcePosition -> Bool $c>= :: SourcePosition -> SourcePosition -> Bool >= :: SourcePosition -> SourcePosition -> Bool $cmax :: SourcePosition -> SourcePosition -> SourcePosition max :: SourcePosition -> SourcePosition -> SourcePosition $cmin :: SourcePosition -> SourcePosition -> SourcePosition min :: SourcePosition -> SourcePosition -> SourcePosition Ord) prettySourcePosition :: SourcePosition -> String prettySourcePosition :: SourcePosition -> String prettySourcePosition SourcePosition s = Text -> String Text.unpack (SourcePosition -> Text sourceFile SourcePosition s) String -> ShowS forall a. [a] -> [a] -> [a] ++ String ":" String -> ShowS forall a. [a] -> [a] -> [a] ++ Int -> String forall a. Show a => a -> String show (SourcePosition -> Int sourceLine SourcePosition s) String -> ShowS forall a. [a] -> [a] -> [a] ++ String ":" String -> ShowS forall a. [a] -> [a] -> [a] ++ Int -> String forall a. Show a => a -> String show (SourcePosition -> Int sourceColumn SourcePosition s)