Language.Giml.Compiler.Translate
Description
Translate Giml to JavaScript
type TranState = Int Source #
type Translate m = (MonadState TranState m, MonadReader Builtins m) Source #
genVar :: Translate m => Text -> m Var Source #
translate :: (a -> StateT TranState (Reader Builtins) b) -> Builtins -> a -> b Source #
translateFile :: Translate m => File Ann -> m File Source #
hasMain :: [TermDef Ann] -> Bool Source #
translateDef :: Translate m => TermDef Ann -> m Definition Source #
translateBlock :: Translate m => Block Ann -> m Block Source #
translateStmt :: Translate m => Statement Ann -> m Statement Source #
translateExpr :: Translate m => Expr Ann -> m Expr Source #
translatePatterns :: Translate m => Expr -> [(Pattern, Expr Ann)] -> m Block Source #
data PatResult Source #
Constructors
Fields
Defined in Language.Giml.Compiler.Translate
Methods
mempty :: PatResult #
mappend :: PatResult -> PatResult -> PatResult #
mconcat :: [PatResult] -> PatResult #
(<>) :: PatResult -> PatResult -> PatResult #
sconcat :: NonEmpty PatResult -> PatResult #
stimes :: Integral b => b -> PatResult -> PatResult #
translatePattern :: Translate m => Expr -> Pattern -> m PatResult Source #
translateLit :: Lit -> Lit Source #