summaryrefslogtreecommitdiff
path: root/ddl/out/LambdaCube.TypeInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'ddl/out/LambdaCube.TypeInfo.cs')
-rw-r--r--ddl/out/LambdaCube.TypeInfo.cs218
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
4using System;
5using System.Linq;
6using System.Collections.Generic;
7using Newtonsoft.Json.Linq;
8
9using LambdaCube.IR;
10
11namespace 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}