-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIRISVisitor.java
More file actions
69 lines (55 loc) · 2.07 KB
/
IRISVisitor.java
File metadata and controls
69 lines (55 loc) · 2.07 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
package sqlancer.iris;
import sqlancer.iris.ast.IRISSelect;
import sqlancer.iris.ast.IRISTableReference;
import sqlancer.iris.ast.IRISSelect.IRISFromTable;
import sqlancer.iris.ast.IRISBetweenOperation;
import sqlancer.iris.ast.IRISBinaryComparisonOperation;
import sqlancer.iris.ast.IRISBinaryOperation;
import sqlancer.iris.ast.IRISColumnReference;
import sqlancer.iris.ast.IRISConstant;
import sqlancer.iris.ast.IRISExpression;
import sqlancer.iris.ast.IRISInOperation;
public interface IRISVisitor {
void visit(IRISConstant c);
void visit(IRISSelect sel);
void visit(IRISColumnReference column);
void visit(IRISTableReference ref);
void visit(IRISFromTable from);
void visit(IRISBinaryOperation op);
void visit(IRISBinaryComparisonOperation op);
void visit(IRISBetweenOperation op);
void visit(IRISInOperation op);
default void visit(IRISExpression expr) {
if (expr instanceof IRISConstant) {
visit((IRISConstant) expr);
} else if (expr instanceof IRISSelect) {
visit((IRISSelect) expr);
} else if (expr instanceof IRISColumnReference) {
visit((IRISColumnReference) expr);
} else if (expr instanceof IRISTableReference) {
visit((IRISTableReference) expr);
} else if (expr instanceof IRISFromTable) {
visit((IRISFromTable) expr);
} else if (expr instanceof IRISBinaryOperation) {
visit((IRISBinaryOperation) expr);
} else if (expr instanceof IRISBinaryComparisonOperation) {
visit((IRISBinaryComparisonOperation) expr);
} else if (expr instanceof IRISBetweenOperation) {
visit((IRISBetweenOperation) expr);
} else if (expr instanceof IRISInOperation) {
visit((IRISInOperation) expr);
} else {
throw new AssertionError(expr);
}
}
static String asString(IRISExpression expr) {
IRISToStringVisitor visitor = new IRISToStringVisitor();
visitor.visit(expr);
return visitor.get();
}
static String asExpectedValues(IRISExpression expr) {
IRISExpectedValueVisitor visitor = new IRISExpectedValueVisitor();
visitor.visit(expr);
return visitor.get();
}
}