1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
// generated file, do not modify!
// 2016-03-21T13:31:10.409214000000Z
package LambdaCube.TypeInfo;
import java.util.ArrayList;
import java.util.HashMap;
import org.json.*;
import RT.*;
import LambdaCube.IR.*;
public class JSON {
// JSON deserializer
public enum Type {
Int,
String,
Array_Range,
Array_TypeInfo,
CompileResult,
Pipeline,
Range,
TypeInfo
}
public static Object fromJSON(Type type, Object rawObj) throws JSONException, Exception {
switch (type) {
case Int: return (Integer)rawObj;
case String: return (String)rawObj;
// case Array_Range: return ((JArray)obj).Select(x => fromJSON (Type.Range, x)).ToList();
// case Array_TypeInfo: return ((JArray)obj).Select(x => fromJSON (Type.TypeInfo, x)).ToList();
case Range: {
JSONObject obj = (JSONObject)rawObj;
String tag = obj.getString("tag");
switch (tag) {
case "Range": {
Range.Range_ tv = new Range().new Range_();
tv.startLine = (Integer)fromJSON(Type.Int,obj.get("startLine"));
tv.startColumn = (Integer)fromJSON(Type.Int,obj.get("startColumn"));
tv.endLine = (Integer)fromJSON(Type.Int,obj.get("endLine"));
tv.endColumn = (Integer)fromJSON(Type.Int,obj.get("endColumn"));
return tv;
}
default: throw new Exception("unknown constructor: " + tag);
}
}
case TypeInfo: {
JSONObject obj = (JSONObject)rawObj;
String tag = obj.getString("tag");
switch (tag) {
case "TypeInfo": {
TypeInfo.TypeInfo_ tv = new TypeInfo().new TypeInfo_();
tv.range = (Range)fromJSON(Type.Range,obj.get("range"));
tv.text = (String)fromJSON(Type.String,obj.get("text"));
return tv;
}
default: throw new Exception("unknown constructor: " + tag);
}
}
case CompileResult: {
JSONObject obj = (JSONObject)rawObj;
String tag = obj.getString("tag");
switch (tag) {
case "CompileError": {
CompileResult.CompileError_ tv = new CompileResult().new CompileError_();
tv._0 = (ArrayList<Range>)fromJSON(Type.Array_Range,obj.get("arg0"));
tv._1 = (String)fromJSON(Type.String,obj.get("arg1"));
tv._2 = (ArrayList<TypeInfo>)fromJSON(Type.Array_TypeInfo,obj.get("arg2"));
return tv;
}
case "Compiled": {
CompileResult.Compiled_ tv = new CompileResult().new Compiled_();
tv._0 = (String)fromJSON(Type.String,obj.get("arg0"));
tv._1 = (String)fromJSON(Type.String,obj.get("arg1"));
tv._2 = (Pipeline)fromJSON(Type.Pipeline,obj.get("arg2"));
tv._3 = (ArrayList<TypeInfo>)fromJSON(Type.Array_TypeInfo,obj.get("arg3"));
return tv;
}
default: throw new Exception("unknown constructor: " + tag);
}
}
}
throw new Exception("unknown type");
}
}
|