futhark-0.25.32: An optimising compiler for a functional, array-oriented language.
Safe HaskellNone
LanguageGHC2021

Language.Futhark.Query

Description

Facilities for answering queries about a program, such as "what appears at this source location", or "where is this name bound". The intent is that this is used as a building block for IDE-like functionality.

Synopsis

Documentation

data BoundTo Source #

What a name is bound to.

Instances

Instances details
Show BoundTo Source # 
Instance details

Defined in Language.Futhark.Query

Eq BoundTo Source # 
Instance details

Defined in Language.Futhark.Query

boundLoc :: BoundTo -> Loc Source #

Where was a bound variable actually bound? That is, what is the location of its definition?

data AtPos Source #

Information about what is at the given source location.

Constructors

AtName (QualName VName) (Maybe BoundTo) Loc 

Instances

Instances details
Show AtPos Source # 
Instance details

Defined in Language.Futhark.Query

Eq AtPos Source # 
Instance details

Defined in Language.Futhark.Query

Methods

(==) :: AtPos -> AtPos -> Bool Source #

(/=) :: AtPos -> AtPos -> Bool Source #

atPos :: Imports -> Pos -> Maybe AtPos Source #

Information about what's at the given source position. Returns Nothing if there is nothing there, including if the source position is invalid.

data Pos #

Constructors

Pos !FilePath !Int !Int !Int 

Instances

Instances details
Data Pos 
Instance details

Defined in Data.Loc

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Pos -> c Pos Source #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Pos Source #

toConstr :: Pos -> Constr Source #

dataTypeOf :: Pos -> DataType Source #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Pos) Source #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Pos) Source #

gmapT :: (forall b. Data b => b -> b) -> Pos -> Pos Source #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Pos -> r Source #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Pos -> r Source #

gmapQ :: (forall d. Data d => d -> u) -> Pos -> [u] Source #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Pos -> u Source #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Pos -> m Pos Source #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Pos -> m Pos Source #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Pos -> m Pos Source #

Read Pos 
Instance details

Defined in Data.Loc

Show Pos 
Instance details

Defined in Data.Loc

Eq Pos 
Instance details

Defined in Data.Loc

Methods

(==) :: Pos -> Pos -> Bool Source #

(/=) :: Pos -> Pos -> Bool Source #

Ord Pos 
Instance details

Defined in Data.Loc

Methods

compare :: Pos -> Pos -> Ordering Source #

(<) :: Pos -> Pos -> Bool Source #

(<=) :: Pos -> Pos -> Bool Source #

(>) :: Pos -> Pos -> Bool Source #

(>=) :: Pos -> Pos -> Bool Source #

max :: Pos -> Pos -> Pos Source #

min :: Pos -> Pos -> Pos Source #

Pretty Pos 
Instance details

Defined in Text.PrettyPrint.Mainland.Class

Methods

ppr :: Pos -> Doc

pprPrec :: Int -> Pos -> Doc

pprList :: [Pos] -> Doc

Located Pos 
Instance details

Defined in Data.Loc

Methods

locOf :: Pos -> Loc #

locOfList :: [Pos] -> Loc #