diff options
Diffstat (limited to 'ddl/out/LambdaCube.TypeInfo.cs')
-rw-r--r-- | ddl/out/LambdaCube.TypeInfo.cs | 218 |
1 files changed, 218 insertions, 0 deletions
diff --git a/ddl/out/LambdaCube.TypeInfo.cs b/ddl/out/LambdaCube.TypeInfo.cs new file mode 100644 index 0000000..967aa01 --- /dev/null +++ b/ddl/out/LambdaCube.TypeInfo.cs | |||
@@ -0,0 +1,218 @@ | |||
1 | // generated file, do not modify! | ||
2 | // 2016-03-21T11:41:52.460562000000Z | ||
3 | |||
4 | using System; | ||
5 | using System.Linq; | ||
6 | using System.Collections.Generic; | ||
7 | using Newtonsoft.Json.Linq; | ||
8 | |||
9 | using LambdaCube.IR; | ||
10 | |||
11 | namespace LambdaCube.TypeInfo { | ||
12 | class Range { | ||
13 | public enum Tag { | ||
14 | Range | ||
15 | }; | ||
16 | public Tag tag; | ||
17 | }; | ||
18 | |||
19 | namespace data { | ||
20 | class Range : LambdaCube.TypeInfo.Range { | ||
21 | public int startLine; | ||
22 | public int startColumn; | ||
23 | public int endLine; | ||
24 | public int endColumn; | ||
25 | public Range() { tag = LambdaCube.TypeInfo.Range.Tag.Range; } | ||
26 | }; | ||
27 | } | ||
28 | class TypeInfo { | ||
29 | public enum Tag { | ||
30 | TypeInfo | ||
31 | }; | ||
32 | public Tag tag; | ||
33 | }; | ||
34 | |||
35 | namespace data { | ||
36 | class TypeInfo : LambdaCube.TypeInfo.TypeInfo { | ||
37 | public global::LambdaCube.TypeInfo.Range range; | ||
38 | public string text; | ||
39 | public TypeInfo() { tag = LambdaCube.TypeInfo.TypeInfo.Tag.TypeInfo; } | ||
40 | }; | ||
41 | } | ||
42 | class CompileResult { | ||
43 | public enum Tag { | ||
44 | CompileError, | ||
45 | Compiled | ||
46 | }; | ||
47 | public Tag tag; | ||
48 | }; | ||
49 | |||
50 | namespace data { | ||
51 | class CompileError : LambdaCube.TypeInfo.CompileResult { | ||
52 | public List<global::LambdaCube.TypeInfo.Range> _0; | ||
53 | public string _1; | ||
54 | public List<global::LambdaCube.TypeInfo.TypeInfo> _2; | ||
55 | public CompileError() { tag = LambdaCube.TypeInfo.CompileResult.Tag.CompileError; } | ||
56 | }; | ||
57 | class Compiled : LambdaCube.TypeInfo.CompileResult { | ||
58 | public string _0; | ||
59 | public global::LambdaCube.TypeInfo.Pipeline _1; | ||
60 | public List<global::LambdaCube.TypeInfo.TypeInfo> _2; | ||
61 | public Compiled() { tag = LambdaCube.TypeInfo.CompileResult.Tag.Compiled; } | ||
62 | }; | ||
63 | } | ||
64 | |||
65 | // JSON deserializer | ||
66 | enum Type { | ||
67 | Int, | ||
68 | String, | ||
69 | Array_Range, | ||
70 | Array_TypeInfo, | ||
71 | CompileResult, | ||
72 | Pipeline, | ||
73 | Range, | ||
74 | TypeInfo | ||
75 | } | ||
76 | |||
77 | class Loader { | ||
78 | public static object fromJSON(Type type, JToken obj) { | ||
79 | switch (type) { | ||
80 | case Type.Int: return (int)obj; | ||
81 | case Type.String: return (string)obj; | ||
82 | case Type.Array_Range: return ((JArray)obj).Select(x => fromJSON (Type.Range, x)).ToList(); | ||
83 | case Type.Array_TypeInfo: return ((JArray)obj).Select(x => fromJSON (Type.TypeInfo, x)).ToList(); | ||
84 | |||
85 | case Type.Range: { | ||
86 | string tag = (string)obj["tag"]; | ||
87 | Range.Tag tagType; | ||
88 | if (tag == "Range") { | ||
89 | tagType = Range.Tag.Range; | ||
90 | data.Range tv = new data.Range(); | ||
91 | tv.startLine = (int)fromJSON(Type.Int,obj["startLine"]); | ||
92 | tv.startColumn = (int)fromJSON(Type.Int,obj["startColumn"]); | ||
93 | tv.endLine = (int)fromJSON(Type.Int,obj["endLine"]); | ||
94 | tv.endColumn = (int)fromJSON(Type.Int,obj["endColumn"]); | ||
95 | return tv; | ||
96 | } | ||
97 | else throw new Exception("unknown constructor: " + tag); | ||
98 | Range o = new Range(); | ||
99 | o.tag = tagType; | ||
100 | return o; | ||
101 | } | ||
102 | case Type.TypeInfo: { | ||
103 | string tag = (string)obj["tag"]; | ||
104 | TypeInfo.Tag tagType; | ||
105 | if (tag == "TypeInfo") { | ||
106 | tagType = TypeInfo.Tag.TypeInfo; | ||
107 | data.TypeInfo tv = new data.TypeInfo(); | ||
108 | tv.range = (global::LambdaCube.TypeInfo.Range)fromJSON(Type.Range,obj["range"]); | ||
109 | tv.text = (string)fromJSON(Type.String,obj["text"]); | ||
110 | return tv; | ||
111 | } | ||
112 | else throw new Exception("unknown constructor: " + tag); | ||
113 | TypeInfo o = new TypeInfo(); | ||
114 | o.tag = tagType; | ||
115 | return o; | ||
116 | } | ||
117 | case Type.CompileResult: { | ||
118 | string tag = (string)obj["tag"]; | ||
119 | CompileResult.Tag tagType; | ||
120 | if (tag == "CompileError") { | ||
121 | tagType = CompileResult.Tag.CompileError; | ||
122 | data.CompileError tv = new data.CompileError(); | ||
123 | tv._0 = (List<global::LambdaCube.TypeInfo.Range>)fromJSON(Type.Array_Range,obj["arg0"]); | ||
124 | tv._1 = (string)fromJSON(Type.String,obj["arg1"]); | ||
125 | tv._2 = (List<global::LambdaCube.TypeInfo.TypeInfo>)fromJSON(Type.Array_TypeInfo,obj["arg2"]); | ||
126 | return tv; | ||
127 | } | ||
128 | else if (tag == "Compiled") { | ||
129 | tagType = CompileResult.Tag.Compiled; | ||
130 | data.Compiled tv = new data.Compiled(); | ||
131 | tv._0 = (string)fromJSON(Type.String,obj["arg0"]); | ||
132 | tv._1 = (global::LambdaCube.TypeInfo.Pipeline)fromJSON(Type.Pipeline,obj["arg1"]); | ||
133 | tv._2 = (List<global::LambdaCube.TypeInfo.TypeInfo>)fromJSON(Type.Array_TypeInfo,obj["arg2"]); | ||
134 | return tv; | ||
135 | } | ||
136 | else throw new Exception("unknown constructor: " + tag); | ||
137 | CompileResult o = new CompileResult(); | ||
138 | o.tag = tagType; | ||
139 | return o; | ||
140 | } | ||
141 | } | ||
142 | throw new Exception("unknown type"); | ||
143 | return null; | ||
144 | } | ||
145 | |||
146 | JToken toJSON(Range v) { | ||
147 | var obj = new JObject(); | ||
148 | switch (v.tag) { | ||
149 | case Range.Tag.Range: | ||
150 | obj["tag"] = "Range"; | ||
151 | { | ||
152 | var tv = (data.Range)v; | ||
153 | obj["startLine"] = toJSON(tv.startLine); | ||
154 | obj["startColumn"] = toJSON(tv.startColumn); | ||
155 | obj["endLine"] = toJSON(tv.endLine); | ||
156 | obj["endColumn"] = toJSON(tv.endColumn); | ||
157 | } | ||
158 | break; | ||
159 | } | ||
160 | return obj; | ||
161 | } | ||
162 | JToken toJSON(TypeInfo v) { | ||
163 | var obj = new JObject(); | ||
164 | switch (v.tag) { | ||
165 | case TypeInfo.Tag.TypeInfo: | ||
166 | obj["tag"] = "TypeInfo"; | ||
167 | { | ||
168 | var tv = (data.TypeInfo)v; | ||
169 | obj["range"] = toJSON(tv.range); | ||
170 | obj["text"] = toJSON(tv.text); | ||
171 | } | ||
172 | break; | ||
173 | } | ||
174 | return obj; | ||
175 | } | ||
176 | JToken toJSON(CompileResult v) { | ||
177 | var obj = new JObject(); | ||
178 | switch (v.tag) { | ||
179 | case CompileResult.Tag.CompileError: | ||
180 | obj["tag"] = "CompileError"; | ||
181 | { | ||
182 | var tv = (data.CompileError)v; | ||
183 | obj["arg0"] = toJSON(tv._0); | ||
184 | obj["arg1"] = toJSON(tv._1); | ||
185 | obj["arg2"] = toJSON(tv._2); | ||
186 | } | ||
187 | break; | ||
188 | case CompileResult.Tag.Compiled: | ||
189 | obj["tag"] = "Compiled"; | ||
190 | { | ||
191 | var tv = (data.Compiled)v; | ||
192 | obj["arg0"] = toJSON(tv._0); | ||
193 | obj["arg1"] = toJSON(tv._1); | ||
194 | obj["arg2"] = toJSON(tv._2); | ||
195 | } | ||
196 | break; | ||
197 | } | ||
198 | return obj; | ||
199 | } | ||
200 | |||
201 | JToken toJSON(int v) { return new JValue(v); } | ||
202 | JToken toJSON(string v) { return new JValue(v); } | ||
203 | JToken toJSON(List<global::LambdaCube.TypeInfo.Range> v) { | ||
204 | var obj = new JArray(); | ||
205 | foreach (var i in v) { | ||
206 | obj.Add(toJSON(i)); | ||
207 | } | ||
208 | return obj; | ||
209 | } | ||
210 | JToken toJSON(List<global::LambdaCube.TypeInfo.TypeInfo> v) { | ||
211 | var obj = new JArray(); | ||
212 | foreach (var i in v) { | ||
213 | obj.Add(toJSON(i)); | ||
214 | } | ||
215 | return obj; | ||
216 | } | ||
217 | } | ||
218 | } | ||