1 | module Compiler.ES.Javascript
3 | import Compiler.ES.Codegen
5 | import Compiler.Common
7 | import Libraries.Utils.Path
18 | Ref Syn SyntaxInfo ->
19 | ClosedTerm -> Core String
20 | compileToJS c s tm = compileToES c s Javascript tm ["browser", "javascript"]
26 | <meta charset='utf-8'>
29 | <script type='text/javascript'>
41 | addHeaderAndFooter : String -> String -> String
42 | addHeaderAndFooter outfile es =
43 | case toLower <$> extension outfile of
44 | Just "html" => htmlHeader ++ es ++ htmlFooter
50 | Ref Syn SyntaxInfo ->
51 | (tmpDir : String) ->
52 | (outputDir : String) ->
54 | (outfile : String) ->
56 | compileExpr c s tmpDir outputDir tm outfile =
57 | do es <- compileToJS c s tm
58 | let res = addHeaderAndFooter outfile es
59 | let out = outputDir </> outfile
60 | Core.writeFile out res
66 | Ref Syn SyntaxInfo ->
67 | (tmpDir : String) -> ClosedTerm -> Core ()
68 | executeExpr c s tmpDir tm =
69 | throw $
InternalError "Javascript backend is only able to compile, use Node instead"
73 | codegenJavascript : Codegen
74 | codegenJavascript = MkCG compileExpr executeExpr Nothing Nothing