Merge in fixes for deprecated bits in behavior.
[awesomized/libmemcached] / libmemcached / options / parser.yy
index 31371c1b6e388f3975d925e73b86c3499c7f74ed..e61f69ca892e479f58f57a80636d9cb789b4ef24 100644 (file)
@@ -59,13 +59,6 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error)
     parser::abort_func(context, error);
 }
 
-int config_parse(Context*, yyscan_t *);
-
-void Context::start() 
-{
-  config_parse(this, scanner);
-}
-
 %}
 
 %token COMMENT
@@ -86,16 +79,13 @@ void Context::start()
 %token AUTO_EJECT_HOSTS
 %token BINARY_PROTOCOL
 %token BUFFER_REQUESTS
-%token CACHE_LOOKUPS
 %token CONNECT_TIMEOUT
-%token _CORK
 %token DISTRIBUTION
 %token HASH
 %token HASH_WITH_PREFIX_KEY
 %token IO_BYTES_WATERMARK
 %token IO_KEY_PREFETCH
 %token IO_MSG_WATERMARK
-%token KETAMA
 %token KETAMA_HASH
 %token KETAMA_WEIGHTED
 %token NOREPLY
@@ -203,19 +193,19 @@ statement:
 
 
 expression:
-          SERVER '=' server
+          SERVER server
           { 
-            if ((context->rc= memcached_server_add_parsed(context->memc, $3.c_str, $3.length, $3.port, 0)) != MEMCACHED_SUCCESS)
+            if ((context->rc= memcached_server_add_parsed(context->memc, $2.c_str, $2.length, $2.port, 0)) != MEMCACHED_SUCCESS)
             {
               parser_abort(context, NULL);
             }
           }
-        | SERVERS_OPTION '=' server_list
+        | SERVERS_OPTION server_list
           {
           }
-        | CONFIGURE_FILE '=' string
+        | CONFIGURE_FILE string
           {
-            memcached_set_configuration_file(context->memc, $3.c_str, $3.length);
+            memcached_set_configuration_file(context->memc, $2.c_str, $2.length);
           }
         | behaviors
         ;
@@ -235,23 +225,27 @@ behaviors:
               parser_abort(context, NULL);;
             }
           }
-        | HASH hash
+        | DISTRIBUTION distribution ',' hash
           {
-            if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, $2)) != MEMCACHED_SUCCESS)
+            if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, $2)) != MEMCACHED_SUCCESS)
             {
-              parser_abort(context, NULL);; 
+              parser_abort(context, NULL);;
+            }
+            if ((context->rc= memcached_behavior_set_distribution_hash(context->memc, $4)) != MEMCACHED_SUCCESS)
+            {
+              parser_abort(context, NULL);;
             }
           }
-        | KETAMA_HASH hash
+        | HASH hash
           {
-            if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_KETAMA_HASH, $2)) != MEMCACHED_SUCCESS)
+            if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, $2)) != MEMCACHED_SUCCESS)
             {
-              parser_abort(context, NULL);;
+              parser_abort(context, NULL);; 
             }
           }
-        | behavior_number '=' NUMBER
+        | behavior_number NUMBER
           {
-            if ((context->rc= memcached_behavior_set(context->memc, $1, $3)) != MEMCACHED_SUCCESS)
+            if ((context->rc= memcached_behavior_set(context->memc, $1, $2)) != MEMCACHED_SUCCESS)
             {
               parser_abort(context, NULL);;
             }
@@ -332,22 +326,10 @@ behavior_boolean:
           {
             $$= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS;
           }
-        | CACHE_LOOKUPS
-          {
-            $$= MEMCACHED_BEHAVIOR_CACHE_LOOKUPS;
-          }
-        | _CORK
-          {
-            $$= MEMCACHED_BEHAVIOR_CORK;
-          }
         | HASH_WITH_PREFIX_KEY
           {
             $$= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY;
           }
-        | KETAMA
-          {
-            $$= MEMCACHED_BEHAVIOR_KETAMA;
-          }
         | KETAMA_WEIGHTED
           {
             $$= MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED;
@@ -505,3 +487,11 @@ distribution:
             $$= MEMCACHED_DISTRIBUTION_RANDOM;
           }
         ;
+
+%% 
+
+void Context::start() 
+{
+  config_parse(this, (void **)scanner);
+}
+