[Groonga-commit] groonga/groonga at d04fa38 [master] grn_ts: move functions for operators into lib/ts/ts_op

Back to archive index

susumu.yata null+****@clear*****
Thu Nov 12 13:25:43 JST 2015


susumu.yata	2015-11-12 13:25:43 +0900 (Thu, 12 Nov 2015)

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

  Message:
    grn_ts: move functions for operators into lib/ts/ts_op

  Added files:
    lib/ts/ts_op.c
    lib/ts/ts_op.h
  Modified files:
    lib/ts/sources.am
    lib/ts/ts_expr.c
    lib/ts/ts_expr.h
    lib/ts/ts_expr_node.c
    lib/ts/ts_expr_node.h
    lib/ts/ts_expr_parser.c
    lib/ts/ts_expr_parser.h
    lib/ts/ts_types.h

  Modified: lib/ts/sources.am (+2 -0)
===================================================================
--- lib/ts/sources.am    2015-11-12 13:16:09 +0900 (25e82fd)
+++ lib/ts/sources.am    2015-11-12 13:25:43 +0900 (17fcc62)
@@ -8,6 +8,8 @@ libgrnts_la_SOURCES =				\
 	ts_expr_parser.c			\
 	ts_expr_parser.h			\
 	ts_log.h				\
+	ts_op.c					\
+	ts_op.h					\
 	ts_str.c				\
 	ts_str.h				\
 	ts_types.h				\

  Modified: lib/ts/ts_expr.c (+0 -46)
