futhark-0.17.1: An optimising compiler for a functional, array-oriented language.
Safe HaskellSafe-Inferred
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.

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 #

Position type.

Constructors

Pos !FilePath !Int !Int !Int

Source file name, line, column, and character offset.

Line numbering starts at 1, column offset starts at 1, and character offset starts at 0.

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 #

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 #