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

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.

Constructors

BoundTerm StructType Loc 
BoundModule Loc 
BoundModuleType Loc 
BoundType Loc 

Instances

Instances details
Eq BoundTo Source # 
Instance details

Defined in Language.Futhark.Query

Methods

(==) :: BoundTo -> BoundTo -> Bool #

(/=) :: BoundTo -> BoundTo -> Bool #

Show 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
Eq AtPos Source # 
Instance details

Defined in Language.Futhark.Query

Methods

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

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

Show AtPos Source # 
Instance details

Defined in Language.Futhark.Query

Methods

showsPrec :: Int -> AtPos -> ShowS #

show :: AtPos -> String #

showList :: [AtPos] -> ShowS #

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
Eq Pos 
Instance details

Defined in Data.Loc

Methods

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

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

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 #

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

toConstr :: Pos -> Constr #

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 #

Ord Pos 
Instance details

Defined in Data.Loc

Methods

compare :: Pos -> Pos -> Ordering #

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

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

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

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

max :: Pos -> Pos -> Pos #

min :: Pos -> Pos -> Pos #

Read Pos 
Instance details

Defined in Data.Loc

Show Pos 
Instance details

Defined in Data.Loc

Methods

showsPrec :: Int -> Pos -> ShowS #

show :: Pos -> String #

showList :: [Pos] -> ShowS #

Located Pos 
Instance details

Defined in Data.Loc

Methods

locOf :: Pos -> Loc

locOfList :: [Pos] -> Loc

Pretty Pos 
Instance details

Defined in Text.PrettyPrint.Mainland.Class

Methods

ppr :: Pos -> Doc

pprPrec :: Int -> Pos -> Doc

pprList :: [Pos] -> Doc