===================================================================
--- lib/ts/ts_expr.c    2015-11-12 13:16:09 +0900 (21e3a72)
+++ lib/ts/ts_expr.c    2015-11-12 13:25:43 +0900 (7288ed5)
@@ -129,52 +129,6 @@ grn_ts_geo_vector_is_valid(grn_ts_geo_vector value) {
 #undef GRN_TS_VECTOR_IS_VALID
 
 /*-------------------------------------------------------------
- * Operators.
- */
-
-/* Operator precedence. */
-typedef int grn_ts_op_precedence;
-
-/* grn_ts_op_get_n_args() returns the number of arguments. */
-static size_t
-grn_ts_op_get_n_args(grn_ts_op_type op_type) {
-  switch (op_type) {
-    case GRN_TS_OP_LOGICAL_NOT: /* !X */
-    case GRN_TS_OP_BITWISE_NOT: /* ~X */
-    case GRN_TS_OP_POSITIVE:    /* +X */
-    case GRN_TS_OP_NEGATIVE: {  /* -X */
-      return 1;
-    }
-    case GRN_TS_OP_LOGICAL_AND:            /* X && Y  */
-    case GRN_TS_OP_LOGICAL_OR:             /* X || Y  */
-    case GRN_TS_OP_LOGICAL_SUB:            /* X &! Y  */
-    case GRN_TS_OP_BITWISE_AND:            /* X & Y   */
-    case GRN_TS_OP_BITWISE_OR:             /* X | Y   */
-    case GRN_TS_OP_BITWISE_XOR:            /* X ^ Y   */
-    case GRN_TS_OP_EQUAL:                  /* X == Y  */
-    case GRN_TS_OP_NOT_EQUAL:              /* X != Y  */
-    case GRN_TS_OP_LESS:                   /* X < Y   */
-    case GRN_TS_OP_LESS_EQUAL:             /* X <= Y  */
-    case GRN_TS_OP_GREATER:                /* X > Y   */
-    case GRN_TS_OP_GREATER_EQUAL:          /* X >= Y  */
-    case GRN_TS_OP_SHIFT_ARITHMETIC_LEFT:  /* X << Y  */
-    case GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT: /* X >> Y  */
-    case GRN_TS_OP_SHIFT_LOGICAL_LEFT:     /* X <<< Y */
-    case GRN_TS_OP_SHIFT_LOGICAL_RIGHT:    /* X >>> Y */
-    case GRN_TS_OP_PLUS:                   /* X + Y   */
-    case GRN_TS_OP_MINUS:                  /* X - Y   */
-    case GRN_TS_OP_MULTIPLICATION:         /* X * Y   */
-    case GRN_TS_OP_DIVISION:               /* X / Y   */
-    case GRN_TS_OP_MODULUS: {              /* X % Y   */
-      return 2;
-    }
-    default: {
-      return 0;
-    }
-  }
-}
-
-/*-------------------------------------------------------------
  * grn_ts_expr_bridge.
  */
 

  Modified: lib/ts/ts_expr.h (+1 -0)
===================================================================
--- lib/ts/ts_expr.h    2015-11-12 13:16:09 +0900 (9b6b130)
+++ lib/ts/ts_expr.h    2015-11-12 13:25:43 +0900 (6f3009b)
@@ -21,6 +21,7 @@
 
 #include "ts_buf.h"
 #include "ts_expr_node.h"
+#include "ts_op.h"
 #include "ts_types.h"
 
 #ifdef __cplusplus

  Modified: lib/ts/ts_expr_node.c (+0 -3)
===================================================================
--- lib/ts/ts_expr_node.c    2015-11-12 13:16:09 +0900 (c4733a9)
+++ lib/ts/ts_expr_node.c    2015-11-12 13:25:43 +0900 (e86605d)
@@ -292,9 +292,6 @@ grn_ts_data_kind_to_type(grn_ts_data_kind kind) {
  * Operators.
  */
 
-/* Operator precedence. */
-typedef int grn_ts_op_precedence;
-
 /* grn_ts_op_logical_not_bool() returns !arg. */
 inline static grn_ts_bool
 grn_ts_op_logical_not_bool(grn_ts_bool arg) {

  Modified: lib/ts/ts_expr_node.h (+1 -0)
===================================================================
--- lib/ts/ts_expr_node.h    2015-11-12 13:16:09 +0900 (6cbb03e)
+++ lib/ts/ts_expr_node.h    2015-11-12 13:25:43 +0900 (cab0cae)
@@ -20,6 +20,7 @@
 #define GRN_TS_EXPR_NODE_H
 
 #include "ts_buf.h"
+#include "ts_op.h"
 #include "ts_types.h"
 
 #ifdef __cplusplus

  Modified: lib/ts/ts_expr_parser.c (+0 -108)
===================================================================
--- lib/ts/ts_expr_parser.c    2015-11-12 13:16:09 +0900 (d3a4987)
+++ lib/ts/ts_expr_parser.c    2015-11-12 13:25:43 +0900 (34146ef)
@@ -26,114 +26,6 @@
 #include "ts_str.h"
 
 /*-------------------------------------------------------------
- * Operators.
- */
-
-/* Operator precedence. */
-typedef int grn_ts_op_precedence;
-
-/* grn_ts_op_get_n_args() returns the number of arguments. */
-static size_t
-grn_ts_op_get_n_args(grn_ts_op_type op_type) {
-  switch (op_type) {
-    case GRN_TS_OP_LOGICAL_NOT: /* !X */
-    case GRN_TS_OP_BITWISE_NOT: /* ~X */
-    case GRN_TS_OP_POSITIVE:    /* +X */
-    case GRN_TS_OP_NEGATIVE: {  /* -X */
-      return 1;
-    }
-    case GRN_TS_OP_LOGICAL_AND:            /* X && Y  */
-    case GRN_TS_OP_LOGICAL_OR:             /* X || Y  */
-    case GRN_TS_OP_LOGICAL_SUB:            /* X &! Y  */
-    case GRN_TS_OP_BITWISE_AND:            /* X & Y   */
-    case GRN_TS_OP_BITWISE_OR:             /* X | Y   */
-    case GRN_TS_OP_BITWISE_XOR:            /* X ^ Y   */
-    case GRN_TS_OP_EQUAL:                  /* X == Y  */
-    case GRN_TS_OP_NOT_EQUAL:              /* X != Y  */
-    case GRN_TS_OP_LESS:                   /* X < Y   */
-    case GRN_TS_OP_LESS_EQUAL:             /* X <= Y  */
-    case GRN_TS_OP_GREATER:                /* X > Y   */
-    case GRN_TS_OP_GREATER_EQUAL:          /* X >= Y  */
-    case GRN_TS_OP_SHIFT_ARITHMETIC_LEFT:  /* X << Y  */
-    case GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT: /* X >> Y  */
-    case GRN_TS_OP_SHIFT_LOGICAL_LEFT:     /* X <<< Y */
-    case GRN_TS_OP_SHIFT_LOGICAL_RIGHT:    /* X >>> Y */
-    case GRN_TS_OP_PLUS:                   /* X + Y   */
-    case GRN_TS_OP_MINUS:                  /* X - Y   */
-    case GRN_TS_OP_MULTIPLICATION:         /* X * Y   */
-    case GRN_TS_OP_DIVISION:               /* X / Y   */
-    case GRN_TS_OP_MODULUS: {              /* X % Y   */
-      return 2;
-    }
-    default: {
-      return 0;
-    }
-  }
-}
-
-/*
- * grn_ts_op_get_precedence() returns the precedence.
- * A prior operator has a higher precedence.
- */
-static grn_ts_op_precedence
-grn_ts_op_get_precedence(grn_ts_op_type op_type) {
-  switch (op_type) {
-    case GRN_TS_OP_LOGICAL_NOT:
-    case GRN_TS_OP_BITWISE_NOT:
-    case GRN_TS_OP_POSITIVE:
-    case GRN_TS_OP_NEGATIVE: {
-      return 14;
-    }
-    case GRN_TS_OP_LOGICAL_AND: {
-      return 5;
-    }
-    case GRN_TS_OP_LOGICAL_OR: {
-      return 3;
-    }
-    case GRN_TS_OP_LOGICAL_SUB: {
-      return 4;
-    }
-    case GRN_TS_OP_BITWISE_AND: {
-      return 8;
-    }
-    case GRN_TS_OP_BITWISE_OR: {
-      return 6;
-    }
-    case GRN_TS_OP_BITWISE_XOR: {
-      return 7;
-    }
-    case GRN_TS_OP_EQUAL:
-    case GRN_TS_OP_NOT_EQUAL: {
-      return 9;
-    }
-    case GRN_TS_OP_LESS:
-    case GRN_TS_OP_LESS_EQUAL:
-    case GRN_TS_OP_GREATER:
-    case GRN_TS_OP_GREATER_EQUAL: {
-      return 10;
-    }
-    case GRN_TS_OP_SHIFT_ARITHMETIC_LEFT:
-    case GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT:
-    case GRN_TS_OP_SHIFT_LOGICAL_LEFT:
-    case GRN_TS_OP_SHIFT_LOGICAL_RIGHT: {
-      return 11;
-    }
-    case GRN_TS_OP_PLUS:
-    case GRN_TS_OP_MINUS: {
-      return 12;
-    }
-    case GRN_TS_OP_MULTIPLICATION:
-    case GRN_TS_OP_DIVISION:
-    case GRN_TS_OP_MODULUS: {
-      return 13;
-    }
-    default: {
-      return 0;
-    }
-  }
-}
-
-/*-------------------------------------------------------------
  * grn_ts_expr_parser.
  */
 

  Modified: lib/ts/ts_expr_parser.h (+1 -0)
===================================================================
--- lib/ts/ts_expr_parser.h    2015-11-12 13:16:09 +0900 (e92d54c)
+++ lib/ts/ts_expr_parser.h    2015-11-12 13:25:43 +0900 (64f0d71)
@@ -20,6 +20,7 @@
 #define GRN_TS_EXPR_PARSER_H
 
 #include "ts_expr.h"
+#include "ts_op.h"
 #include "ts_types.h"
 
 #ifdef __cplusplus

  Added: lib/ts/ts_op.c (+115 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_op.c    2015-11-12 13:25:43 +0900 (8984ea7)
@@ -0,0 +1,115 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#include "ts_op.h"
+
+size_t
+grn_ts_op_get_n_args(grn_ts_op_type op_type) {
+  switch (op_type) {
+    case GRN_TS_OP_LOGICAL_NOT: /* !X */
+    case GRN_TS_OP_BITWISE_NOT: /* ~X */
+    case GRN_TS_OP_POSITIVE:    /* +X */
+    case GRN_TS_OP_NEGATIVE: {  /* -X */
+      return 1;
+    }
+    case GRN_TS_OP_LOGICAL_AND:            /* X && Y  */
+    case GRN_TS_OP_LOGICAL_OR:             /* X || Y  */
+    case GRN_TS_OP_LOGICAL_SUB:            /* X &! Y  */
+    case GRN_TS_OP_BITWISE_AND:            /* X & Y   */
+    case GRN_TS_OP_BITWISE_OR:             /* X | Y   */
+    case GRN_TS_OP_BITWISE_XOR:            /* X ^ Y   */
+    case GRN_TS_OP_EQUAL:                  /* X == Y  */
+    case GRN_TS_OP_NOT_EQUAL:              /* X != Y  */
+    case GRN_TS_OP_LESS:                   /* X < Y   */
+    case GRN_TS_OP_LESS_EQUAL:             /* X <= Y  */
+    case GRN_TS_OP_GREATER:                /* X > Y   */
+    case GRN_TS_OP_GREATER_EQUAL:          /* X >= Y  */
+    case GRN_TS_OP_SHIFT_ARITHMETIC_LEFT:  /* X << Y  */
+    case GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT: /* X >> Y  */
+    case GRN_TS_OP_SHIFT_LOGICAL_LEFT:     /* X <<< Y */
+    case GRN_TS_OP_SHIFT_LOGICAL_RIGHT:    /* X >>> Y */
+    case GRN_TS_OP_PLUS:                   /* X + Y   */
+    case GRN_TS_OP_MINUS:                  /* X - Y   */
+    case GRN_TS_OP_MULTIPLICATION:         /* X * Y   */
+    case GRN_TS_OP_DIVISION:               /* X / Y   */
+    case GRN_TS_OP_MODULUS: {              /* X % Y   */
+      return 2;
+    }
+    default: {
+      return 0;
+    }
+  }
+}
+
+grn_ts_op_precedence
+grn_ts_op_get_precedence(grn_ts_op_type op_type) {
+  switch (op_type) {
+    case GRN_TS_OP_LOGICAL_NOT:
+    case GRN_TS_OP_BITWISE_NOT:
+    case GRN_TS_OP_POSITIVE:
+    case GRN_TS_OP_NEGATIVE: {
+      return 14;
+    }
+    case GRN_TS_OP_LOGICAL_AND: {
+      return 5;
+    }
+    case GRN_TS_OP_LOGICAL_OR: {
+      return 3;
+    }
+    case GRN_TS_OP_LOGICAL_SUB: {
+      return 4;
+    }
+    case GRN_TS_OP_BITWISE_AND: {
+      return 8;
+    }
+    case GRN_TS_OP_BITWISE_OR: {
+      return 6;
+    }
+    case GRN_TS_OP_BITWISE_XOR: {
+      return 7;
+    }
+    case GRN_TS_OP_EQUAL:
+    case GRN_TS_OP_NOT_EQUAL: {
+      return 9;
+    }
+    case GRN_TS_OP_LESS:
+    case GRN_TS_OP_LESS_EQUAL:
+    case GRN_TS_OP_GREATER:
+    case GRN_TS_OP_GREATER_EQUAL: {
+      return 10;
+    }
+    case GRN_TS_OP_SHIFT_ARITHMETIC_LEFT:
+    case GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT:
+    case GRN_TS_OP_SHIFT_LOGICAL_LEFT:
+    case GRN_TS_OP_SHIFT_LOGICAL_RIGHT: {
+      return 11;
+    }
+    case GRN_TS_OP_PLUS:
+    case GRN_TS_OP_MINUS: {
+      return 12;
+    }
+    case GRN_TS_OP_MULTIPLICATION:
+    case GRN_TS_OP_DIVISION:
+    case GRN_TS_OP_MODULUS: {
+      return 13;
+    }
+    default: {
+      return 0;
+    }
+  }
+}

  Added: lib/ts/ts_op.h (+82 -0) 100644
===================================================================
--- /dev/null
+++ lib/ts/ts_op.h    2015-11-12 13:25:43 +0900 (9613527)
@@ -0,0 +1,82 @@
+/* -*- c-basic-offset: 2 -*- */
+/*
+  Copyright(C) 2015 Brazil
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License version 2.1 as published by the Free Software Foundation.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
+#ifndef GRN_TS_OP_H
+#define GRN_TS_OP_H
+
+#include "../grn.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*-------------------------------------------------------------
+ * Operator types.
+ */
+
+typedef enum {
+  /* Invalid operator. */
+  GRN_TS_OP_NOP,
+
+  /* Unary operators. */
+  GRN_TS_OP_LOGICAL_NOT, /* !X */
+  GRN_TS_OP_BITWISE_NOT, /* ~X */
+  GRN_TS_OP_POSITIVE,    /* +X */
+  GRN_TS_OP_NEGATIVE,    /* -X */
+
+  /* Binary operators. */
+  GRN_TS_OP_LOGICAL_AND,            /* X && Y  */
+  GRN_TS_OP_LOGICAL_OR,             /* X || Y  */
+  GRN_TS_OP_LOGICAL_SUB,            /* X &! Y  */
+  GRN_TS_OP_BITWISE_AND,            /* X & Y   */
+  GRN_TS_OP_BITWISE_OR,             /* X | Y   */
+  GRN_TS_OP_BITWISE_XOR,            /* X ^ Y   */
+  GRN_TS_OP_EQUAL,                  /* X == Y  */
+  GRN_TS_OP_NOT_EQUAL,              /* X != Y  */
+  GRN_TS_OP_LESS,                   /* X < Y   */
+  GRN_TS_OP_LESS_EQUAL,             /* X <= Y  */
+  GRN_TS_OP_GREATER,                /* X > Y   */
+  GRN_TS_OP_GREATER_EQUAL,          /* X >= Y  */
+  GRN_TS_OP_SHIFT_ARITHMETIC_LEFT,  /* X << Y  */
+  GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT, /* X >> Y  */
+  GRN_TS_OP_SHIFT_LOGICAL_LEFT,     /* X <<< Y */
+  GRN_TS_OP_SHIFT_LOGICAL_RIGHT,    /* X >>> Y */
+  GRN_TS_OP_PLUS,                   /* X + Y   */
+  GRN_TS_OP_MINUS,                  /* X - Y   */
+  GRN_TS_OP_MULTIPLICATION,         /* X * Y   */
+  GRN_TS_OP_DIVISION,               /* X / Y   */
+  GRN_TS_OP_MODULUS                 /* X % Y   */
+} grn_ts_op_type;
+
+/* Operator precedence. */
+typedef int grn_ts_op_precedence;
+
+/* grn_ts_op_get_n_args() returns the number of arguments. */
+size_t grn_ts_op_get_n_args(grn_ts_op_type op_type);
+
+/*
+ * grn_ts_op_get_precedence() returns the precedence.
+ * A prior operator has a higher precedence.
+ */
+grn_ts_op_precedence grn_ts_op_get_precedence(grn_ts_op_type op_type);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* GRN_TS_OP_H */

  Modified: lib/ts/ts_types.h (+0 -38)
===================================================================
--- lib/ts/ts_types.h    2015-11-12 13:16:09 +0900 (970afec)
+++ lib/ts/ts_types.h    2015-11-12 13:25:43 +0900 (dafdc07)
@@ -26,44 +26,6 @@ extern "C" {
 #endif
 
 /*-------------------------------------------------------------
- * Enumeration types.
- */
-
-typedef enum {
-  /* Invalid operator. */
-  GRN_TS_OP_NOP,
-
-  /* Unary operators. */
-  GRN_TS_OP_LOGICAL_NOT, /* !X */
-  GRN_TS_OP_BITWISE_NOT, /* ~X */
-  GRN_TS_OP_POSITIVE,    /* +X */
-  GRN_TS_OP_NEGATIVE,    /* -X */
-
-  /* Binary operators. */
-  GRN_TS_OP_LOGICAL_AND,            /* X && Y  */
-  GRN_TS_OP_LOGICAL_OR,             /* X || Y  */
-  GRN_TS_OP_LOGICAL_SUB,            /* X &! Y  */
-  GRN_TS_OP_BITWISE_AND,            /* X & Y   */
-  GRN_TS_OP_BITWISE_OR,             /* X | Y   */
-  GRN_TS_OP_BITWISE_XOR,            /* X ^ Y   */
-  GRN_TS_OP_EQUAL,                  /* X == Y  */
-  GRN_TS_OP_NOT_EQUAL,              /* X != Y  */
-  GRN_TS_OP_LESS,                   /* X < Y   */
-  GRN_TS_OP_LESS_EQUAL,             /* X <= Y  */
-  GRN_TS_OP_GREATER,                /* X > Y   */
-  GRN_TS_OP_GREATER_EQUAL,          /* X >= Y  */
-  GRN_TS_OP_SHIFT_ARITHMETIC_LEFT,  /* X << Y  */
-  GRN_TS_OP_SHIFT_ARITHMETIC_RIGHT, /* X >> Y  */
-  GRN_TS_OP_SHIFT_LOGICAL_LEFT,     /* X <<< Y */
-  GRN_TS_OP_SHIFT_LOGICAL_RIGHT,    /* X >>> Y */
-  GRN_TS_OP_PLUS,                   /* X + Y   */
-  GRN_TS_OP_MINUS,                  /* X - Y   */
-  GRN_TS_OP_MULTIPLICATION,         /* X * Y   */
-  GRN_TS_OP_DIVISION,               /* X / Y   */
-  GRN_TS_OP_MODULUS                 /* X % Y   */
-} grn_ts_op_type;
-
-/*-------------------------------------------------------------
  * Built-in data types.
  */
 
-------------- next part --------------
HTML����������������������������...
Download 



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