diff options
Diffstat (limited to 'ddl/Generate.hs')
-rw-r--r-- | ddl/Generate.hs | 11 |
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 () | |||
28 | main = do | 28 | main = 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 |