camfort-1.0.1: CamFort - Cambridge Fortran infrastructure
Copyright(c) 2017 Dominic Orchard Andrew Rice Mistral Contrastin Matthew Danish
LicenseApache-2.0
Maintainerdom.orchard@gmail.com
Stabilityexperimental
Safe HaskellNone
LanguageHaskell2010

Camfort.Specification.Stencils.Annotation

Description

Defines the StencilAnnotation datatype, which is used for annotating a ProgramFile with stencil information.

Synopsis

Documentation

data StencilAnnotation a Source #

Instances

Instances details
Linkable SA Source # 
Instance details

Defined in Camfort.Specification.Stencils.Annotation

Methods

link :: SA -> Block SA -> SA Source #

linkPU :: SA -> ProgramUnit SA -> SA Source #

ASTEmbeddable SA Specification Source # 
Instance details

Defined in Camfort.Specification.Stencils.Annotation

Eq a => Eq (StencilAnnotation a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Annotation

Data a => Data (StencilAnnotation a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Annotation

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> StencilAnnotation a -> c (StencilAnnotation a) #

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

toConstr :: StencilAnnotation a -> Constr #

dataTypeOf :: StencilAnnotation a -> DataType #

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

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

gmapT :: (forall b. Data b => b -> b) -> StencilAnnotation a -> StencilAnnotation a #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> StencilAnnotation a -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> StencilAnnotation a -> r #

gmapQ :: (forall d. Data d => d -> u) -> StencilAnnotation a -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> StencilAnnotation a -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> StencilAnnotation a -> m (StencilAnnotation a) #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> StencilAnnotation a -> m (StencilAnnotation a) #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> StencilAnnotation a -> m (StencilAnnotation a) #

Show a => Show (StencilAnnotation a) Source # 
Instance details

Defined in Camfort.Specification.Stencils.Annotation

type SA = Analysis (StencilAnnotation A) Source #

Convenience name for common annotation type.

mkStencilAnnotation :: a -> StencilAnnotation a Source #

Create a new stencil annotation.

Specification Annotation Helpers

getAstSpec :: SA -> Maybe SpecDecls Source #

Retrieve a normalized specification from an annotation.

getParseSpec :: SA -> Maybe Specification Source #

Retrieve a parsed specification from an annotation.

getRegionSpec :: SA -> Maybe RegionDecl Source #

Retrieve a region environment from an annotation.

giveAstSpec :: SpecDecls -> SA -> SA Source #

Set the annotation's stencil specification to a normalized specification.

giveParseSpec :: Specification -> SA -> SA Source #

Set the annotation's stencil specification to a parsed specification.

giveRegionSpec :: RegionDecl -> SA -> SA Source #

Set the annotation's stencil specification to a region alias.

Base Annotation

getBaseAnnotation :: SA -> A Source #

Retrieve the underlying (base) annotation from a stencil annotation.