summaryrefslogtreecommitdiff
path: root/ddl/Generate.hs
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/Generate.hs')
-rw-r--r--ddl/Generate.hs11
1 files changed, 7 insertions, 4 deletions
diff --git a/ddl/Generate.hs b/ddl/Generate.hs
index 9f9b7b8..37437de 100644
--- a/ddl/Generate.hs
+++ b/ddl/Generate.hs
@@ -28,6 +28,7 @@ main :: IO ()
28main = do 28main = do
29 dataSwift <- eitherParseFile "templates/data.swift.ede" 29 dataSwift <- eitherParseFile "templates/data.swift.ede"
30 dataJava <- eitherParseFile "templates/data.java.ede" 30 dataJava <- eitherParseFile "templates/data.java.ede"
31 jsonJava <- eitherParseFile "templates/json.java.ede"
31 dataHpp <- eitherParseFile "templates/data.hpp.ede" 32 dataHpp <- eitherParseFile "templates/data.hpp.ede"
32 dataHpp2 <- eitherParseFile "templates/data.hpp2.ede" 33 dataHpp2 <- eitherParseFile "templates/data.hpp2.ede"
33 dataCpp <- eitherParseFile "templates/data.cpp.ede" 34 dataCpp <- eitherParseFile "templates/data.cpp.ede"
@@ -55,9 +56,10 @@ main = do
55 , "psType" @: psType aliasMap 56 , "psType" @: psType aliasMap
56 , "cppType" @: cppType aliasMap 57 , "cppType" @: cppType aliasMap
57 , "csType" @: csType name aliasMap 58 , "csType" @: csType name aliasMap
58 , "csTypeEnum" @: csTypeEnum aliasMap 59 , "typeEnum" @: typeEnum aliasMap
59 , "javaType" @: javaType aliasMap 60 , "javaType" @: javaType aliasMap
60 , "swiftType" @: swiftType aliasMap 61 , "swiftType" @: swiftType aliasMap
62 , "hasEnumConstructor" @: hasEnumConstructor
61 ] 63 ]
62 64
63 -- Haskell 65 -- Haskell
@@ -69,6 +71,9 @@ main = do
69 either error (\x -> writeFile ("out/" ++ name ++ ".hpp") $ LText.unpack x) $ dataHpp >>= (\t -> eitherRenderWith mylib t env) 71 either error (\x -> writeFile ("out/" ++ name ++ ".hpp") $ LText.unpack x) $ dataHpp >>= (\t -> eitherRenderWith mylib t env)
70 either error (\x -> writeFile ("out/" ++ name ++ ".cpp") $ LText.unpack x) $ dataCpp >>= (\t -> eitherRenderWith mylib t env) 72 either error (\x -> writeFile ("out/" ++ name ++ ".cpp") $ LText.unpack x) $ dataCpp >>= (\t -> eitherRenderWith mylib t env)
71 -- Java 73 -- Java
74 let toPath a = flip map a $ \case
75 '.' -> '/'
76 c -> c
72 forM_ [a | a@DataDef{} <- def {-TODO-}] $ \d -> do 77 forM_ [a | a@DataDef{} <- def {-TODO-}] $ \d -> do
73 let env = fromPairs 78 let env = fromPairs
74 [ "def" .= d 79 [ "def" .= d
@@ -76,13 +81,11 @@ main = do
76 , "dateTime" .= dt 81 , "dateTime" .= dt
77 , "imports" .= imports 82 , "imports" .= imports
78 ] 83 ]
79 toPath a = flip map a $ \case
80 '.' -> '/'
81 c -> c
82 fname = "out/java/" ++ toPath name ++ "/" ++ dataName d ++ ".java" 84 fname = "out/java/" ++ toPath name ++ "/" ++ dataName d ++ ".java"
83 dir = takeDirectory fname 85 dir = takeDirectory fname
84 createDirectoryIfMissing True dir 86 createDirectoryIfMissing True dir
85 either error (\x -> writeFile fname $ LText.unpack x) $ dataJava >>= (\t -> eitherRenderWith mylib t env) 87 either error (\x -> writeFile fname $ LText.unpack x) $ dataJava >>= (\t -> eitherRenderWith mylib t env)
88 either error (\x -> writeFile ("out/java/" ++ toPath name ++ "/JSON.java") $ LText.unpack x) $ jsonJava >>= (\t -> eitherRenderWith mylib t env)
86 -- C# 89 -- C#
87 either error (\x -> writeFile ("out/" ++ name ++ ".cs") $ LText.unpack x) $ dataCs >>= (\t -> eitherRenderWith mylib t env) 90 either error (\x -> writeFile ("out/" ++ name ++ ".cs") $ LText.unpack x) $ dataCs >>= (\t -> eitherRenderWith mylib t env)
88 -- Swift 91 -- Swift