ghc-8.0.1: The GHC API

Safe HaskellNone
LanguageHaskell2010

InteractiveEval

Contents

Synopsis

Documentation

execStmt Source #

Arguments

:: GhcMonad m 
=> String

a statement (bind or expression)

-> ExecOptions 
-> m ExecResult 

Run a statement in the current interactive context.

data ExecOptions Source #

Constructors

ExecOptions 

Fields

execOptions :: ExecOptions Source #

default ExecOptions

runDeclsWithLocation :: GhcMonad m => String -> Int -> String -> m [Name] Source #

Run some declarations and return any user-visible names that were brought into scope.

isStmt :: DynFlags -> String -> Bool Source #

Returns True if passed string is a statement.

hasImport :: DynFlags -> String -> Bool Source #

Returns True if passed string has an import declaration.

isImport :: DynFlags -> String -> Bool Source #

Returns True if passed string is an import declaration.

isDecl :: DynFlags -> String -> Bool Source #

Returns True if passed string is a declaration but not a splice.

back :: GhcMonad m => Int -> m ([Name], Int, SrcSpan, String) Source #

setContext :: GhcMonad m => [InteractiveImport] -> m () Source #

Set the interactive evaluation context.

(setContext imports) sets the ic_imports field (which in turn determines what is in scope at the prompt) to imports, and constructs the ic_rn_glb_env environment to reflect it.

We retain in scope all the things defined at the prompt, and kept in ic_tythings. (Indeed, they shadow stuff from ic_imports.)

getContext :: GhcMonad m => m [InteractiveImport] Source #

Get the interactive evaluation context, consisting of a pair of the set of modules from which we take the full top-level scope, and the set of modules from which we take just the exports respectively.

getNamesInScope :: GhcMonad m => m [Name] Source #

Returns all names in scope in the current interactive context

getRdrNamesInScope :: GhcMonad m => m [RdrName] Source #

Returns all RdrNames in scope in the current interactive context, excluding any that are internally-generated.

moduleIsInterpreted :: GhcMonad m => Module -> m Bool Source #

Returns True if the specified module is interpreted, and hence has its full top-level scope available.

getInfo :: GhcMonad m => Bool -> Name -> m (Maybe (TyThing, Fixity, [ClsInst], [FamInst])) Source #

Looks up an identifier in the current interactive context (for :info) Filter the instances by the ones whose tycons (or clases resp) are in scope (qualified or otherwise). Otherwise we list a whole lot too many! The exact choice of which ones to show, and which to hide, is a judgement call. (see Trac #1581)

exprType :: GhcMonad m => String -> m Type Source #

Get the type of an expression Returns its most general type

typeKind :: GhcMonad m => Bool -> String -> m (Type, Kind) Source #

Get the kind of a type

parseName :: GhcMonad m => String -> m [Name] Source #

Parses a string as an identifier, and returns the list of Names that the identifier can refer to in the current interactive context.

parseExpr :: GhcMonad m => String -> m (LHsExpr RdrName) Source #

Parse an expression, the parsed expression can be further processed and passed to compileParsedExpr.

compileExpr :: GhcMonad m => String -> m HValue Source #

Compile an expression, run it and deliver the resulting HValue.

dynCompileExpr :: GhcMonad m => String -> m Dynamic Source #

Compile an expression, run it and return the result as a Dynamic.

compileExprRemote :: GhcMonad m => String -> m ForeignHValue Source #

Compile an expression, run it and deliver the resulting HValue.

compileParsedExprRemote :: GhcMonad m => LHsExpr RdrName -> m ForeignHValue Source #

Compile an parsed expression (before renaming), run it and deliver the resulting HValue.

data Term Source #

Constructors

Term 

Fields

Prim 

Fields

Suspension 

Fields

NewtypeWrap 

Fields

RefWrap 

Fields

Instances

Depcreated API (remove in GHC 7.14)

data RunResult Source #

The type returned by the deprecated runStmt and runStmtWithLocation API

Constructors

RunOk [Name]

names bound by this evaluation

RunException SomeException

statement raised an exception

RunBreak ThreadId [Name] (Maybe BreakInfo) 

runStmt :: GhcMonad m => String -> SingleStep -> m RunResult Source #

Deprecated: use execStmt

Run a statement in the current interactive context. Statement may bind multple values.

runStmtWithLocation :: GhcMonad m => String -> Int -> String -> SingleStep -> m RunResult Source #

Deprecated: use execStmtWithLocation