-
Notifications
You must be signed in to change notification settings - Fork 228
Expand file tree
/
Copy pathCmpopAdapter.java
More file actions
91 lines (85 loc) · 2.46 KB
/
CmpopAdapter.java
File metadata and controls
91 lines (85 loc) · 2.46 KB
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
87
88
89
90
91
package org.python.antlr.adapter;
import java.util.ArrayList;
import java.util.List;
import org.python.antlr.ast.cmpopType;
import org.python.antlr.op.Eq;
import org.python.antlr.op.Gt;
import org.python.antlr.op.GtE;
import org.python.antlr.op.In;
import org.python.antlr.op.Is;
import org.python.antlr.op.IsNot;
import org.python.antlr.op.Lt;
import org.python.antlr.op.LtE;
import org.python.antlr.op.NotEq;
import org.python.antlr.op.NotIn;
import org.python.core.Py;
import org.python.core.PyObject;
public class CmpopAdapter implements AstAdapter {
public Object py2ast(PyObject o) {
if (o != Py.None) {
switch ((o).asInt()) {
case 1:
return cmpopType.Eq;
case 2:
return cmpopType.NotEq;
case 3:
return cmpopType.Lt;
case 4:
return cmpopType.LtE;
case 5:
return cmpopType.Gt;
case 6:
return cmpopType.GtE;
case 7:
return cmpopType.Is;
case 8:
return cmpopType.IsNot;
case 9:
return cmpopType.In;
case 10:
return cmpopType.NotIn;
default:
return cmpopType.UNDEFINED;
}
}
return cmpopType.UNDEFINED;
}
public PyObject ast2py(Object o) {
if (o == null) {
return Py.None;
}
switch ((cmpopType)o) {
case Eq:
return new Eq();
case NotEq:
return new NotEq();
case Lt:
return new Lt();
case LtE:
return new LtE();
case Gt:
return new Gt();
case GtE:
return new GtE();
case Is:
return new Is();
case IsNot:
return new IsNot();
case In:
return new In();
case NotIn:
return new NotIn();
default:
return Py.None;
}
}
public List iter2ast(PyObject iter) {
List<cmpopType> cmpops = new ArrayList<cmpopType>();
if (iter != Py.None) {
for(Object o : (Iterable)iter) {
cmpops.add((cmpopType)py2ast((PyObject)o));
}
}
return cmpops;
}
}