From 1591feaed3f710d48f76a6fc8a3a52242ab34fd9 Mon Sep 17 00:00:00 2001 From: Brian Aker Date: Sat, 2 Apr 2011 20:16:18 -0700 Subject: [PATCH] Merge in fixes for deprecated bits in behavior. --- Makefile.am | 1 - libmemcached/behavior.c | 28 +- libmemcached/connect.c | 4 +- libmemcached/constants.h | 1 + libmemcached/options/parser.cc | 515 +++++----- libmemcached/options/parser.h | 103 +- libmemcached/options/parser.yy | 5 - libmemcached/options/scanner.cc | 1627 +++++++++++++++---------------- libmemcached/options/scanner.h | 2 +- libmemcached/options/scanner.l | 2 - libmemcached/strerror.c | 2 + tests/mem_functions.c | 22 +- tests/parser.cc | 8 - unittests/include.am | 20 - unittests/main.cc | 21 - unittests/strings.cc | 131 --- 16 files changed, 1129 insertions(+), 1363 deletions(-) delete mode 100644 unittests/include.am delete mode 100644 unittests/main.cc delete mode 100644 unittests/strings.cc diff --git a/Makefile.am b/Makefile.am index 7a09b51f..a7bf2cc6 100644 --- a/Makefile.am +++ b/Makefile.am @@ -44,7 +44,6 @@ include libmemcached/include.am include clients/include.am include libtest/include.am include libhashkit/include.am -include unittests/include.am include tests/include.am include example/include.am include support/include.am diff --git a/libmemcached/behavior.c b/libmemcached/behavior.c index 0df96033..8a9869f3 100644 --- a/libmemcached/behavior.c +++ b/libmemcached/behavior.c @@ -115,13 +115,14 @@ memcached_return_t memcached_behavior_set(memcached_st *ptr, return memcached_behavior_set_key_hash(ptr, (memcached_hash_t)(data)); case MEMCACHED_BEHAVIOR_KETAMA_HASH: return memcached_behavior_set_distribution_hash(ptr, (memcached_hash_t)(data)); + case MEMCACHED_BEHAVIOR_CACHE_LOOKUPS: - ptr->flags.use_cache_lookups= set_flag(data); - memcached_quit(ptr); - break; + return memcached_set_error_string(ptr, MEMCACHED_DEPRECATED, + memcached_string_with_size("MEMCACHED_BEHAVIOR_CACHE_LOOKUPS has been deprecated.")); + case MEMCACHED_BEHAVIOR_VERIFY_KEY: if (ptr->flags.binary_protocol) - return memcached_set_error_string(ptr, MEMCACHED_FAILURE, + return memcached_set_error_string(ptr, MEMCACHED_INVALID_ARGUMENTS, memcached_string_with_size("MEMCACHED_BEHAVIOR_VERIFY_KEY if the binary protocol has been enabled.")); ptr->flags.verify_key= set_flag(data); break; @@ -154,7 +155,7 @@ memcached_return_t memcached_behavior_set(memcached_st *ptr, memcached_quit(ptr); break; case MEMCACHED_BEHAVIOR_USER_DATA: - return memcached_set_error_string(ptr, MEMCACHED_FAILURE, + return memcached_set_error_string(ptr, MEMCACHED_DEPRECATED, memcached_string_with_size("MEMCACHED_BEHAVIOR_USER_DATA deprecated.")); case MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY: ptr->flags.hash_with_prefix_key= set_flag(data); @@ -171,12 +172,8 @@ memcached_return_t memcached_behavior_set(memcached_st *ptr, break; case MEMCACHED_BEHAVIOR_CORK: { -#ifdef HAVE_MSG_MORE - break; -#else - return memcached_set_error_string(ptr, MEMCACHED_NOT_SUPPORTED, - memcached_string_with_size("MEMCACHED_BEHAVIOR_CORK is not supported on this platform.")); -#endif + return memcached_set_error_string(ptr, MEMCACHED_DEPRECATED, + memcached_string_with_size("MEMCACHED_BEHAVIOR_CORK is now incorporated into the driver by default.")); } break; case MEMCACHED_BEHAVIOR_LOAD_FROM_FILE: @@ -215,8 +212,10 @@ uint64_t memcached_behavior_get(memcached_st *ptr, return ptr->flags.binary_protocol; case MEMCACHED_BEHAVIOR_SUPPORT_CAS: return ptr->flags.support_cas; + case MEMCACHED_BEHAVIOR_CACHE_LOOKUPS: - return ptr->flags.use_cache_lookups; + return true; + case MEMCACHED_BEHAVIOR_NO_BLOCK: return ptr->flags.no_block; case MEMCACHED_BEHAVIOR_BUFFER_REQUESTS: @@ -325,8 +324,9 @@ uint64_t memcached_behavior_get(memcached_st *ptr, return (uint64_t) sock_size; } case MEMCACHED_BEHAVIOR_USER_DATA: - return memcached_set_error_string(ptr, MEMCACHED_FAILURE, - memcached_string_with_size("MEMCACHED_BEHAVIOR_USER_DATA deprecated.")); + memcached_set_error_string(ptr, MEMCACHED_DEPRECATED, + memcached_string_with_size("MEMCACHED_BEHAVIOR_USER_DATA deprecated.")); + return 0; case MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY: return ptr->flags.hash_with_prefix_key; case MEMCACHED_BEHAVIOR_NOREPLY: diff --git a/libmemcached/connect.c b/libmemcached/connect.c index 5e0c046b..9f17f0c3 100644 --- a/libmemcached/connect.c +++ b/libmemcached/connect.c @@ -9,7 +9,8 @@ * */ -#include "common.h" +#include +#include #include #include @@ -89,6 +90,7 @@ static memcached_return_t set_hostinfo(memcached_server_st *server) struct addrinfo hints; char str_port[NI_MAXSERV]; + assert(! server->address_info); // We cover the case where a programming mistake has been made. if (server->address_info) { freeaddrinfo(server->address_info); diff --git a/libmemcached/constants.h b/libmemcached/constants.h index e2d69448..516e50ee 100644 --- a/libmemcached/constants.h +++ b/libmemcached/constants.h @@ -76,6 +76,7 @@ enum memcached_return_t { MEMCACHED_AUTH_CONTINUE, MEMCACHED_PARSE_ERROR, MEMCACHED_PARSE_USER_ERROR, + MEMCACHED_DEPRECATED, MEMCACHED_MAXIMUM_RETURN /* Always add new error code before */ }; diff --git a/libmemcached/options/parser.cc b/libmemcached/options/parser.cc index 8b7134a9..2c1d5ac9 100644 --- a/libmemcached/options/parser.cc +++ b/libmemcached/options/parser.cc @@ -148,58 +148,57 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) AUTO_EJECT_HOSTS = 271, BINARY_PROTOCOL = 272, BUFFER_REQUESTS = 273, - CACHE_LOOKUPS = 274, - CONNECT_TIMEOUT = 275, - DISTRIBUTION = 276, - HASH = 277, - HASH_WITH_PREFIX_KEY = 278, - IO_BYTES_WATERMARK = 279, - IO_KEY_PREFETCH = 280, - IO_MSG_WATERMARK = 281, - KETAMA_HASH = 282, - KETAMA_WEIGHTED = 283, - NOREPLY = 284, - NUMBER_OF_REPLICAS = 285, - POLL_TIMEOUT = 286, - RANDOMIZE_REPLICA_READ = 287, - RCV_TIMEOUT = 288, - RETRY_TIMEOUT = 289, - SERVER_FAILURE_LIMIT = 290, - SND_TIMEOUT = 291, - SOCKET_RECV_SIZE = 292, - SOCKET_SEND_SIZE = 293, - SORT_HOSTS = 294, - SUPPORT_CAS = 295, - _TCP_NODELAY = 296, - _TCP_KEEPALIVE = 297, - _TCP_KEEPIDLE = 298, - USER_DATA = 299, - USE_UDP = 300, - VERIFY_KEY = 301, - PREFIX_KEY = 302, - MD5 = 303, - CRC = 304, - FNV1_64 = 305, - FNV1A_64 = 306, - FNV1_32 = 307, - FNV1A_32 = 308, - HSIEH = 309, - MURMUR = 310, - JENKINS = 311, - CONSISTENT = 312, - MODULA = 313, - RANDOM = 314, - TRUE = 315, - FALSE = 316, - NUMBER = 317, - FLOAT = 318, - HOSTNAME = 319, - HOSTNAME_WITH_PORT = 320, - IPADDRESS = 321, - IPADDRESS_WITH_PORT = 322, - STRING = 323, - QUOTED_STRING = 324, - FILE_PATH = 325 + CONNECT_TIMEOUT = 274, + DISTRIBUTION = 275, + HASH = 276, + HASH_WITH_PREFIX_KEY = 277, + IO_BYTES_WATERMARK = 278, + IO_KEY_PREFETCH = 279, + IO_MSG_WATERMARK = 280, + KETAMA_HASH = 281, + KETAMA_WEIGHTED = 282, + NOREPLY = 283, + NUMBER_OF_REPLICAS = 284, + POLL_TIMEOUT = 285, + RANDOMIZE_REPLICA_READ = 286, + RCV_TIMEOUT = 287, + RETRY_TIMEOUT = 288, + SERVER_FAILURE_LIMIT = 289, + SND_TIMEOUT = 290, + SOCKET_RECV_SIZE = 291, + SOCKET_SEND_SIZE = 292, + SORT_HOSTS = 293, + SUPPORT_CAS = 294, + _TCP_NODELAY = 295, + _TCP_KEEPALIVE = 296, + _TCP_KEEPIDLE = 297, + USER_DATA = 298, + USE_UDP = 299, + VERIFY_KEY = 300, + PREFIX_KEY = 301, + MD5 = 302, + CRC = 303, + FNV1_64 = 304, + FNV1A_64 = 305, + FNV1_32 = 306, + FNV1A_32 = 307, + HSIEH = 308, + MURMUR = 309, + JENKINS = 310, + CONSISTENT = 311, + MODULA = 312, + RANDOM = 313, + TRUE = 314, + FALSE = 315, + NUMBER = 316, + FLOAT = 317, + HOSTNAME = 318, + HOSTNAME_WITH_PORT = 319, + IPADDRESS = 320, + IPADDRESS_WITH_PORT = 321, + STRING = 322, + QUOTED_STRING = 323, + FILE_PATH = 324 }; #endif @@ -216,7 +215,7 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) /* Line 264 of yacc.c */ -#line 220 "libmemcached/options/parser.cc" +#line 219 "libmemcached/options/parser.cc" #ifdef short # undef short @@ -429,22 +428,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 75 +#define YYFINAL 74 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 73 +#define YYLAST 72 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 74 +#define YYNTOKENS 73 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 12 /* YYNRULES -- Number of rules. */ -#define YYNRULES 70 +#define YYNRULES 69 /* YYNRULES -- Number of states. */ -#define YYNSTATES 86 +#define YYNSTATES 85 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 325 +#define YYMAXUTOK 324 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -455,10 +454,10 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 73, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 62, 2, 2, 2, 2, 2, + 2, 2, 72, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 61, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 63, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 62, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -483,8 +482,8 @@ static const yytype_uint8 yytranslate[] = 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 64, 65, 66, - 67, 68, 69, 70, 71, 72 + 55, 56, 57, 58, 59, 60, 63, 64, 65, 66, + 67, 68, 69, 70, 71 }; #if YYDEBUG @@ -497,43 +496,41 @@ static const yytype_uint8 yyprhs[] = 52, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, - 113, 115, 119, 122, 124, 126, 129, 131, 133, 135, - 137, 139, 141, 143, 145, 147, 149, 151, 153, 155, - 157 + 113, 117, 120, 122, 124, 127, 129, 131, 133, 135, + 137, 139, 141, 143, 145, 147, 149, 151, 153, 155 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 75, 0, -1, 76, -1, 75, 73, 76, -1, 77, + 74, 0, -1, 75, -1, 74, 72, 75, -1, 76, -1, 3, -1, 10, -1, 4, -1, 5, -1, 6, - -1, 7, -1, 8, 73, 84, -1, 11, 82, -1, - 13, 81, -1, 9, 84, -1, 78, -1, 47, 84, - -1, 21, 85, -1, 21, 85, 62, 83, -1, 22, - 83, -1, 79, 64, -1, 80, -1, 44, -1, 20, - -1, 26, -1, 24, -1, 25, -1, 30, -1, 31, - -1, 33, -1, 34, -1, 35, -1, 36, -1, 37, - -1, 38, -1, 16, -1, 17, -1, 18, -1, 19, - -1, 23, -1, 28, -1, 29, -1, 32, -1, 39, - -1, 40, -1, 41, -1, 42, -1, 43, -1, 45, - -1, 46, -1, 82, -1, 81, 62, 82, -1, 67, - 64, -1, 66, -1, 70, -1, 69, 64, -1, 68, + -1, 7, -1, 8, 72, 83, -1, 11, 81, -1, + 13, 80, -1, 9, 83, -1, 77, -1, 46, 83, + -1, 20, 84, -1, 20, 84, 61, 82, -1, 21, + 82, -1, 78, 63, -1, 79, -1, 43, -1, 19, + -1, 25, -1, 23, -1, 24, -1, 29, -1, 30, + -1, 32, -1, 33, -1, 34, -1, 35, -1, 36, + -1, 37, -1, 16, -1, 17, -1, 18, -1, 22, + -1, 27, -1, 28, -1, 31, -1, 38, -1, 39, + -1, 40, -1, 41, -1, 42, -1, 44, -1, 45, + -1, 81, -1, 80, 61, 81, -1, 66, 63, -1, + 65, -1, 69, -1, 68, 63, -1, 67, -1, 47, -1, 48, -1, 49, -1, 50, -1, 51, -1, 52, - -1, 53, -1, 54, -1, 55, -1, 56, -1, 70, - -1, 71, -1, 57, -1, 58, -1, 59, -1 + -1, 53, -1, 54, -1, 55, -1, 69, -1, 70, + -1, 56, -1, 57, -1, 58, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 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 + 0, 156, 156, 157, 161, 163, 165, 167, 172, 177, + 181, 185, 196, 203, 206, 210, 214, 221, 228, 239, + 246, 253, 260, 266, 270, 274, 278, 282, 286, 290, + 294, 298, 302, 306, 310, 317, 321, 325, 329, 333, + 337, 341, 345, 349, 353, 357, 361, 365, 369, 376, + 383, 393, 399, 405, 411, 417, 426, 430, 434, 438, + 442, 446, 450, 454, 458, 465, 469, 477, 481, 485 }; #endif @@ -546,21 +543,20 @@ static const char *const yytname[] = "PARSER_DEBUG", "INCLUDE", "CONFIGURE_FILE", "EMPTY_LINE", "SERVER", "SERVERS", "SERVERS_OPTION", "UNKNOWN_OPTION", "UNKNOWN", "AUTO_EJECT_HOSTS", "BINARY_PROTOCOL", "BUFFER_REQUESTS", - "CACHE_LOOKUPS", "CONNECT_TIMEOUT", "DISTRIBUTION", "HASH", - "HASH_WITH_PREFIX_KEY", "IO_BYTES_WATERMARK", "IO_KEY_PREFETCH", - "IO_MSG_WATERMARK", "KETAMA_HASH", "KETAMA_WEIGHTED", "NOREPLY", - "NUMBER_OF_REPLICAS", "POLL_TIMEOUT", "RANDOMIZE_REPLICA_READ", - "RCV_TIMEOUT", "RETRY_TIMEOUT", "SERVER_FAILURE_LIMIT", "SND_TIMEOUT", - "SOCKET_RECV_SIZE", "SOCKET_SEND_SIZE", "SORT_HOSTS", "SUPPORT_CAS", - "_TCP_NODELAY", "_TCP_KEEPALIVE", "_TCP_KEEPIDLE", "USER_DATA", - "USE_UDP", "VERIFY_KEY", "PREFIX_KEY", "MD5", "CRC", "FNV1_64", - "FNV1A_64", "FNV1_32", "FNV1A_32", "HSIEH", "MURMUR", "JENKINS", - "CONSISTENT", "MODULA", "RANDOM", "TRUE", "FALSE", "','", "'='", - "NUMBER", "FLOAT", "HOSTNAME", "HOSTNAME_WITH_PORT", "IPADDRESS", - "IPADDRESS_WITH_PORT", "STRING", "QUOTED_STRING", "FILE_PATH", "' '", - "$accept", "begin", "statement", "expression", "behaviors", - "behavior_number", "behavior_boolean", "server_list", "server", "hash", - "string", "distribution", 0 + "CONNECT_TIMEOUT", "DISTRIBUTION", "HASH", "HASH_WITH_PREFIX_KEY", + "IO_BYTES_WATERMARK", "IO_KEY_PREFETCH", "IO_MSG_WATERMARK", + "KETAMA_HASH", "KETAMA_WEIGHTED", "NOREPLY", "NUMBER_OF_REPLICAS", + "POLL_TIMEOUT", "RANDOMIZE_REPLICA_READ", "RCV_TIMEOUT", "RETRY_TIMEOUT", + "SERVER_FAILURE_LIMIT", "SND_TIMEOUT", "SOCKET_RECV_SIZE", + "SOCKET_SEND_SIZE", "SORT_HOSTS", "SUPPORT_CAS", "_TCP_NODELAY", + "_TCP_KEEPALIVE", "_TCP_KEEPIDLE", "USER_DATA", "USE_UDP", "VERIFY_KEY", + "PREFIX_KEY", "MD5", "CRC", "FNV1_64", "FNV1A_64", "FNV1_32", "FNV1A_32", + "HSIEH", "MURMUR", "JENKINS", "CONSISTENT", "MODULA", "RANDOM", "TRUE", + "FALSE", "','", "'='", "NUMBER", "FLOAT", "HOSTNAME", + "HOSTNAME_WITH_PORT", "IPADDRESS", "IPADDRESS_WITH_PORT", "STRING", + "QUOTED_STRING", "FILE_PATH", "' '", "$accept", "begin", "statement", + "expression", "behaviors", "behavior_number", "behavior_boolean", + "server_list", "server", "hash", "string", "distribution", 0 }; #endif @@ -575,22 +571,21 @@ static const yytype_uint16 yytoknum[] = 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 44, 61, 317, 318, 319, 320, 321, 322, - 323, 324, 325, 32 + 315, 44, 61, 316, 317, 318, 319, 320, 321, 322, + 323, 324, 32 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 74, 75, 75, 76, 76, 76, 76, 76, 76, - 76, 76, 77, 77, 77, 77, 78, 78, 78, 78, - 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, - 79, 79, 79, 79, 79, 80, 80, 80, 80, 80, - 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, - 81, 81, 82, 82, 82, 82, 82, 83, 83, 83, - 83, 83, 83, 83, 83, 83, 84, 84, 85, 85, - 85 + 0, 73, 74, 74, 75, 75, 75, 75, 75, 75, + 75, 75, 76, 76, 76, 76, 77, 77, 77, 77, + 77, 77, 77, 78, 78, 78, 78, 78, 78, 78, + 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, + 79, 79, 79, 79, 79, 79, 79, 79, 79, 80, + 80, 81, 81, 81, 81, 81, 82, 82, 82, 82, + 82, 82, 82, 82, 82, 83, 83, 84, 84, 84 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -601,9 +596,8 @@ static const yytype_uint8 yyr2[] = 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 2, 1, 1, 2, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1 + 3, 2, 1, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -612,44 +606,44 @@ static const yytype_uint8 yyr2[] = static const yytype_uint8 yydefact[] = { 0, 5, 7, 8, 9, 10, 0, 0, 6, 0, - 0, 35, 36, 37, 38, 23, 0, 0, 39, 25, - 26, 24, 40, 41, 27, 28, 42, 29, 30, 31, - 32, 33, 34, 43, 44, 45, 46, 47, 22, 48, - 49, 0, 0, 2, 4, 15, 0, 21, 0, 66, - 67, 14, 53, 0, 56, 0, 54, 12, 13, 50, - 68, 69, 70, 17, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 19, 16, 1, 0, 20, 11, 52, - 55, 0, 0, 3, 51, 18 + 0, 35, 36, 37, 23, 0, 0, 38, 25, 26, + 24, 39, 40, 27, 28, 41, 29, 30, 31, 32, + 33, 34, 42, 43, 44, 45, 46, 22, 47, 48, + 0, 0, 2, 4, 15, 0, 21, 0, 65, 66, + 14, 52, 0, 55, 0, 53, 12, 13, 49, 67, + 68, 69, 17, 56, 57, 58, 59, 60, 61, 62, + 63, 64, 19, 16, 1, 0, 20, 11, 51, 54, + 0, 0, 3, 50, 18 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 42, 43, 44, 45, 46, 47, 58, 57, 73, - 51, 63 + -1, 41, 42, 43, 44, 45, 46, 57, 56, 72, + 50, 62 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -63 +#define YYPACT_NINF -62 static const yytype_int8 yypact[] = { - -1, -63, -63, -63, -63, -63, -62, -57, -63, -7, - -7, -63, -63, -63, -63, -63, 9, 1, -63, -63, - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -63, -63, -63, -63, - -63, -57, 0, -63, -63, -63, -38, -63, -57, -63, - -63, -63, -63, -17, -63, -16, -63, -63, 2, -63, - -63, -63, -63, 7, -63, -63, -63, -63, -63, -63, - -63, -63, -63, -63, -63, -63, -1, -63, -63, -63, - -63, -7, 1, -63, -63, -63 + -1, -62, -62, -62, -62, -62, -61, -56, -62, -7, + -7, -62, -62, -62, -62, 9, 1, -62, -62, -62, + -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, + -62, -62, -62, -62, -62, -62, -62, -62, -62, -62, + -56, 0, -62, -62, -62, -38, -62, -56, -62, -62, + -62, -62, -17, -62, -16, -62, -62, 2, -62, -62, + -62, -62, 7, -62, -62, -62, -62, -62, -62, -62, + -62, -62, -62, -62, -62, -1, -62, -62, -62, -62, + -7, 1, -62, -62, -62 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -63, -63, -6, -63, -63, -63, -63, -63, -9, -11, - 17, -63 + -62, -62, -6, -62, -62, -62, -62, -62, -9, -11, + 17, -62 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -659,26 +653,26 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 75, 59, 1, 2, 3, 4, 5, 6, 7, 8, - 9, 48, 10, 49, 50, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 77, 22, 23, 24, + 74, 58, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 47, 10, 48, 49, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 76, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 79, 80, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 74, 52, - 53, 54, 55, 56, 81, 78, 60, 61, 62, 82, - 83, 85, 84, 76 + 35, 36, 37, 38, 39, 40, 78, 79, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 73, 51, 52, + 53, 54, 55, 80, 77, 59, 60, 61, 81, 82, + 84, 83, 75 }; static const yytype_uint8 yycheck[] = { 0, 10, 3, 4, 5, 6, 7, 8, 9, 10, - 11, 73, 13, 70, 71, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 64, 28, 29, 30, + 11, 72, 13, 69, 70, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 63, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 64, 64, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 41, 66, - 67, 68, 69, 70, 62, 48, 57, 58, 59, 62, - 76, 82, 81, 73 + 41, 42, 43, 44, 45, 46, 63, 63, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 40, 65, 66, + 67, 68, 69, 61, 47, 56, 57, 58, 61, 75, + 81, 80, 72 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -687,13 +681,13 @@ static const yytype_uint8 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, + 25, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 75, 76, 77, 78, 79, 80, 73, 70, - 71, 84, 66, 67, 68, 69, 70, 82, 81, 82, - 57, 58, 59, 85, 48, 49, 50, 51, 52, 53, - 54, 55, 56, 83, 84, 0, 73, 64, 84, 64, - 64, 62, 62, 76, 82, 83 + 46, 74, 75, 76, 77, 78, 79, 72, 69, 70, + 83, 65, 66, 67, 68, 69, 81, 80, 81, 56, + 57, 58, 84, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 82, 83, 0, 72, 63, 83, 63, 63, + 61, 61, 75, 81, 82 }; #define yyerrok (yyerrstatus = 0) @@ -1528,28 +1522,28 @@ yyreduce: case 4: /* Line 1464 of yacc.c */ -#line 163 "libmemcached/options/parser.yy" +#line 162 "libmemcached/options/parser.yy" { ;} break; case 5: /* Line 1464 of yacc.c */ -#line 165 "libmemcached/options/parser.yy" +#line 164 "libmemcached/options/parser.yy" { ;} break; case 6: /* Line 1464 of yacc.c */ -#line 167 "libmemcached/options/parser.yy" +#line 166 "libmemcached/options/parser.yy" { ;} break; case 7: /* Line 1464 of yacc.c */ -#line 169 "libmemcached/options/parser.yy" +#line 168 "libmemcached/options/parser.yy" { context->set_end(); YYACCEPT; @@ -1559,7 +1553,7 @@ yyreduce: case 8: /* Line 1464 of yacc.c */ -#line 174 "libmemcached/options/parser.yy" +#line 173 "libmemcached/options/parser.yy" { context->rc= MEMCACHED_PARSE_USER_ERROR; parser_abort(context, NULL); @@ -1569,7 +1563,7 @@ yyreduce: case 9: /* Line 1464 of yacc.c */ -#line 179 "libmemcached/options/parser.yy" +#line 178 "libmemcached/options/parser.yy" { memcached_reset(context->memc); ;} @@ -1578,7 +1572,7 @@ yyreduce: case 10: /* Line 1464 of yacc.c */ -#line 183 "libmemcached/options/parser.yy" +#line 182 "libmemcached/options/parser.yy" { yydebug= 1; ;} @@ -1587,7 +1581,7 @@ yyreduce: case 11: /* Line 1464 of yacc.c */ -#line 187 "libmemcached/options/parser.yy" +#line 186 "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) { @@ -1599,7 +1593,7 @@ yyreduce: case 12: /* Line 1464 of yacc.c */ -#line 198 "libmemcached/options/parser.yy" +#line 197 "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) { @@ -1611,7 +1605,7 @@ yyreduce: case 13: /* Line 1464 of yacc.c */ -#line 205 "libmemcached/options/parser.yy" +#line 204 "libmemcached/options/parser.yy" { ;} break; @@ -1619,7 +1613,7 @@ yyreduce: case 14: /* Line 1464 of yacc.c */ -#line 208 "libmemcached/options/parser.yy" +#line 207 "libmemcached/options/parser.yy" { memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).length); ;} @@ -1628,7 +1622,7 @@ yyreduce: case 16: /* Line 1464 of yacc.c */ -#line 216 "libmemcached/options/parser.yy" +#line 215 "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) { @@ -1640,7 +1634,7 @@ yyreduce: case 17: /* Line 1464 of yacc.c */ -#line 223 "libmemcached/options/parser.yy" +#line 222 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (2)].distribution))) != MEMCACHED_SUCCESS) { @@ -1652,7 +1646,7 @@ yyreduce: case 18: /* Line 1464 of yacc.c */ -#line 230 "libmemcached/options/parser.yy" +#line 229 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (4)].distribution))) != MEMCACHED_SUCCESS) { @@ -1668,7 +1662,7 @@ yyreduce: case 19: /* Line 1464 of yacc.c */ -#line 241 "libmemcached/options/parser.yy" +#line 240 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, (yyvsp[(2) - (2)].hash))) != MEMCACHED_SUCCESS) { @@ -1680,7 +1674,7 @@ yyreduce: case 20: /* Line 1464 of yacc.c */ -#line 248 "libmemcached/options/parser.yy" +#line 247 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (2)].behavior), (yyvsp[(2) - (2)].number))) != MEMCACHED_SUCCESS) { @@ -1692,7 +1686,7 @@ yyreduce: case 21: /* Line 1464 of yacc.c */ -#line 255 "libmemcached/options/parser.yy" +#line 254 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (1)].behavior), true)) != MEMCACHED_SUCCESS) { @@ -1704,7 +1698,7 @@ yyreduce: case 22: /* Line 1464 of yacc.c */ -#line 262 "libmemcached/options/parser.yy" +#line 261 "libmemcached/options/parser.yy" { ;} break; @@ -1712,7 +1706,7 @@ yyreduce: case 23: /* Line 1464 of yacc.c */ -#line 268 "libmemcached/options/parser.yy" +#line 267 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT; ;} @@ -1721,7 +1715,7 @@ yyreduce: case 24: /* Line 1464 of yacc.c */ -#line 272 "libmemcached/options/parser.yy" +#line 271 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK; ;} @@ -1730,7 +1724,7 @@ yyreduce: case 25: /* Line 1464 of yacc.c */ -#line 276 "libmemcached/options/parser.yy" +#line 275 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK; ;} @@ -1739,7 +1733,7 @@ yyreduce: case 26: /* Line 1464 of yacc.c */ -#line 280 "libmemcached/options/parser.yy" +#line 279 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH; ;} @@ -1748,7 +1742,7 @@ yyreduce: case 27: /* Line 1464 of yacc.c */ -#line 284 "libmemcached/options/parser.yy" +#line 283 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS; ;} @@ -1757,7 +1751,7 @@ yyreduce: case 28: /* Line 1464 of yacc.c */ -#line 288 "libmemcached/options/parser.yy" +#line 287 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT; ;} @@ -1766,7 +1760,7 @@ yyreduce: case 29: /* Line 1464 of yacc.c */ -#line 292 "libmemcached/options/parser.yy" +#line 291 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT; ;} @@ -1775,7 +1769,7 @@ yyreduce: case 30: /* Line 1464 of yacc.c */ -#line 296 "libmemcached/options/parser.yy" +#line 295 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT; ;} @@ -1784,7 +1778,7 @@ yyreduce: case 31: /* Line 1464 of yacc.c */ -#line 300 "libmemcached/options/parser.yy" +#line 299 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SERVER_FAILURE_LIMIT; ;} @@ -1793,7 +1787,7 @@ yyreduce: case 32: /* Line 1464 of yacc.c */ -#line 304 "libmemcached/options/parser.yy" +#line 303 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT; ;} @@ -1802,7 +1796,7 @@ yyreduce: case 33: /* Line 1464 of yacc.c */ -#line 308 "libmemcached/options/parser.yy" +#line 307 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE; ;} @@ -1811,7 +1805,7 @@ yyreduce: case 34: /* Line 1464 of yacc.c */ -#line 312 "libmemcached/options/parser.yy" +#line 311 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE; ;} @@ -1820,7 +1814,7 @@ yyreduce: case 35: /* Line 1464 of yacc.c */ -#line 319 "libmemcached/options/parser.yy" +#line 318 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_AUTO_EJECT_HOSTS; ;} @@ -1829,7 +1823,7 @@ yyreduce: case 36: /* Line 1464 of yacc.c */ -#line 323 "libmemcached/options/parser.yy" +#line 322 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL; ;} @@ -1838,7 +1832,7 @@ yyreduce: case 37: /* Line 1464 of yacc.c */ -#line 327 "libmemcached/options/parser.yy" +#line 326 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS; ;} @@ -1847,115 +1841,106 @@ yyreduce: case 38: /* Line 1464 of yacc.c */ -#line 331 "libmemcached/options/parser.yy" - { - (yyval.behavior)= MEMCACHED_BEHAVIOR_CACHE_LOOKUPS; - ;} - break; - - case 39: - -/* Line 1464 of yacc.c */ -#line 335 "libmemcached/options/parser.yy" +#line 330 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY; ;} break; - case 40: + case 39: /* Line 1464 of yacc.c */ -#line 339 "libmemcached/options/parser.yy" +#line 334 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_KETAMA_WEIGHTED; ;} break; - case 41: + case 40: /* Line 1464 of yacc.c */ -#line 343 "libmemcached/options/parser.yy" +#line 338 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY; ;} break; - case 42: + case 41: /* Line 1464 of yacc.c */ -#line 347 "libmemcached/options/parser.yy" +#line 342 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ; ;} break; - case 43: + case 42: /* Line 1464 of yacc.c */ -#line 351 "libmemcached/options/parser.yy" +#line 346 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS; ;} break; - case 44: + case 43: /* Line 1464 of yacc.c */ -#line 355 "libmemcached/options/parser.yy" +#line 350 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS; ;} break; - case 45: + case 44: /* Line 1464 of yacc.c */ -#line 359 "libmemcached/options/parser.yy" +#line 354 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY; ;} break; - case 46: + case 45: /* Line 1464 of yacc.c */ -#line 363 "libmemcached/options/parser.yy" +#line 358 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE; ;} break; - case 47: + case 46: /* Line 1464 of yacc.c */ -#line 367 "libmemcached/options/parser.yy" +#line 362 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE; ;} break; - case 48: + case 47: /* Line 1464 of yacc.c */ -#line 371 "libmemcached/options/parser.yy" +#line 366 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP; ;} break; - case 49: + case 48: /* Line 1464 of yacc.c */ -#line 375 "libmemcached/options/parser.yy" +#line 370 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY; ;} break; - case 50: + case 49: /* Line 1464 of yacc.c */ -#line 382 "libmemcached/options/parser.yy" +#line 377 "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) { @@ -1964,10 +1949,10 @@ yyreduce: ;} break; - case 51: + case 50: /* Line 1464 of yacc.c */ -#line 389 "libmemcached/options/parser.yy" +#line 384 "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) { @@ -1976,10 +1961,10 @@ yyreduce: ;} break; - case 52: + case 51: /* Line 1464 of yacc.c */ -#line 399 "libmemcached/options/parser.yy" +#line 394 "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 : @@ -1987,10 +1972,10 @@ yyreduce: ;} break; - case 53: + case 52: /* Line 1464 of yacc.c */ -#line 405 "libmemcached/options/parser.yy" +#line 400 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (1)].string).c_str; (yyval.server).length= (yyvsp[(1) - (1)].string).length; @@ -1998,10 +1983,10 @@ yyreduce: ;} break; - case 54: + case 53: /* Line 1464 of yacc.c */ -#line 411 "libmemcached/options/parser.yy" +#line 406 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (1)].string).c_str; (yyval.server).length= (yyvsp[(1) - (1)].string).length; @@ -2009,10 +1994,10 @@ yyreduce: ;} break; - case 55: + case 54: /* Line 1464 of yacc.c */ -#line 417 "libmemcached/options/parser.yy" +#line 412 "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 : @@ -2020,10 +2005,10 @@ yyreduce: ;} break; - case 56: + case 55: /* Line 1464 of yacc.c */ -#line 423 "libmemcached/options/parser.yy" +#line 418 "libmemcached/options/parser.yy" { (yyval.server).c_str= (yyvsp[(1) - (1)].string).c_str; (yyval.server).length= (yyvsp[(1) - (1)].string).length; @@ -2031,128 +2016,128 @@ yyreduce: ;} break; - case 57: + case 56: /* Line 1464 of yacc.c */ -#line 432 "libmemcached/options/parser.yy" +#line 427 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_MD5; ;} break; - case 58: + case 57: /* Line 1464 of yacc.c */ -#line 436 "libmemcached/options/parser.yy" +#line 431 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_CRC; ;} break; - case 59: + case 58: /* Line 1464 of yacc.c */ -#line 440 "libmemcached/options/parser.yy" +#line 435 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1_64; ;} break; - case 60: + case 59: /* Line 1464 of yacc.c */ -#line 444 "libmemcached/options/parser.yy" +#line 439 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1A_64; ;} break; - case 61: + case 60: /* Line 1464 of yacc.c */ -#line 448 "libmemcached/options/parser.yy" +#line 443 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1_32; ;} break; - case 62: + case 61: /* Line 1464 of yacc.c */ -#line 452 "libmemcached/options/parser.yy" +#line 447 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1A_32; ;} break; - case 63: + case 62: /* Line 1464 of yacc.c */ -#line 456 "libmemcached/options/parser.yy" +#line 451 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_HSIEH; ;} break; - case 64: + case 63: /* Line 1464 of yacc.c */ -#line 460 "libmemcached/options/parser.yy" +#line 455 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_MURMUR; ;} break; - case 65: + case 64: /* Line 1464 of yacc.c */ -#line 464 "libmemcached/options/parser.yy" +#line 459 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_JENKINS; ;} break; - case 66: + case 65: /* Line 1464 of yacc.c */ -#line 471 "libmemcached/options/parser.yy" +#line 466 "libmemcached/options/parser.yy" { (yyval.string)= (yyvsp[(1) - (1)].string); ;} break; - case 67: + case 66: /* Line 1464 of yacc.c */ -#line 475 "libmemcached/options/parser.yy" +#line 470 "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 ;} break; - case 68: + case 67: /* Line 1464 of yacc.c */ -#line 483 "libmemcached/options/parser.yy" +#line 478 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT; ;} break; - case 69: + case 68: /* Line 1464 of yacc.c */ -#line 487 "libmemcached/options/parser.yy" +#line 482 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA; ;} break; - case 70: + case 69: /* Line 1464 of yacc.c */ -#line 491 "libmemcached/options/parser.yy" +#line 486 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_RANDOM; ;} @@ -2161,7 +2146,7 @@ yyreduce: /* Line 1464 of yacc.c */ -#line 2165 "libmemcached/options/parser.cc" +#line 2150 "libmemcached/options/parser.cc" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2373,7 +2358,7 @@ yyreturn: /* Line 1684 of yacc.c */ -#line 496 "libmemcached/options/parser.yy" +#line 491 "libmemcached/options/parser.yy" void Context::start() diff --git a/libmemcached/options/parser.h b/libmemcached/options/parser.h index 99f682fd..8023b270 100644 --- a/libmemcached/options/parser.h +++ b/libmemcached/options/parser.h @@ -54,58 +54,57 @@ AUTO_EJECT_HOSTS = 271, BINARY_PROTOCOL = 272, BUFFER_REQUESTS = 273, - CACHE_LOOKUPS = 274, - CONNECT_TIMEOUT = 275, - DISTRIBUTION = 276, - HASH = 277, - HASH_WITH_PREFIX_KEY = 278, - IO_BYTES_WATERMARK = 279, - IO_KEY_PREFETCH = 280, - IO_MSG_WATERMARK = 281, - KETAMA_HASH = 282, - KETAMA_WEIGHTED = 283, - NOREPLY = 284, - NUMBER_OF_REPLICAS = 285, - POLL_TIMEOUT = 286, - RANDOMIZE_REPLICA_READ = 287, - RCV_TIMEOUT = 288, - RETRY_TIMEOUT = 289, - SERVER_FAILURE_LIMIT = 290, - SND_TIMEOUT = 291, - SOCKET_RECV_SIZE = 292, - SOCKET_SEND_SIZE = 293, - SORT_HOSTS = 294, - SUPPORT_CAS = 295, - _TCP_NODELAY = 296, - _TCP_KEEPALIVE = 297, - _TCP_KEEPIDLE = 298, - USER_DATA = 299, - USE_UDP = 300, - VERIFY_KEY = 301, - PREFIX_KEY = 302, - MD5 = 303, - CRC = 304, - FNV1_64 = 305, - FNV1A_64 = 306, - FNV1_32 = 307, - FNV1A_32 = 308, - HSIEH = 309, - MURMUR = 310, - JENKINS = 311, - CONSISTENT = 312, - MODULA = 313, - RANDOM = 314, - TRUE = 315, - FALSE = 316, - NUMBER = 317, - FLOAT = 318, - HOSTNAME = 319, - HOSTNAME_WITH_PORT = 320, - IPADDRESS = 321, - IPADDRESS_WITH_PORT = 322, - STRING = 323, - QUOTED_STRING = 324, - FILE_PATH = 325 + CONNECT_TIMEOUT = 274, + DISTRIBUTION = 275, + HASH = 276, + HASH_WITH_PREFIX_KEY = 277, + IO_BYTES_WATERMARK = 278, + IO_KEY_PREFETCH = 279, + IO_MSG_WATERMARK = 280, + KETAMA_HASH = 281, + KETAMA_WEIGHTED = 282, + NOREPLY = 283, + NUMBER_OF_REPLICAS = 284, + POLL_TIMEOUT = 285, + RANDOMIZE_REPLICA_READ = 286, + RCV_TIMEOUT = 287, + RETRY_TIMEOUT = 288, + SERVER_FAILURE_LIMIT = 289, + SND_TIMEOUT = 290, + SOCKET_RECV_SIZE = 291, + SOCKET_SEND_SIZE = 292, + SORT_HOSTS = 293, + SUPPORT_CAS = 294, + _TCP_NODELAY = 295, + _TCP_KEEPALIVE = 296, + _TCP_KEEPIDLE = 297, + USER_DATA = 298, + USE_UDP = 299, + VERIFY_KEY = 300, + PREFIX_KEY = 301, + MD5 = 302, + CRC = 303, + FNV1_64 = 304, + FNV1A_64 = 305, + FNV1_32 = 306, + FNV1A_32 = 307, + HSIEH = 308, + MURMUR = 309, + JENKINS = 310, + CONSISTENT = 311, + MODULA = 312, + RANDOM = 313, + TRUE = 314, + FALSE = 315, + NUMBER = 316, + FLOAT = 317, + HOSTNAME = 318, + HOSTNAME_WITH_PORT = 319, + IPADDRESS = 320, + IPADDRESS_WITH_PORT = 321, + STRING = 322, + QUOTED_STRING = 323, + FILE_PATH = 324 }; #endif diff --git a/libmemcached/options/parser.yy b/libmemcached/options/parser.yy index db311402..e61f69ca 100644 --- a/libmemcached/options/parser.yy +++ b/libmemcached/options/parser.yy @@ -79,7 +79,6 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) %token AUTO_EJECT_HOSTS %token BINARY_PROTOCOL %token BUFFER_REQUESTS -%token CACHE_LOOKUPS %token CONNECT_TIMEOUT %token DISTRIBUTION %token HASH @@ -327,10 +326,6 @@ behavior_boolean: { $$= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS; } - | CACHE_LOOKUPS - { - $$= MEMCACHED_BEHAVIOR_CACHE_LOOKUPS; - } | HASH_WITH_PREFIX_KEY { $$= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY; diff --git a/libmemcached/options/scanner.cc b/libmemcached/options/scanner.cc index ecc818c0..436b419d 100644 --- a/libmemcached/options/scanner.cc +++ b/libmemcached/options/scanner.cc @@ -448,8 +448,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); yyg->yy_c_buf_p = yy_cp; /* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */ -#define YY_NUM_RULES 96 -#define YY_END_OF_BUFFER 97 +#define YY_NUM_RULES 94 +#define YY_END_OF_BUFFER 95 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -457,97 +457,94 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[811] = +static yyconst flex_int16_t yy_accept[791] = { 0, - 0, 0, 97, 95, 3, 3, 1, 95, 95, 2, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 95, 0, 94, 76, 0, 2, 93, 0, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 0, 4, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 0, 0, 0, 2, 89, - 0, 93, 81, 93, 72, 93, 93, 93, 93, 93, - 93, 80, 93, 93, 93, 93, 93, 93, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 90, 90, 0, 0, 0, 2, 93, 93, 93, - 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 74, 76, 76, 76, 76, 76, 76, 76, 0, 0, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 0, 0, 93, 70, - 73, 75, 93, 0, 86, 93, 93, 93, 93, 93, - 69, 93, 76, 76, 76, 76, 76, 76, 76, 76, - 0, 0, 0, 0, 0, 0, 76, 76, 76, 76, - 76, 76, 0, 0, 76, 76, 0, 0, 76, 76, - - 76, 0, 0, 0, 76, 0, 76, 0, 0, 93, - 0, 0, 0, 93, 93, 78, 87, 79, 93, 0, - 0, 76, 76, 76, 76, 76, 76, 0, 22, 0, - 0, 0, 0, 0, 0, 0, 76, 76, 76, 0, - 0, 76, 76, 0, 0, 76, 76, 0, 0, 76, - 0, 0, 76, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 92, 0, 93, 0, 0, 84, 82, 68, - 88, 71, 0, 0, 76, 76, 0, 0, 76, 76, - 76, 0, 0, 0, 0, 0, 0, 0, 0, 76, - 76, 76, 0, 0, 76, 76, 0, 0, 0, 0, - - 76, 0, 0, 76, 0, 0, 76, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 92, 91, 93, 85, - 83, 0, 0, 0, 0, 0, 0, 0, 0, 76, - 76, 76, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 76, - 0, 0, 0, 0, 0, 5, 76, 0, 0, 0, - 0, 0, 0, 0, 76, 0, 0, 0, 0, 65, - 0, 0, 64, 0, 0, 92, 93, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 76, 0, + 0, 0, 95, 93, 3, 3, 1, 93, 93, 2, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 93, 0, 92, 74, 0, 2, 91, 0, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 0, 4, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 74, 0, 0, 0, 2, 87, + 0, 91, 79, 91, 70, 91, 91, 91, 91, 91, + 91, 78, 91, 91, 91, 91, 91, 91, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 88, 88, 0, 0, 0, 2, 91, 91, 91, 91, + 91, 91, 91, 91, 91, 91, 91, 91, 91, 72, + 74, 74, 74, 74, 74, 74, 0, 0, 74, 74, + 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 0, 0, 91, 68, 71, 73, + 91, 0, 84, 91, 91, 91, 91, 91, 67, 91, + 74, 74, 74, 74, 74, 74, 74, 0, 0, 0, + 0, 0, 0, 74, 74, 74, 74, 74, 74, 0, + 0, 74, 74, 0, 0, 74, 74, 74, 0, 0, + + 0, 74, 0, 74, 0, 0, 91, 0, 0, 0, + 91, 91, 76, 85, 77, 91, 0, 0, 74, 74, + 74, 74, 74, 0, 20, 0, 0, 0, 0, 0, + 0, 0, 74, 74, 74, 0, 0, 74, 74, 0, + 0, 74, 74, 0, 0, 74, 0, 0, 74, 0, + 0, 0, 0, 0, 0, 0, 0, 74, 90, 0, + 91, 0, 0, 82, 80, 66, 86, 69, 0, 0, + 74, 74, 74, 74, 74, 0, 0, 0, 0, 0, + 0, 0, 0, 74, 74, 74, 0, 0, 74, 74, + 0, 0, 0, 0, 74, 0, 0, 74, 0, 0, + + 74, 0, 0, 0, 0, 0, 0, 0, 0, 74, + 90, 89, 91, 83, 81, 0, 0, 0, 0, 0, + 0, 74, 74, 74, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 31, 0, 0, 0, 0, 0, + 0, 74, 0, 0, 0, 0, 0, 5, 74, 0, + 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, + 0, 63, 0, 0, 62, 0, 0, 90, 91, 0, + 0, 0, 0, 0, 0, 74, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 0, 0, 76, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 74, 0, + 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 76, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 63, 62, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, + 0, 61, 60, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 51, 50, 0, 0, + 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 64, 65, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 52, 0, 0, 55, 0, 0, 54, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 53, 52, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 76, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, - 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 54, 0, 0, 57, - 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, - - 0, 0, 0, 0, 0, 76, 0, 0, 0, 0, + + 0, 0, 0, 0, 39, 38, 0, 0, 0, 0, + 45, 44, 0, 0, 0, 0, 0, 59, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 41, 40, 0, 0, 0, 0, 47, 46, - 0, 0, 0, 0, 0, 61, 0, 60, 0, 0, - 0, 0, 0, 0, 16, 15, 0, 0, 0, 0, - 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 37, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 59, 58, 0, 0, 0, + 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 35, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 57, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 41, 40, 0, 0, 0, 0, 0, 0, 0, + 0, 12, 11, 14, 13, 16, 15, 0, 0, 0, - 0, 43, 42, 0, 0, 0, 0, 0, 0, 0, - 0, 12, 11, 14, 13, 18, 17, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 32, 31, 0, + 0, 0, 0, 0, 0, 0, 0, 30, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, - 9, 20, 19, 0, 0, 0, 28, 0, 0, 27, + 9, 18, 17, 0, 0, 0, 26, 0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 30, 0, 29, 0, 0, 0, - 0, 0, 0, 49, 51, 48, 50, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 25, 35, 34, 0, 0, 0, 0, 24, 23, 0, - - 0, 0, 0, 0, 0, 45, 44, 39, 38, 0 + 0, 0, 0, 0, 28, 0, 27, 0, 0, 0, + 0, 0, 0, 47, 49, 46, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, + 23, 33, 32, 0, 0, 0, 0, 22, 21, 0, + 0, 0, 0, 0, 0, 43, 42, 37, 36, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -594,195 +591,191 @@ static yyconst flex_int32_t yy_meta[72] = 3 } ; -static yyconst flex_int16_t yy_base[817] = +static yyconst flex_int16_t yy_base[797] = { 0, - 0, 949, 919, 2202, 2202, 2202, 2202, 906, 902, 63, + 0, 957, 959, 2145, 2145, 2145, 2145, 942, 903, 63, 71, 79, 73, 65, 81, 66, 72, 114, 112, 130, - 123, 119, 906, 900, 898, 184, 247, 255, 121, 263, + 123, 119, 900, 897, 896, 184, 247, 255, 121, 263, 129, 263, 264, 269, 265, 271, 273, 275, 320, 322, - 327, 331, 332, 333, 340, 371, 380, 381, 899, 2202, - 429, 77, 379, 382, 131, 141, 169, 260, 345, 258, - 441, 447, 272, 276, 329, 489, 505, 513, 522, 2202, - 530, 530, 421, 532, 536, 537, 541, 570, 585, 590, - 595, 376, 605, 596, 640, 644, 646, 652, 324, 343, - 386, 398, 393, 389, 395, 463, 510, 516, 524, 526, - - 534, 527, 521, 524, 528, 587, 589, 581, 582, 596, - 603, 707, 715, 724, 732, 740, 749, 749, 750, 751, - 755, 645, 763, 762, 800, 802, 804, 812, 813, 833, - 822, 627, 651, 648, 648, 749, 645, 658, 848, 860, - 751, 754, 773, 777, 820, 825, 464, 821, 821, 465, - 852, 848, 853, 466, 884, 863, 912, 921, 921, 923, - 927, 928, 929, 94, 933, 977, 965, 983, 978, 987, - 998, 1000, 572, 876, 892, 918, 916, 925, 913, 1004, - 908, 929, 916, 960, 982, 971, 990, 993, 1016, 761, - 1015, 1011, 1013, 1014, 1010, 1032, 1018, 1019, 1036, 786, - - 1029, 1035, 1036, 1031, 964, 1033, 1049, 1092, 1100, 1060, - 105, 889, 886, 1101, 1102, 1100, 1109, 1110, 1111, 1099, - 1106, 1087, 1095, 1132, 1107, 1120, 1125, 1112, 2202, 1113, - 1117, 1124, 1151, 1140, 1140, 1159, 1166, 1156, 1151, 1150, - 1151, 1148, 1160, 1165, 1166, 1187, 1160, 1170, 1171, 1161, - 1174, 1175, 1166, 1181, 1173, 1184, 1175, 1187, 1199, 1200, - 1208, 1194, 1229, 1256, 1256, 887, 884, 2202, 2202, 1241, - 1242, 1263, 1226, 1227, 1239, 1242, 1226, 1231, 1224, 1238, - 1265, 1259, 1264, 1270, 889, 886, 1271, 808, 807, 1252, - 1252, 1290, 1273, 1280, 1300, 1282, 1279, 1280, 1276, 1277, - - 1321, 1286, 1293, 1317, 1295, 1297, 1294, 1310, 1318, 1320, - 1324, 1313, 1329, 1330, 1316, 1323, 1377, 2202, 1346, 2202, - 2202, 1330, 1331, 1322, 1335, 1335, 1336, 1351, 1362, 1361, - 1356, 1361, 1364, 1365, 1367, 1373, 1367, 1373, 1378, 1372, - 1373, 1374, 0, 1383, 1384, 1387, 1388, 1391, 1392, 1379, - 1402, 1403, 1401, 1405, 1409, 2202, 824, 1412, 1415, 1426, - 1420, 1425, 1414, 1417, 1450, 1430, 1443, 1433, 1446, 2202, - 1432, 1433, 2202, 1443, 1444, 1492, 1493, 1464, 1465, 1451, - 1454, 1469, 1488, 1482, 1483, 1495, 1482, 1483, 1484, 1497, - 1498, 833, 1489, 1508, 779, 1492, 1511, 1509, 1510, 1510, - - 1511, 1513, 1514, 1516, 1517, 1518, 1511, 1513, 1534, 1538, - 1551, 2202, 1553, 1541, 1542, 1553, 1554, 1555, 1556, 1542, - 1543, 1561, 1562, 1566, 1554, 1567, 1557, 1569, 1570, 1567, - 1568, 1602, 1557, 1560, 1567, 1590, 1589, 1591, 1599, 1600, - 1622, 1604, 1605, 1606, 784, 745, 1593, 1613, 1599, 1598, - 1618, 1604, 1616, 1617, 766, 726, 1612, 1613, 1604, 1605, - 1632, 1610, 1613, 1631, 1634, 1651, 1653, 1643, 1644, 1664, - 1654, 1666, 1656, 1652, 1653, 1672, 1673, 1663, 1672, 1676, - 1666, 1675, 1679, 2202, 2202, 1656, 1657, 669, 653, 1663, - 1664, 1664, 1665, 1667, 1669, 1687, 1708, 1703, 1705, 1704, - - 1705, 1706, 1722, 1718, 1720, 1725, 1721, 1723, 1722, 1723, - 1713, 1714, 1712, 1713, 678, 677, 1717, 1718, 1717, 1718, - 1724, 1725, 1730, 1732, 1727, 1748, 1748, 1768, 1751, 1771, - 2202, 2202, 1757, 1758, 1769, 1767, 1755, 1772, 1770, 1758, - 2202, 2202, 1776, 1777, 1771, 1772, 1783, 1784, 1774, 1775, - 1783, 1784, 1789, 1791, 1784, 1783, 1804, 1804, 1821, 1809, - 1809, 1825, 1813, 1824, 1825, 1829, 1830, 1816, 1817, 2202, - 2202, 1833, 1834, 675, 674, 1819, 1820, 1821, 1822, 631, - 622, 626, 606, 566, 540, 2202, 2202, 1822, 1840, 2202, - 1824, 1842, 2202, 1833, 1835, 1849, 1852, 1857, 1859, 1861, - - 1862, 1871, 1872, 1870, 1871, 558, 1882, 1883, 1884, 1870, - 1878, 1887, 1873, 1881, 1875, 1876, 1881, 1882, 542, 533, - 1883, 1884, 2202, 2202, 1881, 1882, 1886, 1888, 2202, 2202, - 1890, 1911, 1913, 1915, 1930, 2202, 1932, 2202, 1919, 1920, - 1925, 1926, 1922, 1923, 2202, 2202, 1939, 1940, 1925, 1926, - 2202, 1942, 1943, 1932, 1948, 1951, 1935, 1951, 1954, 1951, - 1953, 1948, 1951, 2202, 2202, 1972, 1974, 532, 494, 1983, - 1984, 1982, 1983, 1984, 1985, 2202, 2202, 1975, 1976, 1985, - 1986, 1980, 1981, 412, 411, 1981, 1982, 1994, 1995, 1992, - 1998, 1989, 1995, 2001, 1992, 2008, 2010, 2008, 2029, 2031, - - 2033, 2202, 2202, 419, 379, 2017, 2019, 2020, 2021, 2029, - 2030, 2202, 2202, 2202, 2202, 2202, 2202, 405, 404, 2026, - 2027, 2051, 403, 2042, 2053, 359, 2044, 2202, 2202, 2053, - 2054, 2055, 2056, 2048, 2049, 2057, 2058, 2059, 2061, 2202, - 2202, 2202, 2202, 326, 316, 2050, 2202, 333, 2053, 2202, - 327, 2091, 2093, 2095, 2096, 2090, 2091, 323, 301, 299, - 266, 2090, 2091, 2092, 2202, 2093, 2202, 2086, 2087, 193, - 146, 2094, 2095, 2202, 2202, 2202, 2202, 2104, 2105, 170, - 153, 152, 151, 2093, 2094, 2104, 2105, 2090, 2091, 2202, - 2202, 2202, 2202, 2112, 2113, 2100, 2102, 2202, 2202, 2124, - - 2145, 150, 149, 2144, 2146, 2202, 2202, 2202, 2202, 2202, - 2195, 119, 2198, 117, 116, 108 + 327, 331, 332, 333, 340, 371, 380, 381, 894, 2145, + 429, 77, 379, 125, 133, 183, 250, 268, 345, 376, + 441, 447, 272, 257, 290, 412, 489, 505, 514, 2145, + 522, 522, 421, 524, 528, 529, 533, 562, 577, 582, + 587, 511, 597, 588, 632, 636, 638, 644, 314, 330, + 351, 378, 378, 382, 463, 394, 504, 517, 519, 528, + + 521, 514, 518, 565, 580, 637, 573, 574, 588, 581, + 699, 707, 716, 724, 732, 741, 741, 742, 743, 747, + 643, 755, 754, 792, 794, 796, 804, 805, 825, 814, + 623, 645, 642, 741, 632, 649, 840, 852, 743, 746, + 765, 769, 812, 817, 464, 813, 813, 465, 844, 840, + 845, 466, 876, 855, 904, 913, 913, 915, 919, 920, + 921, 94, 925, 969, 957, 975, 970, 979, 990, 992, + 564, 868, 884, 906, 912, 904, 996, 898, 920, 907, + 902, 972, 960, 969, 979, 996, 753, 1004, 1001, 998, + 1005, 1001, 1022, 1009, 1010, 1026, 778, 1018, 1025, 1027, + + 1021, 956, 1023, 1040, 1083, 1091, 1052, 105, 883, 880, + 1091, 1092, 1099, 1101, 1103, 1109, 1088, 1090, 1078, 1086, + 1098, 1109, 1104, 1092, 2145, 1102, 1106, 1104, 1128, 1127, + 1124, 1143, 1156, 1146, 1141, 1140, 1141, 1139, 1151, 1156, + 1157, 1065, 1149, 1159, 1160, 1150, 1163, 1164, 1155, 1170, + 1163, 1174, 1165, 1177, 1178, 1179, 1185, 1176, 1226, 1238, + 1238, 881, 878, 2145, 2145, 1227, 1239, 1240, 1203, 1204, + 1074, 1221, 1223, 1226, 1245, 1240, 1241, 1246, 883, 882, + 1247, 844, 841, 1237, 1234, 1270, 1252, 1253, 1273, 1256, + 1253, 1254, 1248, 1255, 1301, 1274, 1277, 1306, 1283, 1284, + + 1283, 1299, 1301, 1302, 1304, 1293, 1309, 1310, 1296, 1316, + 1357, 2145, 1343, 2145, 2145, 1308, 1313, 1303, 1325, 1326, + 1341, 1342, 1337, 1341, 1343, 1345, 1347, 1351, 1346, 1351, + 1356, 1350, 1351, 1352, 0, 1361, 1362, 1365, 1366, 1369, + 1370, 1356, 1378, 1386, 1386, 1389, 1405, 2145, 827, 1406, + 1408, 1409, 1397, 1401, 1398, 1402, 1433, 1408, 1421, 1411, + 1423, 2145, 1409, 1410, 2145, 1420, 1421, 1470, 1471, 1442, + 1446, 1432, 1434, 1466, 1468, 1469, 1455, 1458, 1460, 1473, + 1474, 836, 1465, 1483, 789, 1467, 1486, 1483, 1485, 1486, + 1487, 1489, 1490, 1491, 1492, 1494, 1488, 1489, 1493, 1512, + + 1526, 2145, 1527, 1514, 1517, 1529, 1530, 1531, 1532, 1518, + 1519, 1537, 1538, 1541, 1531, 1544, 1532, 1545, 1546, 1543, + 1544, 1579, 1537, 1538, 1545, 1564, 1564, 1565, 1561, 1574, + 1577, 1580, 825, 771, 1567, 1586, 1572, 1570, 1590, 1576, + 1589, 1590, 776, 737, 1585, 1586, 1577, 1578, 1614, 1584, + 1586, 1606, 1607, 1606, 1622, 1612, 1614, 1633, 1623, 1637, + 1629, 1625, 1626, 1645, 1646, 1636, 1645, 1649, 1639, 1648, + 1652, 2145, 2145, 1629, 1630, 721, 718, 1636, 1637, 1638, + 1640, 1659, 1660, 1655, 1656, 1670, 1671, 1673, 1689, 1685, + 1689, 1696, 1692, 1694, 1693, 1694, 1684, 1685, 1683, 1684, + + 672, 669, 1688, 1689, 1688, 1689, 1695, 1696, 1701, 1703, + 1699, 1700, 1700, 1719, 1717, 1737, 2145, 2145, 1724, 1725, + 1736, 1736, 1726, 1743, 1741, 1729, 2145, 2145, 1747, 1748, + 1742, 1743, 1754, 1755, 1752, 1753, 1758, 1759, 1751, 1749, + 1751, 1753, 1769, 1758, 1757, 1788, 1777, 1789, 1790, 1794, + 1797, 1785, 1786, 2145, 2145, 1802, 1803, 666, 664, 1788, + 1789, 1790, 1791, 634, 623, 624, 623, 581, 561, 2145, + 2145, 1791, 1809, 2145, 1793, 1811, 2145, 1802, 1803, 1816, + 1818, 1804, 1808, 1816, 1818, 1816, 1832, 585, 1844, 1846, + 1847, 1833, 1843, 1854, 1840, 1848, 1842, 1843, 1848, 1849, + + 559, 550, 1850, 1851, 2145, 2145, 1848, 1849, 1852, 1853, + 2145, 2145, 1853, 1854, 1856, 1858, 1876, 2145, 1877, 2145, + 1865, 1866, 1886, 1888, 1885, 1886, 1902, 1905, 1892, 1893, + 2145, 1909, 1910, 1899, 1915, 1918, 1902, 1918, 1921, 1918, + 1919, 1913, 1914, 2145, 2145, 1915, 1917, 534, 525, 1926, + 1930, 1927, 1929, 1930, 1946, 2145, 2145, 1937, 1939, 1948, + 1949, 1945, 1948, 524, 494, 1948, 1949, 1961, 1962, 1959, + 1965, 1956, 1962, 1968, 1959, 1974, 1975, 1971, 1972, 1974, + 1976, 2145, 2145, 445, 407, 1963, 1964, 1966, 1967, 1990, + 1992, 2145, 2145, 2145, 2145, 2145, 2145, 412, 411, 1989, + + 1990, 2014, 383, 2007, 2020, 359, 2011, 2145, 2145, 2020, + 2021, 2022, 2023, 2015, 2016, 2024, 2025, 2026, 2027, 2145, + 2145, 2145, 2145, 326, 316, 2015, 2145, 333, 2016, 2145, + 327, 2034, 2036, 2038, 2042, 2035, 2037, 323, 301, 299, + 266, 2036, 2052, 2054, 2145, 2056, 2145, 2049, 2050, 193, + 146, 2059, 2062, 2145, 2145, 2145, 2145, 2071, 2072, 170, + 153, 152, 151, 2060, 2061, 2071, 2072, 2057, 2058, 2145, + 2145, 2145, 2145, 2079, 2080, 2066, 2067, 2145, 2145, 2087, + 2088, 150, 149, 2087, 2089, 2145, 2145, 2145, 2145, 2145, + 2138, 119, 2141, 117, 116, 108 + } ; -static yyconst flex_int16_t yy_def[817] = +static yyconst flex_int16_t yy_def[797] = { 0, - 810, 1, 810, 810, 810, 810, 810, 811, 810, 812, - 812, 812, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 813, 811, 811, 810, 814, 812, 12, 814, + 790, 1, 790, 790, 790, 790, 790, 791, 790, 792, + 792, 792, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 793, 791, 791, 790, 794, 792, 12, 794, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 813, 810, + 12, 12, 12, 12, 12, 12, 12, 12, 793, 790, 26, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 815, 816, 815, 812, 810, - 816, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 51, 51, 51, 51, 51, 795, 796, 795, 792, 790, + 796, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 816, 815, 816, 816, 816, 812, 12, 12, 12, + 796, 795, 796, 796, 796, 792, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 51, 51, 51, 51, 51, 51, 51, 810, 810, + 51, 51, 51, 51, 51, 51, 790, 790, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, - 51, 51, 51, 51, 51, 51, 816, 816, 12, 12, - 12, 12, 12, 810, 12, 12, 12, 12, 12, 12, - 12, 12, 51, 51, 51, 51, 51, 51, 51, 51, - 810, 810, 810, 810, 810, 810, 51, 51, 51, 51, - 51, 51, 810, 810, 51, 51, 810, 810, 51, 51, - - 51, 810, 810, 810, 51, 810, 51, 816, 816, 12, - 810, 810, 810, 12, 12, 12, 12, 12, 12, 810, - 810, 51, 51, 51, 51, 51, 51, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 51, 51, 51, 810, - 810, 51, 51, 810, 810, 51, 51, 810, 810, 51, - 810, 810, 51, 810, 810, 810, 810, 810, 810, 810, - 810, 51, 816, 816, 12, 810, 810, 810, 810, 12, - 12, 12, 810, 810, 51, 51, 810, 810, 51, 51, - 51, 810, 810, 810, 810, 810, 810, 810, 810, 51, - 51, 51, 810, 810, 51, 51, 810, 810, 810, 810, - - 51, 810, 810, 51, 810, 810, 51, 810, 810, 810, - 810, 810, 810, 810, 810, 51, 816, 810, 12, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 51, - 51, 51, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 51, 810, 810, 810, 810, 810, 810, 51, - 810, 810, 810, 810, 810, 810, 51, 810, 810, 810, - 810, 810, 810, 810, 51, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 816, 12, 810, 810, 810, - 810, 810, 810, 810, 810, 51, 810, 810, 51, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - - 810, 810, 810, 810, 810, 51, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 12, 810, 810, 810, 810, 810, 810, 810, 810, - 51, 810, 810, 51, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 51, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 51, - - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 51, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - - 810, 810, 810, 810, 810, 51, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - - 810, 810, 810, 810, 810, 810, 810, 810, 810, 0, - 810, 810, 810, 810, 810, 810 + 51, 51, 51, 51, 796, 796, 12, 12, 12, 12, + 12, 790, 12, 12, 12, 12, 12, 12, 12, 12, + 51, 51, 51, 51, 51, 51, 51, 790, 790, 790, + 790, 790, 790, 51, 51, 51, 51, 51, 51, 790, + 790, 51, 51, 790, 790, 51, 51, 51, 790, 790, + + 790, 51, 790, 51, 796, 796, 12, 790, 790, 790, + 12, 12, 12, 12, 12, 12, 790, 790, 51, 51, + 51, 51, 51, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 51, 51, 51, 790, 790, 51, 51, 790, + 790, 51, 51, 790, 790, 51, 790, 790, 51, 790, + 790, 790, 790, 790, 790, 790, 790, 51, 796, 796, + 12, 790, 790, 790, 790, 12, 12, 12, 790, 790, + 51, 51, 51, 51, 51, 790, 790, 790, 790, 790, + 790, 790, 790, 51, 51, 51, 790, 790, 51, 51, + 790, 790, 790, 790, 51, 790, 790, 51, 790, 790, + + 51, 790, 790, 790, 790, 790, 790, 790, 790, 51, + 796, 790, 12, 790, 790, 790, 790, 790, 790, 790, + 790, 51, 51, 51, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 51, 790, 790, 790, 790, 790, + 790, 51, 790, 790, 790, 790, 790, 790, 51, 790, + 790, 790, 790, 790, 790, 790, 51, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 796, 12, 790, + 790, 790, 790, 790, 790, 51, 790, 790, 51, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 51, 790, 790, 790, 790, + + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 12, 790, 790, 790, 790, 790, 790, 51, 790, + 790, 51, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 51, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 51, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 51, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 51, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 0, + 790, 790, 790, 790, 790, 790 + } ; -static yyconst flex_int16_t yy_nxt[2274] = +static yyconst flex_int16_t yy_nxt[2217] = { 0, 4, 5, 6, 7, 8, 4, 7, 9, 4, 10, 10, 10, 10, 10, 10, 10, 4, 7, 11, 11, @@ -795,248 +788,242 @@ static yyconst flex_int16_t yy_nxt[2274] = 31, 31, 31, 31, 31, 31, 31, 30, 31, 31, 31, 31, 31, 31, 31, 34, 35, 29, 29, 37, - 36, 29, 39, 40, 29, 29, 212, 29, 29, 213, - 116, 32, 38, 29, 33, 89, 29, 266, 113, 68, - 267, 29, 34, 35, 29, 29, 37, 36, 29, 39, + 36, 29, 39, 40, 29, 29, 209, 29, 29, 210, + 115, 32, 38, 29, 33, 89, 29, 262, 112, 68, + 263, 29, 34, 35, 29, 29, 37, 36, 29, 39, 40, 29, 29, 42, 29, 29, 41, 70, 32, 38, 29, 33, 89, 29, 43, 47, 29, 29, 45, 29, - 44, 29, 46, 29, 48, 29, 29, 94, 29, 95, - 42, 29, 29, 41, 29, 29, 807, 806, 793, 792, - 791, 43, 47, 29, 29, 45, 29, 44, 29, 46, - 29, 48, 29, 29, 94, 29, 95, 790, 29, 29, - 785, 29, 29, 51, 51, 51, 51, 51, 51, 51, + 44, 29, 46, 29, 48, 29, 29, 92, 29, 93, + 42, 29, 29, 41, 29, 29, 787, 786, 773, 772, + 771, 43, 47, 29, 29, 45, 29, 44, 29, 46, + 29, 48, 29, 29, 92, 29, 93, 770, 29, 29, + 765, 29, 29, 51, 51, 51, 51, 51, 51, 51, - 784, 96, 52, 53, 54, 55, 51, 51, 51, 56, + 764, 94, 52, 53, 54, 55, 51, 51, 51, 56, 57, 51, 58, 51, 51, 59, 51, 60, 51, 61, - 62, 63, 64, 65, 51, 51, 51, 51, 96, 52, + 62, 63, 64, 65, 51, 51, 51, 51, 94, 52, 53, 54, 55, 51, 51, 51, 56, 57, 51, 58, 51, 51, 59, 51, 60, 51, 61, 62, 63, 64, 65, 51, 51, 51, 51, 66, 67, 67, 67, 67, 67, 67, 67, 27, 69, 69, 69, 69, 69, 69, 69, 66, 71, 71, 71, 71, 71, 71, 71, 70, - 70, 70, 97, 777, 73, 70, 75, 70, 74, 70, - 100, 70, 109, 101, 72, 29, 29, 29, 29, 29, + 70, 70, 95, 757, 73, 70, 75, 70, 74, 70, + 96, 70, 108, 109, 72, 29, 29, 29, 29, 29, - 29, 29, 77, 29, 29, 29, 76, 29, 29, 97, - 29, 73, 110, 75, 78, 74, 776, 100, 775, 109, - 101, 72, 29, 29, 29, 29, 29, 29, 29, 77, + 29, 29, 77, 29, 29, 29, 76, 29, 29, 95, + 29, 73, 110, 75, 78, 74, 756, 96, 755, 108, + 109, 72, 29, 29, 29, 29, 29, 29, 29, 77, 29, 29, 29, 76, 29, 29, 70, 29, 70, 110, - 774, 78, 80, 70, 767, 82, 79, 70, 70, 70, - 765, 111, 29, 83, 29, 29, 70, 29, 81, 29, - 763, 132, 29, 29, 29, 29, 29, 29, 84, 80, - 762, 85, 29, 79, 133, 29, 750, 98, 111, 29, - 83, 29, 29, 99, 29, 81, 29, 70, 132, 29, + 754, 78, 80, 70, 747, 82, 79, 70, 70, 70, + 745, 131, 29, 83, 29, 29, 70, 29, 81, 29, + 743, 132, 29, 29, 29, 29, 29, 29, 84, 80, + 742, 85, 29, 79, 133, 29, 730, 97, 131, 29, + 83, 29, 29, 98, 29, 81, 29, 70, 132, 29, 29, 29, 29, 29, 29, 84, 70, 70, 85, 29, - 92, 133, 29, 29, 98, 90, 29, 86, 29, 134, - 99, 29, 29, 29, 93, 87, 29, 91, 135, 88, - 747, 743, 742, 735, 136, 137, 734, 92, 717, 716, - 29, 138, 90, 29, 86, 29, 134, 70, 29, 29, - 29, 93, 87, 29, 91, 135, 88, 51, 51, 51, - 51, 136, 137, 29, 51, 51, 29, 51, 138, 102, - 51, 103, 51, 104, 51, 51, 51, 51, 51, 105, - 139, 193, 197, 202, 51, 51, 51, 51, 106, 107, - 29, 51, 51, 29, 51, 108, 102, 51, 103, 51, - 104, 51, 51, 51, 51, 51, 105, 66, 112, 112, - - 112, 112, 112, 112, 112, 106, 107, 140, 194, 198, - 203, 703, 108, 114, 115, 115, 115, 115, 115, 115, - 115, 66, 112, 112, 112, 112, 112, 112, 112, 70, - 27, 117, 117, 117, 117, 117, 117, 117, 71, 71, - 71, 71, 71, 71, 71, 71, 70, 141, 70, 702, - 665, 142, 70, 70, 143, 144, 145, 70, 146, 664, - 147, 148, 29, 149, 29, 29, 118, 29, 29, 120, - 119, 29, 29, 29, 141, 651, 29, 121, 142, 220, - 122, 143, 144, 145, 634, 146, 70, 147, 148, 29, - 149, 29, 29, 118, 29, 29, 120, 119, 29, 29, - - 29, 70, 29, 29, 121, 29, 70, 123, 150, 151, - 633, 70, 70, 632, 153, 154, 221, 29, 155, 124, - 29, 70, 29, 125, 152, 29, 127, 29, 29, 29, - 29, 29, 29, 631, 123, 150, 151, 29, 156, 630, - 29, 153, 154, 126, 29, 155, 124, 29, 629, 29, - 125, 152, 29, 127, 29, 29, 70, 29, 29, 173, - 70, 128, 70, 163, 29, 156, 129, 29, 70, 174, - 126, 175, 29, 176, 131, 29, 29, 29, 29, 29, - 29, 29, 179, 180, 29, 130, 173, 29, 128, 164, - 163, 624, 623, 129, 571, 570, 174, 544, 175, 29, - - 176, 131, 29, 29, 29, 29, 29, 29, 29, 179, - 180, 29, 130, 543, 29, 71, 71, 71, 71, 71, - 71, 71, 71, 66, 112, 112, 112, 112, 112, 112, - 112, 70, 71, 157, 157, 157, 157, 157, 157, 157, - 114, 158, 158, 158, 158, 158, 158, 158, 71, 71, - 71, 71, 71, 71, 71, 71, 70, 30, 117, 117, - 117, 117, 117, 117, 117, 70, 70, 70, 240, 187, - 512, 70, 177, 511, 160, 159, 188, 162, 70, 70, - 178, 29, 29, 29, 29, 29, 161, 29, 165, 502, - 29, 501, 189, 251, 29, 29, 187, 29, 29, 177, - - 166, 160, 159, 188, 162, 241, 190, 178, 29, 29, - 29, 29, 29, 161, 29, 165, 70, 29, 70, 189, - 70, 29, 29, 450, 29, 29, 167, 166, 70, 70, - 252, 168, 29, 190, 29, 29, 29, 29, 70, 29, - 447, 412, 169, 191, 170, 29, 192, 29, 29, 70, - 171, 340, 339, 167, 29, 172, 195, 29, 168, 29, - 196, 29, 29, 29, 29, 29, 29, 181, 29, 169, - 191, 170, 29, 192, 29, 29, 182, 171, 183, 184, - 199, 29, 172, 195, 29, 200, 201, 196, 185, 207, - 186, 204, 29, 337, 181, 29, 336, 321, 320, 269, - - 268, 50, 25, 182, 25, 183, 184, 199, 50, 26, - 25, 222, 200, 201, 223, 185, 207, 186, 810, 205, - 208, 209, 209, 209, 209, 209, 209, 209, 206, 114, - 71, 71, 71, 71, 71, 71, 71, 70, 222, 70, - 224, 223, 225, 70, 70, 70, 205, 226, 227, 70, - 231, 232, 233, 29, 23, 29, 29, 210, 29, 29, - 29, 29, 29, 29, 29, 29, 810, 224, 29, 225, - 810, 259, 810, 211, 226, 227, 810, 231, 232, 233, - 29, 70, 29, 29, 210, 29, 29, 29, 29, 29, - 29, 29, 29, 70, 70, 29, 215, 29, 214, 70, - - 29, 216, 234, 70, 235, 810, 810, 236, 260, 29, - 29, 228, 29, 217, 70, 29, 70, 218, 29, 29, - 237, 229, 29, 215, 29, 214, 238, 29, 216, 234, - 29, 235, 29, 29, 236, 219, 29, 29, 239, 29, - 217, 242, 29, 243, 218, 29, 29, 237, 230, 29, - 244, 245, 246, 238, 247, 248, 249, 29, 250, 29, - 29, 253, 219, 254, 256, 239, 255, 257, 242, 258, - 243, 261, 262, 810, 810, 810, 70, 244, 245, 246, - 810, 247, 248, 249, 810, 250, 810, 810, 253, 810, - 254, 256, 29, 255, 257, 29, 258, 265, 261, 262, - - 71, 263, 263, 263, 263, 263, 263, 263, 208, 264, - 264, 264, 264, 264, 264, 264, 70, 70, 70, 29, - 810, 273, 29, 270, 265, 70, 70, 70, 274, 275, - 276, 279, 29, 29, 29, 29, 29, 29, 271, 277, - 280, 29, 29, 29, 29, 29, 29, 272, 273, 810, - 270, 281, 282, 283, 284, 274, 275, 276, 279, 29, - 29, 29, 29, 29, 29, 271, 285, 280, 29, 29, - 29, 29, 29, 29, 272, 286, 278, 287, 281, 282, - 283, 284, 288, 289, 290, 291, 292, 293, 294, 295, - 296, 297, 298, 285, 299, 301, 302, 303, 304, 305, - - 306, 307, 286, 308, 287, 309, 310, 311, 312, 288, - 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, - 313, 314, 301, 302, 303, 304, 305, 306, 307, 315, - 308, 300, 309, 310, 311, 312, 316, 71, 317, 317, - 317, 317, 317, 317, 317, 318, 324, 313, 314, 326, - 810, 810, 810, 322, 323, 328, 315, 70, 70, 341, - 329, 810, 330, 316, 208, 71, 71, 71, 71, 71, - 71, 71, 70, 29, 29, 331, 29, 29, 319, 70, - 322, 323, 328, 325, 332, 333, 327, 329, 29, 330, - 334, 29, 335, 338, 343, 29, 342, 344, 29, 346, - - 29, 29, 331, 29, 29, 319, 347, 348, 350, 351, - 352, 332, 333, 353, 354, 29, 359, 334, 29, 335, - 338, 343, 29, 360, 361, 29, 346, 363, 355, 364, - 374, 365, 366, 347, 345, 350, 351, 352, 356, 367, - 353, 354, 368, 359, 349, 369, 370, 371, 372, 373, - 360, 810, 378, 379, 363, 380, 364, 357, 365, 366, - 810, 362, 70, 387, 810, 358, 367, 375, 381, 368, - 382, 383, 369, 370, 371, 372, 373, 377, 29, 378, - 379, 29, 380, 384, 357, 71, 376, 376, 376, 376, - 376, 376, 376, 318, 385, 381, 386, 382, 383, 389, - - 388, 390, 391, 392, 377, 29, 393, 394, 29, 395, - 384, 396, 397, 398, 399, 400, 401, 402, 403, 404, - 405, 385, 406, 386, 407, 408, 389, 409, 390, 391, - 392, 410, 411, 393, 394, 413, 395, 414, 396, 397, - 398, 399, 400, 401, 402, 403, 404, 405, 415, 406, - 420, 407, 408, 421, 409, 416, 417, 422, 410, 411, - 418, 419, 413, 424, 414, 425, 426, 810, 427, 428, - 429, 430, 431, 810, 810, 415, 810, 420, 810, 810, - 421, 810, 416, 417, 433, 434, 435, 418, 419, 436, - 424, 437, 425, 426, 423, 427, 428, 429, 430, 431, - - 71, 71, 71, 71, 71, 71, 71, 71, 318, 70, - 438, 433, 434, 435, 439, 440, 436, 441, 437, 442, - 443, 444, 445, 446, 448, 29, 449, 451, 29, 452, - 432, 453, 454, 455, 456, 457, 458, 438, 459, 460, - 461, 439, 440, 462, 441, 463, 442, 443, 444, 445, - 446, 448, 29, 449, 451, 29, 452, 432, 453, 454, - 455, 456, 457, 458, 464, 459, 460, 461, 465, 466, - 462, 467, 463, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 480, 478, 481, 483, 484, 485, 486, - 487, 464, 479, 482, 488, 465, 466, 489, 467, 490, - - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 480, 478, 481, 483, 484, 485, 486, 487, 70, 479, - 482, 488, 491, 492, 489, 493, 490, 494, 495, 496, - 498, 499, 500, 503, 29, 504, 505, 29, 506, 517, - 507, 508, 509, 510, 513, 514, 515, 516, 519, 491, - 492, 520, 493, 521, 494, 495, 522, 498, 499, 500, - 503, 29, 504, 505, 29, 506, 497, 507, 508, 509, - 510, 513, 514, 515, 516, 519, 518, 523, 520, 524, - 521, 525, 526, 522, 527, 528, 529, 530, 531, 532, - 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, - - 545, 546, 547, 548, 523, 549, 524, 550, 525, 526, - 551, 527, 528, 529, 530, 531, 532, 533, 534, 535, - 536, 537, 538, 539, 540, 541, 542, 545, 546, 547, - 548, 552, 549, 553, 550, 554, 555, 551, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 572, 573, 574, 575, 576, 577, 552, 578, - 553, 579, 554, 555, 580, 556, 557, 558, 559, 560, - 561, 562, 563, 564, 565, 566, 567, 568, 569, 572, - 573, 574, 575, 576, 577, 581, 578, 582, 579, 583, - 584, 580, 585, 586, 587, 588, 589, 590, 591, 592, - - 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, - 603, 604, 581, 605, 582, 606, 583, 584, 607, 585, - 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, - 596, 597, 598, 599, 600, 601, 602, 603, 604, 608, - 605, 609, 606, 610, 611, 607, 612, 613, 614, 615, - 616, 617, 618, 619, 620, 621, 622, 625, 626, 627, - 628, 635, 636, 637, 638, 639, 608, 640, 609, 641, - 610, 611, 642, 612, 613, 614, 615, 616, 617, 618, - 619, 620, 621, 622, 625, 626, 627, 628, 635, 636, - 637, 638, 639, 643, 640, 644, 641, 645, 646, 642, - - 647, 648, 649, 650, 652, 653, 654, 655, 656, 657, - 658, 659, 660, 661, 662, 663, 666, 667, 668, 669, - 643, 670, 644, 671, 645, 646, 672, 647, 648, 649, - 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, - 661, 662, 663, 666, 667, 668, 669, 673, 670, 674, - 671, 675, 676, 672, 677, 678, 679, 680, 681, 682, - 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, - 693, 694, 695, 696, 673, 697, 674, 698, 675, 676, - 699, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, - - 696, 700, 697, 701, 698, 704, 705, 699, 706, 707, - 708, 709, 710, 711, 712, 713, 714, 715, 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 700, 728, - 701, 729, 704, 705, 730, 706, 707, 708, 709, 710, - 711, 712, 713, 714, 715, 718, 719, 720, 721, 722, - 723, 724, 725, 726, 727, 731, 728, 732, 729, 733, - 736, 730, 737, 738, 739, 740, 741, 744, 745, 746, - 748, 749, 751, 752, 753, 754, 755, 756, 757, 758, - 759, 760, 731, 761, 732, 764, 733, 736, 766, 737, - 738, 739, 740, 741, 744, 745, 746, 748, 749, 751, - - 752, 753, 754, 755, 756, 757, 758, 759, 760, 768, - 761, 769, 764, 770, 771, 766, 772, 773, 778, 779, - 780, 781, 782, 783, 786, 787, 788, 789, 794, 795, - 796, 797, 798, 799, 800, 801, 768, 802, 769, 803, - 770, 771, 804, 772, 773, 778, 779, 780, 781, 782, - 783, 786, 787, 788, 789, 794, 795, 796, 797, 798, - 799, 800, 801, 805, 802, 808, 803, 809, 810, 804, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 805, 810, 808, 810, 809, 24, 810, 24, 49, 49, - - 49, 3, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810 + 727, 133, 29, 29, 97, 90, 29, 86, 99, 134, + 98, 100, 29, 29, 135, 87, 29, 91, 136, 88, + 66, 111, 111, 111, 111, 111, 111, 111, 723, 722, + 29, 139, 90, 29, 86, 99, 134, 70, 100, 29, + 29, 135, 87, 29, 91, 136, 88, 51, 51, 51, + 51, 715, 714, 29, 51, 51, 29, 51, 139, 101, + 51, 102, 51, 103, 51, 51, 51, 51, 51, 104, + 137, 190, 194, 199, 51, 51, 51, 51, 105, 106, + 29, 51, 51, 29, 51, 107, 101, 51, 102, 51, + 103, 51, 51, 51, 51, 51, 104, 113, 114, 114, + + 114, 114, 114, 114, 114, 105, 106, 138, 191, 195, + 200, 697, 107, 66, 111, 111, 111, 111, 111, 111, + 111, 70, 27, 116, 116, 116, 116, 116, 116, 116, + 71, 71, 71, 71, 71, 71, 71, 71, 70, 140, + 70, 696, 683, 29, 70, 70, 29, 141, 142, 70, + 143, 682, 144, 145, 29, 146, 29, 29, 117, 29, + 29, 119, 118, 29, 29, 29, 140, 645, 29, 120, + 29, 217, 121, 29, 141, 142, 644, 143, 70, 144, + 145, 29, 146, 29, 29, 117, 29, 29, 119, 118, + 29, 29, 29, 70, 29, 29, 120, 29, 70, 122, + + 147, 148, 631, 70, 70, 616, 151, 152, 218, 29, + 153, 123, 29, 70, 29, 124, 154, 29, 126, 29, + 29, 29, 29, 29, 29, 615, 122, 147, 148, 29, + 614, 613, 29, 151, 152, 125, 29, 153, 123, 29, + 612, 29, 124, 154, 29, 126, 29, 29, 70, 29, + 29, 611, 70, 127, 70, 171, 29, 149, 128, 29, + 70, 161, 125, 172, 29, 173, 130, 29, 29, 176, + 29, 29, 150, 29, 177, 29, 29, 129, 29, 29, + 127, 606, 171, 605, 149, 128, 555, 162, 161, 554, + 172, 29, 173, 130, 29, 29, 176, 29, 29, 150, + + 29, 177, 29, 29, 129, 29, 29, 71, 71, 71, + 71, 71, 71, 71, 71, 66, 111, 111, 111, 111, + 111, 111, 111, 70, 71, 155, 155, 155, 155, 155, + 155, 155, 113, 156, 156, 156, 156, 156, 156, 156, + 71, 71, 71, 71, 71, 71, 71, 71, 70, 30, + 116, 116, 116, 116, 116, 116, 116, 70, 70, 70, + 236, 184, 530, 70, 174, 529, 158, 157, 185, 160, + 70, 70, 175, 29, 29, 29, 29, 29, 159, 29, + 163, 498, 29, 497, 186, 247, 29, 29, 184, 29, + 29, 174, 164, 158, 157, 185, 160, 237, 187, 175, + + 29, 29, 29, 29, 29, 159, 29, 163, 70, 29, + 70, 186, 70, 29, 29, 488, 29, 29, 165, 164, + 70, 70, 248, 166, 29, 187, 29, 29, 29, 29, + 70, 29, 487, 438, 167, 188, 168, 29, 189, 29, + 29, 70, 169, 435, 402, 165, 29, 170, 192, 29, + 166, 29, 193, 29, 29, 29, 29, 29, 29, 178, + 29, 167, 188, 168, 29, 189, 29, 29, 179, 169, + 180, 181, 196, 29, 170, 192, 29, 197, 198, 193, + 182, 204, 183, 201, 29, 332, 178, 29, 331, 329, + 328, 315, 314, 265, 264, 179, 50, 180, 181, 196, + + 25, 25, 50, 219, 197, 198, 220, 182, 204, 183, + 26, 202, 205, 206, 206, 206, 206, 206, 206, 206, + 203, 113, 71, 71, 71, 71, 71, 71, 71, 70, + 219, 70, 221, 220, 222, 70, 70, 70, 202, 223, + 227, 70, 228, 229, 230, 29, 25, 29, 29, 207, + 29, 29, 29, 29, 29, 29, 29, 29, 790, 221, + 29, 222, 23, 255, 790, 208, 223, 227, 790, 228, + 229, 230, 29, 70, 29, 29, 207, 29, 29, 29, + 29, 29, 29, 29, 29, 70, 70, 29, 212, 29, + 211, 70, 29, 213, 231, 70, 232, 790, 790, 233, + + 256, 29, 29, 224, 29, 214, 70, 29, 70, 215, + 29, 29, 234, 225, 29, 212, 29, 211, 235, 29, + 213, 231, 29, 232, 29, 29, 233, 216, 29, 29, + 238, 29, 214, 239, 29, 240, 215, 29, 29, 234, + 226, 29, 241, 242, 243, 235, 244, 245, 246, 29, + 249, 29, 29, 250, 216, 252, 251, 238, 253, 254, + 239, 257, 240, 258, 790, 790, 790, 790, 70, 241, + 242, 243, 293, 244, 245, 246, 790, 249, 790, 790, + 250, 318, 252, 251, 29, 253, 254, 29, 257, 261, + 258, 71, 259, 259, 259, 259, 259, 259, 259, 205, + + 260, 260, 260, 260, 260, 260, 260, 70, 70, 294, + 269, 29, 270, 266, 29, 70, 261, 70, 319, 70, + 271, 272, 273, 29, 29, 70, 29, 29, 267, 274, + 275, 29, 276, 29, 29, 29, 29, 269, 29, 270, + 266, 29, 277, 278, 29, 268, 279, 271, 272, 273, + 29, 29, 280, 29, 29, 267, 274, 275, 29, 276, + 29, 29, 29, 29, 281, 29, 282, 283, 29, 277, + 278, 29, 268, 279, 284, 285, 286, 287, 288, 280, + 289, 290, 291, 292, 295, 296, 297, 298, 299, 300, + 301, 281, 302, 282, 283, 303, 304, 305, 306, 307, + + 308, 284, 285, 286, 287, 288, 309, 289, 290, 291, + 292, 295, 296, 297, 298, 299, 300, 301, 310, 302, + 790, 790, 303, 304, 305, 306, 307, 308, 320, 790, + 316, 317, 790, 309, 71, 311, 311, 311, 311, 311, + 311, 311, 312, 70, 333, 310, 205, 71, 71, 71, + 71, 71, 71, 71, 70, 70, 70, 316, 317, 29, + 313, 322, 29, 323, 324, 321, 325, 326, 327, 330, + 29, 29, 29, 29, 29, 29, 335, 336, 338, 339, + 340, 334, 342, 343, 344, 345, 29, 313, 322, 29, + 323, 324, 346, 325, 326, 327, 330, 29, 29, 29, + + 29, 29, 29, 335, 351, 338, 339, 352, 347, 342, + 343, 344, 345, 353, 337, 355, 356, 341, 348, 346, + 357, 358, 359, 366, 360, 361, 362, 363, 364, 365, + 370, 351, 790, 790, 352, 371, 372, 349, 790, 790, + 790, 790, 355, 356, 377, 350, 790, 357, 358, 359, + 354, 360, 361, 362, 363, 364, 365, 370, 373, 70, + 367, 374, 371, 372, 349, 71, 368, 368, 368, 368, + 368, 368, 368, 312, 369, 29, 375, 376, 29, 379, + 380, 378, 381, 382, 383, 373, 384, 385, 374, 386, + 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, + + 397, 369, 29, 375, 376, 29, 379, 380, 398, 381, + 382, 383, 399, 384, 385, 400, 386, 387, 388, 389, + 390, 391, 392, 393, 394, 395, 396, 397, 401, 403, + 404, 405, 406, 407, 410, 398, 408, 409, 411, 399, + 412, 414, 400, 415, 416, 417, 418, 419, 420, 421, + 790, 790, 790, 790, 790, 401, 403, 404, 405, 406, + 407, 410, 423, 408, 409, 411, 424, 425, 414, 426, + 415, 416, 417, 418, 419, 420, 421, 413, 71, 71, + 71, 71, 71, 71, 71, 71, 312, 70, 427, 423, + 428, 429, 430, 424, 425, 431, 426, 432, 433, 434, + + 436, 437, 439, 29, 440, 441, 29, 442, 422, 443, + 444, 445, 446, 447, 448, 427, 449, 428, 429, 430, + 450, 451, 431, 452, 432, 433, 434, 436, 437, 439, + 29, 440, 441, 29, 442, 422, 443, 444, 445, 446, + 447, 448, 453, 449, 454, 455, 456, 450, 451, 457, + 452, 458, 459, 460, 461, 462, 463, 464, 465, 466, + 468, 471, 469, 472, 473, 474, 475, 467, 482, 453, + 470, 454, 455, 456, 476, 477, 457, 478, 458, 459, + 460, 461, 462, 463, 464, 465, 466, 468, 471, 469, + 472, 473, 474, 475, 467, 70, 479, 470, 480, 481, + + 484, 476, 477, 485, 478, 483, 486, 489, 490, 491, + 492, 29, 493, 494, 29, 495, 496, 499, 500, 501, + 502, 503, 505, 479, 506, 480, 481, 484, 507, 508, + 485, 790, 509, 486, 489, 490, 491, 492, 29, 493, + 494, 29, 495, 496, 499, 500, 501, 502, 510, 505, + 511, 506, 512, 513, 514, 507, 508, 515, 504, 509, + 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, + 526, 527, 528, 531, 532, 510, 533, 511, 534, 512, + 513, 514, 535, 536, 515, 537, 538, 516, 517, 518, + 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, + + 531, 532, 539, 533, 540, 534, 541, 542, 543, 535, + 536, 544, 537, 538, 545, 546, 547, 548, 549, 550, + 551, 552, 553, 556, 557, 558, 559, 560, 561, 539, + 562, 540, 563, 541, 542, 543, 564, 565, 544, 566, + 567, 545, 546, 547, 548, 549, 550, 551, 552, 553, + 556, 557, 558, 559, 560, 561, 568, 562, 569, 563, + 570, 571, 572, 564, 565, 573, 566, 567, 574, 575, + 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, + 586, 587, 588, 568, 589, 569, 590, 570, 571, 572, + 591, 592, 573, 593, 594, 574, 575, 576, 577, 578, + + 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, + 595, 589, 596, 590, 597, 598, 599, 591, 592, 600, + 593, 594, 601, 602, 603, 604, 607, 608, 609, 610, + 617, 618, 619, 620, 621, 622, 623, 595, 624, 596, + 625, 597, 598, 599, 626, 627, 600, 628, 629, 601, + 602, 603, 604, 607, 608, 609, 610, 617, 618, 619, + 620, 621, 622, 623, 630, 624, 632, 625, 633, 634, + 635, 626, 627, 636, 628, 629, 637, 638, 639, 640, + 641, 642, 643, 646, 647, 648, 649, 650, 651, 652, + 653, 630, 654, 632, 655, 633, 634, 635, 656, 657, + + 636, 658, 659, 637, 638, 639, 640, 641, 642, 643, + 646, 647, 648, 649, 650, 651, 652, 653, 660, 654, + 661, 655, 662, 663, 664, 656, 657, 665, 658, 659, + 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, + 676, 677, 678, 679, 680, 660, 681, 661, 684, 662, + 663, 664, 685, 686, 665, 687, 688, 666, 667, 668, + 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, + 679, 680, 689, 681, 690, 684, 691, 692, 693, 685, + 686, 694, 687, 688, 695, 698, 699, 700, 701, 702, + 703, 704, 705, 706, 707, 708, 709, 710, 711, 689, + + 712, 690, 713, 691, 692, 693, 716, 717, 694, 718, + 719, 695, 698, 699, 700, 701, 702, 703, 704, 705, + 706, 707, 708, 709, 710, 711, 720, 712, 721, 713, + 724, 725, 726, 716, 717, 728, 718, 719, 729, 731, + 732, 733, 734, 735, 736, 737, 738, 739, 740, 741, + 744, 746, 748, 720, 749, 721, 750, 724, 725, 726, + 751, 752, 728, 753, 758, 729, 731, 732, 733, 734, + 735, 736, 737, 738, 739, 740, 741, 744, 746, 748, + 759, 749, 760, 750, 761, 762, 763, 751, 752, 766, + 753, 758, 767, 768, 769, 774, 775, 776, 777, 778, + + 779, 780, 781, 782, 783, 784, 785, 759, 788, 760, + 789, 761, 762, 763, 790, 790, 766, 790, 790, 767, + 768, 769, 774, 775, 776, 777, 778, 779, 780, 781, + 782, 783, 784, 785, 790, 788, 790, 789, 24, 790, + 24, 49, 49, 49, 3, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790 } ; -static yyconst flex_int16_t yy_chk[2274] = +static yyconst flex_int16_t yy_chk[2217] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1049,248 +1036,242 @@ static yyconst flex_int16_t yy_chk[2274] = 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 13, 14, 14, 16, 15, - 14, 16, 16, 17, 17, 13, 164, 17, 13, 164, - 816, 12, 15, 15, 12, 52, 15, 211, 815, 814, - 211, 812, 13, 14, 14, 16, 15, 14, 16, 16, + 14, 16, 16, 17, 17, 13, 162, 17, 13, 162, + 796, 12, 15, 15, 12, 52, 15, 208, 795, 794, + 208, 792, 13, 14, 14, 16, 15, 14, 16, 16, 17, 17, 13, 19, 17, 13, 18, 29, 12, 15, 15, 12, 52, 15, 19, 21, 18, 19, 20, 18, - 19, 22, 20, 29, 22, 21, 29, 55, 21, 56, - 19, 31, 20, 18, 31, 20, 803, 802, 783, 782, - 781, 19, 21, 18, 19, 20, 18, 19, 22, 20, - 29, 22, 21, 29, 55, 21, 56, 780, 31, 20, - 771, 31, 20, 26, 26, 26, 26, 26, 26, 26, + 19, 22, 20, 29, 22, 21, 29, 54, 21, 55, + 19, 31, 20, 18, 31, 20, 783, 782, 763, 762, + 761, 19, 21, 18, 19, 20, 18, 19, 22, 20, + 29, 22, 21, 29, 54, 21, 55, 760, 31, 20, + 751, 31, 20, 26, 26, 26, 26, 26, 26, 26, - 770, 57, 26, 26, 26, 26, 26, 26, 26, 26, + 750, 56, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 26, 26, 26, 26, 26, 57, 26, + 26, 26, 26, 26, 26, 26, 26, 26, 56, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 30, 30, 30, 30, 30, 30, 30, 30, 32, - 33, 35, 58, 761, 33, 34, 35, 36, 34, 37, - 60, 38, 63, 60, 32, 32, 33, 35, 32, 33, - - 35, 34, 37, 36, 34, 37, 36, 38, 37, 58, - 38, 33, 64, 35, 38, 34, 760, 60, 759, 63, - 60, 32, 32, 33, 35, 32, 33, 35, 34, 37, - 36, 34, 37, 36, 38, 37, 39, 38, 40, 64, - 758, 38, 40, 41, 751, 42, 39, 42, 43, 44, - 748, 65, 39, 43, 40, 39, 45, 40, 41, 41, - 745, 89, 41, 42, 43, 44, 42, 43, 44, 40, - 744, 45, 45, 39, 90, 45, 726, 59, 65, 39, - 43, 40, 39, 59, 40, 41, 41, 46, 89, 41, + 33, 35, 57, 741, 33, 34, 35, 36, 34, 37, + 58, 38, 63, 64, 32, 32, 33, 35, 32, 33, + + 35, 34, 37, 36, 34, 37, 36, 38, 37, 57, + 38, 33, 65, 35, 38, 34, 740, 58, 739, 63, + 64, 32, 32, 33, 35, 32, 33, 35, 34, 37, + 36, 34, 37, 36, 38, 37, 39, 38, 40, 65, + 738, 38, 40, 41, 731, 42, 39, 42, 43, 44, + 728, 89, 39, 43, 40, 39, 45, 40, 41, 41, + 725, 90, 41, 42, 43, 44, 42, 43, 44, 40, + 724, 45, 45, 39, 91, 45, 706, 59, 89, 39, + 43, 40, 39, 59, 40, 41, 41, 46, 90, 41, 42, 43, 44, 42, 43, 44, 47, 48, 45, 45, - 54, 90, 45, 46, 59, 53, 46, 46, 82, 91, - 59, 82, 47, 48, 54, 47, 48, 53, 92, 48, - 723, 719, 718, 705, 93, 94, 704, 54, 685, 684, - 46, 95, 53, 46, 46, 82, 91, 73, 82, 47, - 48, 54, 47, 48, 53, 92, 48, 51, 51, 51, - 51, 93, 94, 73, 51, 51, 73, 51, 95, 61, + 703, 91, 45, 46, 59, 53, 46, 46, 60, 92, + 59, 60, 47, 48, 93, 47, 48, 53, 94, 48, + 66, 66, 66, 66, 66, 66, 66, 66, 699, 698, + 46, 96, 53, 46, 46, 60, 92, 73, 60, 47, + 48, 93, 47, 48, 53, 94, 48, 51, 51, 51, + 51, 685, 684, 73, 51, 51, 73, 51, 96, 61, 51, 61, 51, 61, 51, 51, 51, 51, 51, 62, - 96, 147, 150, 154, 51, 51, 51, 51, 62, 62, + 95, 145, 148, 152, 51, 51, 51, 51, 62, 62, 73, 51, 51, 73, 51, 62, 61, 51, 61, 51, - 61, 51, 51, 51, 51, 51, 62, 66, 66, 66, - - 66, 66, 66, 66, 66, 62, 62, 96, 147, 150, - 154, 669, 62, 67, 67, 67, 67, 67, 67, 67, - 67, 68, 68, 68, 68, 68, 68, 68, 68, 68, - 69, 69, 69, 69, 69, 69, 69, 69, 71, 71, - 71, 71, 71, 71, 71, 71, 72, 97, 74, 668, - 620, 98, 75, 76, 99, 100, 101, 77, 102, 619, - 103, 104, 72, 105, 74, 72, 72, 74, 75, 76, - 74, 75, 76, 77, 97, 606, 77, 77, 98, 173, - 78, 99, 100, 101, 585, 102, 78, 103, 104, 72, - 105, 74, 72, 72, 74, 75, 76, 74, 75, 76, - - 77, 79, 78, 77, 77, 78, 80, 79, 106, 107, - 584, 81, 84, 583, 108, 109, 173, 79, 110, 80, - 79, 83, 80, 81, 107, 80, 84, 81, 84, 78, - 81, 84, 78, 582, 79, 106, 107, 83, 111, 581, - 83, 108, 109, 83, 79, 110, 80, 79, 580, 80, - 81, 107, 80, 84, 81, 84, 85, 81, 84, 132, - 86, 85, 87, 122, 83, 111, 86, 83, 88, 133, - 83, 134, 85, 135, 88, 85, 86, 122, 87, 86, - 122, 87, 137, 138, 88, 87, 132, 88, 85, 122, - 122, 575, 574, 86, 516, 515, 133, 489, 134, 85, - - 135, 88, 85, 86, 122, 87, 86, 122, 87, 137, - 138, 88, 87, 488, 88, 112, 112, 112, 112, 112, - 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, + 61, 51, 51, 51, 51, 51, 62, 67, 67, 67, + + 67, 67, 67, 67, 67, 62, 62, 95, 145, 148, + 152, 665, 62, 68, 68, 68, 68, 68, 68, 68, + 68, 68, 69, 69, 69, 69, 69, 69, 69, 69, + 71, 71, 71, 71, 71, 71, 71, 71, 72, 97, + 74, 664, 649, 82, 75, 76, 82, 98, 99, 77, + 100, 648, 101, 102, 72, 103, 74, 72, 72, 74, + 75, 76, 74, 75, 76, 77, 97, 602, 77, 77, + 82, 171, 78, 82, 98, 99, 601, 100, 78, 101, + 102, 72, 103, 74, 72, 72, 74, 75, 76, 74, + 75, 76, 77, 79, 78, 77, 77, 78, 80, 79, + + 104, 105, 588, 81, 84, 569, 107, 108, 171, 79, + 109, 80, 79, 83, 80, 81, 110, 80, 84, 81, + 84, 78, 81, 84, 78, 568, 79, 104, 105, 83, + 567, 566, 83, 107, 108, 83, 79, 109, 80, 79, + 565, 80, 81, 110, 80, 84, 81, 84, 85, 81, + 84, 564, 86, 85, 87, 131, 83, 106, 86, 83, + 88, 121, 83, 132, 85, 133, 88, 85, 86, 135, + 87, 86, 106, 87, 136, 121, 88, 87, 121, 88, + 85, 559, 131, 558, 106, 86, 502, 121, 121, 501, + 132, 85, 133, 88, 85, 86, 135, 87, 86, 106, + + 87, 136, 121, 88, 87, 121, 88, 111, 111, 111, + 111, 111, 111, 111, 111, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 113, 113, 113, 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, 114, 114, 114, - 115, 115, 115, 115, 115, 115, 115, 115, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 117, 117, 117, - 117, 117, 117, 117, 117, 118, 119, 120, 190, 141, - 456, 121, 136, 455, 119, 118, 142, 121, 124, 123, - 136, 118, 119, 120, 118, 119, 120, 121, 123, 446, - 121, 445, 143, 200, 124, 123, 141, 124, 123, 136, - - 124, 119, 118, 142, 121, 190, 144, 136, 118, 119, - 120, 118, 119, 120, 121, 123, 125, 121, 126, 143, - 127, 124, 123, 395, 124, 123, 125, 124, 128, 129, - 200, 126, 125, 144, 126, 125, 127, 126, 131, 127, - 392, 357, 127, 145, 128, 129, 146, 128, 129, 130, - 129, 289, 288, 125, 131, 130, 148, 131, 126, 125, - 149, 126, 125, 127, 126, 130, 127, 139, 130, 127, - 145, 128, 129, 146, 128, 129, 139, 129, 139, 140, - 151, 131, 130, 148, 131, 152, 153, 149, 140, 156, - 140, 155, 130, 286, 139, 130, 285, 267, 266, 213, - - 212, 49, 25, 139, 24, 139, 140, 151, 23, 9, - 8, 174, 152, 153, 175, 140, 156, 140, 3, 155, - 157, 157, 157, 157, 157, 157, 157, 157, 155, 158, - 158, 158, 158, 158, 158, 158, 158, 159, 174, 160, - 176, 175, 177, 161, 162, 163, 155, 178, 179, 165, - 181, 182, 183, 159, 2, 160, 159, 159, 160, 161, - 162, 163, 161, 162, 163, 165, 0, 176, 165, 177, - 0, 205, 0, 163, 178, 179, 0, 181, 182, 183, - 159, 167, 160, 159, 159, 160, 161, 162, 163, 161, - 162, 163, 165, 166, 169, 165, 167, 167, 166, 168, - - 167, 168, 184, 170, 185, 0, 0, 186, 205, 166, - 169, 180, 166, 169, 171, 168, 172, 170, 168, 170, - 187, 180, 170, 167, 167, 166, 188, 167, 168, 184, - 171, 185, 172, 171, 186, 172, 166, 169, 189, 166, - 169, 191, 168, 192, 170, 168, 170, 187, 180, 170, - 193, 194, 195, 188, 196, 197, 198, 171, 199, 172, - 171, 201, 172, 202, 203, 189, 202, 203, 191, 204, - 192, 206, 207, 0, 0, 0, 210, 193, 194, 195, - 0, 196, 197, 198, 0, 199, 0, 0, 201, 0, - 202, 203, 210, 202, 203, 210, 204, 210, 206, 207, - - 208, 208, 208, 208, 208, 208, 208, 208, 209, 209, - 209, 209, 209, 209, 209, 209, 216, 214, 215, 210, - 0, 220, 210, 214, 210, 217, 218, 219, 221, 222, - 223, 225, 216, 214, 215, 216, 214, 215, 215, 224, - 226, 217, 218, 219, 217, 218, 219, 219, 220, 0, - 214, 227, 228, 230, 231, 221, 222, 223, 225, 216, - 214, 215, 216, 214, 215, 215, 232, 226, 217, 218, - 219, 217, 218, 219, 219, 233, 224, 234, 227, 228, - 230, 231, 235, 236, 237, 238, 239, 240, 241, 242, - 243, 244, 245, 232, 246, 247, 248, 249, 250, 251, - - 252, 253, 233, 254, 234, 255, 256, 257, 258, 235, - 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 259, 260, 247, 248, 249, 250, 251, 252, 253, 261, - 254, 246, 255, 256, 257, 258, 262, 263, 263, 263, - 263, 263, 263, 263, 263, 263, 275, 259, 260, 276, - 0, 0, 0, 273, 274, 277, 261, 270, 271, 290, - 278, 0, 279, 262, 264, 264, 264, 264, 264, 264, - 264, 264, 265, 270, 271, 280, 270, 271, 265, 272, - 273, 274, 277, 275, 281, 282, 276, 278, 265, 279, - 283, 265, 284, 287, 291, 272, 290, 292, 272, 293, - - 270, 271, 280, 270, 271, 265, 294, 295, 296, 297, - 298, 281, 282, 299, 300, 265, 302, 283, 265, 284, - 287, 291, 272, 303, 304, 272, 293, 305, 301, 306, - 316, 307, 308, 294, 292, 296, 297, 298, 301, 309, - 299, 300, 310, 302, 295, 311, 312, 313, 314, 315, - 303, 0, 322, 323, 305, 324, 306, 301, 307, 308, - 0, 304, 319, 331, 0, 301, 309, 316, 325, 310, - 326, 327, 311, 312, 313, 314, 315, 319, 319, 322, - 323, 319, 324, 328, 301, 317, 317, 317, 317, 317, - 317, 317, 317, 317, 329, 325, 330, 326, 327, 332, - - 331, 333, 334, 335, 319, 319, 336, 337, 319, 338, - 328, 339, 340, 341, 342, 344, 345, 346, 347, 348, - 349, 329, 350, 330, 351, 352, 332, 353, 333, 334, - 335, 354, 355, 336, 337, 358, 338, 359, 339, 340, - 341, 342, 344, 345, 346, 347, 348, 349, 360, 350, - 363, 351, 352, 364, 353, 361, 361, 365, 354, 355, - 362, 362, 358, 366, 359, 367, 368, 0, 369, 371, - 372, 374, 375, 0, 0, 360, 0, 363, 0, 0, - 364, 0, 361, 361, 378, 379, 380, 362, 362, 381, - 366, 382, 367, 368, 365, 369, 371, 372, 374, 375, - - 376, 376, 376, 376, 376, 376, 376, 376, 376, 377, - 383, 378, 379, 380, 384, 385, 381, 386, 382, 387, - 388, 389, 390, 391, 393, 377, 394, 396, 377, 397, - 377, 398, 399, 400, 401, 402, 403, 383, 404, 405, - 406, 384, 385, 407, 386, 408, 387, 388, 389, 390, - 391, 393, 377, 394, 396, 377, 397, 377, 398, 399, - 400, 401, 402, 403, 409, 404, 405, 406, 410, 411, - 407, 413, 408, 414, 415, 416, 417, 418, 419, 420, - 421, 422, 423, 425, 424, 426, 427, 428, 429, 430, - 431, 409, 424, 426, 433, 410, 411, 434, 413, 435, - - 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, - 425, 424, 426, 427, 428, 429, 430, 431, 432, 424, - 426, 433, 436, 437, 434, 438, 435, 439, 440, 441, - 442, 443, 444, 447, 432, 448, 449, 432, 450, 461, - 451, 452, 453, 454, 457, 458, 459, 460, 462, 436, - 437, 463, 438, 464, 439, 440, 465, 442, 443, 444, - 447, 432, 448, 449, 432, 450, 441, 451, 452, 453, - 454, 457, 458, 459, 460, 462, 461, 466, 463, 467, - 464, 468, 469, 465, 470, 471, 472, 473, 474, 475, - 476, 477, 478, 479, 480, 481, 482, 483, 486, 487, - - 490, 491, 492, 493, 466, 494, 467, 495, 468, 469, - 496, 470, 471, 472, 473, 474, 475, 476, 477, 478, - 479, 480, 481, 482, 483, 486, 487, 490, 491, 492, - 493, 497, 494, 498, 495, 499, 500, 496, 501, 502, - 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, - 513, 514, 517, 518, 519, 520, 521, 522, 497, 523, - 498, 524, 499, 500, 525, 501, 502, 503, 504, 505, - 506, 507, 508, 509, 510, 511, 512, 513, 514, 517, - 518, 519, 520, 521, 522, 526, 523, 527, 524, 528, - 529, 525, 530, 533, 534, 535, 536, 537, 538, 539, - - 540, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 526, 554, 527, 555, 528, 529, 556, 530, - 533, 534, 535, 536, 537, 538, 539, 540, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 557, - 554, 558, 555, 559, 560, 556, 561, 562, 563, 564, - 565, 566, 567, 568, 569, 572, 573, 576, 577, 578, - 579, 588, 589, 591, 592, 594, 557, 595, 558, 596, - 559, 560, 597, 561, 562, 563, 564, 565, 566, 567, - 568, 569, 572, 573, 576, 577, 578, 579, 588, 589, - 591, 592, 594, 598, 595, 599, 596, 600, 601, 597, - - 602, 603, 604, 605, 607, 608, 609, 610, 611, 612, - 613, 614, 615, 616, 617, 618, 621, 622, 625, 626, - 598, 627, 599, 628, 600, 601, 631, 602, 603, 604, - 605, 607, 608, 609, 610, 611, 612, 613, 614, 615, - 616, 617, 618, 621, 622, 625, 626, 632, 627, 633, - 628, 634, 635, 631, 637, 639, 640, 641, 642, 643, - 644, 647, 648, 649, 650, 652, 653, 654, 655, 656, - 657, 658, 659, 660, 632, 661, 633, 662, 634, 635, - 663, 637, 639, 640, 641, 642, 643, 644, 647, 648, - 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, - - 660, 666, 661, 667, 662, 670, 671, 663, 672, 673, - 674, 675, 678, 679, 680, 681, 682, 683, 686, 687, - 688, 689, 690, 691, 692, 693, 694, 695, 666, 696, - 667, 697, 670, 671, 698, 672, 673, 674, 675, 678, - 679, 680, 681, 682, 683, 686, 687, 688, 689, 690, - 691, 692, 693, 694, 695, 699, 696, 700, 697, 701, - 706, 698, 707, 708, 709, 710, 711, 720, 721, 722, - 724, 725, 727, 730, 731, 732, 733, 734, 735, 736, - 737, 738, 699, 739, 700, 746, 701, 706, 749, 707, - 708, 709, 710, 711, 720, 721, 722, 724, 725, 727, - - 730, 731, 732, 733, 734, 735, 736, 737, 738, 752, - 739, 753, 746, 754, 755, 749, 756, 757, 762, 763, - 764, 766, 768, 769, 772, 773, 778, 779, 784, 785, - 786, 787, 788, 789, 794, 795, 752, 796, 753, 797, - 754, 755, 800, 756, 757, 762, 763, 764, 766, 768, - 769, 772, 773, 778, 779, 784, 785, 786, 787, 788, - 789, 794, 795, 801, 796, 804, 797, 805, 0, 800, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 801, 0, 804, 0, 805, 811, 0, 811, 813, 813, - - 813, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810, 810, 810, 810, 810, 810, 810, 810, - 810, 810, 810 + 115, 115, 115, 115, 115, 115, 115, 115, 115, 116, + 116, 116, 116, 116, 116, 116, 116, 117, 118, 119, + 187, 139, 477, 120, 134, 476, 118, 117, 140, 120, + 123, 122, 134, 117, 118, 119, 117, 118, 119, 120, + 122, 444, 120, 443, 141, 197, 123, 122, 139, 123, + 122, 134, 123, 118, 117, 140, 120, 187, 142, 134, + + 117, 118, 119, 117, 118, 119, 120, 122, 124, 120, + 125, 141, 126, 123, 122, 434, 123, 122, 124, 123, + 127, 128, 197, 125, 124, 142, 125, 124, 126, 125, + 130, 126, 433, 385, 126, 143, 127, 128, 144, 127, + 128, 129, 128, 382, 349, 124, 130, 129, 146, 130, + 125, 124, 147, 125, 124, 126, 125, 129, 126, 137, + 129, 126, 143, 127, 128, 144, 127, 128, 137, 128, + 137, 138, 149, 130, 129, 146, 130, 150, 151, 147, + 138, 154, 138, 153, 129, 283, 137, 129, 282, 280, + 279, 263, 262, 210, 209, 137, 49, 137, 138, 149, + + 25, 24, 23, 172, 150, 151, 173, 138, 154, 138, + 9, 153, 155, 155, 155, 155, 155, 155, 155, 155, + 153, 156, 156, 156, 156, 156, 156, 156, 156, 157, + 172, 158, 174, 173, 175, 159, 160, 161, 153, 176, + 178, 163, 179, 180, 181, 157, 8, 158, 157, 157, + 158, 159, 160, 161, 159, 160, 161, 163, 3, 174, + 163, 175, 2, 202, 0, 161, 176, 178, 0, 179, + 180, 181, 157, 165, 158, 157, 157, 158, 159, 160, + 161, 159, 160, 161, 163, 164, 167, 163, 165, 165, + 164, 166, 165, 166, 182, 168, 183, 0, 0, 184, + + 202, 164, 167, 177, 164, 167, 169, 166, 170, 168, + 166, 168, 185, 177, 168, 165, 165, 164, 186, 165, + 166, 182, 169, 183, 170, 169, 184, 170, 164, 167, + 188, 164, 167, 189, 166, 190, 168, 166, 168, 185, + 177, 168, 191, 192, 193, 186, 194, 195, 196, 169, + 198, 170, 169, 199, 170, 200, 199, 188, 200, 201, + 189, 203, 190, 204, 0, 0, 0, 0, 207, 191, + 192, 193, 242, 194, 195, 196, 0, 198, 0, 0, + 199, 271, 200, 199, 207, 200, 201, 207, 203, 207, + 204, 205, 205, 205, 205, 205, 205, 205, 205, 206, + + 206, 206, 206, 206, 206, 206, 206, 211, 212, 242, + 217, 207, 218, 211, 207, 213, 207, 214, 271, 215, + 219, 220, 221, 211, 212, 216, 211, 212, 212, 222, + 223, 213, 224, 214, 213, 215, 214, 217, 215, 218, + 211, 216, 226, 227, 216, 216, 228, 219, 220, 221, + 211, 212, 229, 211, 212, 212, 222, 223, 213, 224, + 214, 213, 215, 214, 230, 215, 231, 232, 216, 226, + 227, 216, 216, 228, 233, 234, 235, 236, 237, 229, + 238, 239, 240, 241, 243, 244, 245, 246, 247, 248, + 249, 230, 250, 231, 232, 251, 252, 253, 254, 255, + + 256, 233, 234, 235, 236, 237, 257, 238, 239, 240, + 241, 243, 244, 245, 246, 247, 248, 249, 258, 250, + 0, 0, 251, 252, 253, 254, 255, 256, 272, 0, + 269, 270, 0, 257, 259, 259, 259, 259, 259, 259, + 259, 259, 259, 266, 284, 258, 260, 260, 260, 260, + 260, 260, 260, 260, 261, 267, 268, 269, 270, 266, + 261, 273, 266, 274, 275, 272, 276, 277, 278, 281, + 261, 267, 268, 261, 267, 268, 285, 286, 287, 288, + 289, 284, 290, 291, 292, 293, 266, 261, 273, 266, + 274, 275, 294, 276, 277, 278, 281, 261, 267, 268, + + 261, 267, 268, 285, 296, 287, 288, 297, 295, 290, + 291, 292, 293, 298, 286, 299, 300, 289, 295, 294, + 301, 302, 303, 310, 304, 305, 306, 307, 308, 309, + 316, 296, 0, 0, 297, 317, 318, 295, 0, 0, + 0, 0, 299, 300, 323, 295, 0, 301, 302, 303, + 298, 304, 305, 306, 307, 308, 309, 316, 319, 313, + 310, 320, 317, 318, 295, 311, 311, 311, 311, 311, + 311, 311, 311, 311, 313, 313, 321, 322, 313, 324, + 325, 323, 326, 327, 328, 319, 329, 330, 320, 331, + 332, 333, 334, 336, 337, 338, 339, 340, 341, 342, + + 343, 313, 313, 321, 322, 313, 324, 325, 344, 326, + 327, 328, 345, 329, 330, 346, 331, 332, 333, 334, + 336, 337, 338, 339, 340, 341, 342, 343, 347, 350, + 351, 352, 353, 353, 355, 344, 354, 354, 356, 345, + 357, 358, 346, 359, 360, 361, 363, 364, 366, 367, + 0, 0, 0, 0, 0, 347, 350, 351, 352, 353, + 353, 355, 370, 354, 354, 356, 371, 372, 358, 373, + 359, 360, 361, 363, 364, 366, 367, 357, 368, 368, + 368, 368, 368, 368, 368, 368, 368, 369, 374, 370, + 375, 376, 377, 371, 372, 378, 373, 379, 380, 381, + + 383, 384, 386, 369, 387, 388, 369, 389, 369, 390, + 391, 392, 393, 394, 395, 374, 396, 375, 376, 377, + 397, 398, 378, 399, 379, 380, 381, 383, 384, 386, + 369, 387, 388, 369, 389, 369, 390, 391, 392, 393, + 394, 395, 400, 396, 401, 403, 404, 397, 398, 405, + 399, 406, 407, 408, 409, 410, 411, 412, 413, 414, + 415, 417, 416, 418, 419, 420, 421, 414, 429, 400, + 416, 401, 403, 404, 423, 424, 405, 425, 406, 407, + 408, 409, 410, 411, 412, 413, 414, 415, 417, 416, + 418, 419, 420, 421, 414, 422, 426, 416, 427, 428, + + 430, 423, 424, 431, 425, 429, 432, 435, 436, 437, + 438, 422, 439, 440, 422, 441, 442, 445, 446, 447, + 448, 449, 450, 426, 451, 427, 428, 430, 452, 453, + 431, 0, 454, 432, 435, 436, 437, 438, 422, 439, + 440, 422, 441, 442, 445, 446, 447, 448, 455, 450, + 456, 451, 457, 458, 459, 452, 453, 460, 449, 454, + 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, + 471, 474, 475, 478, 479, 455, 480, 456, 481, 457, + 458, 459, 482, 483, 460, 484, 485, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 474, 475, + + 478, 479, 486, 480, 487, 481, 488, 489, 490, 482, + 483, 491, 484, 485, 492, 493, 494, 495, 496, 497, + 498, 499, 500, 503, 504, 505, 506, 507, 508, 486, + 509, 487, 510, 488, 489, 490, 511, 512, 491, 513, + 514, 492, 493, 494, 495, 496, 497, 498, 499, 500, + 503, 504, 505, 506, 507, 508, 515, 509, 516, 510, + 519, 520, 521, 511, 512, 522, 513, 514, 523, 524, + 525, 526, 529, 530, 531, 532, 533, 534, 535, 536, + 537, 538, 539, 515, 540, 516, 541, 519, 520, 521, + 542, 543, 522, 544, 545, 523, 524, 525, 526, 529, + + 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, + 546, 540, 547, 541, 548, 549, 550, 542, 543, 551, + 544, 545, 552, 553, 556, 557, 560, 561, 562, 563, + 572, 573, 575, 576, 578, 579, 580, 546, 581, 547, + 582, 548, 549, 550, 583, 584, 551, 585, 586, 552, + 553, 556, 557, 560, 561, 562, 563, 572, 573, 575, + 576, 578, 579, 580, 587, 581, 589, 582, 590, 591, + 592, 583, 584, 593, 585, 586, 594, 595, 596, 597, + 598, 599, 600, 603, 604, 607, 608, 609, 610, 613, + 614, 587, 615, 589, 616, 590, 591, 592, 617, 619, + + 593, 621, 622, 594, 595, 596, 597, 598, 599, 600, + 603, 604, 607, 608, 609, 610, 613, 614, 623, 615, + 624, 616, 625, 626, 627, 617, 619, 628, 621, 622, + 629, 630, 632, 633, 634, 635, 636, 637, 638, 639, + 640, 641, 642, 643, 646, 623, 647, 624, 650, 625, + 626, 627, 651, 652, 628, 653, 654, 629, 630, 632, + 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, + 643, 646, 655, 647, 658, 650, 659, 660, 661, 651, + 652, 662, 653, 654, 663, 666, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 655, + + 680, 658, 681, 659, 660, 661, 686, 687, 662, 688, + 689, 663, 666, 667, 668, 669, 670, 671, 672, 673, + 674, 675, 676, 677, 678, 679, 690, 680, 691, 681, + 700, 701, 702, 686, 687, 704, 688, 689, 705, 707, + 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, + 726, 729, 732, 690, 733, 691, 734, 700, 701, 702, + 735, 736, 704, 737, 742, 705, 707, 710, 711, 712, + 713, 714, 715, 716, 717, 718, 719, 726, 729, 732, + 743, 733, 744, 734, 746, 748, 749, 735, 736, 752, + 737, 742, 753, 758, 759, 764, 765, 766, 767, 768, + + 769, 774, 775, 776, 777, 780, 781, 743, 784, 744, + 785, 746, 748, 749, 0, 0, 752, 0, 0, 753, + 758, 759, 764, 765, 766, 767, 768, 769, 774, 775, + 776, 777, 780, 781, 0, 784, 0, 785, 791, 0, + 791, 793, 793, 793, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + + 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, + 790, 790, 790, 790, 790, 790 } ; -static yyconst flex_int16_t yy_rule_linenum[96] = +static yyconst flex_int16_t yy_rule_linenum[94] = { 0, 76, 79, 81, 83, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, @@ -1298,10 +1279,10 @@ static yyconst flex_int16_t yy_rule_linenum[96] = 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 + 144, 145, 146, 148, 149, 151, 152, 153, 154, 155, + 156, 158, 159, 162, 167, 168, 169, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 181, 187, 193, 199, + 205, 211, 217 } ; @@ -1357,7 +1338,7 @@ static yyconst flex_int16_t yy_rule_linenum[96] = #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM) -#line 1361 "libmemcached/options/scanner.cc" +#line 1342 "libmemcached/options/scanner.cc" #define INITIAL 0 @@ -1664,7 +1645,7 @@ YY_DECL -#line 1668 "libmemcached/options/scanner.cc" +#line 1649 "libmemcached/options/scanner.cc" yylval = yylval_param; @@ -1730,13 +1711,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 811 ) + if ( yy_current_state >= 791 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 2202 ); + while ( yy_base[yy_current_state] != 2145 ); yy_find_action: /* %% [10.0] code to find the action number goes here */ @@ -1759,13 +1740,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 96 ) + else if ( yy_act < 94 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 96 ) + else if ( yy_act == 94 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 97 ) + else if ( yy_act == 95 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1860,444 +1841,434 @@ YY_RULE_SETUP case 15: YY_RULE_SETUP #line 98 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CACHE_LOOKUPS; } +{ yyextra->begin= yytext; return CONFIGURE_FILE; } YY_BREAK case 16: YY_RULE_SETUP #line 99 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CACHE_LOOKUPS; } +{ yyextra->begin= yytext; return CONFIGURE_FILE; } YY_BREAK case 17: YY_RULE_SETUP #line 100 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CONFIGURE_FILE; } +{ yyextra->begin= yytext; return CONNECT_TIMEOUT; } YY_BREAK case 18: YY_RULE_SETUP #line 101 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CONFIGURE_FILE; } +{ yyextra->begin= yytext; return CONNECT_TIMEOUT; } YY_BREAK case 19: YY_RULE_SETUP #line 102 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CONNECT_TIMEOUT; } +{ yyextra->begin= yytext; return DISTRIBUTION; } YY_BREAK case 20: YY_RULE_SETUP #line 103 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CONNECT_TIMEOUT; } +{ yyextra->begin= yytext; return HASH; } YY_BREAK case 21: YY_RULE_SETUP #line 104 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return DISTRIBUTION; } +{ yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; } YY_BREAK case 22: YY_RULE_SETUP #line 105 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return HASH; } +{ yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; } YY_BREAK case 23: YY_RULE_SETUP #line 106 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; } +{ yyextra->begin= yytext; return IO_BYTES_WATERMARK; } YY_BREAK case 24: YY_RULE_SETUP #line 107 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; } +{ yyextra->begin= yytext; return IO_BYTES_WATERMARK; } YY_BREAK case 25: YY_RULE_SETUP #line 108 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_BYTES_WATERMARK; } +{ yyextra->begin= yytext; return IO_KEY_PREFETCH; } YY_BREAK case 26: YY_RULE_SETUP #line 109 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_BYTES_WATERMARK; } +{ yyextra->begin= yytext; return IO_KEY_PREFETCH; } YY_BREAK case 27: YY_RULE_SETUP #line 110 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_KEY_PREFETCH; } +{ yyextra->begin= yytext; return IO_MSG_WATERMARK; } YY_BREAK case 28: YY_RULE_SETUP #line 111 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_KEY_PREFETCH; } +{ yyextra->begin= yytext; return IO_MSG_WATERMARK; } YY_BREAK case 29: YY_RULE_SETUP #line 112 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_MSG_WATERMARK; } +{ yyextra->begin= yytext; return KETAMA_WEIGHTED; } YY_BREAK case 30: YY_RULE_SETUP #line 113 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_MSG_WATERMARK; } +{ yyextra->begin= yytext; return KETAMA_WEIGHTED; } YY_BREAK case 31: YY_RULE_SETUP #line 114 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return KETAMA_WEIGHTED; } +{ yyextra->begin= yytext; return NOREPLY; } YY_BREAK case 32: YY_RULE_SETUP #line 115 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return KETAMA_WEIGHTED; } +{ yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } YY_BREAK case 33: YY_RULE_SETUP #line 116 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return NOREPLY; } +{ yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } YY_BREAK case 34: YY_RULE_SETUP #line 117 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } +{ yyextra->begin= yytext; return POLL_TIMEOUT; } YY_BREAK case 35: YY_RULE_SETUP #line 118 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } +{ yyextra->begin= yytext; return POLL_TIMEOUT; } YY_BREAK case 36: YY_RULE_SETUP #line 119 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return POLL_TIMEOUT; } +{ yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } YY_BREAK case 37: YY_RULE_SETUP #line 120 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return POLL_TIMEOUT; } +{ yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } YY_BREAK case 38: YY_RULE_SETUP #line 121 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } +{ yyextra->begin= yytext; return RCV_TIMEOUT; } YY_BREAK case 39: YY_RULE_SETUP #line 122 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } +{ yyextra->begin= yytext; return RCV_TIMEOUT; } YY_BREAK case 40: YY_RULE_SETUP #line 123 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RCV_TIMEOUT; } +{ yyextra->begin= yytext; return RETRY_TIMEOUT; } YY_BREAK case 41: YY_RULE_SETUP #line 124 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RCV_TIMEOUT; } +{ yyextra->begin= yytext; return RETRY_TIMEOUT; } YY_BREAK case 42: YY_RULE_SETUP #line 125 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RETRY_TIMEOUT; } +{ yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; } YY_BREAK case 43: YY_RULE_SETUP #line 126 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RETRY_TIMEOUT; } +{ yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; } YY_BREAK case 44: YY_RULE_SETUP #line 127 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; } +{ yyextra->begin= yytext; return SND_TIMEOUT; } YY_BREAK case 45: YY_RULE_SETUP #line 128 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SERVER_FAILURE_LIMIT; } +{ yyextra->begin= yytext; return SND_TIMEOUT; } YY_BREAK case 46: YY_RULE_SETUP #line 129 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SND_TIMEOUT; } +{ yyextra->begin= yytext; return SOCKET_RECV_SIZE; } YY_BREAK case 47: YY_RULE_SETUP #line 130 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SND_TIMEOUT; } +{ yyextra->begin= yytext; return SOCKET_RECV_SIZE; } YY_BREAK case 48: YY_RULE_SETUP #line 131 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SOCKET_RECV_SIZE; } +{ yyextra->begin= yytext; return SOCKET_SEND_SIZE; } YY_BREAK case 49: YY_RULE_SETUP #line 132 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SOCKET_RECV_SIZE; } +{ yyextra->begin= yytext; return SOCKET_SEND_SIZE; } YY_BREAK case 50: YY_RULE_SETUP #line 133 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SOCKET_SEND_SIZE; } +{ yyextra->begin= yytext; return SORT_HOSTS; } YY_BREAK case 51: YY_RULE_SETUP #line 134 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SOCKET_SEND_SIZE; } +{ yyextra->begin= yytext; return SORT_HOSTS; } YY_BREAK case 52: YY_RULE_SETUP #line 135 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SORT_HOSTS; } +{ yyextra->begin= yytext; return SUPPORT_CAS; } YY_BREAK case 53: YY_RULE_SETUP #line 136 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SORT_HOSTS; } +{ yyextra->begin= yytext; return SUPPORT_CAS; } YY_BREAK case 54: YY_RULE_SETUP #line 137 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SUPPORT_CAS; } +{ yyextra->begin= yytext; return _TCP_NODELAY; } YY_BREAK case 55: YY_RULE_SETUP #line 138 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SUPPORT_CAS; } +{ yyextra->begin= yytext; return _TCP_NODELAY; } YY_BREAK case 56: YY_RULE_SETUP #line 139 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_NODELAY; } +{ yyextra->begin= yytext; return _TCP_KEEPALIVE; } YY_BREAK case 57: YY_RULE_SETUP #line 140 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_NODELAY; } +{ yyextra->begin= yytext; return _TCP_KEEPALIVE; } YY_BREAK case 58: YY_RULE_SETUP #line 141 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_KEEPALIVE; } +{ yyextra->begin= yytext; return _TCP_KEEPIDLE; } YY_BREAK case 59: YY_RULE_SETUP #line 142 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_KEEPALIVE; } +{ yyextra->begin= yytext; return _TCP_KEEPIDLE; } YY_BREAK case 60: YY_RULE_SETUP #line 143 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_KEEPIDLE; } +{ yyextra->begin= yytext; return USER_DATA; } YY_BREAK case 61: YY_RULE_SETUP #line 144 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_KEEPIDLE; } +{ yyextra->begin= yytext; return USER_DATA; } YY_BREAK case 62: YY_RULE_SETUP #line 145 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return USER_DATA; } +{ yyextra->begin= yytext; return USE_UDP; } YY_BREAK case 63: YY_RULE_SETUP #line 146 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return USER_DATA; } +{ yyextra->begin= yytext; return USE_UDP; } YY_BREAK case 64: YY_RULE_SETUP -#line 147 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return USE_UDP; } +#line 148 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return PREFIX_KEY; } YY_BREAK case 65: YY_RULE_SETUP -#line 148 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return USE_UDP; } +#line 149 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return PREFIX_KEY; } YY_BREAK case 66: YY_RULE_SETUP -#line 150 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return PREFIX_KEY; } +#line 151 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return INCLUDE; } YY_BREAK case 67: YY_RULE_SETUP -#line 151 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return PREFIX_KEY; } +#line 152 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return RESET; } YY_BREAK case 68: YY_RULE_SETUP #line 153 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return INCLUDE; } +{ yyextra->begin= yytext; return PARSER_DEBUG; } YY_BREAK case 69: YY_RULE_SETUP #line 154 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RESET; } +{ yyextra->begin= yytext; return SERVERS; } YY_BREAK case 70: YY_RULE_SETUP #line 155 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return PARSER_DEBUG; } +{ yyextra->begin= yytext; return END; } YY_BREAK case 71: YY_RULE_SETUP #line 156 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SERVERS; } +{ yyextra->begin= yytext; return ERROR; } YY_BREAK case 72: YY_RULE_SETUP -#line 157 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return END; } +#line 158 "libmemcached/options/scanner.l" +{ return TRUE; } YY_BREAK case 73: YY_RULE_SETUP -#line 158 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return ERROR; } +#line 159 "libmemcached/options/scanner.l" +{ return FALSE; } YY_BREAK case 74: YY_RULE_SETUP -#line 160 "libmemcached/options/scanner.l" -{ return TRUE; } +#line 162 "libmemcached/options/scanner.l" +{ + yyextra->begin= yytext; + return UNKNOWN_OPTION; + } YY_BREAK case 75: YY_RULE_SETUP -#line 161 "libmemcached/options/scanner.l" -{ return FALSE; } +#line 167 "libmemcached/options/scanner.l" +{ return CONSISTENT; } YY_BREAK case 76: YY_RULE_SETUP -#line 164 "libmemcached/options/scanner.l" -{ - yyextra->begin= yytext; - return UNKNOWN_OPTION; - } +#line 168 "libmemcached/options/scanner.l" +{ return MODULA; } YY_BREAK case 77: YY_RULE_SETUP #line 169 "libmemcached/options/scanner.l" -{ return CONSISTENT; } +{ return RANDOM; } YY_BREAK case 78: YY_RULE_SETUP -#line 170 "libmemcached/options/scanner.l" -{ return MODULA; } +#line 171 "libmemcached/options/scanner.l" +{ return MD5; } YY_BREAK case 79: YY_RULE_SETUP -#line 171 "libmemcached/options/scanner.l" -{ return RANDOM; } +#line 172 "libmemcached/options/scanner.l" +{ return CRC; } YY_BREAK case 80: YY_RULE_SETUP #line 173 "libmemcached/options/scanner.l" -{ return MD5; } +{ return FNV1_64; } YY_BREAK case 81: YY_RULE_SETUP #line 174 "libmemcached/options/scanner.l" -{ return CRC; } +{ return FNV1A_64; } YY_BREAK case 82: YY_RULE_SETUP #line 175 "libmemcached/options/scanner.l" -{ return FNV1_64; } +{ return FNV1_32; } YY_BREAK case 83: YY_RULE_SETUP #line 176 "libmemcached/options/scanner.l" -{ return FNV1A_64; } +{ return FNV1A_32; } YY_BREAK case 84: YY_RULE_SETUP #line 177 "libmemcached/options/scanner.l" -{ return FNV1_32; } +{ return HSIEH; } YY_BREAK case 85: YY_RULE_SETUP #line 178 "libmemcached/options/scanner.l" -{ return FNV1A_32; } +{ return MURMUR; } YY_BREAK case 86: YY_RULE_SETUP #line 179 "libmemcached/options/scanner.l" -{ return HSIEH; } +{ return JENKINS; } YY_BREAK case 87: YY_RULE_SETUP -#line 180 "libmemcached/options/scanner.l" -{ return MURMUR; } - YY_BREAK -case 88: -YY_RULE_SETUP #line 181 "libmemcached/options/scanner.l" -{ return JENKINS; } - YY_BREAK -case 89: -YY_RULE_SETUP -#line 183 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; return HOSTNAME_WITH_PORT; } YY_BREAK -case 90: +case 88: YY_RULE_SETUP -#line 189 "libmemcached/options/scanner.l" +#line 187 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; return HOSTNAME; } YY_BREAK -case 91: +case 89: YY_RULE_SETUP -#line 195 "libmemcached/options/scanner.l" +#line 193 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; return IPADDRESS_WITH_PORT; } YY_BREAK -case 92: +case 90: YY_RULE_SETUP -#line 201 "libmemcached/options/scanner.l" +#line 199 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; return IPADDRESS; } YY_BREAK -case 93: +case 91: YY_RULE_SETUP -#line 207 "libmemcached/options/scanner.l" +#line 205 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; return STRING; } YY_BREAK -case 94: +case 92: YY_RULE_SETUP -#line 213 "libmemcached/options/scanner.l" +#line 211 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.length = yyleng; return QUOTED_STRING; } YY_BREAK -case 95: +case 93: YY_RULE_SETUP -#line 219 "libmemcached/options/scanner.l" +#line 217 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return UNKNOWN; } YY_BREAK -case 96: +case 94: YY_RULE_SETUP -#line 224 "libmemcached/options/scanner.l" +#line 222 "libmemcached/options/scanner.l" ECHO; YY_BREAK -#line 2301 "libmemcached/options/scanner.cc" +#line 2272 "libmemcached/options/scanner.cc" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2613,7 +2584,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 811 ) + if ( yy_current_state >= 791 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2647,11 +2618,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 811 ) + if ( yy_current_state >= 791 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 810); + yy_is_jam = (yy_current_state == 790); return yy_is_jam ? 0 : yy_current_state; } @@ -3563,7 +3534,7 @@ void config_free (void * ptr , yyscan_t yyscanner) /* %ok-for-header */ -#line 224 "libmemcached/options/scanner.l" +#line 222 "libmemcached/options/scanner.l" diff --git a/libmemcached/options/scanner.h b/libmemcached/options/scanner.h index 062d9adf..96266ab0 100644 --- a/libmemcached/options/scanner.h +++ b/libmemcached/options/scanner.h @@ -470,7 +470,7 @@ extern int config_lex \ #undef YY_DECL #endif -#line 224 "libmemcached/options/scanner.l" +#line 222 "libmemcached/options/scanner.l" #line 477 "libmemcached/options/scanner.h" diff --git a/libmemcached/options/scanner.l b/libmemcached/options/scanner.l index b3fce3c3..57826e8e 100644 --- a/libmemcached/options/scanner.l +++ b/libmemcached/options/scanner.l @@ -95,8 +95,6 @@ "--BINARY-PROTOCOL" { yyextra->begin= yytext; return BINARY_PROTOCOL; } "--BUFFER_REQUESTS" { yyextra->begin= yytext; return BUFFER_REQUESTS; } "--BUFFER-REQUESTS" { yyextra->begin= yytext; return BUFFER_REQUESTS; } -"--CACHE_LOOKUPS" { yyextra->begin= yytext; return CACHE_LOOKUPS; } -"--CACHE-LOOKUPS" { yyextra->begin= yytext; return CACHE_LOOKUPS; } "--CONFIGURE_FILE=" { yyextra->begin= yytext; return CONFIGURE_FILE; } "--CONFIGURE-FILE=" { yyextra->begin= yytext; return CONFIGURE_FILE; } "--CONNECT_TIMEOUT=" { yyextra->begin= yytext; return CONNECT_TIMEOUT; } diff --git a/libmemcached/strerror.c b/libmemcached/strerror.c index 773ccd03..b3ac2b75 100644 --- a/libmemcached/strerror.c +++ b/libmemcached/strerror.c @@ -95,6 +95,8 @@ const char *memcached_strerror(memcached_st *ptr, memcached_return_t rc) return "ERROR OCCURED WHILE PARSING"; case MEMCACHED_PARSE_USER_ERROR: return "USER INITIATED ERROR OCCURED WHILE PARSING"; + case MEMCACHED_DEPRECATED: + return "DEPRECATED"; case MEMCACHED_MAXIMUM_RETURN: return "Gibberish returned!"; default: diff --git a/tests/mem_functions.c b/tests/mem_functions.c index bd01908e..f6b429a8 100644 --- a/tests/mem_functions.c +++ b/tests/mem_functions.c @@ -405,7 +405,7 @@ static test_return_t error_test(memcached_st *memc) 54481931U, 4186304426U, 1741088401U, 2979625118U, 4159057246U, 3425930182U, 2593724503U, 1868899624U, 1769812374U, 2302537950U, 1110330676U, 3365377466U, - 1336171666U, 3365377466U }; + 1336171666U, 3021258493U, 3365377466U }; // You have updated the memcache_error messages but not updated docs/tests. for (rc= MEMCACHED_SUCCESS; rc < MEMCACHED_MAXIMUM_RETURN; rc++) @@ -421,7 +421,7 @@ static test_return_t error_test(memcached_st *memc) } test_true(values[rc] == hash_val); } - test_true(MEMCACHED_MAXIMUM_RETURN == 45); + test_true(MEMCACHED_MAXIMUM_RETURN == 46); return TEST_SUCCESS; } @@ -2000,21 +2000,15 @@ static test_return_t MEMCACHED_BEHAVIOR_CORK_test(memcached_st *memc) { memcached_return_t rc; bool set= true; - bool value; rc= memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_CORK, set); - test_true(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_NOT_SUPPORTED); + test_true(rc == MEMCACHED_DEPRECATED); - value= (bool)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_CORK); - - if (rc == MEMCACHED_SUCCESS) - { - test_true((bool)value == set); - } - else - { - test_false((bool)value == set); - } + // Platform dependent +#if 0 + bool value= (bool)memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_CORK); + test_false(value); +#endif return TEST_SUCCESS; } diff --git a/tests/parser.cc b/tests/parser.cc index 61d846c9..0a466189 100644 --- a/tests/parser.cc +++ b/tests/parser.cc @@ -125,13 +125,6 @@ static test_return_t __check_AUTO_EJECT_HOSTS(memcached_st *memc, const scanner_ return TEST_SUCCESS; } -static test_return_t __check_CACHE_LOOKUPS(memcached_st *memc, const scanner_string_st &value) -{ - (void)value; - test_true(memcached_behavior_get(memc, MEMCACHED_BEHAVIOR_CACHE_LOOKUPS)); - return TEST_SUCCESS; -} - static test_return_t __check_NOREPLY(memcached_st *memc, const scanner_string_st &value) { (void)value; @@ -201,7 +194,6 @@ scanner_variable_t test_boolean_options[]= { { ARRAY, make_scanner_string("--AUTO_EJECT_HOSTS"), scanner_string_null, __check_AUTO_EJECT_HOSTS }, { ARRAY, make_scanner_string("--BINARY_PROTOCOL"), scanner_string_null, NULL }, { ARRAY, make_scanner_string("--BUFFER_REQUESTS"), scanner_string_null, NULL }, - { ARRAY, make_scanner_string("--CACHE_LOOKUPS"), scanner_string_null, __check_CACHE_LOOKUPS }, { ARRAY, make_scanner_string("--HASH_WITH_PREFIX_KEY"), scanner_string_null, NULL }, { ARRAY, make_scanner_string("--KETAMA_WEIGHTED"), scanner_string_null, NULL }, { ARRAY, make_scanner_string("--NOREPLY"), scanner_string_null, __check_NOREPLY }, diff --git a/unittests/include.am b/unittests/include.am deleted file mode 100644 index b7ca5d26..00000000 --- a/unittests/include.am +++ /dev/null @@ -1,20 +0,0 @@ -# vim:ft=automake -# included from Top Level Makefile.am -# All paths should be given relative to the root - -if HAVE_LIBGTEST -check_PROGRAMS += unittests/unittests -endif - -unittests_unittests_SOURCES= \ - unittests/main.cc \ - unittests/strings.cc - -unittests_unittests_CXXFLAGS= ${AM_CXXFLAGS} ${NO_WERROR} ${NO_EFF_CXX} -unittests_unittests_LDADD= \ - libtest/libserver.la \ - libmemcached/libmemcachedinternal.la \ - ${TESTS_LDADDS} ${LTLIBGTEST} -# Shorthand -unit: check-TESTS - diff --git a/unittests/main.cc b/unittests/main.cc deleted file mode 100644 index 7e575c30..00000000 --- a/unittests/main.cc +++ /dev/null @@ -1,21 +0,0 @@ -/* -*- mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*- - * vim:expandtab:shiftwidth=2:tabstop=2:smarttab: - * - * Copyright (C) 2010 Monty Taylor - * - * All rights reserved. - * - * Use and distribution licensed under the BSD license. See - * the COPYING file in the parent directory for full text. - */ - -#include "config.h" - -#include - - -int main(int argc, char **argv) -{ - ::testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} diff --git a/unittests/strings.cc b/unittests/strings.cc deleted file mode 100644 index 8728926b..00000000 --- a/unittests/strings.cc +++ /dev/null @@ -1,131 +0,0 @@ -/* libMemcached - * Copyright (C) 2010 Brian Aker - * All rights reserved. - * - * Use and distribution licensed under the BSD license. See - * the COPYING file in the parent directory for full text. - */ - -#include "config.h" - -#include - -#include - -TEST(memcached_string_st, memcached_create_static) -{ - memcached_string_st string; - memcached_string_st *string_ptr; - - memcached_st *memc= memcached_create(NULL); - string_ptr= memcached_string_create(memc, &string, 0); - ASSERT_TRUE(string.options.is_initialized); - ASSERT_TRUE(string_ptr); - - /* The following two better be the same! */ - ASSERT_FALSE(memcached_is_allocated(string_ptr)); - ASSERT_FALSE(memcached_is_allocated(&string)); - EXPECT_EQ(&string, string_ptr); - - ASSERT_TRUE(string.options.is_initialized); - ASSERT_TRUE(memcached_is_initialized(&string)); - memcached_string_free(&string); - ASSERT_FALSE(memcached_is_initialized(&string)); - - memcached_free(memc); -} - -TEST(memcached_string_st, memcached_create_null) -{ - memcached_string_st *string; - memcached_st *memc= memcached_create(NULL); - - string= memcached_string_create(memc, NULL, 0); - ASSERT_TRUE(string); - ASSERT_TRUE(memcached_is_allocated(string)); - ASSERT_TRUE(memcached_is_initialized(string)); - memcached_string_free(string); - - memcached_free(memc); -} - -TEST(memcached_string_st, string_alloc_with_size) -{ - memcached_string_st *string; - memcached_st *memc= memcached_create(NULL); - - string= memcached_string_create(memc, NULL, 1024); - ASSERT_TRUE(string); - ASSERT_TRUE(memcached_is_allocated(string)); - ASSERT_TRUE(memcached_is_initialized(string)); - memcached_string_free(string); - - memcached_free(memc); -} - -TEST(memcached_string_st, string_alloc_with_size_toobig) -{ - memcached_st *memc= memcached_create(NULL); - memcached_string_st *string; - - string= memcached_string_create(memc, NULL, SIZE_MAX); - ASSERT_FALSE(string); - - memcached_free(memc); -} - -TEST(memcached_string_st, string_alloc_append) -{ - char buffer[SMALL_STRING_LEN]; - memcached_string_st *string; - - memcached_st *memc= memcached_create(NULL); - - /* Ring the bell! */ - memset(buffer, 6, SMALL_STRING_LEN); - - string= memcached_string_create(memc, NULL, 100); - ASSERT_TRUE(string); - ASSERT_TRUE(memcached_is_allocated(string)); - ASSERT_TRUE(memcached_is_initialized(string)); - - for (uint32_t x= 0; x < 1024; x++) - { - memcached_return_t rc; - rc= memcached_string_append(string, buffer, SMALL_STRING_LEN); - EXPECT_EQ(rc, MEMCACHED_SUCCESS); - } - ASSERT_TRUE(memcached_is_allocated(string)); - memcached_string_free(string); - - memcached_free(memc); -} - -TEST(memcached_string_st, string_alloc_append_toobig) -{ - memcached_return_t rc; - char buffer[SMALL_STRING_LEN]; - memcached_string_st *string; - - memcached_st *memc= memcached_create(NULL); - - /* Ring the bell! */ - memset(buffer, 6, SMALL_STRING_LEN); - - string= memcached_string_create(memc, NULL, 100); - ASSERT_TRUE(string); - ASSERT_TRUE(memcached_is_allocated(string)); - ASSERT_TRUE(memcached_is_initialized(string)); - - for (uint32_t x= 0; x < 1024; x++) - { - rc= memcached_string_append(string, buffer, SMALL_STRING_LEN); - EXPECT_EQ(rc, MEMCACHED_SUCCESS); - } - rc= memcached_string_append(string, buffer, SIZE_MAX); - EXPECT_EQ(rc, MEMCACHED_MEMORY_ALLOCATION_FAILURE); - ASSERT_TRUE(memcached_is_allocated(string)); - memcached_string_free(string); - - memcached_free(memc); -} -- 2.30.2