@@ -10,6 +10,7 @@ import AST.Expression.General as Expr (Main(..))
10import AST.Expression.Optimized as Opt
10import AST.Expression.Optimized as Opt
11import qualified AST.Literal as L
11import qualified AST.Literal as L
12import qualified AST.Module.Name as ModuleName
12import qualified AST.Module.Name as ModuleName
13+import qualified AST.Type as Type
13import qualified AST.Variable as Var
14import qualified AST.Variable as Var
14import Generate.JavaScript.Helpers as Help
15import Generate.JavaScript.Helpers as Help
15import qualified Generate.JavaScript.BuiltIn as BuiltIn
16import qualified Generate.JavaScript.BuiltIn as BuiltIn
@@ -216,15 +217,7 @@ generateCode expr =
216 jsExpr $ BuiltIn.foreignSub name jsDecoder
217 jsExpr $ BuiltIn.foreignSub name jsDecoder
218 Program kind body ->
219 Program kind body ->
219− case kind of
220+ generateProgram kind body
221− generateCode (Data "vdom" [body])
224− generateCode (Data "no-flags" [body])
227− generateCode (Data "flags" [body, Foreign.decode tipe])
229 GLShader _uid src _tipe ->
222 GLShader _uid src _tipe ->
230 jsExpr $ ObjectLit () [(PropString () "src", Literal.literal (L.Str src))]
223 jsExpr $ ObjectLit () [(PropString () "src", Literal.literal (L.Str src))]
@@ -235,6 +228,27 @@ generateCode expr =
234+generateProgram :: Expr.Main Type.Canonical -> Opt.Expr -> State Int Code
235+generateProgram kind body =
238+ generateCode $ Record (("main", body) : fields)
248+ gen [ ("flags", Foreign.decode tipe) ]
238-- FUNCTIONS
252-- FUNCTIONS