haskell-tools-backend-ghc-0.3.0.1: Creating the Haskell-Tools AST from GHC's representations

Safe HaskellNone
LanguageHaskell2010

Language.Haskell.Tools.AST.FromGHC.Decls

Description

Functions that convert the declarations of the GHC AST to corresponding elements in the Haskell-tools AST representation

Synopsis

Documentation

trfDecls :: TransformName n r => [LHsDecl n] -> Trf (AnnListG UDecl (Dom r) RangeStage) Source #

trfDeclsGroup :: forall n r. TransformName n r => HsGroup n -> Trf (AnnListG UDecl (Dom r) RangeStage) Source #

trfDecl :: TransformName n r => Located (HsDecl n) -> Trf (Ann UDecl (Dom r) RangeStage) Source #

trfGADT :: TransformName n r => NewOrData -> Located n -> LHsQTyVars n -> Located (HsContext n) -> Maybe (Located (HsKind n)) -> [Located (ConDecl n)] -> Maybe (Located [LHsSigType n]) -> AnnKeywordId -> Trf SrcLoc -> Trf (UDecl (Dom r) RangeStage) Source #

trfVal :: TransformName n r => HsBindLR n n -> Trf (UDecl (Dom r) RangeStage) Source #

trfSig :: TransformName n r => Sig n -> Trf (UDecl (Dom r) RangeStage) Source #

trfConlike :: [SrcSpan] -> RuleMatchInfo -> Trf (AnnMaybeG UConlikeAnnot (Dom r) RangeStage) Source #

trfConDecl :: TransformName n r => Located (ConDecl n) -> Trf (Ann UConDecl (Dom r) RangeStage) Source #

trfConDecl' :: TransformName n r => ConDecl n -> Trf (UConDecl (Dom r) RangeStage) Source #

trfGADTConDecl :: TransformName n r => Located (ConDecl n) -> Trf (Ann UGadtConDecl (Dom r) RangeStage) Source #

trfGadtConType :: TransformName n r => Located (HsType n) -> Trf (Ann UGadtConType (Dom r) RangeStage) Source #

trfFieldDecl :: TransformName n r => Located (ConDeclField n) -> Trf (Ann UFieldDecl (Dom r) RangeStage) Source #

trfFieldDecl' :: TransformName n r => ConDeclField n -> Trf (UFieldDecl (Dom r) RangeStage) Source #

trfDerivings :: TransformName n r => Located [LHsSigType n] -> Trf (Ann UDeriving (Dom r) RangeStage) Source #

trfInstanceRule :: TransformName n r => Located (HsType n) -> Trf (Ann UInstanceRule (Dom r) RangeStage) Source #

trfInstanceRule' :: TransformName n r => HsType n -> Trf (UInstanceRule (Dom r) RangeStage) Source #

instanceHead :: Trf (Ann UInstanceHead (Dom r) RangeStage) -> Trf (UInstanceRule (Dom r) RangeStage) Source #

trfInstanceHead :: TransformName n r => Located (HsType n) -> Trf (Ann UInstanceHead (Dom r) RangeStage) Source #

trfInstanceHead' :: TransformName n r => HsType n -> Trf (UInstanceHead (Dom r) RangeStage) Source #

trfTypeEq :: TransformName n r => Located (TyFamInstEqn n) -> Trf (Ann UTypeEqn (Dom r) RangeStage) Source #

trfFunDeps :: TransformName n r => [Located (FunDep (Located n))] -> Trf (AnnMaybeG UFunDeps (Dom r) RangeStage) Source #

trfFunDep' :: TransformName n r => FunDep (Located n) -> Trf (UFunDep (Dom r) RangeStage) Source #

createDeclHead :: TransformName n r => Located n -> LHsQTyVars n -> Trf (Ann UDeclHead (Dom r) RangeStage) Source #

wrapDeclHead :: TransformName n r => [LHsTyVarBndr n] -> Trf (Ann UDeclHead (Dom r) RangeStage) -> Trf (Ann UDeclHead (Dom r) RangeStage) Source #

addParenLocs :: SrcSpan -> Trf SrcSpan Source #

Get the parentheses directly before and after (for parenthesized application)

createClassBody :: TransformName n r => [LSig n] -> LHsBinds n -> [LFamilyDecl n] -> [LTyFamDefltEqn n] -> Trf (AnnMaybeG UClassBody (Dom r) RangeStage) Source #

trfClassElemSig :: TransformName n r => Located (Sig n) -> Trf (Ann UClassElement (Dom r) RangeStage) Source #

trfTypeFam :: TransformName n r => Located (FamilyDecl n) -> Trf (Ann UTypeFamily (Dom r) RangeStage) Source #

trfTypeFam' :: TransformName n r => FamilyDecl n -> Trf (UTypeFamily (Dom r) RangeStage) Source #

trfTypeFamDef :: TransformName n r => Located (TyFamDefltEqn n) -> Trf (Ann UClassElement (Dom r) RangeStage) Source #

trfInstBody :: TransformName n r => LHsBinds n -> [LSig n] -> [LTyFamInstDecl n] -> [LDataFamInstDecl n] -> Trf (AnnMaybeG UInstBody (Dom r) RangeStage) Source #

trfClassInstSig :: TransformName n r => Located (Sig n) -> Trf (Ann UInstBodyDecl (Dom r) RangeStage) Source #

trfInstTypeFam :: TransformName n r => Located (TyFamInstDecl n) -> Trf (Ann UInstBodyDecl (Dom r) RangeStage) Source #

trfInstDataFam :: TransformName n r => Located (DataFamInstDecl n) -> Trf (Ann UInstBodyDecl (Dom r) RangeStage) Source #

trfPatternSynonym :: forall n r. TransformName n r => PatSynBind n n -> Trf (UPatternSynonym (Dom r) RangeStage) Source #

trfAnnotationSubject :: TransformName n r => SourceText -> AnnProvenance n -> SrcLoc -> Trf (Ann UAnnotationSubject (Dom r) RangeStage) Source #

trfDataKeyword :: NewOrData -> Trf (Ann UDataOrNewtypeKeyword (Dom r) RangeStage) Source #

trfCallConv' :: CCallConv -> Trf (UCallConv (Dom r) RangeStage) Source #

trfOverlap :: Located OverlapMode -> Trf (Ann UOverlapPragma (Dom r) RangeStage) Source #

trfRole :: Located (Maybe Role) -> Trf (Ann URole (Dom r) RangeStage) Source #

trfPhase :: Trf SrcLoc -> Activation -> Trf (AnnMaybeG UPhaseControl (Dom r) RangeStage) Source #

trfPhaseNum :: PhaseNum -> Trf (Ann PhaseNumber (Dom r) RangeStage) Source #

trfRuleBndr :: TransformName n r => Located (RuleBndr n) -> Trf (Ann UTyVar (Dom r) RangeStage) Source #

trfMinimalFormula :: TransformName n r => Located (BooleanFormula (Located n)) -> Trf (Ann UMinimalFormula (Dom r) RangeStage) Source #

trfMinimalFormula' :: TransformName n r => BooleanFormula (Located n) -> Trf (UMinimalFormula (Dom r) RangeStage) Source #