#include <stdint.h>
#include <libmemcached/options/context.h>
-#include <libmemcached/options/build.h>
#include <libmemcached/options/string.h>
#include <libmemcached/options/symbol.h>
#include <libmemcached/visibility.h>
int conf_lex(YYSTYPE* lvalp, void* scanner);
-#define parser_abort(A, B) do { parser::abort_func((A), (B)); YYABORT; } while (0)
+#define parser_abort(A, B) do { (A)->abort((B)); YYABORT; } while (0)
inline void config_error(Context *context, yyscan_t *scanner, const char *error)
{
if (not context->end())
- parser::abort_func(context, error);
+ context->abort(error);
}
/* Line 189 of yacc.c */
-#line 109 "libmemcached/options/parser.cc"
+#line 108 "libmemcached/options/parser.cc"
/* Enabling traces. */
#ifndef YYDEBUG
/* Line 264 of yacc.c */
-#line 219 "libmemcached/options/parser.cc"
+#line 218 "libmemcached/options/parser.cc"
#ifdef short
# undef short
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 155, 155, 156, 160, 162, 164, 166, 171, 176,
- 180, 184, 195, 203, 211, 215, 219, 226, 233, 244,
- 251, 258, 265, 271, 275, 279, 283, 287, 291, 295,
- 299, 303, 307, 311, 315, 322, 326, 330, 334, 338,
- 342, 346, 350, 354, 358, 362, 366, 370, 377, 378,
- 383, 384, 389, 393, 397, 401, 405, 409, 413, 417,
- 421, 428, 432, 440, 444, 448
+ 0, 154, 154, 155, 159, 161, 163, 165, 170, 175,
+ 179, 183, 194, 202, 210, 214, 218, 225, 232, 243,
+ 250, 257, 264, 270, 274, 278, 282, 286, 290, 294,
+ 298, 302, 306, 310, 314, 321, 325, 329, 333, 337,
+ 341, 345, 349, 353, 357, 361, 365, 369, 376, 377,
+ 382, 383, 388, 392, 396, 400, 404, 408, 412, 416,
+ 420, 427, 431, 439, 443, 447
};
#endif
case 4:
/* Line 1464 of yacc.c */
-#line 161 "libmemcached/options/parser.yy"
+#line 160 "libmemcached/options/parser.yy"
{ ;}
break;
case 5:
/* Line 1464 of yacc.c */
-#line 163 "libmemcached/options/parser.yy"
+#line 162 "libmemcached/options/parser.yy"
{ ;}
break;
case 6:
/* Line 1464 of yacc.c */
-#line 165 "libmemcached/options/parser.yy"
+#line 164 "libmemcached/options/parser.yy"
{ ;}
break;
case 7:
/* Line 1464 of yacc.c */
-#line 167 "libmemcached/options/parser.yy"
+#line 166 "libmemcached/options/parser.yy"
{
context->set_end();
YYACCEPT;
case 8:
/* Line 1464 of yacc.c */
-#line 172 "libmemcached/options/parser.yy"
+#line 171 "libmemcached/options/parser.yy"
{
context->rc= MEMCACHED_PARSE_USER_ERROR;
parser_abort(context, NULL);
case 9:
/* Line 1464 of yacc.c */
-#line 177 "libmemcached/options/parser.yy"
+#line 176 "libmemcached/options/parser.yy"
{
memcached_reset(context->memc);
;}
case 10:
/* Line 1464 of yacc.c */
-#line 181 "libmemcached/options/parser.yy"
+#line 180 "libmemcached/options/parser.yy"
{
yydebug= 1;
;}
case 11:
/* Line 1464 of yacc.c */
-#line 185 "libmemcached/options/parser.yy"
+#line 184 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_parse_configure_file(context->memc, (yyvsp[(3) - (3)].string).c_str, (yyvsp[(3) - (3)].string).length)) != MEMCACHED_SUCCESS)
{
case 12:
/* Line 1464 of yacc.c */
-#line 196 "libmemcached/options/parser.yy"
+#line 195 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(2) - (4)].server).port, (yyvsp[(2) - (4)].server).weight)) != MEMCACHED_SUCCESS)
{
case 13:
/* Line 1464 of yacc.c */
-#line 204 "libmemcached/options/parser.yy"
+#line 203 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(2) - (4)].server).port, (yyvsp[(2) - (4)].server).weight)) != MEMCACHED_SUCCESS)
{
case 14:
/* Line 1464 of yacc.c */
-#line 212 "libmemcached/options/parser.yy"
+#line 211 "libmemcached/options/parser.yy"
{
memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length);
;}
case 16:
/* Line 1464 of yacc.c */
-#line 220 "libmemcached/options/parser.yy"
+#line 219 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_set_prefix_key(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length)) != MEMCACHED_SUCCESS)
{
case 17:
/* Line 1464 of yacc.c */
-#line 227 "libmemcached/options/parser.yy"
+#line 226 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (2)].distribution))) != MEMCACHED_SUCCESS)
{
case 18:
/* Line 1464 of yacc.c */
-#line 234 "libmemcached/options/parser.yy"
+#line 233 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (4)].distribution))) != MEMCACHED_SUCCESS)
{
case 19:
/* Line 1464 of yacc.c */
-#line 245 "libmemcached/options/parser.yy"
+#line 244 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, (yyvsp[(2) - (2)].hash))) != MEMCACHED_SUCCESS)
{
case 20:
/* Line 1464 of yacc.c */
-#line 252 "libmemcached/options/parser.yy"
+#line 251 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (2)].behavior), (yyvsp[(2) - (2)].number))) != MEMCACHED_SUCCESS)
{
case 21:
/* Line 1464 of yacc.c */
-#line 259 "libmemcached/options/parser.yy"
+#line 258 "libmemcached/options/parser.yy"
{
if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (1)].behavior), true)) != MEMCACHED_SUCCESS)
{
case 22:
/* Line 1464 of yacc.c */
-#line 266 "libmemcached/options/parser.yy"
+#line 265 "libmemcached/options/parser.yy"
{
;}
break;
case 23:
/* Line 1464 of yacc.c */
-#line 272 "libmemcached/options/parser.yy"
+#line 271 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT;
;}
case 24:
/* Line 1464 of yacc.c */
-#line 276 "libmemcached/options/parser.yy"
+#line 275 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK;
;}
case 25:
/* Line 1464 of yacc.c */
-#line 280 "libmemcached/options/parser.yy"
+#line 279 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK;
;}
case 26:
/* Line 1464 of yacc.c */
-#line 284 "libmemcached/options/parser.yy"
+#line 283 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH;
;}
case 27:
/* Line 1464 of yacc.c */
-#line 288 "libmemcached/options/parser.yy"
+#line 287 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS;
;}
case 28:
/* Line 1464 of yacc.c */
-#line 292 "libmemcached/options/parser.yy"
+#line 291 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT;
;}
case 29:
/* Line 1464 of yacc.c */
-#line 296 "libmemcached/options/parser.yy"
+#line 295 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT;
;}
case 30:
/* Line 1464 of yacc.c */
-#line 300 "libmemcached/options/parser.yy"
+#line 299 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT;
;}
case 31:
/* Line 1464 of yacc.c */
-#line 304 "libmemcached/options/parser.yy"
+#line 303 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT;
;}
case 32:
/* Line 1464 of yacc.c */
-#line 308 "libmemcached/options/parser.yy"
+#line 307 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT;
;}
case 33:
/* Line 1464 of yacc.c */
-#line 312 "libmemcached/options/parser.yy"
+#line 311 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE;
;}
case 34:
/* Line 1464 of yacc.c */
-#line 316 "libmemcached/options/parser.yy"
+#line 315 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE;
;}
case 35:
/* Line 1464 of yacc.c */
-#line 323 "libmemcached/options/parser.yy"
+#line 322 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS;
;}
case 36:
/* Line 1464 of yacc.c */
-#line 327 "libmemcached/options/parser.yy"
+#line 326 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL;
;}
case 37:
/* Line 1464 of yacc.c */
-#line 331 "libmemcached/options/parser.yy"
+#line 330 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS;
;}
case 38:
/* Line 1464 of yacc.c */
-#line 335 "libmemcached/options/parser.yy"
+#line 334 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY;
;}
case 39:
/* Line 1464 of yacc.c */
-#line 339 "libmemcached/options/parser.yy"
+#line 338 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY;
;}
case 40:
/* Line 1464 of yacc.c */
-#line 343 "libmemcached/options/parser.yy"
+#line 342 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ;
;}
case 41:
/* Line 1464 of yacc.c */
-#line 347 "libmemcached/options/parser.yy"
+#line 346 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS;
;}
case 42:
/* Line 1464 of yacc.c */
-#line 351 "libmemcached/options/parser.yy"
+#line 350 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS;
;}
case 43:
/* Line 1464 of yacc.c */
-#line 355 "libmemcached/options/parser.yy"
+#line 354 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY;
;}
case 44:
/* Line 1464 of yacc.c */
-#line 359 "libmemcached/options/parser.yy"
+#line 358 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE;
;}
case 45:
/* Line 1464 of yacc.c */
-#line 363 "libmemcached/options/parser.yy"
+#line 362 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE;
;}
case 46:
/* Line 1464 of yacc.c */
-#line 367 "libmemcached/options/parser.yy"
+#line 366 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP;
;}
case 47:
/* Line 1464 of yacc.c */
-#line 371 "libmemcached/options/parser.yy"
+#line 370 "libmemcached/options/parser.yy"
{
(yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY;
;}
case 48:
/* Line 1464 of yacc.c */
-#line 377 "libmemcached/options/parser.yy"
+#line 376 "libmemcached/options/parser.yy"
{ ;}
break;
case 49:
/* Line 1464 of yacc.c */
-#line 379 "libmemcached/options/parser.yy"
+#line 378 "libmemcached/options/parser.yy"
{ ;}
break;
case 50:
/* Line 1464 of yacc.c */
-#line 383 "libmemcached/options/parser.yy"
+#line 382 "libmemcached/options/parser.yy"
{ ;}
break;
case 51:
/* Line 1464 of yacc.c */
-#line 385 "libmemcached/options/parser.yy"
+#line 384 "libmemcached/options/parser.yy"
{ ;}
break;
case 52:
/* Line 1464 of yacc.c */
-#line 390 "libmemcached/options/parser.yy"
+#line 389 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_MD5;
;}
case 53:
/* Line 1464 of yacc.c */
-#line 394 "libmemcached/options/parser.yy"
+#line 393 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_CRC;
;}
case 54:
/* Line 1464 of yacc.c */
-#line 398 "libmemcached/options/parser.yy"
+#line 397 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1_64;
;}
case 55:
/* Line 1464 of yacc.c */
-#line 402 "libmemcached/options/parser.yy"
+#line 401 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1A_64;
;}
case 56:
/* Line 1464 of yacc.c */
-#line 406 "libmemcached/options/parser.yy"
+#line 405 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1_32;
;}
case 57:
/* Line 1464 of yacc.c */
-#line 410 "libmemcached/options/parser.yy"
+#line 409 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_FNV1A_32;
;}
case 58:
/* Line 1464 of yacc.c */
-#line 414 "libmemcached/options/parser.yy"
+#line 413 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_HSIEH;
;}
case 59:
/* Line 1464 of yacc.c */
-#line 418 "libmemcached/options/parser.yy"
+#line 417 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_MURMUR;
;}
case 60:
/* Line 1464 of yacc.c */
-#line 422 "libmemcached/options/parser.yy"
+#line 421 "libmemcached/options/parser.yy"
{
(yyval.hash)= MEMCACHED_HASH_JENKINS;
;}
case 61:
/* Line 1464 of yacc.c */
-#line 429 "libmemcached/options/parser.yy"
+#line 428 "libmemcached/options/parser.yy"
{
(yyval.string)= (yyvsp[(1) - (1)].string);
;}
case 62:
/* Line 1464 of yacc.c */
-#line 433 "libmemcached/options/parser.yy"
+#line 432 "libmemcached/options/parser.yy"
{
(yyval.string).c_str= (yyvsp[(1) - (1)].string).c_str +1; // +1 to move use passed the initial quote
(yyval.string).length= (yyvsp[(1) - (1)].string).length -1; // -1 removes the end quote
case 63:
/* Line 1464 of yacc.c */
-#line 441 "libmemcached/options/parser.yy"
+#line 440 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT;
;}
case 64:
/* Line 1464 of yacc.c */
-#line 445 "libmemcached/options/parser.yy"
+#line 444 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA;
;}
case 65:
/* Line 1464 of yacc.c */
-#line 449 "libmemcached/options/parser.yy"
+#line 448 "libmemcached/options/parser.yy"
{
(yyval.distribution)= MEMCACHED_DISTRIBUTION_RANDOM;
;}
/* Line 1464 of yacc.c */
-#line 2092 "libmemcached/options/parser.cc"
+#line 2091 "libmemcached/options/parser.cc"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
/* Line 1684 of yacc.c */
-#line 454 "libmemcached/options/parser.yy"
+#line 453 "libmemcached/options/parser.yy"
void Context::start()