| Safe Haskell | None |
|---|---|
| Language | Haskell98 |
Language.Fixpoint.Types.Spans
Synopsis
- data SourcePos = SourcePos {
- sourceName :: FilePath
- sourceLine :: !Pos
- sourceColumn :: !Pos
- type SourceName = FilePath
- data SrcSpan = SS {}
- data Pos
- predPos :: Pos -> Pos
- safePos :: Int -> Pos
- safeSourcePos :: FilePath -> Int -> Int -> SourcePos
- succPos :: Pos -> Pos
- unPos :: Pos -> Int
- mkPos :: Int -> Pos
- class Loc a where
- data Located a = Loc {}
- dummySpan :: SrcSpan
- panicSpan :: String -> SrcSpan
- locAt :: String -> a -> Located a
- dummyLoc :: a -> Located a
- dummyPos :: FilePath -> SourcePos
- atLoc :: Loc l => l -> b -> Located b
- toSourcePos :: (SourceName, Line, Column) -> SourcePos
- ofSourcePos :: SourcePos -> (SourceName, Line, Column)
- sourcePosElts :: SourcePos -> (SourceName, Line, Column)
- srcLine :: Loc a => a -> Pos
Concrete Location Type
The data type SourcePos represents source positions. It contains the
name of the source file, a line number, and a column number. Source line
and column positions change intensively during parsing, so we need to
make them strict to avoid memory leaks.
Constructors
| SourcePos | |
Fields
| |
Instances
type SourceName = FilePath Source #
This is a compatibility type synonym for megaparsec vs. parsec.
A Reusable SrcSpan Type ------------------------------------------
Instances
| FromJSON SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| ToJSON SrcSpan Source # | |||||
| Data SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcSpan -> c SrcSpan # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcSpan # toConstr :: SrcSpan -> Constr # dataTypeOf :: SrcSpan -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcSpan) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcSpan) # gmapT :: (forall b. Data b => b -> b) -> SrcSpan -> SrcSpan # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpan -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcSpan -> r # gmapQ :: (forall d. Data d => d -> u) -> SrcSpan -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcSpan -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcSpan -> m SrcSpan # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpan -> m SrcSpan # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcSpan -> m SrcSpan # | |||||
| Generic SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans Associated Types
| |||||
| Show SrcSpan Source # | |||||
| Binary SrcSpan Source # | |||||
| Serialize SrcSpan Source # | |||||
| NFData SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Eq SrcSpan Source # | |||||
| Ord SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Hashable SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| PPrint SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Loc SrcSpan Source # | |||||
| Store SrcSpan Source # | |||||
| type Rep SrcSpan Source # | |||||
Defined in Language.Fixpoint.Types.Spans type Rep SrcSpan = D1 ('MetaData "SrcSpan" "Language.Fixpoint.Types.Spans" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "SS" 'PrefixI 'True) (S1 ('MetaSel ('Just "sp_start") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos) :*: S1 ('MetaSel ('Just "sp_stop") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos))) | |||||
Pos is the type for positive integers. This is used to represent line
number, column number, and similar things like indentation level.
Semigroup instance can be used to safely and efficiently add Poses
together.
Since: megaparsec-5.0.0
Instances
| FromJSON Pos Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| ToJSON Pos Source # | |||||
| Data Pos | |||||
Defined in Text.Megaparsec.Pos Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pos -> c Pos # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pos # dataTypeOf :: Pos -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pos) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pos) # gmapT :: (forall b. Data b => b -> b) -> Pos -> Pos # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pos -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pos -> r # gmapQ :: (forall d. Data d => d -> u) -> Pos -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Pos -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pos -> m Pos # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pos -> m Pos # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pos -> m Pos # | |||||
| Semigroup Pos | |||||
| Generic Pos | |||||
Defined in Text.Megaparsec.Pos Associated Types
| |||||
| Read Pos | |||||
| Show Pos | |||||
| PrintfArg Pos Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Binary Pos Source # | We need the Binary instances for LH's spec serialization | ||||
| Serialize Pos Source # | |||||
| NFData Pos | |||||
Defined in Text.Megaparsec.Pos | |||||
| Eq Pos | |||||
| Ord Pos | |||||
| Hashable Pos Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Store Pos Source # | |||||
| type Rep Pos | |||||
Defined in Text.Megaparsec.Pos | |||||
safePos :: Int -> Pos Source #
Create, safely, as position. If a non-positive number is given, we use 1.
safeSourcePos :: FilePath -> Int -> Int -> SourcePos Source #
Create a source position from integers, using 1 in case of non-positive numbers.
Construction of Pos from Int. The function throws
InvalidPosException when given a non-positive argument.
Since: megaparsec-6.0.0
Located Values
Located Values ---------------------------------------------------
Instances
| Foldable Located Source # | |||||
Defined in Language.Fixpoint.Types.Spans Methods fold :: Monoid m => Located m -> m # foldMap :: Monoid m => (a -> m) -> Located a -> m # foldMap' :: Monoid m => (a -> m) -> Located a -> m # foldr :: (a -> b -> b) -> b -> Located a -> b # foldr' :: (a -> b -> b) -> b -> Located a -> b # foldl :: (b -> a -> b) -> b -> Located a -> b # foldl' :: (b -> a -> b) -> b -> Located a -> b # foldr1 :: (a -> a -> a) -> Located a -> a # foldl1 :: (a -> a -> a) -> Located a -> a # elem :: Eq a => a -> Located a -> Bool # maximum :: Ord a => Located a -> a # minimum :: Ord a => Located a -> a # | |||||
| Traversable Located Source # | |||||
| Functor Located Source # | |||||
| SMTLIB2 LocSymbol Source # | |||||
| FromJSON a => FromJSON (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| ToJSON a => ToJSON (Located a) Source # | |||||
| Data a => Data (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans Methods gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Located a -> c (Located a) # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c (Located a) # toConstr :: Located a -> Constr # dataTypeOf :: Located a -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c (Located a)) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c (Located a)) # gmapT :: (forall b. Data b => b -> b) -> Located a -> Located a # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Located a -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Located a -> r # gmapQ :: (forall d. Data d => d -> u) -> Located a -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Located a -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Located a -> m (Located a) # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Located a -> m (Located a) # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Located a -> m (Located a) # | |||||
| IsString a => IsString (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans Methods fromString :: String -> Located a # | |||||
| Generic (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans Associated Types
| |||||
| Show a => Show (Located a) Source # | |||||
| Binary a => Binary (Located a) Source # | |||||
| NFData a => NFData (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Eq a => Eq (Located a) Source # | |||||
| Ord a => Ord (Located a) Source # | |||||
| Hashable a => Hashable (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Symbolic a => Symbolic (Located a) Source # | |||||
| Fixpoint a => Fixpoint (Located a) Source # | |||||
| PPrint a => PPrint (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans | |||||
| Expression a => Expression (Located a) Source # | |||||
| Subable a => Subable (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Refinements | |||||
| ToHornSMT a => ToHornSMT (Located a) Source # | |||||
| Loc (Located a) Source # | |||||
| Store a => Store (Located a) Source # | |||||
| type Rep (Located a) Source # | |||||
Defined in Language.Fixpoint.Types.Spans type Rep (Located a) = D1 ('MetaData "Located" "Language.Fixpoint.Types.Spans" "liquid-fixpoint-0.9.6.3.4-CmH5CYTDh7gFBJNG3w2uNw" 'False) (C1 ('MetaCons "Loc" 'PrefixI 'True) (S1 ('MetaSel ('Just "loc") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos) :*: (S1 ('MetaSel ('Just "locE") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 SourcePos) :*: S1 ('MetaSel ('Just "val") 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)))) | |||||
Constructing spans
toSourcePos :: (SourceName, Line, Column) -> SourcePos Source #
ofSourcePos :: SourcePos -> (SourceName, Line, Column) Source #
Destructing spans
sourcePosElts :: SourcePos -> (SourceName, Line, Column) Source #
Orphan instances
| FromJSON Pos Source # | |
| FromJSON SourcePos Source # | |
| ToJSON Pos Source # | |
| ToJSON SourcePos Source # | |
| PrintfArg Pos Source # | |
| Binary Pos Source # | We need the Binary instances for LH's spec serialization |
| Binary SourcePos Source # | |
| Serialize Pos Source # | |
| Serialize SourcePos Source # | |
| Hashable Pos Source # | |
| Hashable SourcePos Source # | |
| Fixpoint SourcePos Source # | |
| PPrint SourcePos Source # | |
| Store Pos Source # | |
| Store SourcePos Source # | Retrofitting instances to SourcePos ------------------------------ |