summaryrefslogtreecommitdiff
path: root/ddl/out/purescript/LambdaCube/TypeInfo.purs
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/purescript/LambdaCube/TypeInfo.purs')
-rw-r--r--ddl/out/purescript/LambdaCube/TypeInfo.purs166
1 files changed, 166 insertions, 0 deletions
diff --git a/ddl/out/purescript/LambdaCube/TypeInfo.purs b/ddl/out/purescript/LambdaCube/TypeInfo.purs
new file mode 100644
index 0000000..a7b5705
--- /dev/null
+++ b/ddl/out/purescript/LambdaCube/TypeInfo.purs
@@ -0,0 +1,166 @@
1-- generated file, do not modify!
2-- 2016-11-12T12:48:59.998839000000Z
3
4module LambdaCube.TypeInfo where
5import Prelude
6import Data.Generic
7import Data.Either (Either(..))
8import Data.Maybe (Maybe(..))
9import Data.StrMap (StrMap(..))
10import Data.Map (Map(..))
11import Data.List (List(..))
12import LinearBase
13
14import Data.Argonaut.Encode.Combinators ((~>), (:=))
15import Data.Argonaut.Decode.Combinators ((.?))
16import Data.Argonaut.Core (jsonEmptyObject)
17import Data.Argonaut.Printer (printJson)
18import Data.Argonaut.Encode (class EncodeJson, encodeJson)
19import Data.Argonaut.Decode (class DecodeJson, decodeJson)
20
21import LambdaCube.IR
22
23data Range
24 = Range
25 { startLine :: Int
26 , startColumn :: Int
27 , endLine :: Int
28 , endColumn :: Int
29 }
30
31
32data TypeInfo
33 = TypeInfo
34 { range :: Range
35 , text :: String
36 }
37
38
39data WarningInfo
40 = WarningInfo
41 { wRange :: Range
42 , wText :: String
43 }
44
45
46data ErrorInfo
47 = ErrorInfo
48 { eRange :: Range
49 , eText :: String
50 }
51
52
53data CompileResult
54 = CompileError String (Array TypeInfo) (Array WarningInfo) (Array ErrorInfo)
55 | Compiled String String Pipeline (Array TypeInfo) (Array WarningInfo)
56
57
58
59instance encodeJsonRange :: EncodeJson Range where
60 encodeJson v = case v of
61 Range r ->
62 "tag" := "Range" ~>
63 "startLine" := r.startLine ~>
64 "startColumn" := r.startColumn ~>
65 "endLine" := r.endLine ~>
66 "endColumn" := r.endColumn ~>
67 jsonEmptyObject
68
69instance decodeJsonRange :: DecodeJson Range where
70 decodeJson json = do
71 obj <- decodeJson json
72 tag <- obj .? "tag"
73 case tag of
74 "Range" -> do
75 startLine <- obj .? "startLine"
76 startColumn <- obj .? "startColumn"
77 endLine <- obj .? "endLine"
78 endColumn <- obj .? "endColumn"
79 pure $ Range
80 { startLine:startLine
81 , startColumn:startColumn
82 , endLine:endLine
83 , endColumn:endColumn
84 }
85 _ -> Left ("decodeJsonRange - unknown tag: " <> tag)
86
87instance encodeJsonTypeInfo :: EncodeJson TypeInfo where
88 encodeJson v = case v of
89 TypeInfo r ->
90 "tag" := "TypeInfo" ~>
91 "range" := r.range ~>
92 "text" := r.text ~>
93 jsonEmptyObject
94
95instance decodeJsonTypeInfo :: DecodeJson TypeInfo where
96 decodeJson json = do
97 obj <- decodeJson json
98 tag <- obj .? "tag"
99 case tag of
100 "TypeInfo" -> do
101 range <- obj .? "range"
102 text <- obj .? "text"
103 pure $ TypeInfo
104 { range:range
105 , text:text
106 }
107 _ -> Left ("decodeJsonTypeInfo - unknown tag: " <> tag)
108
109instance encodeJsonWarningInfo :: EncodeJson WarningInfo where
110 encodeJson v = case v of
111 WarningInfo r ->
112 "tag" := "WarningInfo" ~>
113 "wRange" := r.wRange ~>
114 "wText" := r.wText ~>
115 jsonEmptyObject
116
117instance decodeJsonWarningInfo :: DecodeJson WarningInfo where
118 decodeJson json = do
119 obj <- decodeJson json
120 tag <- obj .? "tag"
121 case tag of
122 "WarningInfo" -> do
123 wRange <- obj .? "wRange"
124 wText <- obj .? "wText"
125 pure $ WarningInfo
126 { wRange:wRange
127 , wText:wText
128 }
129 _ -> Left ("decodeJsonWarningInfo - unknown tag: " <> tag)
130
131instance encodeJsonErrorInfo :: EncodeJson ErrorInfo where
132 encodeJson v = case v of
133 ErrorInfo r ->
134 "tag" := "ErrorInfo" ~>
135 "eRange" := r.eRange ~>
136 "eText" := r.eText ~>
137 jsonEmptyObject
138
139instance decodeJsonErrorInfo :: DecodeJson ErrorInfo where
140 decodeJson json = do
141 obj <- decodeJson json
142 tag <- obj .? "tag"
143 case tag of
144 "ErrorInfo" -> do
145 eRange <- obj .? "eRange"
146 eText <- obj .? "eText"
147 pure $ ErrorInfo
148 { eRange:eRange
149 , eText:eText
150 }
151 _ -> Left ("decodeJsonErrorInfo - unknown tag: " <> tag)
152
153instance encodeJsonCompileResult :: EncodeJson CompileResult where
154 encodeJson v = case v of
155 CompileError arg0 arg1 arg2 arg3 -> "tag" := "CompileError" ~> "arg0" := arg0 ~> "arg1" := arg1 ~> "arg2" := arg2 ~> "arg3" := arg3 ~> jsonEmptyObject
156 Compiled arg0 arg1 arg2 arg3 arg4 -> "tag" := "Compiled" ~> "arg0" := arg0 ~> "arg1" := arg1 ~> "arg2" := arg2 ~> "arg3" := arg3 ~> "arg4" := arg4 ~> jsonEmptyObject
157
158instance decodeJsonCompileResult :: DecodeJson CompileResult where
159 decodeJson json = do
160 obj <- decodeJson json
161 tag <- obj .? "tag"
162 case tag of
163 "CompileError" -> CompileError <$> obj .? "arg0" <*> obj .? "arg1" <*> obj .? "arg2" <*> obj .? "arg3"
164 "Compiled" -> Compiled <$> obj .? "arg0" <*> obj .? "arg1" <*> obj .? "arg2" <*> obj .? "arg3" <*> obj .? "arg4"
165 _ -> Left ("decodeJsonCompileResult - unknown tag: " <> tag)
166