taco-db  0.1.0
optypes.h
Go to the documentation of this file.
1 #ifndef EXPR_OPTYPES_H
2 #define EXPR_OPTYPES_H
3 
4 #define OPTYPE_INVALID 0
5 #define OPTYPE_IMPLICIT_CAST 1
6 #define OPTYPE_CAST 2
7 #define OPTYPE_ADD 3
8 #define OPTYPE_SUB 4
9 #define OPTYPE_MUL 5
10 #define OPTYPE_DIV 6
11 #define OPTYPE_MOD 7
12 #define OPTYPE_LSH 8
13 #define OPTYPE_RSH 9
14 #define OPTYPE_EQ 10
15 #define OPTYPE_NE 11
16 #define OPTYPE_LT 12
17 #define OPTYPE_LE 13
18 #define OPTYPE_GT 14
19 #define OPTYPE_GE 15
20 #define OPTYPE_NOT 16
21 #define OPTYPE_OR 17
22 #define OPTYPE_AND 18
23 #define OPTYPE_BITNOT 19
24 #define OPTYPE_BITOR 20
25 #define OPTYPE_BITAND 21
26 #define OPTYPE_BITXOR 22
27 #define OPTYPE_NEG 23
28 
29 #define NUM_OPTYPES 23
30 
31 #ifdef OPTYPE_CONSTANT_ONLY
32 #define OPTYPE(optype) CONCAT(OPTYPE_, optype)
33 
34 #else
35 
36 #include "tdb.h"
37 
38 namespace taco {
39 
40 // typedef OpType moved to base/tdb_base.h
41 
42 #define OPTYPE(optype) ((OpType) CONCAT(OPTYPE_, optype))
43 
44 void InitOpTypes();
45 absl::string_view GetOpTypeSymbol(OpType optype);
46 OpType ParseOpTypeSymbol(absl::string_view str);
47 bool OpTypeIsUnary(OpType optype);
48 bool OpTypeIsBinary(OpType optype);
49 
50 } // namespace taco
51 #endif
52 
53 #endif // QUERY_EXPR_OPTYPES_H
Definition: datum.h:28
bool OpTypeIsUnary(OpType optype)
Definition: optypes.cpp:89
uint8_t OpType
The operator type, see expr/optypes.h.
Definition: tdb_base.h:294
absl::string_view GetOpTypeSymbol(OpType optype)
Definition: optypes.cpp:72
bool OpTypeIsBinary(OpType optype)
Definition: optypes.cpp:96
void InitOpTypes()
Definition: optypes.cpp:64
OpType ParseOpTypeSymbol(absl::string_view str)