%parse-param { Context *context }
%parse-param { yyscan_t *scanner }
%pure-parser
-%require "2.2"
+%require "2.4"
%start begin
%verbose
%{
-#include <config.h>
-
-#include <stdint.h>
-
#include <libmemcached/common.h>
#include <libmemcached/options.hpp>
#include <libmemcached/options/symbol.h>
#include <libmemcached/options/scanner.h>
+#include <iostream>
+
#pragma GCC diagnostic ignored "-Wold-style-cast"
int conf_lex(YYSTYPE* lvalp, void* scanner);
%token CONFIGURE_FILE
%token EMPTY_LINE
%token SERVER
+%token SOCKET
%token SERVERS
%token SERVERS_OPTION
%token UNKNOWN_OPTION
}
context->unset_server();
}
+ | SOCKET string optional_weight
+ {
+ if (memcached_failed(context->rc= memcached_server_add_unix_socket_with_weight(context->memc, $2.c_str, $3)))
+ {
+ parser_abort(context, NULL);
+ }
+ }
| CONFIGURE_FILE string
{
memcached_set_configuration_file(context->memc, $2.c_str, $2.size);
behaviors:
NAMESPACE string
{
- if ((context->rc= memcached_set_prefix_key(context->memc, $2.c_str, $2.size)) != MEMCACHED_SUCCESS)
+ if ((context->rc= memcached_set_namespace(context->memc, $2.c_str, $2.size)) != MEMCACHED_SUCCESS)
{
parser_abort(context, NULL);;
}
}
| QUOTED_STRING
{
- $$.c_str= $1.c_str +1; // +1 to move use passed the initial quote
- $$.size= $1.size -2; // -2 removes the begin and end quote
+ $$= $1;
}
;