@@ -24,6 +24,7 @@ makeSafe = List.intercalate "." . map dereserve . split . deprime
24 False -> x
24 False -> x
25 True -> "$" ++ x
25 True -> "$" ++ x
27+split :: String -> [String]
27split = go []
28split = go []
29 go vars str =
30 go vars str =
@@ -44,6 +45,7 @@ string = StringLit ()
44dotSep (x:xs) = foldl (DotRef ()) (ref x) (map var xs)
45dotSep (x:xs) = foldl (DotRef ()) (ref x) (map var xs)
45obj = dotSep . split
46obj = dotSep . split
48+varDecl :: String -> Expression () -> VarDecl ()
47varDecl x expr =
49varDecl x expr =
48 VarDecl () (var x) (Just expr)
50 VarDecl () (var x) (Just expr)
@@ -60,6 +62,7 @@ internalImports name =
60 , varDecl "$moduleName" (string name)
62 , varDecl "$moduleName" (string name)
65+literal :: Literal -> Expression ()
63literal lit =
66literal lit =
64 case lit of
67 case lit of
65 Chr c -> obj "_N.chr" <| string [c]
68 Chr c -> obj "_N.chr" <| string [c]