Code

parser/analyzer: Migrate type and iterator checks.
[sysdb.git] / src / include / parser / ast.h
index 41fb2179e805e5c1bbd9ea1e3a591b1a685735ae..80b5a533a539ed57b0c656458b7bf6d6f7b42690 100644 (file)
@@ -139,6 +139,15 @@ typedef enum {
                : ((op) == SDB_AST_ANY) ? "ANY" \
                : "UNKNOWN")
 
+#define SDB_AST_OP_TO_DATA_OP(op) \
+       (((op) == SDB_AST_ADD) ? SDB_DATA_ADD \
+               : ((op) == SDB_AST_SUB) ? SDB_DATA_SUB \
+               : ((op) == SDB_AST_MUL) ? SDB_DATA_MUL \
+               : ((op) == SDB_AST_DIV) ? SDB_DATA_DIV \
+               : ((op) == SDB_AST_MOD) ? SDB_DATA_MOD \
+               : ((op) == SDB_AST_CONCAT) ? SDB_DATA_CONCAT \
+               : -1)
+
 #define SDB_AST_TYPE_TO_STRING(n) \
        (((n)->type == SDB_AST_TYPE_FETCH) ? "FETCH" \
                : ((n)->type == SDB_AST_TYPE_LIST) ? "LIST" \
@@ -225,7 +234,7 @@ typedef struct {
        { { SDB_OBJECT_INIT, SDB_AST_TYPE_CONST, -1 }, SDB_DATA_INIT }
 
 /*
- * sdb_ast_value_t represents an object-specific value: sibling nodes,
+ * sdb_ast_value_t represents an object-specific value:
  * attributes, or field values.
  */
 typedef struct {