diff options
Diffstat (limited to 'ddl/out/purescript/LambdaCube/TypeInfo.purs')
-rw-r--r-- | ddl/out/purescript/LambdaCube/TypeInfo.purs | 166 |
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 | |||
4 | module LambdaCube.TypeInfo where | ||
5 | import Prelude | ||
6 | import Data.Generic | ||
7 | import Data.Either (Either(..)) | ||
8 | import Data.Maybe (Maybe(..)) | ||
9 | import Data.StrMap (StrMap(..)) | ||
10 | import Data.Map (Map(..)) | ||
11 | import Data.List (List(..)) | ||
12 | import LinearBase | ||
13 | |||
14 | import Data.Argonaut.Encode.Combinators ((~>), (:=)) | ||
15 | import Data.Argonaut.Decode.Combinators ((.?)) | ||
16 | import Data.Argonaut.Core (jsonEmptyObject) | ||
17 | import Data.Argonaut.Printer (printJson) | ||
18 | import Data.Argonaut.Encode (class EncodeJson, encodeJson) | ||
19 | import Data.Argonaut.Decode (class DecodeJson, decodeJson) | ||
20 | |||
21 | import LambdaCube.IR | ||
22 | |||
23 | data Range | ||
24 | = Range | ||
25 | { startLine :: Int | ||
26 | , startColumn :: Int | ||
27 | , endLine :: Int | ||
28 | , endColumn :: Int | ||
29 | } | ||
30 | |||
31 | |||
32 | data TypeInfo | ||
33 | = TypeInfo | ||
34 | { range :: Range | ||
35 | , text :: String | ||
36 | } | ||
37 | |||
38 | |||
39 | data WarningInfo | ||
40 | = WarningInfo | ||
41 | { wRange :: Range | ||
42 | , wText :: String | ||
43 | } | ||
44 | |||
45 | |||
46 | data ErrorInfo | ||
47 | = ErrorInfo | ||
48 | { eRange :: Range | ||
49 | , eText :: String | ||
50 | } | ||
51 | |||
52 | |||
53 | data CompileResult | ||
54 | = CompileError String (Array TypeInfo) (Array WarningInfo) (Array ErrorInfo) | ||
55 | | Compiled String String Pipeline (Array TypeInfo) (Array WarningInfo) | ||
56 | |||
57 | |||
58 | |||
59 | instance 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 | |||
69 | instance 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 | |||
87 | instance 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 | |||
95 | instance 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 | |||
109 | instance 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 | |||
117 | instance 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 | |||
131 | instance 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 | |||
139 | instance 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 | |||
153 | instance 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 | |||
158 | instance 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 | |||