on bbb6583 help sign in
elk/src/Generate/JavaScript.hs
21 lines 538 B history raw
1module Generate.JavaScript (generate) where
3import Control.Monad.State as State
4import Language.ECMAScript3.PrettyPrint as ES
5import qualified Text.PrettyPrint.Leijen as PP
7import qualified AST.Module as Module
8import qualified Generate.JavaScript.Expression as JS
11generate :: Module.Optimized -> String
12generate (Module.Module _ _ info) =
13 let
14 genBody =
15 concat <$> mapM JS.generateDef (Module.program info)
17 body =
18 State.evalState genBody 0
19 in
20 PP.displayS (PP.renderPretty 1 160 (ES.prettyPrint body)) ""