From 81416ab2d4fe60d5c71ea11326a351993c539002 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Mon, 28 Mar 2011 11:14:29 -0700 Subject: [PATCH] Fix need for permissive.-------------- This line and the following will be ignored -------------- modified: libmemcached/options/parser.cc libmemcached/options/parser.yy libmemcached/options/scanner.cc libmemcached/options/scanner.h libmemcached/options/scanner.l --- libmemcached/options/parser.cc | 171 ++++++++--------- libmemcached/options/parser.yy | 15 +- libmemcached/options/scanner.cc | 312 ++++++++++++++++---------------- libmemcached/options/scanner.h | 27 ++- libmemcached/options/scanner.l | 39 ++-- 5 files changed, 278 insertions(+), 286 deletions(-) diff --git a/libmemcached/options/parser.cc b/libmemcached/options/parser.cc index a01e6c7f..8b7134a9 100644 --- a/libmemcached/options/parser.cc +++ b/libmemcached/options/parser.cc @@ -102,17 +102,10 @@ 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); -} - /* Line 189 of yacc.c */ -#line 116 "libmemcached/options/parser.cc" +#line 109 "libmemcached/options/parser.cc" /* Enabling traces. */ #ifndef YYDEBUG @@ -223,7 +216,7 @@ void Context::start() /* Line 264 of yacc.c */ -#line 227 "libmemcached/options/parser.cc" +#line 220 "libmemcached/options/parser.cc" #ifdef short # undef short @@ -533,14 +526,14 @@ static const yytype_int8 yyrhs[] = /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 164, 164, 165, 169, 171, 173, 175, 180, 185, - 189, 193, 204, 211, 214, 218, 222, 229, 236, 247, - 254, 261, 268, 274, 278, 282, 286, 290, 294, 298, - 302, 306, 310, 314, 318, 325, 329, 333, 337, 341, - 345, 349, 353, 357, 361, 365, 369, 373, 377, 381, - 388, 395, 405, 411, 417, 423, 429, 438, 442, 446, - 450, 454, 458, 462, 466, 470, 477, 481, 489, 493, - 497 + 0, 157, 157, 158, 162, 164, 166, 168, 173, 178, + 182, 186, 197, 204, 207, 211, 215, 222, 229, 240, + 247, 254, 261, 267, 271, 275, 279, 283, 287, 291, + 295, 299, 303, 307, 311, 318, 322, 326, 330, 334, + 338, 342, 346, 350, 354, 358, 362, 366, 370, 374, + 381, 388, 398, 404, 410, 416, 422, 431, 435, 439, + 443, 447, 451, 455, 459, 463, 470, 474, 482, 486, + 490 }; #endif @@ -1535,28 +1528,28 @@ yyreduce: case 4: /* Line 1464 of yacc.c */ -#line 170 "libmemcached/options/parser.yy" +#line 163 "libmemcached/options/parser.yy" { ;} break; case 5: /* Line 1464 of yacc.c */ -#line 172 "libmemcached/options/parser.yy" +#line 165 "libmemcached/options/parser.yy" { ;} break; case 6: /* Line 1464 of yacc.c */ -#line 174 "libmemcached/options/parser.yy" +#line 167 "libmemcached/options/parser.yy" { ;} break; case 7: /* Line 1464 of yacc.c */ -#line 176 "libmemcached/options/parser.yy" +#line 169 "libmemcached/options/parser.yy" { context->set_end(); YYACCEPT; @@ -1566,7 +1559,7 @@ yyreduce: case 8: /* Line 1464 of yacc.c */ -#line 181 "libmemcached/options/parser.yy" +#line 174 "libmemcached/options/parser.yy" { context->rc= MEMCACHED_PARSE_USER_ERROR; parser_abort(context, NULL); @@ -1576,7 +1569,7 @@ yyreduce: case 9: /* Line 1464 of yacc.c */ -#line 186 "libmemcached/options/parser.yy" +#line 179 "libmemcached/options/parser.yy" { memcached_reset(context->memc); ;} @@ -1585,7 +1578,7 @@ yyreduce: case 10: /* Line 1464 of yacc.c */ -#line 190 "libmemcached/options/parser.yy" +#line 183 "libmemcached/options/parser.yy" { yydebug= 1; ;} @@ -1594,7 +1587,7 @@ yyreduce: case 11: /* Line 1464 of yacc.c */ -#line 194 "libmemcached/options/parser.yy" +#line 187 "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) { @@ -1606,7 +1599,7 @@ yyreduce: case 12: /* Line 1464 of yacc.c */ -#line 205 "libmemcached/options/parser.yy" +#line 198 "libmemcached/options/parser.yy" { if ((context->rc= memcached_server_add_parsed(context->memc, (yyvsp[(2) - (2)].server).c_str, (yyvsp[(2) - (2)].server).length, (yyvsp[(2) - (2)].server).port, 0)) != MEMCACHED_SUCCESS) { @@ -1618,7 +1611,7 @@ yyreduce: case 13: /* Line 1464 of yacc.c */ -#line 212 "libmemcached/options/parser.yy" +#line 205 "libmemcached/options/parser.yy" { ;} break; @@ -1626,7 +1619,7 @@ yyreduce: case 14: /* Line 1464 of yacc.c */ -#line 215 "libmemcached/options/parser.yy" +#line 208 "libmemcached/options/parser.yy" { memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length); ;} @@ -1635,7 +1628,7 @@ yyreduce: case 16: /* Line 1464 of yacc.c */ -#line 223 "libmemcached/options/parser.yy" +#line 216 "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) { @@ -1647,7 +1640,7 @@ yyreduce: case 17: /* Line 1464 of yacc.c */ -#line 230 "libmemcached/options/parser.yy" +#line 223 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (2)].distribution))) != MEMCACHED_SUCCESS) { @@ -1659,7 +1652,7 @@ yyreduce: case 18: /* Line 1464 of yacc.c */ -#line 237 "libmemcached/options/parser.yy" +#line 230 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (4)].distribution))) != MEMCACHED_SUCCESS) { @@ -1675,7 +1668,7 @@ yyreduce: case 19: /* Line 1464 of yacc.c */ -#line 248 "libmemcached/options/parser.yy" +#line 241 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, (yyvsp[(2) - (2)].hash))) != MEMCACHED_SUCCESS) { @@ -1687,7 +1680,7 @@ yyreduce: case 20: /* Line 1464 of yacc.c */ -#line 255 "libmemcached/options/parser.yy" +#line 248 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (2)].behavior), (yyvsp[(2) - (2)].number))) != MEMCACHED_SUCCESS) { @@ -1699,7 +1692,7 @@ yyreduce: case 21: /* Line 1464 of yacc.c */ -#line 262 "libmemcached/options/parser.yy" +#line 255 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (1)].behavior), true)) != MEMCACHED_SUCCESS) { @@ -1711,7 +1704,7 @@ yyreduce: case 22: /* Line 1464 of yacc.c */ -#line 269 "libmemcached/options/parser.yy" +#line 262 "libmemcached/options/parser.yy" { ;} break; @@ -1719,7 +1712,7 @@ yyreduce: case 23: /* Line 1464 of yacc.c */ -#line 275 "libmemcached/options/parser.yy" +#line 268 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT; ;} @@ -1728,7 +1721,7 @@ yyreduce: case 24: /* Line 1464 of yacc.c */ -#line 279 "libmemcached/options/parser.yy" +#line 272 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK; ;} @@ -1737,7 +1730,7 @@ yyreduce: case 25: /* Line 1464 of yacc.c */ -#line 283 "libmemcached/options/parser.yy" +#line 276 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK; ;} @@ -1746,7 +1739,7 @@ yyreduce: case 26: /* Line 1464 of yacc.c */ -#line 287 "libmemcached/options/parser.yy" +#line 280 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH; ;} @@ -1755,7 +1748,7 @@ yyreduce: case 27: /* Line 1464 of yacc.c */ -#line 291 "libmemcached/options/parser.yy" +#line 284 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS; ;} @@ -1764,7 +1757,7 @@ yyreduce: case 28: /* Line 1464 of yacc.c */ -#line 295 "libmemcached/options/parser.yy" +#line 288 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT; ;} @@ -1773,7 +1766,7 @@ yyreduce: case 29: /* Line 1464 of yacc.c */ -#line 299 "libmemcached/options/parser.yy" +#line 292 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT; ;} @@ -1782,7 +1775,7 @@ yyreduce: case 30: /* Line 1464 of yacc.c */ -#line 303 "libmemcached/options/parser.yy" +#line 296 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT; ;} @@ -1791,7 +1784,7 @@ yyreduce: case 31: /* Line 1464 of yacc.c */ -#line 307 "libmemcached/options/parser.yy" +#line 300 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT; ;} @@ -1800,7 +1793,7 @@ yyreduce: case 32: /* Line 1464 of yacc.c */ -#line 311 "libmemcached/options/parser.yy" +#line 304 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT; ;} @@ -1809,7 +1802,7 @@ yyreduce: case 33: /* Line 1464 of yacc.c */ -#line 315 "libmemcached/options/parser.yy" +#line 308 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE; ;} @@ -1818,7 +1811,7 @@ yyreduce: case 34: /* Line 1464 of yacc.c */ -#line 319 "libmemcached/options/parser.yy" +#line 312 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE; ;} @@ -1827,7 +1820,7 @@ yyreduce: case 35: /* Line 1464 of yacc.c */ -#line 326 "libmemcached/options/parser.yy" +#line 319 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS; ;} @@ -1836,7 +1829,7 @@ yyreduce: case 36: /* Line 1464 of yacc.c */ -#line 330 "libmemcached/options/parser.yy" +#line 323 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL; ;} @@ -1845,7 +1838,7 @@ yyreduce: case 37: /* Line 1464 of yacc.c */ -#line 334 "libmemcached/options/parser.yy" +#line 327 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS; ;} @@ -1854,7 +1847,7 @@ yyreduce: case 38: /* Line 1464 of yacc.c */ -#line 338 "libmemcached/options/parser.yy" +#line 331 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_CACHE_LOOKUPS; ;} @@ -1863,7 +1856,7 @@ yyreduce: case 39: /* Line 1464 of yacc.c */ -#line 342 "libmemcached/options/parser.yy" +#line 335 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY; ;} @@ -1872,7 +1865,7 @@ yyreduce: case 40: /* Line 1464 of yacc.c */ -#line 346 "libmemcached/options/parser.yy" +#line 339 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED; ;} @@ -1881,7 +1874,7 @@ yyreduce: case 41: /* Line 1464 of yacc.c */ -#line 350 "libmemcached/options/parser.yy" +#line 343 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY; ;} @@ -1890,7 +1883,7 @@ yyreduce: case 42: /* Line 1464 of yacc.c */ -#line 354 "libmemcached/options/parser.yy" +#line 347 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ; ;} @@ -1899,7 +1892,7 @@ yyreduce: case 43: /* Line 1464 of yacc.c */ -#line 358 "libmemcached/options/parser.yy" +#line 351 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS; ;} @@ -1908,7 +1901,7 @@ yyreduce: case 44: /* Line 1464 of yacc.c */ -#line 362 "libmemcached/options/parser.yy" +#line 355 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS; ;} @@ -1917,7 +1910,7 @@ yyreduce: case 45: /* Line 1464 of yacc.c */ -#line 366 "libmemcached/options/parser.yy" +#line 359 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY; ;} @@ -1926,7 +1919,7 @@ yyreduce: case 46: /* Line 1464 of yacc.c */ -#line 370 "libmemcached/options/parser.yy" +#line 363 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE; ;} @@ -1935,7 +1928,7 @@ yyreduce: case 47: /* Line 1464 of yacc.c */ -#line 374 "libmemcached/options/parser.yy" +#line 367 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE; ;} @@ -1944,7 +1937,7 @@ yyreduce: case 48: /* Line 1464 of yacc.c */ -#line 378 "libmemcached/options/parser.yy" +#line 371 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP; ;} @@ -1953,7 +1946,7 @@ yyreduce: case 49: /* Line 1464 of yacc.c */ -#line 382 "libmemcached/options/parser.yy" +#line 375 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY; ;} @@ -1962,7 +1955,7 @@ yyreduce: case 50: /* Line 1464 of yacc.c */ -#line 389 "libmemcached/options/parser.yy" +#line 382 "libmemcached/options/parser.yy" { if ((context->rc= memcached_server_add_parsed(context->memc, (yyvsp[(1) - (1)].server).c_str, (yyvsp[(1) - (1)].server).length, (yyvsp[(1) - (1)].server).port, 0)) != MEMCACHED_SUCCESS) { @@ -1974,7 +1967,7 @@ yyreduce: case 51: /* Line 1464 of yacc.c */ -#line 396 "libmemcached/options/parser.yy" +#line 389 "libmemcached/options/parser.yy" { if ((context->rc= memcached_server_add_parsed(context->memc, (yyvsp[(3) - (3)].server).c_str, (yyvsp[(3) - (3)].server).length, (yyvsp[(3) - (3)].server).port, 0)) != MEMCACHED_SUCCESS) { @@ -1986,7 +1979,7 @@ yyreduce: case 52: /* Line 1464 of yacc.c */ -#line 406 "libmemcached/options/parser.yy" +#line 399 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (2)].string).c_str; (yyval.server).length= (yyvsp[(1) - (2)].string).length -1; // -1 to remove : @@ -1997,7 +1990,7 @@ yyreduce: case 53: /* Line 1464 of yacc.c */ -#line 412 "libmemcached/options/parser.yy" +#line 405 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (1)].string).c_str; (yyval.server).length= (yyvsp[(1) - (1)].string).length; @@ -2008,7 +2001,7 @@ yyreduce: case 54: /* Line 1464 of yacc.c */ -#line 418 "libmemcached/options/parser.yy" +#line 411 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (1)].string).c_str; (yyval.server).length= (yyvsp[(1) - (1)].string).length; @@ -2019,7 +2012,7 @@ yyreduce: case 55: /* Line 1464 of yacc.c */ -#line 424 "libmemcached/options/parser.yy" +#line 417 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (2)].string).c_str; (yyval.server).length= (yyvsp[(1) - (2)].string).length -1; // -1 to remove : @@ -2030,7 +2023,7 @@ yyreduce: case 56: /* Line 1464 of yacc.c */ -#line 430 "libmemcached/options/parser.yy" +#line 423 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (1)].string).c_str; (yyval.server).length= (yyvsp[(1) - (1)].string).length; @@ -2041,7 +2034,7 @@ yyreduce: case 57: /* Line 1464 of yacc.c */ -#line 439 "libmemcached/options/parser.yy" +#line 432 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_MD5; ;} @@ -2050,7 +2043,7 @@ yyreduce: case 58: /* Line 1464 of yacc.c */ -#line 443 "libmemcached/options/parser.yy" +#line 436 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_CRC; ;} @@ -2059,7 +2052,7 @@ yyreduce: case 59: /* Line 1464 of yacc.c */ -#line 447 "libmemcached/options/parser.yy" +#line 440 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1_64; ;} @@ -2068,7 +2061,7 @@ yyreduce: case 60: /* Line 1464 of yacc.c */ -#line 451 "libmemcached/options/parser.yy" +#line 444 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1A_64; ;} @@ -2077,7 +2070,7 @@ yyreduce: case 61: /* Line 1464 of yacc.c */ -#line 455 "libmemcached/options/parser.yy" +#line 448 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1_32; ;} @@ -2086,7 +2079,7 @@ yyreduce: case 62: /* Line 1464 of yacc.c */ -#line 459 "libmemcached/options/parser.yy" +#line 452 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1A_32; ;} @@ -2095,7 +2088,7 @@ yyreduce: case 63: /* Line 1464 of yacc.c */ -#line 463 "libmemcached/options/parser.yy" +#line 456 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_HSIEH; ;} @@ -2104,7 +2097,7 @@ yyreduce: case 64: /* Line 1464 of yacc.c */ -#line 467 "libmemcached/options/parser.yy" +#line 460 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_MURMUR; ;} @@ -2113,7 +2106,7 @@ yyreduce: case 65: /* Line 1464 of yacc.c */ -#line 471 "libmemcached/options/parser.yy" +#line 464 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_JENKINS; ;} @@ -2122,7 +2115,7 @@ yyreduce: case 66: /* Line 1464 of yacc.c */ -#line 478 "libmemcached/options/parser.yy" +#line 471 "libmemcached/options/parser.yy" { (yyval.string)= (yyvsp[(1) - (1)].string); ;} @@ -2131,7 +2124,7 @@ yyreduce: case 67: /* Line 1464 of yacc.c */ -#line 482 "libmemcached/options/parser.yy" +#line 475 "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 @@ -2141,7 +2134,7 @@ yyreduce: case 68: /* Line 1464 of yacc.c */ -#line 490 "libmemcached/options/parser.yy" +#line 483 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT; ;} @@ -2150,7 +2143,7 @@ yyreduce: case 69: /* Line 1464 of yacc.c */ -#line 494 "libmemcached/options/parser.yy" +#line 487 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA; ;} @@ -2159,7 +2152,7 @@ yyreduce: case 70: /* Line 1464 of yacc.c */ -#line 498 "libmemcached/options/parser.yy" +#line 491 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_RANDOM; ;} @@ -2168,7 +2161,7 @@ yyreduce: /* Line 1464 of yacc.c */ -#line 2172 "libmemcached/options/parser.cc" +#line 2165 "libmemcached/options/parser.cc" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2379,3 +2372,13 @@ yyreturn: +/* Line 1684 of yacc.c */ +#line 496 "libmemcached/options/parser.yy" + + +void Context::start() +{ + config_parse(this, (void **)scanner); +} + + diff --git a/libmemcached/options/parser.yy b/libmemcached/options/parser.yy index 6aa47792..db311402 100644 --- a/libmemcached/options/parser.yy +++ b/libmemcached/options/parser.yy @@ -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 @@ -499,3 +492,11 @@ distribution: $$= MEMCACHED_DISTRIBUTION_RANDOM; } ; + +%% + +void Context::start() +{ + config_parse(this, (void **)scanner); +} + diff --git a/libmemcached/options/scanner.cc b/libmemcached/options/scanner.cc index 746799b2..8b5aa8e3 100644 --- a/libmemcached/options/scanner.cc +++ b/libmemcached/options/scanner.cc @@ -3,7 +3,6 @@ #pragma GCC diagnostic ignored "-Wold-style-cast" #pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-fpermissive" #include #include @@ -15,7 +14,7 @@ -#line 19 "libmemcached/options/scanner.cc" +#line 18 "libmemcached/options/scanner.cc" #define YY_INT_ALIGNED short int @@ -227,6 +226,11 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + /* %if-not-reentrant */ /* %endif */ @@ -257,11 +261,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -284,7 +283,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -381,7 +380,7 @@ static void config__init_buffer (YY_BUFFER_STATE b,FILE *file ,yyscan_t yyscanne YY_BUFFER_STATE config__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE config__scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE config__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE config__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); /* %endif */ @@ -1293,16 +1292,16 @@ static yyconst flex_int16_t yy_chk[2274] = static yyconst flex_int16_t yy_rule_linenum[96] = { 0, - 77, 80, 82, 84, 88, 89, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 151, 152, 154, 155, 156, - 157, 158, 159, 161, 162, 165, 170, 171, 172, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 184, 190, - 196, 202, 208, 214, 220 + 76, 79, 81, 83, 87, 88, 90, 91, 92, 93, + 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, + 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 150, 151, 153, 154, 155, + 156, 157, 158, 160, 161, 164, 169, 170, 171, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 183, 189, + 195, 201, 207, 213, 219 } ; @@ -1319,46 +1318,46 @@ static yyconst flex_int16_t yy_rule_linenum[96] = * Libmemcached Scanner and Parser * * Copyright (C) 2011 DataDifferental, http://datadifferential.com - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program 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 Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ -#line 38 "libmemcached/options/scanner.l" +#line 37 "libmemcached/options/scanner.l" #include #include #define PARAM config_get_extra(yyscanner) -static void get_lex_chars(char* buffer, int& result, int max_size, Context *context) -{ - if (context->pos >= context->length) - { - result= YY_NULL; - } - else - { - result= context->length - context->pos; - result > (int)max_size ? result = max_size : 0; - memcpy(buffer, context->buf + context->pos, result); - context->pos += result; - } +#define get_lex_chars(buffer, result, max_size, context) \ +{ \ + if (context->pos >= context->length) \ + { \ + result= YY_NULL; \ + } \ + else \ + { \ + result= context->length - context->pos; \ + result > max_size ? result = max_size : 0; \ + memcpy(buffer, context->buf + context->pos, result); \ + context->pos += result; \ + } \ } #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM) -#line 1362 "libmemcached/options/scanner.cc" +#line 1361 "libmemcached/options/scanner.cc" #define INITIAL 0 @@ -1394,8 +1393,8 @@ struct yyguts_t size_t yy_buffer_stack_max; /**< capacity of stack. */ YY_BUFFER_STATE * yy_buffer_stack; /**< Stack as an array. */ char yy_hold_char; - int yy_n_chars; - int yyleng_r; + yy_size_t yy_n_chars; + yy_size_t yyleng_r; char *yy_c_buf_p; int yy_init; int yy_start; @@ -1458,7 +1457,7 @@ FILE *config_get_out (yyscan_t yyscanner ); void config_set_out (FILE * out_str ,yyscan_t yyscanner ); -int config_get_leng (yyscan_t yyscanner ); +yy_size_t config_get_leng (yyscan_t yyscanner ); char *config_get_text (yyscan_t yyscanner ); @@ -1466,10 +1465,6 @@ int config_get_lineno (yyscan_t yyscanner ); void config_set_lineno (int line_number ,yyscan_t yyscanner ); -int config_get_column (yyscan_t yyscanner ); - -void config_set_column (int column_no ,yyscan_t yyscanner ); - /* %if-bison-bridge */ YYSTYPE * config_get_lval (yyscan_t yyscanner ); @@ -1533,7 +1528,7 @@ static int input (yyscan_t yyscanner ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) +#define ECHO fwrite( yytext, yyleng, 1, yyout ) /* %endif */ /* %if-c++-only C++ definition */ /* %endif */ @@ -1548,7 +1543,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - unsigned n; \ + yy_size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -1661,11 +1656,11 @@ YY_DECL struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; /* %% [7.0] user's declarations go here */ -#line 74 "libmemcached/options/scanner.l" +#line 73 "libmemcached/options/scanner.l" -#line 1669 "libmemcached/options/scanner.cc" +#line 1664 "libmemcached/options/scanner.cc" yylval = yylval_param; @@ -1784,18 +1779,18 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 77 "libmemcached/options/scanner.l" +#line 76 "libmemcached/options/scanner.l" { return yytext[0];} YY_BREAK case 2: YY_RULE_SETUP -#line 80 "libmemcached/options/scanner.l" +#line 79 "libmemcached/options/scanner.l" { yylval->number = atoi(yytext); return (NUMBER); } YY_BREAK case 3: /* rule 3 can match eol */ YY_RULE_SETUP -#line 82 "libmemcached/options/scanner.l" +#line 81 "libmemcached/options/scanner.l" ; /* skip whitespace */ YY_BREAK case 4: @@ -1803,369 +1798,369 @@ case 4: yyg->yy_c_buf_p = yy_cp -= 1; YY_DO_BEFORE_ACTION; /* set up yytext again */ YY_RULE_SETUP -#line 84 "libmemcached/options/scanner.l" +#line 83 "libmemcached/options/scanner.l" { return COMMENT; } YY_BREAK case 5: YY_RULE_SETUP -#line 88 "libmemcached/options/scanner.l" +#line 87 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SERVER; } YY_BREAK case 6: YY_RULE_SETUP -#line 89 "libmemcached/options/scanner.l" +#line 88 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SERVERS_OPTION; } YY_BREAK case 7: YY_RULE_SETUP -#line 91 "libmemcached/options/scanner.l" +#line 90 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return VERIFY_KEY; } YY_BREAK case 8: YY_RULE_SETUP -#line 92 "libmemcached/options/scanner.l" +#line 91 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return VERIFY_KEY; } YY_BREAK case 9: YY_RULE_SETUP -#line 93 "libmemcached/options/scanner.l" +#line 92 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return AUTO_EJECT_HOSTS; } YY_BREAK case 10: YY_RULE_SETUP -#line 94 "libmemcached/options/scanner.l" +#line 93 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return AUTO_EJECT_HOSTS; } YY_BREAK case 11: YY_RULE_SETUP -#line 95 "libmemcached/options/scanner.l" +#line 94 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return BINARY_PROTOCOL; } YY_BREAK case 12: YY_RULE_SETUP -#line 96 "libmemcached/options/scanner.l" +#line 95 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return BINARY_PROTOCOL; } YY_BREAK case 13: YY_RULE_SETUP -#line 97 "libmemcached/options/scanner.l" +#line 96 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return BUFFER_REQUESTS; } YY_BREAK case 14: YY_RULE_SETUP -#line 98 "libmemcached/options/scanner.l" +#line 97 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return BUFFER_REQUESTS; } YY_BREAK case 15: YY_RULE_SETUP -#line 99 "libmemcached/options/scanner.l" +#line 98 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return CACHE_LOOKUPS; } YY_BREAK case 16: YY_RULE_SETUP -#line 100 "libmemcached/options/scanner.l" +#line 99 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return CACHE_LOOKUPS; } YY_BREAK case 17: YY_RULE_SETUP -#line 101 "libmemcached/options/scanner.l" +#line 100 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return CONFIGURE_FILE; } YY_BREAK case 18: YY_RULE_SETUP -#line 102 "libmemcached/options/scanner.l" +#line 101 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return CONFIGURE_FILE; } YY_BREAK case 19: YY_RULE_SETUP -#line 103 "libmemcached/options/scanner.l" +#line 102 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return CONNECT_TIMEOUT; } YY_BREAK case 20: YY_RULE_SETUP -#line 104 "libmemcached/options/scanner.l" +#line 103 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return CONNECT_TIMEOUT; } YY_BREAK case 21: YY_RULE_SETUP -#line 105 "libmemcached/options/scanner.l" +#line 104 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return DISTRIBUTION; } YY_BREAK case 22: YY_RULE_SETUP -#line 106 "libmemcached/options/scanner.l" +#line 105 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return HASH; } YY_BREAK case 23: YY_RULE_SETUP -#line 107 "libmemcached/options/scanner.l" +#line 106 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; } YY_BREAK case 24: YY_RULE_SETUP -#line 108 "libmemcached/options/scanner.l" +#line 107 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; } YY_BREAK case 25: YY_RULE_SETUP -#line 109 "libmemcached/options/scanner.l" +#line 108 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return IO_BYTES_WATERMARK; } YY_BREAK case 26: YY_RULE_SETUP -#line 110 "libmemcached/options/scanner.l" +#line 109 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return IO_BYTES_WATERMARK; } YY_BREAK case 27: YY_RULE_SETUP -#line 111 "libmemcached/options/scanner.l" +#line 110 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return IO_KEY_PREFETCH; } YY_BREAK case 28: YY_RULE_SETUP -#line 112 "libmemcached/options/scanner.l" +#line 111 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return IO_KEY_PREFETCH; } YY_BREAK case 29: YY_RULE_SETUP -#line 113 "libmemcached/options/scanner.l" +#line 112 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return IO_MSG_WATERMARK; } YY_BREAK case 30: YY_RULE_SETUP -#line 114 "libmemcached/options/scanner.l" +#line 113 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return IO_MSG_WATERMARK; } YY_BREAK case 31: YY_RULE_SETUP -#line 115 "libmemcached/options/scanner.l" +#line 114 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return KETAMA_WEIGHTED; } YY_BREAK case 32: YY_RULE_SETUP -#line 116 "libmemcached/options/scanner.l" +#line 115 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return KETAMA_WEIGHTED; } YY_BREAK case 33: YY_RULE_SETUP -#line 117 "libmemcached/options/scanner.l" +#line 116 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return NOREPLY; } YY_BREAK case 34: YY_RULE_SETUP -#line 118 "libmemcached/options/scanner.l" +#line 117 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } YY_BREAK case 35: YY_RULE_SETUP -#line 119 "libmemcached/options/scanner.l" +#line 118 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } YY_BREAK case 36: YY_RULE_SETUP -#line 120 "libmemcached/options/scanner.l" +#line 119 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return POLL_TIMEOUT; } YY_BREAK case 37: YY_RULE_SETUP -#line 121 "libmemcached/options/scanner.l" +#line 120 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return POLL_TIMEOUT; } YY_BREAK case 38: YY_RULE_SETUP -#line 122 "libmemcached/options/scanner.l" +#line 121 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } YY_BREAK case 39: YY_RULE_SETUP -#line 123 "libmemcached/options/scanner.l" +#line 122 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } YY_BREAK case 40: YY_RULE_SETUP -#line 124 "libmemcached/options/scanner.l" +#line 123 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RCV_TIMEOUT; } YY_BREAK case 41: YY_RULE_SETUP -#line 125 "libmemcached/options/scanner.l" +#line 124 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RCV_TIMEOUT; } YY_BREAK case 42: YY_RULE_SETUP -#line 126 "libmemcached/options/scanner.l" +#line 125 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RETRY_TIMEOUT; } YY_BREAK case 43: YY_RULE_SETUP -#line 127 "libmemcached/options/scanner.l" +#line 126 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RETRY_TIMEOUT; } YY_BREAK case 44: YY_RULE_SETUP -#line 128 "libmemcached/options/scanner.l" +#line 127 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; } YY_BREAK case 45: YY_RULE_SETUP -#line 129 "libmemcached/options/scanner.l" +#line 128 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; } YY_BREAK case 46: YY_RULE_SETUP -#line 130 "libmemcached/options/scanner.l" +#line 129 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SND_TIMEOUT; } YY_BREAK case 47: YY_RULE_SETUP -#line 131 "libmemcached/options/scanner.l" +#line 130 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SND_TIMEOUT; } YY_BREAK case 48: YY_RULE_SETUP -#line 132 "libmemcached/options/scanner.l" +#line 131 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SOCKET_RECV_SIZE; } YY_BREAK case 49: YY_RULE_SETUP -#line 133 "libmemcached/options/scanner.l" +#line 132 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SOCKET_RECV_SIZE; } YY_BREAK case 50: YY_RULE_SETUP -#line 134 "libmemcached/options/scanner.l" +#line 133 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SOCKET_SEND_SIZE; } YY_BREAK case 51: YY_RULE_SETUP -#line 135 "libmemcached/options/scanner.l" +#line 134 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SOCKET_SEND_SIZE; } YY_BREAK case 52: YY_RULE_SETUP -#line 136 "libmemcached/options/scanner.l" +#line 135 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SORT_HOSTS; } YY_BREAK case 53: YY_RULE_SETUP -#line 137 "libmemcached/options/scanner.l" +#line 136 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SORT_HOSTS; } YY_BREAK case 54: YY_RULE_SETUP -#line 138 "libmemcached/options/scanner.l" +#line 137 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SUPPORT_CAS; } YY_BREAK case 55: YY_RULE_SETUP -#line 139 "libmemcached/options/scanner.l" +#line 138 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SUPPORT_CAS; } YY_BREAK case 56: YY_RULE_SETUP -#line 140 "libmemcached/options/scanner.l" +#line 139 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return _TCP_NODELAY; } YY_BREAK case 57: YY_RULE_SETUP -#line 141 "libmemcached/options/scanner.l" +#line 140 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return _TCP_NODELAY; } YY_BREAK case 58: YY_RULE_SETUP -#line 142 "libmemcached/options/scanner.l" +#line 141 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return _TCP_KEEPALIVE; } YY_BREAK case 59: YY_RULE_SETUP -#line 143 "libmemcached/options/scanner.l" +#line 142 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return _TCP_KEEPALIVE; } YY_BREAK case 60: YY_RULE_SETUP -#line 144 "libmemcached/options/scanner.l" +#line 143 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return _TCP_KEEPIDLE; } YY_BREAK case 61: YY_RULE_SETUP -#line 145 "libmemcached/options/scanner.l" +#line 144 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return _TCP_KEEPIDLE; } YY_BREAK case 62: YY_RULE_SETUP -#line 146 "libmemcached/options/scanner.l" +#line 145 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return USER_DATA; } YY_BREAK case 63: YY_RULE_SETUP -#line 147 "libmemcached/options/scanner.l" +#line 146 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return USER_DATA; } YY_BREAK case 64: YY_RULE_SETUP -#line 148 "libmemcached/options/scanner.l" +#line 147 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return USE_UDP; } YY_BREAK case 65: YY_RULE_SETUP -#line 149 "libmemcached/options/scanner.l" +#line 148 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return USE_UDP; } YY_BREAK case 66: YY_RULE_SETUP -#line 151 "libmemcached/options/scanner.l" +#line 150 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return PREFIX_KEY; } YY_BREAK case 67: YY_RULE_SETUP -#line 152 "libmemcached/options/scanner.l" +#line 151 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return PREFIX_KEY; } YY_BREAK case 68: YY_RULE_SETUP -#line 154 "libmemcached/options/scanner.l" +#line 153 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return INCLUDE; } YY_BREAK case 69: YY_RULE_SETUP -#line 155 "libmemcached/options/scanner.l" +#line 154 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return RESET; } YY_BREAK case 70: YY_RULE_SETUP -#line 156 "libmemcached/options/scanner.l" +#line 155 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return PARSER_DEBUG; } YY_BREAK case 71: YY_RULE_SETUP -#line 157 "libmemcached/options/scanner.l" +#line 156 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return SERVERS; } YY_BREAK case 72: YY_RULE_SETUP -#line 158 "libmemcached/options/scanner.l" +#line 157 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return END; } YY_BREAK case 73: YY_RULE_SETUP -#line 159 "libmemcached/options/scanner.l" +#line 158 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return ERROR; } YY_BREAK case 74: YY_RULE_SETUP -#line 161 "libmemcached/options/scanner.l" +#line 160 "libmemcached/options/scanner.l" { return TRUE; } YY_BREAK case 75: YY_RULE_SETUP -#line 162 "libmemcached/options/scanner.l" +#line 161 "libmemcached/options/scanner.l" { return FALSE; } YY_BREAK case 76: YY_RULE_SETUP -#line 165 "libmemcached/options/scanner.l" +#line 164 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return UNKNOWN_OPTION; @@ -2173,68 +2168,68 @@ YY_RULE_SETUP YY_BREAK case 77: YY_RULE_SETUP -#line 170 "libmemcached/options/scanner.l" +#line 169 "libmemcached/options/scanner.l" { return CONSISTENT; } YY_BREAK case 78: YY_RULE_SETUP -#line 171 "libmemcached/options/scanner.l" +#line 170 "libmemcached/options/scanner.l" { return MODULA; } YY_BREAK case 79: YY_RULE_SETUP -#line 172 "libmemcached/options/scanner.l" +#line 171 "libmemcached/options/scanner.l" { return RANDOM; } YY_BREAK case 80: YY_RULE_SETUP -#line 174 "libmemcached/options/scanner.l" +#line 173 "libmemcached/options/scanner.l" { return MD5; } YY_BREAK case 81: YY_RULE_SETUP -#line 175 "libmemcached/options/scanner.l" +#line 174 "libmemcached/options/scanner.l" { return CRC; } YY_BREAK case 82: YY_RULE_SETUP -#line 176 "libmemcached/options/scanner.l" +#line 175 "libmemcached/options/scanner.l" { return FNV1_64; } YY_BREAK case 83: YY_RULE_SETUP -#line 177 "libmemcached/options/scanner.l" +#line 176 "libmemcached/options/scanner.l" { return FNV1A_64; } YY_BREAK case 84: YY_RULE_SETUP -#line 178 "libmemcached/options/scanner.l" +#line 177 "libmemcached/options/scanner.l" { return FNV1_32; } YY_BREAK case 85: YY_RULE_SETUP -#line 179 "libmemcached/options/scanner.l" +#line 178 "libmemcached/options/scanner.l" { return FNV1A_32; } YY_BREAK case 86: YY_RULE_SETUP -#line 180 "libmemcached/options/scanner.l" +#line 179 "libmemcached/options/scanner.l" { return HSIEH; } YY_BREAK case 87: YY_RULE_SETUP -#line 181 "libmemcached/options/scanner.l" +#line 180 "libmemcached/options/scanner.l" { return MURMUR; } YY_BREAK case 88: YY_RULE_SETUP -#line 182 "libmemcached/options/scanner.l" +#line 181 "libmemcached/options/scanner.l" { return JENKINS; } YY_BREAK case 89: YY_RULE_SETUP -#line 184 "libmemcached/options/scanner.l" -{ +#line 183 "libmemcached/options/scanner.l" +{ yylval->string.c_str = yytext; yylval->string.length = yyleng; return HOSTNAME_WITH_PORT; @@ -2242,8 +2237,8 @@ YY_RULE_SETUP YY_BREAK case 90: YY_RULE_SETUP -#line 190 "libmemcached/options/scanner.l" -{ +#line 189 "libmemcached/options/scanner.l" +{ yylval->string.c_str = yytext; yylval->string.length = yyleng; return HOSTNAME; @@ -2251,7 +2246,7 @@ YY_RULE_SETUP YY_BREAK case 91: YY_RULE_SETUP -#line 196 "libmemcached/options/scanner.l" +#line 195 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; @@ -2260,7 +2255,7 @@ YY_RULE_SETUP YY_BREAK case 92: YY_RULE_SETUP -#line 202 "libmemcached/options/scanner.l" +#line 201 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; @@ -2269,8 +2264,8 @@ YY_RULE_SETUP YY_BREAK case 93: YY_RULE_SETUP -#line 208 "libmemcached/options/scanner.l" -{ +#line 207 "libmemcached/options/scanner.l" +{ yylval->string.c_str = yytext; yylval->string.length = yyleng; return STRING; @@ -2278,7 +2273,7 @@ YY_RULE_SETUP YY_BREAK case 94: YY_RULE_SETUP -#line 214 "libmemcached/options/scanner.l" +#line 213 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; @@ -2287,7 +2282,7 @@ YY_RULE_SETUP YY_BREAK case 95: YY_RULE_SETUP -#line 220 "libmemcached/options/scanner.l" +#line 219 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return UNKNOWN; @@ -2295,10 +2290,10 @@ YY_RULE_SETUP YY_BREAK case 96: YY_RULE_SETUP -#line 225 "libmemcached/options/scanner.l" +#line 224 "libmemcached/options/scanner.l" ECHO; YY_BREAK -#line 2302 "libmemcached/options/scanner.cc" +#line 2297 "libmemcached/options/scanner.cc" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2498,7 +2493,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { - int num_to_read = + yy_size_t num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1; while ( num_to_read <= 0 ) @@ -2512,7 +2507,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) if ( b->yy_is_our_buffer ) { - int new_size = b->yy_buf_size * 2; + yy_size_t new_size = b->yy_buf_size * 2; if ( new_size <= 0 ) b->yy_buf_size += b->yy_buf_size / 8; @@ -2543,7 +2538,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) /* Read in more data. */ YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]), - yyg->yy_n_chars, (size_t) num_to_read ); + yyg->yy_n_chars, num_to_read ); YY_CURRENT_BUFFER_LVALUE->yy_n_chars = yyg->yy_n_chars; } @@ -2690,7 +2685,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) else { /* need more input */ - int offset = yyg->yy_c_buf_p - yyg->yytext_ptr; + yy_size_t offset = yyg->yy_c_buf_p - yyg->yytext_ptr; ++yyg->yy_c_buf_p; switch ( yy_get_next_buffer( yyscanner ) ) @@ -2714,7 +2709,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) case EOB_ACT_END_OF_FILE: { if ( config_wrap(yyscanner ) ) - return EOF; + return 0; if ( ! yyg->yy_did_buffer_switch_on_eof ) YY_NEW_FILE; @@ -3036,7 +3031,7 @@ static void config_ensure_buffer_stack (yyscan_t yyscanner) /* %if-c++-only */ /* %endif */ { - int num_to_alloc; + yy_size_t num_to_alloc; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; if (!yyg->yy_buffer_stack) { @@ -3140,12 +3135,11 @@ YY_BUFFER_STATE config__scan_string (yyconst char * yystr , yyscan_t yyscanner) * @param yyscanner The scanner object. * @return the newly allocated buffer state object. */ -YY_BUFFER_STATE config__scan_bytes (yyconst char * yybytes, int _yybytes_len , yyscan_t yyscanner) +YY_BUFFER_STATE config__scan_bytes (yyconst char * yybytes, yy_size_t _yybytes_len , yyscan_t yyscanner) { YY_BUFFER_STATE b; char *buf; - yy_size_t n; - int i; + yy_size_t n, i; /* Get memory for full buffer, including space for trailing EOB's. */ n = _yybytes_len + 2; @@ -3265,7 +3259,7 @@ FILE *config_get_out (yyscan_t yyscanner) /** Get the length of the current token. * @param yyscanner The scanner object. */ -int config_get_leng (yyscan_t yyscanner) +yy_size_t config_get_leng (yyscan_t yyscanner) { struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; return yyleng; @@ -3564,7 +3558,7 @@ void config_free (void * ptr , yyscan_t yyscanner) /* %ok-for-header */ -#line 225 "libmemcached/options/scanner.l" +#line 224 "libmemcached/options/scanner.l" diff --git a/libmemcached/options/scanner.h b/libmemcached/options/scanner.h index 5c2473f4..4572213d 100644 --- a/libmemcached/options/scanner.h +++ b/libmemcached/options/scanner.h @@ -7,7 +7,6 @@ #pragma GCC diagnostic ignored "-Wold-style-cast" #pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-fpermissive" #include #include @@ -19,7 +18,7 @@ -#line 23 "libmemcached/options/scanner.h" +#line 22 "libmemcached/options/scanner.h" #define YY_INT_ALIGNED short int @@ -188,6 +187,11 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif +#ifndef YY_TYPEDEF_YY_SIZE_T +#define YY_TYPEDEF_YY_SIZE_T +typedef size_t yy_size_t; +#endif + /* %if-not-reentrant */ /* %endif */ @@ -196,11 +200,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; /* %endif */ /* %endif */ -#ifndef YY_TYPEDEF_YY_SIZE_T -#define YY_TYPEDEF_YY_SIZE_T -typedef size_t yy_size_t; -#endif - #ifndef YY_STRUCT_YY_BUFFER_STATE #define YY_STRUCT_YY_BUFFER_STATE struct yy_buffer_state @@ -223,7 +222,7 @@ struct yy_buffer_state /* Number of characters read into yy_ch_buf, not including EOB * characters. */ - int yy_n_chars; + yy_size_t yy_n_chars; /* Whether we "own" the buffer - i.e., we know we created it, * and can realloc() it to grow it, and should free() it to @@ -279,7 +278,7 @@ void config_pop_buffer_state (yyscan_t yyscanner ); YY_BUFFER_STATE config__scan_buffer (char *base,yy_size_t size ,yyscan_t yyscanner ); YY_BUFFER_STATE config__scan_string (yyconst char *yy_str ,yyscan_t yyscanner ); -YY_BUFFER_STATE config__scan_bytes (yyconst char *bytes,int len ,yyscan_t yyscanner ); +YY_BUFFER_STATE config__scan_bytes (yyconst char *bytes,yy_size_t len ,yyscan_t yyscanner ); /* %endif */ @@ -360,7 +359,7 @@ FILE *config_get_out (yyscan_t yyscanner ); void config_set_out (FILE * out_str ,yyscan_t yyscanner ); -int config_get_leng (yyscan_t yyscanner ); +yy_size_t config_get_leng (yyscan_t yyscanner ); char *config_get_text (yyscan_t yyscanner ); @@ -368,10 +367,6 @@ int config_get_lineno (yyscan_t yyscanner ); void config_set_lineno (int line_number ,yyscan_t yyscanner ); -int config_get_column (yyscan_t yyscanner ); - -void config_set_column (int column_no ,yyscan_t yyscanner ); - /* %if-bison-bridge */ YYSTYPE * config_get_lval (yyscan_t yyscanner ); @@ -471,9 +466,9 @@ extern int config_lex \ #undef YY_DECL #endif -#line 225 "libmemcached/options/scanner.l" +#line 224 "libmemcached/options/scanner.l" -#line 478 "libmemcached/options/scanner.h" +#line 473 "libmemcached/options/scanner.h" #undef config_IN_HEADER #endif /* config_HEADER_H */ diff --git a/libmemcached/options/scanner.l b/libmemcached/options/scanner.l index ccfc55aa..b3fce3c3 100644 --- a/libmemcached/options/scanner.l +++ b/libmemcached/options/scanner.l @@ -3,17 +3,17 @@ * Libmemcached Scanner and Parser * * Copyright (C) 2011 DataDifferental, http://datadifferential.com - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program 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 Affero General Public License for more details. - * + * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see . */ @@ -22,7 +22,6 @@ #pragma GCC diagnostic ignored "-Wold-style-cast" #pragma GCC diagnostic ignored "-Wunused-parameter" -#pragma GCC diagnostic ignored "-fpermissive" #include #include @@ -40,19 +39,19 @@ #define PARAM yyget_extra(yyscanner) -static void get_lex_chars(char* buffer, int& result, int max_size, Context *context) -{ - if (context->pos >= context->length) - { - result= YY_NULL; - } - else - { - result= context->length - context->pos; - result > (int)max_size ? result = max_size : 0; - memcpy(buffer, context->buf + context->pos, result); - context->pos += result; - } +#define get_lex_chars(buffer, result, max_size, context) \ +{ \ + if (context->pos >= context->length) \ + { \ + result= YY_NULL; \ + } \ + else \ + { \ + result= context->length - context->pos; \ + result > max_size ? result = max_size : 0; \ + memcpy(buffer, context->buf + context->pos, result); \ + context->pos += result; \ + } \ } @@ -181,13 +180,13 @@ HSIEH { return HSIEH; } MURMUR { return MURMUR; } JENKINS { return JENKINS; } -[[:alnum:]][[:alnum:].]*[[:alpha:]]: { +[[:alnum:]][[:alnum:].]*[[:alpha:]]: { yylval->string.c_str = yytext; yylval->string.length = yyleng; return HOSTNAME_WITH_PORT; } -[[:alnum:]]+"."[[:alpha:].]+[[:alnum:]] { +[[:alnum:]]+"."[[:alpha:].]+[[:alnum:]] { yylval->string.c_str = yytext; yylval->string.length = yyleng; return HOSTNAME; @@ -205,7 +204,7 @@ JENKINS { return JENKINS; } return IPADDRESS; } -[[:alnum:]]+ { +[[:alnum:]]+ { yylval->string.c_str = yytext; yylval->string.length = yyleng; return STRING; -- 2.30.2