-
Notifications
You must be signed in to change notification settings - Fork 8
/
ops.go
113 lines (107 loc) · 3.13 KB
/
ops.go
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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package where
type prevOperator string
const (
prevOperatorNone prevOperator = ""
prevOperatorAnd prevOperator = "AND"
prevOperatorOr prevOperator = "OR"
)
type operator string
const (
nullOperator operator = ""
operatorEqual operator = "="
operatorNotEqual operator = "!="
operatorGreaterThan operator = ">"
operatorLessThan operator = "<"
operatorGreaterThanOrEqual operator = ">="
operatorLessThanOrEqual operator = "<="
operatorIsNull operator = "IS NULL"
operatorIsNotNull operator = "IS NOT NULL"
operatorLike operator = "LIKE"
operatorNotLike operator = "NOT LIKE"
operatorIn operator = "IN"
operatorNotIn operator = "NOT IN"
operatorBetween operator = "BETWEEN"
operatorNotBetween operator = "NOT BETWEEN"
operatorAnd operator = "AND"
operatorOr operator = "OR"
operatorNot operator = "NOT"
operatorAddition operator = "+"
operatorSubtraction operator = "-"
operatorMultiplication operator = "*"
operatorDivision operator = "/"
operatorModulo operator = "%"
operatorIncrement operator = "++"
operatorBitwiseAnd operator = "&"
operatorBitwiseOr operator = "|"
operatorBitwiseXor operator = "^"
operatorBitwiseNot operator = "~"
operatorLeftShift operator = "<<"
operatorRightShift operator = ">>"
operatorAssign operator = "="
operatorAddAssign operator = "+="
operatorSubtractAssign operator = "-="
operatorMultiplyAssign operator = "*="
operatorDivideAssign operator = "/="
operatorModuloAssign operator = "%="
operatorBitwiseAndAssign operator = "&="
operatorBitwiseOrAssign operator = "|="
operatorBitwiseXorAssign operator = "^="
operatorLeftShiftAssign operator = "<<="
operatorRightShiftAssign operator = ">>="
operatorRegexp operator = "REGEXP"
operatorNotRegexp operator = "NOT REGEXP"
operatorDiv operator = "DIV"
)
var allOperators = []operator{
operatorEqual,
operatorNotEqual,
operatorGreaterThan,
operatorLessThan,
operatorGreaterThanOrEqual,
operatorLessThanOrEqual,
operatorIsNull,
operatorIsNotNull,
operatorLike,
operatorNotLike,
operatorIn,
operatorNotIn,
operatorBetween,
operatorNotBetween,
operatorAnd,
operatorOr,
operatorNot,
operatorAddition,
operatorSubtraction,
operatorMultiplication,
operatorDivision,
operatorModulo,
operatorIncrement,
operatorBitwiseAnd,
operatorBitwiseOr,
operatorBitwiseXor,
operatorBitwiseNot,
operatorLeftShift,
operatorRightShift,
operatorAssign,
operatorAddAssign,
operatorSubtractAssign,
operatorMultiplyAssign,
operatorDivideAssign,
operatorModuloAssign,
operatorBitwiseAndAssign,
operatorBitwiseOrAssign,
operatorBitwiseXorAssign,
operatorLeftShiftAssign,
operatorRightShiftAssign,
operatorRegexp,
operatorNotRegexp,
operatorDiv,
}
func isOp(op string) bool {
for _, v := range allOperators {
if op == string(v) {
return true
}
}
return false
}