Safe Haskell | None |
---|---|
Language | Haskell2010 |
Language.Ginger.Interpret.Eval
Synopsis
- class Eval (m :: Type -> Type) a where
- data EvalState (m :: Type -> Type) = EvalState {
- evalEnv :: !(Env m)
- evalMutables :: !(Map RefID (Value m))
- evalNextRefID :: !RefID
- evalLoadedTemplates :: !(Map Text CachedTemplate)
- evalBlocks :: !(Map Identifier LoadedBlock)
- evalSourcePosition :: !(Maybe SourcePosition)
- evalE :: forall (m :: Type -> Type). MonadRandom m => Expr -> GingerT m (Value m)
- evalS :: forall (m :: Type -> Type). MonadRandom m => Statement -> GingerT m (Value m)
- evalSs :: forall (m :: Type -> Type). MonadRandom m => [Statement] -> GingerT m (Value m)
- evalT :: forall (m :: Type -> Type). MonadRandom m => Template -> GingerT m (Value m)
- stringify :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t) => Value m -> t m Text
- valuesEqual :: forall (m :: Type -> Type). Monad m => Value m -> Value m -> GingerT m Bool
- asBool :: forall (m :: Type -> Type). Monad m => Text -> Value m -> GingerT m Bool
- asTruth :: forall (m :: Type -> Type). Monad m => Text -> Value m -> GingerT m Bool
- getAttr :: forall (m :: Type -> Type). Monad m => Value m -> Identifier -> GingerT m (Maybe (Value m))
- getAttrRaw :: Monad m => Value m -> Identifier -> m (Either RuntimeError (Maybe (Value m)))
- getItem :: forall (m :: Type -> Type). Monad m => Value m -> Value m -> GingerT m (Maybe (Value m))
- getItemRaw :: Monad m => Value m -> Value m -> m (Maybe (Value m))
- loadTemplate :: forall (m :: Type -> Type). Monad m => Text -> GingerT m LoadedTemplate
Documentation
class Eval (m :: Type -> Type) a where Source #
Eval
represents types that can be evaluated in some 'GingerT m' monadic
context.
Instances
MonadRandom m => Eval m Expr Source # | |
MonadRandom m => Eval m Statement Source # | |
MonadRandom m => Eval m Template Source # | |
data EvalState (m :: Type -> Type) Source #
Evaluation state. This keeps track of variables in scope, as well as loaded templates and blocks, and the current source position.
Constructors
EvalState | |
Fields
|
evalE :: forall (m :: Type -> Type). MonadRandom m => Expr -> GingerT m (Value m) Source #
Evaluate an expression, dereferencing mutable refs.
stringify :: forall (m :: Type -> Type) t. (Monad m, MonadError RuntimeError (t m), MonadTrans t) => Value m -> t m Text Source #
getAttr :: forall (m :: Type -> Type). Monad m => Value m -> Identifier -> GingerT m (Maybe (Value m)) Source #
getAttrRaw :: Monad m => Value m -> Identifier -> m (Either RuntimeError (Maybe (Value m))) Source #
getItem :: forall (m :: Type -> Type). Monad m => Value m -> Value m -> GingerT m (Maybe (Value m)) Source #
loadTemplate :: forall (m :: Type -> Type). Monad m => Text -> GingerT m LoadedTemplate Source #