[Groonga-commit] groonga/groonga at dee40a1 [master] egn: use the egn-defined operator enum

Back to archive index

susumu.yata null+****@clear*****
Thu Jul 2 19:04:24 JST 2015


susumu.yata	2015-07-02 19:04:24 +0900 (Thu, 02 Jul 2015)

  New Revision: dee40a123c0ad0f667571aede0e4c2e3b124c797
  https://github.com/groonga/groonga/commit/dee40a123c0ad0f667571aede0e4c2e3b124c797

  Message:
    egn: use the egn-defined operator enum
    
    This is because cast operators will be added in future.

  Modified files:
    lib/egn.cpp
    lib/grn_egn.h
    lib/grn_egn.hpp

  Modified: lib/egn.cpp (+45 -45)
===================================================================
--- lib/egn.cpp    2015-07-02 16:57:10 +0900 (c7e7357)
+++ lib/egn.cpp    2015-07-02 19:04:24 +0900 (d9dd982)
@@ -1651,17 +1651,17 @@ class ExpressionToken {
 ExpressionTokenType ExpressionToken::get_operator_token_type(
   OperatorType operator_type) {
   switch (operator_type) {
-    case GRN_OP_NOT: {
+    case GRN_EGN_LOGICAL_NOT: {
       return UNARY_OPERATOR_TOKEN;
     }
-    case GRN_OP_AND:
-    case GRN_OP_OR:
-    case GRN_OP_EQUAL:
-    case GRN_OP_NOT_EQUAL:
-    case GRN_OP_LESS:
-    case GRN_OP_LESS_EQUAL:
-    case GRN_OP_GREATER:
-    case GRN_OP_GREATER_EQUAL: {
+    case GRN_EGN_LOGICAL_AND:
+    case GRN_EGN_LOGICAL_OR:
+    case GRN_EGN_EQUAL:
+    case GRN_EGN_NOT_EQUAL:
+    case GRN_EGN_LESS:
+    case GRN_EGN_LESS_EQUAL:
+    case GRN_EGN_GREATER:
+    case GRN_EGN_GREATER_EQUAL: {
       return BINARY_OPERATOR_TOKEN;
     }
     default: {
@@ -1675,7 +1675,7 @@ ExpressionTokenType ExpressionToken::get_operator_token_type(
 int ExpressionToken::get_operator_priority(
   OperatorType operator_type) {
   switch (operator_type) {
-    case GRN_OP_NOT: {
+    case GRN_EGN_LOGICAL_NOT: {
 //    case GRN_OP_BITWISE_NOT:
 //    case GRN_OP_POSITIVE:
 //    case GRN_OP_NEGATIVE:
@@ -1683,20 +1683,20 @@ int ExpressionToken::get_operator_priority(
 //    case GRN_OP_TO_FLOAT: {
       return 3;
     }
-    case GRN_OP_AND: {
+    case GRN_EGN_LOGICAL_AND: {
       return 13;
     }
-    case GRN_OP_OR: {
+    case GRN_EGN_LOGICAL_OR: {
       return 14;
     }
-    case GRN_OP_EQUAL:
-    case GRN_OP_NOT_EQUAL: {
+    case GRN_EGN_EQUAL:
+    case GRN_EGN_NOT_EQUAL: {
       return 9;
     }
-    case GRN_OP_LESS:
-    case GRN_OP_LESS_EQUAL:
-    case GRN_OP_GREATER:
-    case GRN_OP_GREATER_EQUAL: {
+    case GRN_EGN_LESS:
+    case GRN_EGN_LESS_EQUAL:
+    case GRN_EGN_GREATER:
+    case GRN_EGN_GREATER_EQUAL: {
       return 8;
     }
 //    case GRN_OP_BITWISE_AND: {
@@ -1790,11 +1790,11 @@ grn_rc ExpressionParser::tokenize(const char *query, size_t query_size) {
     switch (rest[0]) {
       case '!': {
         if ((rest_size >= 2) && (rest[1] == '=')) {
-          tokens_.push_back(ExpressionToken("!=", GRN_OP_NOT_EQUAL));
+          tokens_.push_back(ExpressionToken("!=", GRN_EGN_NOT_EQUAL));
           rest += 2;
           rest_size -= 2;
         } else {
-          tokens_.push_back(ExpressionToken("!", GRN_OP_NOT));
+          tokens_.push_back(ExpressionToken("!", GRN_EGN_LOGICAL_NOT));
           ++rest;
           --rest_size;
         }
@@ -1807,7 +1807,7 @@ grn_rc ExpressionParser::tokenize(const char *query, size_t query_size) {
 //      }
       case '=': {
         if ((rest_size >= 2) && (rest[1] == '=')) {
-          tokens_.push_back(ExpressionToken("==", GRN_OP_EQUAL));
+          tokens_.push_back(ExpressionToken("==", GRN_EGN_EQUAL));
           rest += 2;
           rest_size -= 2;
         } else {
@@ -1817,11 +1817,11 @@ grn_rc ExpressionParser::tokenize(const char *query, size_t query_size) {
       }
       case '<': {
         if ((rest_size >= 2) && (rest[1] == '=')) {
-          tokens_.push_back(ExpressionToken("<=", GRN_OP_LESS_EQUAL));
+          tokens_.push_back(ExpressionToken("<=", GRN_EGN_LESS_EQUAL));
           rest += 2;
           rest_size -= 2;
         } else {
-          tokens_.push_back(ExpressionToken("<", GRN_OP_LESS));
+          tokens_.push_back(ExpressionToken("<", GRN_EGN_LESS));
           ++rest;
           --rest_size;
         }
@@ -1829,11 +1829,11 @@ grn_rc ExpressionParser::tokenize(const char *query, size_t query_size) {
       }
       case '>': {
         if ((rest_size >= 2) && (rest[1] == '=')) {
-          tokens_.push_back(ExpressionToken(">=", GRN_OP_GREATER_EQUAL));
+          tokens_.push_back(ExpressionToken(">=", GRN_EGN_GREATER_EQUAL));
           rest += 2;
           rest_size -= 2;
         } else {
-          tokens_.push_back(ExpressionToken(">", GRN_OP_GREATER));
+          tokens_.push_back(ExpressionToken(">", GRN_EGN_GREATER));
           ++rest;
           --rest_size;
         }
@@ -1841,7 +1841,7 @@ grn_rc ExpressionParser::tokenize(const char *query, size_t query_size) {
       }
       case '&': {
         if ((rest_size >= 2) && (rest[1] == '&')) {
-          tokens_.push_back(ExpressionToken("&&", GRN_OP_AND));
+          tokens_.push_back(ExpressionToken("&&", GRN_EGN_LOGICAL_AND));
           rest += 2;
           rest_size -= 2;
         } else {
@@ -1854,7 +1854,7 @@ grn_rc ExpressionParser::tokenize(const char *query, size_t query_size) {
       }
       case '|': {
         if ((rest_size >= 2) && (rest[1] == '|')) {
-          tokens_.push_back(ExpressionToken("||", GRN_OP_OR));
+          tokens_.push_back(ExpressionToken("||", GRN_EGN_LOGICAL_OR));
           rest += 2;
           rest_size -= 2;
         } else {
@@ -2375,7 +2375,7 @@ grn_rc Expression::push_operator(OperatorType operator_type) {
   grn_rc rc = GRN_UNKNOWN_ERROR;
   ExpressionNode *node;
   switch (operator_type) {
-    case GRN_OP_NOT: {
+    case GRN_EGN_LOGICAL_NOT: {
       if (stack_.size() < 1) {
         return GRN_INVALID_FORMAT;
       }
@@ -2386,14 +2386,14 @@ grn_rc Expression::push_operator(OperatorType operator_type) {
       }
       break;
     }
-    case GRN_OP_AND:
-    case GRN_OP_OR:
-    case GRN_OP_EQUAL:
-    case GRN_OP_NOT_EQUAL:
-    case GRN_OP_LESS:
-    case GRN_OP_LESS_EQUAL:
-    case GRN_OP_GREATER:
-    case GRN_OP_GREATER_EQUAL: {
+    case GRN_EGN_LOGICAL_AND:
+    case GRN_EGN_LOGICAL_OR:
+    case GRN_EGN_EQUAL:
+    case GRN_EGN_NOT_EQUAL:
+    case GRN_EGN_LESS:
+    case GRN_EGN_LESS_EQUAL:
+    case GRN_EGN_GREATER:
+    case GRN_EGN_GREATER_EQUAL: {
       if (stack_.size() < 2) {
         return GRN_INVALID_FORMAT;
       }
@@ -2710,7 +2710,7 @@ grn_rc Expression::create_unary_node(OperatorType operator_type,
   ExpressionNode *arg, ExpressionNode **node) {
   grn_rc rc = GRN_SUCCESS;
   switch (operator_type) {
-    case GRN_OP_NOT: {
+    case GRN_EGN_LOGICAL_NOT: {
       if (arg->data_type() != GRN_DB_BOOL) {
         return GRN_UNKNOWN_ERROR;
       }
@@ -2727,21 +2727,21 @@ grn_rc Expression::create_unary_node(OperatorType operator_type,
 grn_rc Expression::create_binary_node(OperatorType operator_type,
   ExpressionNode *arg1, ExpressionNode *arg2, ExpressionNode **node) {
   switch (operator_type) {
-    case GRN_OP_AND: {
+    case GRN_EGN_LOGICAL_AND: {
       if ((arg1->data_type() != GRN_DB_BOOL) ||
           (arg1->data_type() != GRN_DB_BOOL)) {
         return GRN_INVALID_FORMAT;
       }
       return LogicalAndNode::open(arg1, arg2, node);
     }
-    case GRN_OP_OR: {
+    case GRN_EGN_LOGICAL_OR: {
       if ((arg1->data_type() != GRN_DB_BOOL) ||
           (arg1->data_type() != GRN_DB_BOOL)) {
         return GRN_INVALID_FORMAT;
       }
       return LogicalOrNode::open(arg1, arg2, node);
     }
-    case GRN_OP_EQUAL: {
+    case GRN_EGN_EQUAL: {
       if (arg1->data_type() != arg2->data_type()) {
         return GRN_INVALID_FORMAT;
       }
@@ -2769,7 +2769,7 @@ grn_rc Expression::create_binary_node(OperatorType operator_type,
         }
       }
     }
-    case GRN_OP_NOT_EQUAL: {
+    case GRN_EGN_NOT_EQUAL: {
       if (arg1->data_type() != arg2->data_type()) {
         return GRN_INVALID_FORMAT;
       }
@@ -2803,7 +2803,7 @@ grn_rc Expression::create_binary_node(OperatorType operator_type,
         }
       }
     }
-    case GRN_OP_LESS: {
+    case GRN_EGN_LESS: {
       if (arg1->data_type() != arg2->data_type()) {
         return GRN_INVALID_FORMAT;
       }
@@ -2825,7 +2825,7 @@ grn_rc Expression::create_binary_node(OperatorType operator_type,
         }
       }
     }
-    case GRN_OP_LESS_EQUAL: {
+    case GRN_EGN_LESS_EQUAL: {
       if (arg1->data_type() != arg2->data_type()) {
         return GRN_INVALID_FORMAT;
       }
@@ -2851,7 +2851,7 @@ grn_rc Expression::create_binary_node(OperatorType operator_type,
         }
       }
     }
-    case GRN_OP_GREATER: {
+    case GRN_EGN_GREATER: {
       if (arg1->data_type() != arg2->data_type()) {
         return GRN_INVALID_FORMAT;
       }
@@ -2873,7 +2873,7 @@ grn_rc Expression::create_binary_node(OperatorType operator_type,
         }
       }
     }
-    case GRN_OP_GREATER_EQUAL: {
+    case GRN_EGN_GREATER_EQUAL: {
       if (arg1->data_type() != arg2->data_type()) {
         return GRN_INVALID_FORMAT;
       }

  Modified: lib/grn_egn.h (+13 -1)
===================================================================
--- lib/grn_egn.h    2015-07-02 16:57:10 +0900 (3d1d54c)
+++ lib/grn_egn.h    2015-07-02 19:04:24 +0900 (bf8dceb)
@@ -27,7 +27,19 @@ extern "C" {
 
 // Constant values.
 
-typedef grn_operator grn_egn_operator_type;
+typedef enum {
+  GRN_EGN_NOP,
+  GRN_EGN_LOGICAL_NOT,
+  GRN_EGN_LOGICAL_AND,
+  GRN_EGN_LOGICAL_OR,
+  GRN_EGN_EQUAL,
+  GRN_EGN_NOT_EQUAL,
+  GRN_EGN_LESS,
+  GRN_EGN_LESS_EQUAL,
+  GRN_EGN_GREATER,
+  GRN_EGN_GREATER_EQUAL
+} grn_egn_operator_type;
+
 typedef grn_builtin_type grn_egn_data_type;
 
 typedef enum {

  Modified: lib/grn_egn.hpp (+1 -1)
===================================================================
--- lib/grn_egn.hpp    2015-07-02 16:57:10 +0900 (46511af)
+++ lib/grn_egn.hpp    2015-07-02 19:04:24 +0900 (47e5980)
@@ -279,7 +279,7 @@ class Expression {
   }
 
   grn_rc push_object(grn_obj *obj);
-  grn_rc push_operator(grn_operator operator_type);
+  grn_rc push_operator(OperatorType operator_type);
 
   grn_rc filter(Record *input, size_t input_size,
                 Record *output, size_t *output_size);
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index