From: Brian Aker Date: Wed, 29 Jun 2011 01:41:58 +0000 (-0700) Subject: Update for --socket option X-Git-Tag: 0.51~1^2~9^2~12 X-Git-Url: https://git.m6w6.name/?a=commitdiff_plain;h=fd55b335a4d6530382bb95542479332c87de1d30;p=m6w6%2Flibmemcached Update for --socket option --- diff --git a/libmemcached/options/parser.cc b/libmemcached/options/parser.cc index 5e9b6d36..e216daa8 100644 --- a/libmemcached/options/parser.cc +++ b/libmemcached/options/parser.cc @@ -89,6 +89,8 @@ #include #include +#include + #pragma GCC diagnostic ignored "-Wold-style-cast" int conf_lex(YYSTYPE* lvalp, void* scanner); @@ -104,7 +106,7 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) /* Line 189 of yacc.c */ -#line 108 "libmemcached/options/parser.cc" +#line 110 "libmemcached/options/parser.cc" /* Enabling traces. */ #ifndef YYDEBUG @@ -140,65 +142,66 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) CONFIGURE_FILE = 264, EMPTY_LINE = 265, SERVER = 266, - SERVERS = 267, - SERVERS_OPTION = 268, - UNKNOWN_OPTION = 269, - UNKNOWN = 270, - BINARY_PROTOCOL = 271, - BUFFER_REQUESTS = 272, - CONNECT_TIMEOUT = 273, - DISTRIBUTION = 274, - HASH = 275, - HASH_WITH_NAMESPACE = 276, - IO_BYTES_WATERMARK = 277, - IO_KEY_PREFETCH = 278, - IO_MSG_WATERMARK = 279, - KETAMA_HASH = 280, - KETAMA_WEIGHTED = 281, - NOREPLY = 282, - NUMBER_OF_REPLICAS = 283, - POLL_TIMEOUT = 284, - RANDOMIZE_REPLICA_READ = 285, - RCV_TIMEOUT = 286, - REMOVE_FAILED_SERVERS = 287, - RETRY_TIMEOUT = 288, - SND_TIMEOUT = 289, - SOCKET_RECV_SIZE = 290, - SOCKET_SEND_SIZE = 291, - SORT_HOSTS = 292, - SUPPORT_CAS = 293, - USER_DATA = 294, - USE_UDP = 295, - VERIFY_KEY = 296, - _TCP_KEEPALIVE = 297, - _TCP_KEEPIDLE = 298, - _TCP_NODELAY = 299, - NAMESPACE = 300, - POOL_MIN = 301, - POOL_MAX = 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, - FLOAT = 317, - NUMBER = 318, - PORT = 319, - WEIGHT_START = 320, - IPADDRESS = 321, - HOSTNAME = 322, - STRING = 323, - QUOTED_STRING = 324, - FILE_PATH = 325 + SOCKET = 267, + SERVERS = 268, + SERVERS_OPTION = 269, + UNKNOWN_OPTION = 270, + UNKNOWN = 271, + BINARY_PROTOCOL = 272, + BUFFER_REQUESTS = 273, + CONNECT_TIMEOUT = 274, + DISTRIBUTION = 275, + HASH = 276, + HASH_WITH_NAMESPACE = 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, + REMOVE_FAILED_SERVERS = 288, + RETRY_TIMEOUT = 289, + SND_TIMEOUT = 290, + SOCKET_RECV_SIZE = 291, + SOCKET_SEND_SIZE = 292, + SORT_HOSTS = 293, + SUPPORT_CAS = 294, + USER_DATA = 295, + USE_UDP = 296, + VERIFY_KEY = 297, + _TCP_KEEPALIVE = 298, + _TCP_KEEPIDLE = 299, + _TCP_NODELAY = 300, + NAMESPACE = 301, + POOL_MIN = 302, + POOL_MAX = 303, + MD5 = 304, + CRC = 305, + FNV1_64 = 306, + FNV1A_64 = 307, + FNV1_32 = 308, + FNV1A_32 = 309, + HSIEH = 310, + MURMUR = 311, + JENKINS = 312, + CONSISTENT = 313, + MODULA = 314, + RANDOM = 315, + TRUE = 316, + FALSE = 317, + FLOAT = 318, + NUMBER = 319, + PORT = 320, + WEIGHT_START = 321, + IPADDRESS = 322, + HOSTNAME = 323, + STRING = 324, + QUOTED_STRING = 325, + FILE_PATH = 326 }; #endif @@ -215,7 +218,7 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) /* Line 264 of yacc.c */ -#line 219 "libmemcached/options/parser.cc" +#line 222 "libmemcached/options/parser.cc" #ifdef short # undef short @@ -428,22 +431,22 @@ union yyalloc #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 69 +#define YYFINAL 71 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 73 +#define YYLAST 74 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 74 +#define YYNTOKENS 75 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 12 /* YYNRULES -- Number of rules. */ -#define YYNRULES 66 +#define YYNRULES 67 /* YYNRULES -- Number of states. */ -#define YYNSTATES 82 +#define YYNSTATES 84 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 325 +#define YYMAXUTOK 326 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -454,10 +457,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, 74, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 63, 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, 64, 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, @@ -482,8 +485,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, 61, 62, 65, 66, + 67, 68, 69, 70, 71, 72, 73 }; #if YYDEBUG @@ -492,45 +495,45 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint8 yyprhs[] = { 0, 0, 3, 5, 9, 11, 13, 15, 17, 19, - 21, 23, 27, 32, 37, 40, 43, 46, 48, 51, - 54, 59, 62, 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, 117, - 118, 120, 121, 123, 125, 127, 129, 131, 133, 135, - 137, 139, 141, 143, 145, 147, 149 + 21, 23, 27, 32, 37, 40, 43, 46, 49, 51, + 54, 57, 62, 65, 68, 70, 72, 74, 76, 78, + 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, + 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, + 120, 121, 123, 124, 126, 128, 130, 132, 134, 136, + 138, 140, 142, 144, 146, 148, 150, 152 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 75, 0, -1, 76, -1, 75, 73, 76, -1, 77, + 76, 0, -1, 77, -1, 76, 74, 77, -1, 78, -1, 3, -1, 10, -1, 4, -1, 5, -1, 6, - -1, 7, -1, 8, 73, 84, -1, 11, 69, 81, - 82, -1, 11, 68, 81, 82, -1, 9, 84, -1, - 46, 65, -1, 47, 65, -1, 78, -1, 45, 84, - -1, 19, 85, -1, 19, 85, 62, 83, -1, 20, - 83, -1, 79, 65, -1, 80, -1, 39, -1, 32, - -1, 18, -1, 24, -1, 22, -1, 23, -1, 28, - -1, 29, -1, 31, -1, 33, -1, 34, -1, 35, - -1, 36, -1, 16, -1, 17, -1, 21, -1, 27, - -1, 30, -1, 37, -1, 38, -1, 44, -1, 42, - -1, 43, -1, 40, -1, 41, -1, -1, 66, -1, - -1, 67, -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, 7, -1, 8, 74, 85, -1, 11, 70, 82, + 83, -1, 11, 69, 82, 83, -1, 12, 85, -1, + 9, 85, -1, 47, 66, -1, 48, 66, -1, 79, + -1, 46, 85, -1, 20, 86, -1, 20, 86, 63, + 84, -1, 21, 84, -1, 80, 66, -1, 81, -1, + 40, -1, 33, -1, 19, -1, 25, -1, 23, -1, + 24, -1, 29, -1, 30, -1, 32, -1, 34, -1, + 35, -1, 36, -1, 37, -1, 17, -1, 18, -1, + 22, -1, 28, -1, 31, -1, 38, -1, 39, -1, + 45, -1, 43, -1, 44, -1, 41, -1, 42, -1, + -1, 67, -1, -1, 68, -1, 49, -1, 50, -1, + 51, -1, 52, -1, 53, -1, 54, -1, 55, -1, + 56, -1, 57, -1, 71, -1, 72, -1, 58, -1, + 59, -1, 60, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 159, 159, 160, 164, 166, 168, 170, 175, 180, - 184, 188, 199, 207, 215, 219, 223, 227, 231, 238, - 245, 256, 263, 270, 277, 283, 287, 291, 295, 299, - 303, 307, 311, 315, 319, 323, 327, 334, 338, 342, - 346, 350, 354, 358, 362, 366, 370, 374, 378, 385, - 386, 391, 392, 397, 401, 405, 409, 413, 417, 421, - 425, 429, 436, 440, 448, 452, 456 + 0, 162, 162, 163, 167, 169, 171, 173, 178, 183, + 187, 191, 202, 210, 218, 225, 229, 233, 237, 241, + 248, 255, 266, 273, 280, 287, 293, 297, 301, 305, + 309, 313, 317, 321, 325, 329, 333, 337, 344, 348, + 352, 356, 360, 364, 368, 372, 376, 380, 384, 388, + 395, 396, 401, 402, 407, 411, 415, 419, 423, 427, + 431, 435, 439, 446, 450, 458, 462, 466 }; #endif @@ -541,7 +544,7 @@ static const char *const yytname[] = { "$end", "error", "$undefined", "COMMENT", "END", "ERROR", "RESET", "PARSER_DEBUG", "INCLUDE", "CONFIGURE_FILE", "EMPTY_LINE", "SERVER", - "SERVERS", "SERVERS_OPTION", "UNKNOWN_OPTION", "UNKNOWN", + "SOCKET", "SERVERS", "SERVERS_OPTION", "UNKNOWN_OPTION", "UNKNOWN", "BINARY_PROTOCOL", "BUFFER_REQUESTS", "CONNECT_TIMEOUT", "DISTRIBUTION", "HASH", "HASH_WITH_NAMESPACE", "IO_BYTES_WATERMARK", "IO_KEY_PREFETCH", "IO_MSG_WATERMARK", "KETAMA_HASH", "KETAMA_WEIGHTED", "NOREPLY", @@ -571,33 +574,33 @@ 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, 316, 317, 44, 61, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 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, 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, 81, - 81, 82, 82, 83, 83, 83, 83, 83, 83, 83, - 83, 83, 84, 84, 85, 85, 85 + 0, 75, 76, 76, 77, 77, 77, 77, 77, 77, + 77, 77, 78, 78, 78, 78, 78, 78, 78, 79, + 79, 79, 79, 79, 79, 79, 80, 80, 80, 80, + 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, + 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, + 82, 82, 83, 83, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 85, 85, 86, 86, 86 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 3, 1, 1, 1, 1, 1, 1, - 1, 3, 4, 4, 2, 2, 2, 1, 2, 2, - 4, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 3, 4, 4, 2, 2, 2, 2, 1, 2, + 2, 4, 2, 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, 1, 1, 1, 1, 1, 0, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1 + 0, 1, 0, 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 @@ -606,21 +609,21 @@ static const yytype_uint8 yyr2[] = static const yytype_uint8 yydefact[] = { 0, 5, 7, 8, 9, 10, 0, 0, 6, 0, - 37, 38, 26, 0, 0, 39, 28, 29, 27, 40, - 30, 31, 41, 32, 25, 33, 34, 35, 36, 42, - 43, 24, 47, 48, 45, 46, 44, 0, 0, 0, - 0, 2, 4, 17, 0, 23, 0, 62, 63, 14, - 49, 49, 64, 65, 66, 19, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 21, 18, 15, 16, 1, - 0, 22, 11, 50, 51, 51, 0, 3, 52, 13, - 12, 20 + 0, 38, 39, 27, 0, 0, 40, 29, 30, 28, + 41, 31, 32, 42, 33, 26, 34, 35, 36, 37, + 43, 44, 25, 48, 49, 46, 47, 45, 0, 0, + 0, 0, 2, 4, 18, 0, 24, 0, 63, 64, + 15, 50, 50, 14, 65, 66, 67, 20, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 22, 19, 16, + 17, 1, 0, 23, 11, 51, 52, 52, 0, 3, + 53, 13, 12, 21 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 40, 41, 42, 43, 44, 45, 74, 79, 65, - 49, 55 + -1, 41, 42, 43, 44, 45, 46, 76, 81, 67, + 50, 57 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing @@ -628,22 +631,22 @@ static const yytype_int8 yydefgoto[] = #define YYPACT_NINF -61 static const yytype_int8 yypact[] = { - -2, -61, -61, -61, -61, -61, -60, -23, -61, -45, - -61, -61, -61, -47, 8, -61, -61, -61, -61, -61, + -2, -61, -61, -61, -61, -61, -60, -24, -61, -20, + -24, -61, -61, -61, -47, 13, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -61, -61, -61, -61, -61, -61, -61, -23, -16, -15, - 0, -61, -61, -61, -14, -61, -23, -61, -61, -61, - -13, -13, -61, -61, -61, -10, -61, -61, -61, -61, + -61, -61, -61, -61, -61, -61, -61, -61, -24, -41, + -15, 0, -61, -61, -61, -13, -61, -24, -61, -61, + -61, -12, -12, -61, -61, -61, -61, -9, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, -61, - -2, -61, -61, -61, -1, -1, 8, -61, -61, -61, - -61, -61 + -61, -61, -2, -61, -61, -61, -11, -11, 13, -61, + -61, -61, -61, -61 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -61, -61, -5, -61, -61, -61, -61, 3, -8, -7, - 9, -61 + -61, -61, -16, -61, -61, -61, -61, 6, -18, -7, + 14, -61 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If @@ -653,26 +656,26 @@ static const yytype_int8 yypgoto[] = #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 69, 1, 2, 3, 4, 5, 6, 7, 8, 9, - 52, 53, 54, 46, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 50, 51, 19, 20, 21, 22, 23, + 71, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 54, 55, 56, 47, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 53, 69, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 39, 66, 47, 48, 67, - 68, 71, 76, 73, 75, 72, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 77, 78, 80, 0, 81, - 0, 0, 0, 70 + 34, 35, 36, 37, 38, 39, 40, 48, 49, 51, + 52, 70, 68, 73, 78, 75, 79, 80, 77, 82, + 0, 74, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 83, 0, 0, 72 }; static const yytype_int8 yycheck[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 57, 58, 59, 73, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 68, 69, 27, 28, 29, 30, 31, + 12, 58, 59, 60, 74, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 10, 66, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 37, 70, 71, 65, - 65, 65, 62, 66, 51, 46, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 70, 67, 75, -1, 76, - -1, -1, -1, 73 + 42, 43, 44, 45, 46, 47, 48, 71, 72, 69, + 70, 66, 38, 66, 63, 67, 72, 68, 52, 77, + -1, 47, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 78, -1, -1, 74 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing @@ -680,14 +683,14 @@ static const yytype_int8 yycheck[] = static const yytype_uint8 yystos[] = { 0, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, + 12, 17, 18, 19, 20, 21, 22, 23, 24, 25, 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, - 68, 69, 57, 58, 59, 85, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 83, 84, 65, 65, 0, - 73, 65, 84, 66, 81, 81, 62, 76, 67, 82, - 82, 83 + 48, 76, 77, 78, 79, 80, 81, 74, 71, 72, + 85, 69, 70, 85, 58, 59, 60, 86, 49, 50, + 51, 52, 53, 54, 55, 56, 57, 84, 85, 66, + 66, 0, 74, 66, 85, 67, 82, 82, 63, 77, + 68, 83, 83, 84 }; #define yyerrok (yyerrstatus = 0) @@ -1522,28 +1525,28 @@ yyreduce: case 4: /* Line 1464 of yacc.c */ -#line 165 "libmemcached/options/parser.yy" +#line 168 "libmemcached/options/parser.yy" { ;} break; case 5: /* Line 1464 of yacc.c */ -#line 167 "libmemcached/options/parser.yy" +#line 170 "libmemcached/options/parser.yy" { ;} break; case 6: /* Line 1464 of yacc.c */ -#line 169 "libmemcached/options/parser.yy" +#line 172 "libmemcached/options/parser.yy" { ;} break; case 7: /* Line 1464 of yacc.c */ -#line 171 "libmemcached/options/parser.yy" +#line 174 "libmemcached/options/parser.yy" { context->set_end(); YYACCEPT; @@ -1553,7 +1556,7 @@ yyreduce: case 8: /* Line 1464 of yacc.c */ -#line 176 "libmemcached/options/parser.yy" +#line 179 "libmemcached/options/parser.yy" { context->rc= MEMCACHED_PARSE_USER_ERROR; parser_abort(context, NULL); @@ -1563,7 +1566,7 @@ yyreduce: case 9: /* Line 1464 of yacc.c */ -#line 181 "libmemcached/options/parser.yy" +#line 184 "libmemcached/options/parser.yy" { memcached_reset(context->memc); ;} @@ -1572,7 +1575,7 @@ yyreduce: case 10: /* Line 1464 of yacc.c */ -#line 185 "libmemcached/options/parser.yy" +#line 188 "libmemcached/options/parser.yy" { yydebug= 1; ;} @@ -1581,7 +1584,7 @@ yyreduce: case 11: /* Line 1464 of yacc.c */ -#line 189 "libmemcached/options/parser.yy" +#line 192 "libmemcached/options/parser.yy" { if ((context->rc= memcached_parse_configure_file(*context->memc, (yyvsp[(3) - (3)].string).c_str, (yyvsp[(3) - (3)].string).size)) != MEMCACHED_SUCCESS) { @@ -1593,7 +1596,7 @@ yyreduce: case 12: /* Line 1464 of yacc.c */ -#line 200 "libmemcached/options/parser.yy" +#line 203 "libmemcached/options/parser.yy" { if (memcached_failed(context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(3) - (4)].number), (yyvsp[(4) - (4)].number)))) { @@ -1606,7 +1609,7 @@ yyreduce: case 13: /* Line 1464 of yacc.c */ -#line 208 "libmemcached/options/parser.yy" +#line 211 "libmemcached/options/parser.yy" { if (memcached_failed(context->rc= memcached_server_add_with_weight(context->memc, (yyvsp[(2) - (4)].server).c_str, (yyvsp[(3) - (4)].number), (yyvsp[(4) - (4)].number)))) { @@ -1619,34 +1622,46 @@ yyreduce: case 14: /* Line 1464 of yacc.c */ -#line 216 "libmemcached/options/parser.yy" +#line 219 "libmemcached/options/parser.yy" { - memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size); + if (memcached_failed(context->rc= memcached_server_add_unix_socket(context->memc, (yyvsp[(2) - (2)].string).c_str))) + { + parser_abort(context, NULL); + } ;} break; case 15: /* Line 1464 of yacc.c */ -#line 220 "libmemcached/options/parser.yy" +#line 226 "libmemcached/options/parser.yy" { - context->memc->configure.initial_pool_size= (yyvsp[(2) - (2)].number); + memcached_set_configuration_file(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size); ;} break; case 16: /* Line 1464 of yacc.c */ -#line 224 "libmemcached/options/parser.yy" +#line 230 "libmemcached/options/parser.yy" + { + context->memc->configure.initial_pool_size= (yyvsp[(2) - (2)].number); + ;} + break; + + case 17: + +/* Line 1464 of yacc.c */ +#line 234 "libmemcached/options/parser.yy" { context->memc->configure.max_pool_size= (yyvsp[(2) - (2)].number); ;} break; - case 18: + case 19: /* Line 1464 of yacc.c */ -#line 232 "libmemcached/options/parser.yy" +#line 242 "libmemcached/options/parser.yy" { if ((context->rc= memcached_set_namespace(context->memc, (yyvsp[(2) - (2)].string).c_str, (yyvsp[(2) - (2)].string).size)) != MEMCACHED_SUCCESS) { @@ -1655,10 +1670,10 @@ yyreduce: ;} break; - case 19: + case 20: /* Line 1464 of yacc.c */ -#line 239 "libmemcached/options/parser.yy" +#line 249 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (2)].distribution))) != MEMCACHED_SUCCESS) { @@ -1667,10 +1682,10 @@ yyreduce: ;} break; - case 20: + case 21: /* Line 1464 of yacc.c */ -#line 246 "libmemcached/options/parser.yy" +#line 256 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_DISTRIBUTION, (yyvsp[(2) - (4)].distribution))) != MEMCACHED_SUCCESS) { @@ -1683,10 +1698,10 @@ yyreduce: ;} break; - case 21: + case 22: /* Line 1464 of yacc.c */ -#line 257 "libmemcached/options/parser.yy" +#line 267 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, MEMCACHED_BEHAVIOR_HASH, (yyvsp[(2) - (2)].hash))) != MEMCACHED_SUCCESS) { @@ -1695,10 +1710,10 @@ yyreduce: ;} break; - case 22: + case 23: /* Line 1464 of yacc.c */ -#line 264 "libmemcached/options/parser.yy" +#line 274 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (2)].behavior), (yyvsp[(2) - (2)].number))) != MEMCACHED_SUCCESS) { @@ -1707,10 +1722,10 @@ yyreduce: ;} break; - case 23: + case 24: /* Line 1464 of yacc.c */ -#line 271 "libmemcached/options/parser.yy" +#line 281 "libmemcached/options/parser.yy" { if ((context->rc= memcached_behavior_set(context->memc, (yyvsp[(1) - (1)].behavior), true)) != MEMCACHED_SUCCESS) { @@ -1719,380 +1734,380 @@ yyreduce: ;} break; - case 24: + case 25: /* Line 1464 of yacc.c */ -#line 278 "libmemcached/options/parser.yy" +#line 288 "libmemcached/options/parser.yy" { ;} break; - case 25: + case 26: /* Line 1464 of yacc.c */ -#line 284 "libmemcached/options/parser.yy" +#line 294 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_REMOVE_FAILED_SERVERS; ;} break; - case 26: + case 27: /* Line 1464 of yacc.c */ -#line 288 "libmemcached/options/parser.yy" +#line 298 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT; ;} break; - case 27: + case 28: /* Line 1464 of yacc.c */ -#line 292 "libmemcached/options/parser.yy" +#line 302 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_MSG_WATERMARK; ;} break; - case 28: + case 29: /* Line 1464 of yacc.c */ -#line 296 "libmemcached/options/parser.yy" +#line 306 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_BYTES_WATERMARK; ;} break; - case 29: + case 30: /* Line 1464 of yacc.c */ -#line 300 "libmemcached/options/parser.yy" +#line 310 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_IO_KEY_PREFETCH; ;} break; - case 30: + case 31: /* Line 1464 of yacc.c */ -#line 304 "libmemcached/options/parser.yy" +#line 314 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS; ;} break; - case 31: + case 32: /* Line 1464 of yacc.c */ -#line 308 "libmemcached/options/parser.yy" +#line 318 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_POLL_TIMEOUT; ;} break; - case 32: + case 33: /* Line 1464 of yacc.c */ -#line 312 "libmemcached/options/parser.yy" +#line 322 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RCV_TIMEOUT; ;} break; - case 33: + case 34: /* Line 1464 of yacc.c */ -#line 316 "libmemcached/options/parser.yy" +#line 326 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RETRY_TIMEOUT; ;} break; - case 34: + case 35: /* Line 1464 of yacc.c */ -#line 320 "libmemcached/options/parser.yy" +#line 330 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SND_TIMEOUT; ;} break; - case 35: + case 36: /* Line 1464 of yacc.c */ -#line 324 "libmemcached/options/parser.yy" +#line 334 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_RECV_SIZE; ;} break; - case 36: + case 37: /* Line 1464 of yacc.c */ -#line 328 "libmemcached/options/parser.yy" +#line 338 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SOCKET_SEND_SIZE; ;} break; - case 37: + case 38: /* Line 1464 of yacc.c */ -#line 335 "libmemcached/options/parser.yy" +#line 345 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_BINARY_PROTOCOL; ;} break; - case 38: + case 39: /* Line 1464 of yacc.c */ -#line 339 "libmemcached/options/parser.yy" +#line 349 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_BUFFER_REQUESTS; ;} break; - case 39: + case 40: /* Line 1464 of yacc.c */ -#line 343 "libmemcached/options/parser.yy" +#line 353 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_HASH_WITH_PREFIX_KEY; ;} break; - case 40: + case 41: /* Line 1464 of yacc.c */ -#line 347 "libmemcached/options/parser.yy" +#line 357 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_NOREPLY; ;} break; - case 41: + case 42: /* Line 1464 of yacc.c */ -#line 351 "libmemcached/options/parser.yy" +#line 361 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_RANDOMIZE_REPLICA_READ; ;} break; - case 42: + case 43: /* Line 1464 of yacc.c */ -#line 355 "libmemcached/options/parser.yy" +#line 365 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SORT_HOSTS; ;} break; - case 43: + case 44: /* Line 1464 of yacc.c */ -#line 359 "libmemcached/options/parser.yy" +#line 369 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_SUPPORT_CAS; ;} break; - case 44: + case 45: /* Line 1464 of yacc.c */ -#line 363 "libmemcached/options/parser.yy" +#line 373 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_NODELAY; ;} break; - case 45: + case 46: /* Line 1464 of yacc.c */ -#line 367 "libmemcached/options/parser.yy" +#line 377 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPALIVE; ;} break; - case 46: + case 47: /* Line 1464 of yacc.c */ -#line 371 "libmemcached/options/parser.yy" +#line 381 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_TCP_KEEPIDLE; ;} break; - case 47: + case 48: /* Line 1464 of yacc.c */ -#line 375 "libmemcached/options/parser.yy" +#line 385 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_USE_UDP; ;} break; - case 48: + case 49: /* Line 1464 of yacc.c */ -#line 379 "libmemcached/options/parser.yy" +#line 389 "libmemcached/options/parser.yy" { (yyval.behavior)= MEMCACHED_BEHAVIOR_VERIFY_KEY; ;} break; - case 49: + case 50: /* Line 1464 of yacc.c */ -#line 385 "libmemcached/options/parser.yy" +#line 395 "libmemcached/options/parser.yy" { (yyval.number)= MEMCACHED_DEFAULT_PORT;;} break; - case 50: + case 51: /* Line 1464 of yacc.c */ -#line 387 "libmemcached/options/parser.yy" +#line 397 "libmemcached/options/parser.yy" { ;} break; - case 51: + case 52: /* Line 1464 of yacc.c */ -#line 391 "libmemcached/options/parser.yy" +#line 401 "libmemcached/options/parser.yy" { (yyval.number)= 1; ;} break; - case 52: + case 53: /* Line 1464 of yacc.c */ -#line 393 "libmemcached/options/parser.yy" +#line 403 "libmemcached/options/parser.yy" { ;} break; - case 53: + case 54: /* Line 1464 of yacc.c */ -#line 398 "libmemcached/options/parser.yy" +#line 408 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_MD5; ;} break; - case 54: + case 55: /* Line 1464 of yacc.c */ -#line 402 "libmemcached/options/parser.yy" +#line 412 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_CRC; ;} break; - case 55: + case 56: /* Line 1464 of yacc.c */ -#line 406 "libmemcached/options/parser.yy" +#line 416 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1_64; ;} break; - case 56: + case 57: /* Line 1464 of yacc.c */ -#line 410 "libmemcached/options/parser.yy" +#line 420 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1A_64; ;} break; - case 57: + case 58: /* Line 1464 of yacc.c */ -#line 414 "libmemcached/options/parser.yy" +#line 424 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1_32; ;} break; - case 58: + case 59: /* Line 1464 of yacc.c */ -#line 418 "libmemcached/options/parser.yy" +#line 428 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_FNV1A_32; ;} break; - case 59: + case 60: /* Line 1464 of yacc.c */ -#line 422 "libmemcached/options/parser.yy" +#line 432 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_HSIEH; ;} break; - case 60: + case 61: /* Line 1464 of yacc.c */ -#line 426 "libmemcached/options/parser.yy" +#line 436 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_MURMUR; ;} break; - case 61: + case 62: /* Line 1464 of yacc.c */ -#line 430 "libmemcached/options/parser.yy" +#line 440 "libmemcached/options/parser.yy" { (yyval.hash)= MEMCACHED_HASH_JENKINS; ;} break; - case 62: + case 63: /* Line 1464 of yacc.c */ -#line 437 "libmemcached/options/parser.yy" +#line 447 "libmemcached/options/parser.yy" { (yyval.string)= (yyvsp[(1) - (1)].string); ;} break; - case 63: + case 64: /* Line 1464 of yacc.c */ -#line 441 "libmemcached/options/parser.yy" +#line 451 "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).size= (yyvsp[(1) - (1)].string).size -2; // -2 removes the begin and end quote ;} break; - case 64: + case 65: /* Line 1464 of yacc.c */ -#line 449 "libmemcached/options/parser.yy" +#line 459 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_CONSISTENT; ;} break; - case 65: + case 66: /* Line 1464 of yacc.c */ -#line 453 "libmemcached/options/parser.yy" +#line 463 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_MODULA; ;} break; - case 66: + case 67: /* Line 1464 of yacc.c */ -#line 457 "libmemcached/options/parser.yy" +#line 467 "libmemcached/options/parser.yy" { (yyval.distribution)= MEMCACHED_DISTRIBUTION_RANDOM; ;} @@ -2101,7 +2116,7 @@ yyreduce: /* Line 1464 of yacc.c */ -#line 2105 "libmemcached/options/parser.cc" +#line 2120 "libmemcached/options/parser.cc" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -2313,7 +2328,7 @@ yyreturn: /* Line 1684 of yacc.c */ -#line 462 "libmemcached/options/parser.yy" +#line 472 "libmemcached/options/parser.yy" void Context::start() diff --git a/libmemcached/options/parser.h b/libmemcached/options/parser.h index 1f305e5c..16657d24 100644 --- a/libmemcached/options/parser.h +++ b/libmemcached/options/parser.h @@ -47,65 +47,66 @@ CONFIGURE_FILE = 264, EMPTY_LINE = 265, SERVER = 266, - SERVERS = 267, - SERVERS_OPTION = 268, - UNKNOWN_OPTION = 269, - UNKNOWN = 270, - BINARY_PROTOCOL = 271, - BUFFER_REQUESTS = 272, - CONNECT_TIMEOUT = 273, - DISTRIBUTION = 274, - HASH = 275, - HASH_WITH_NAMESPACE = 276, - IO_BYTES_WATERMARK = 277, - IO_KEY_PREFETCH = 278, - IO_MSG_WATERMARK = 279, - KETAMA_HASH = 280, - KETAMA_WEIGHTED = 281, - NOREPLY = 282, - NUMBER_OF_REPLICAS = 283, - POLL_TIMEOUT = 284, - RANDOMIZE_REPLICA_READ = 285, - RCV_TIMEOUT = 286, - REMOVE_FAILED_SERVERS = 287, - RETRY_TIMEOUT = 288, - SND_TIMEOUT = 289, - SOCKET_RECV_SIZE = 290, - SOCKET_SEND_SIZE = 291, - SORT_HOSTS = 292, - SUPPORT_CAS = 293, - USER_DATA = 294, - USE_UDP = 295, - VERIFY_KEY = 296, - _TCP_KEEPALIVE = 297, - _TCP_KEEPIDLE = 298, - _TCP_NODELAY = 299, - NAMESPACE = 300, - POOL_MIN = 301, - POOL_MAX = 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, - FLOAT = 317, - NUMBER = 318, - PORT = 319, - WEIGHT_START = 320, - IPADDRESS = 321, - HOSTNAME = 322, - STRING = 323, - QUOTED_STRING = 324, - FILE_PATH = 325 + SOCKET = 267, + SERVERS = 268, + SERVERS_OPTION = 269, + UNKNOWN_OPTION = 270, + UNKNOWN = 271, + BINARY_PROTOCOL = 272, + BUFFER_REQUESTS = 273, + CONNECT_TIMEOUT = 274, + DISTRIBUTION = 275, + HASH = 276, + HASH_WITH_NAMESPACE = 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, + REMOVE_FAILED_SERVERS = 288, + RETRY_TIMEOUT = 289, + SND_TIMEOUT = 290, + SOCKET_RECV_SIZE = 291, + SOCKET_SEND_SIZE = 292, + SORT_HOSTS = 293, + SUPPORT_CAS = 294, + USER_DATA = 295, + USE_UDP = 296, + VERIFY_KEY = 297, + _TCP_KEEPALIVE = 298, + _TCP_KEEPIDLE = 299, + _TCP_NODELAY = 300, + NAMESPACE = 301, + POOL_MIN = 302, + POOL_MAX = 303, + MD5 = 304, + CRC = 305, + FNV1_64 = 306, + FNV1A_64 = 307, + FNV1_32 = 308, + FNV1A_32 = 309, + HSIEH = 310, + MURMUR = 311, + JENKINS = 312, + CONSISTENT = 313, + MODULA = 314, + RANDOM = 315, + TRUE = 316, + FALSE = 317, + FLOAT = 318, + NUMBER = 319, + PORT = 320, + WEIGHT_START = 321, + IPADDRESS = 322, + HOSTNAME = 323, + STRING = 324, + QUOTED_STRING = 325, + FILE_PATH = 326 }; #endif diff --git a/libmemcached/options/parser.yy b/libmemcached/options/parser.yy index 8e87230a..66428b89 100644 --- a/libmemcached/options/parser.yy +++ b/libmemcached/options/parser.yy @@ -46,6 +46,8 @@ #include #include +#include + #pragma GCC diagnostic ignored "-Wold-style-cast" int conf_lex(YYSTYPE* lvalp, void* scanner); @@ -69,6 +71,7 @@ inline void config_error(Context *context, yyscan_t *scanner, const char *error) %token CONFIGURE_FILE %token EMPTY_LINE %token SERVER +%token SOCKET %token SERVERS %token SERVERS_OPTION %token UNKNOWN_OPTION @@ -212,6 +215,13 @@ expression: } context->unset_server(); } + | SOCKET string + { + if (memcached_failed(context->rc= memcached_server_add_unix_socket(context->memc, $2.c_str))) + { + parser_abort(context, NULL); + } + } | CONFIGURE_FILE string { memcached_set_configuration_file(context->memc, $2.c_str, $2.size); diff --git a/libmemcached/options/scanner.cc b/libmemcached/options/scanner.cc index fd5a0cb9..d0009fae 100644 --- a/libmemcached/options/scanner.cc +++ b/libmemcached/options/scanner.cc @@ -449,8 +449,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 64 -#define YY_END_OF_BUFFER 65 +#define YY_NUM_RULES 65 +#define YY_END_OF_BUFFER 66 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -458,65 +458,65 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[514] = +static yyconst flex_int16_t yy_accept[515] = { 0, - 0, 0, 65, 63, 5, 5, 1, 63, 63, 63, - 2, 63, 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 0, 62, 47, 0, 0, + 0, 0, 66, 64, 5, 5, 1, 64, 64, 64, + 2, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 0, 63, 48, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 6, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 4, 61, 61, 2, 3, - 61, 52, 61, 43, 61, 61, 61, 61, 61, 61, - 51, 61, 61, 61, 61, 61, 61, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, - - 47, 47, 47, 47, 47, 47, 47, 4, 0, 61, - 2, 3, 61, 61, 61, 61, 61, 61, 61, 61, - 61, 61, 61, 61, 61, 45, 47, 47, 47, 47, - 47, 0, 47, 47, 47, 47, 47, 47, 47, 47, - 47, 47, 47, 47, 47, 47, 47, 47, 47, 4, - 61, 61, 3, 61, 41, 44, 46, 61, 0, 57, - 61, 61, 61, 61, 61, 40, 61, 47, 47, 47, - 47, 47, 47, 0, 0, 0, 47, 47, 47, 47, - 47, 47, 0, 47, 47, 47, 0, 47, 47, 47, - 0, 0, 47, 47, 4, 0, 61, 3, 61, 0, - - 61, 61, 61, 61, 49, 58, 50, 61, 47, 47, - 47, 47, 47, 0, 14, 0, 0, 0, 47, 47, - 47, 0, 0, 47, 0, 47, 47, 47, 0, 47, - 0, 47, 0, 0, 0, 0, 47, 4, 60, 61, - 61, 61, 61, 55, 53, 39, 59, 42, 47, 47, - 47, 47, 47, 0, 0, 0, 0, 47, 47, 47, - 0, 0, 47, 0, 47, 0, 47, 0, 47, 0, - 47, 0, 0, 0, 0, 47, 60, 61, 56, 54, - 0, 0, 47, 47, 47, 0, 0, 0, 0, 47, - 18, 0, 0, 0, 0, 47, 0, 0, 0, 7, - - 0, 0, 0, 47, 0, 0, 33, 0, 0, 60, - 61, 0, 0, 47, 0, 47, 0, 0, 0, 0, - 47, 0, 0, 0, 0, 47, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, - 0, 47, 0, 47, 0, 0, 0, 0, 47, 0, - 0, 37, 36, 47, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 34, 0, 0, 0, 0, - 0, 47, 0, 0, 0, 0, 38, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, - 0, 35, 0, 0, 0, 0, 47, 0, 0, 0, + 0, 6, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 4, 62, 62, 2, 3, + 62, 53, 62, 44, 62, 62, 62, 62, 62, 62, + 52, 62, 62, 62, 62, 62, 62, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + + 48, 48, 48, 48, 48, 48, 48, 4, 0, 62, + 2, 3, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 46, 48, 48, 48, 48, + 48, 0, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 4, + 62, 62, 3, 62, 42, 45, 47, 62, 0, 58, + 62, 62, 62, 62, 62, 41, 62, 48, 48, 48, + 48, 48, 48, 0, 0, 0, 48, 48, 48, 48, + 48, 48, 0, 48, 48, 48, 0, 48, 48, 48, + 0, 0, 48, 48, 4, 0, 62, 3, 62, 0, + + 62, 62, 62, 62, 50, 59, 51, 62, 48, 48, + 48, 48, 48, 0, 15, 0, 0, 0, 48, 48, + 48, 0, 0, 48, 0, 48, 48, 48, 0, 48, + 0, 48, 0, 0, 0, 0, 48, 4, 61, 62, + 62, 62, 62, 56, 54, 40, 60, 43, 48, 48, + 48, 48, 48, 0, 0, 0, 0, 48, 48, 48, + 0, 0, 48, 0, 48, 0, 48, 0, 48, 0, + 48, 0, 0, 0, 0, 48, 61, 62, 57, 55, + 0, 0, 48, 48, 48, 0, 0, 0, 0, 48, + 19, 0, 0, 0, 0, 48, 0, 0, 0, 7, + + 0, 0, 8, 0, 48, 0, 0, 34, 0, 0, + 61, 62, 0, 0, 48, 0, 48, 0, 0, 0, + 0, 48, 0, 0, 0, 0, 48, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, + 0, 0, 48, 0, 48, 0, 0, 0, 0, 48, + 0, 0, 38, 37, 48, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 35, 0, 0, 0, + 0, 0, 48, 0, 0, 0, 0, 39, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 36, 0, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 0, 0, 32, 0, 0, 0, 0, 47, 0, - 0, 0, 0, 0, 0, 0, 22, 0, 0, 25, - 0, 0, 0, 31, 0, 0, 0, 0, 12, 0, - 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, - 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 24, 0, 0, 8, 9, 10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, - 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, - 17, 0, 0, 0, 26, 27, 0, 0, 0, 0, - - 0, 13, 15, 19, 0, 0, 0, 0, 0, 0, - 21, 23, 0 + 0, 30, 0, 0, 33, 0, 0, 0, 0, 48, + 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, + 26, 0, 0, 0, 32, 0, 0, 0, 0, 13, + 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, + 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 25, 0, 0, 9, 10, 11, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, + 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, + 0, 18, 0, 0, 0, 27, 28, 0, 0, 0, + + 0, 0, 14, 16, 20, 0, 0, 0, 0, 0, + 0, 22, 24, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -563,126 +563,126 @@ static yyconst flex_int32_t yy_meta[74] = 3, 3, 3 } ; -static yyconst flex_int16_t yy_base[518] = +static yyconst flex_int16_t yy_base[519] = { 0, - 0, 641, 636, 1648, 1648, 1648, 1648, 629, 625, 604, + 0, 658, 647, 1648, 1648, 1648, 1648, 631, 626, 613, 65, 72, 0, 55, 50, 57, 71, 55, 62, 72, - 74, 78, 75, 63, 619, 616, 613, 132, 195, 103, + 74, 78, 75, 63, 621, 617, 616, 132, 195, 103, 208, 251, 215, 235, 228, 230, 237, 245, 265, 281, 286, 294, 296, 311, 313, 327, 343, 354, 361, 370, - 610, 1648, 417, 305, 69, 77, 86, 75, 347, 78, + 615, 1648, 417, 305, 69, 77, 86, 75, 347, 78, 362, 402, 91, 113, 189, 417, 397, 482, 525, 489, 413, 466, 502, 507, 509, 514, 516, 542, 550, 557, 569, 576, 578, 590, 621, 598, 623, 215, 232, 246, - 242, 248, 604, 278, 275, 293, 354, 295, 303, 402, + 242, 248, 605, 278, 275, 293, 354, 295, 303, 402, 311, 330, 427, 331, 335, 355, 358, 638, 671, 714, 757, 645, 634, 686, 669, 692, 694, 747, 738, 703, 749, 775, 701, 781, 790, 783, 376, 423, 566, 421, - 453, 778, 521, 523, 530, 532, 537, 569, 602, 573, - 627, 624, 597, 638, 631, 688, 594, 759, 708, 838, + 453, 778, 521, 523, 530, 532, 537, 569, 604, 573, + 627, 624, 602, 638, 631, 688, 597, 759, 708, 838, 851, 824, 861, 874, 876, 881, 883, 888, 894, 896, 901, 910, 928, 942, 937, 951, 953, 711, 735, 749, - 768, 769, 501, 767, 788, 775, 778, 782, 794, 593, - 582, 796, 840, 845, 850, 875, 872, 901, 568, 903, - 932, 913, 560, 929, 997, 1014, 1057, 1648, 996, 969, + 768, 769, 501, 767, 788, 775, 778, 782, 794, 594, + 593, 796, 840, 845, 850, 875, 872, 901, 582, 903, + 932, 913, 568, 929, 997, 1014, 1057, 1648, 996, 969, 959, 987, 1012, 1036, 1030, 1041, 1043, 1048, 943, 995, 1013, 1031, 1026, 1015, 1648, 1036, 1033, 1052, 1044, 1052, 1048, 1049, 1058, 1059, 1064, 1069, 552, 1058, 1068, 1058, 1071, 1062, 1076, 1073, 1085, 1086, 1067, 1648, 1135, 1124, - 1133, 1148, 1154, 1159, 1165, 1167, 1178, 1183, 549, 537, - 1113, 1126, 1155, 1149, 1159, 527, 524, 1168, 1145, 523, - 1165, 1178, 1167, 1164, 519, 1160, 507, 1169, 481, 1173, + 1133, 1148, 1154, 1159, 1165, 1167, 1178, 1183, 537, 527, + 1113, 1126, 1155, 1149, 1159, 524, 523, 1168, 1145, 519, + 1165, 1178, 1167, 1164, 518, 1160, 470, 1169, 549, 1173, 1169, 1185, 1189, 1179, 1197, 440, 1241, 1239, 1223, 1254, 1197, 1200, 1201, 439, 1200, 1211, 1225, 1231, 1226, 1248, 0, 1237, 1242, 1232, 1243, 1233, 1255, 1255, 1253, 1648, - 1258, 1246, 1248, 417, 1253, 1265, 1648, 1252, 1262, 1313, - 1318, 1259, 1280, 1288, 1275, 1285, 1300, 411, 1291, 1309, - 1309, 1309, 1311, 384, 381, 1312, 1304, 1320, 1310, 1309, - 1320, 1321, 1307, 1325, 1330, 1317, 1329, 1328, 1374, 1319, - 1330, 383, 1340, 1355, 376, 1344, 1363, 1349, 336, 339, - 1355, 1648, 1648, 331, 1350, 1363, 1368, 1354, 1374, 1364, - 1360, 1379, 1369, 1378, 1382, 1648, 1359, 1365, 1365, 1381, - 1375, 1374, 1376, 1391, 1387, 1398, 1648, 1400, 1400, 1404, - 1403, 1412, 1410, 1406, 1405, 1424, 1648, 1410, 1422, 1420, - 1408, 1648, 1419, 1430, 1427, 1432, 1424, 1438, 1420, 1436, - - 1424, 1438, 1424, 1441, 312, 1442, 1436, 306, 301, 298, - 1648, 1450, 1470, 1648, 1473, 1458, 1466, 1464, 281, 1467, - 1476, 1462, 1470, 1469, 274, 1470, 1648, 1483, 1468, 1648, - 1470, 1471, 1486, 1648, 1477, 1473, 1489, 1474, 1648, 1491, - 1479, 1495, 1499, 1489, 1648, 1499, 264, 252, 1517, 1520, - 1648, 1518, 1512, 238, 1512, 1514, 1521, 1527, 1518, 1528, - 1530, 1521, 1648, 1515, 1516, 1648, 1648, 1648, 229, 1527, - 1543, 228, 1534, 1543, 1544, 1543, 1544, 1545, 1648, 1550, - 1534, 1648, 215, 1553, 1554, 1547, 199, 196, 1577, 1572, - 1648, 1565, 143, 1563, 1648, 1648, 1581, 120, 119, 1569, - - 1583, 1648, 1648, 1648, 1584, 1572, 1590, 1574, 1590, 116, - 1648, 1648, 1648, 1641, 126, 1644, 113 + 1258, 1246, 1648, 1248, 417, 1253, 1265, 1648, 1252, 1262, + 1313, 1318, 1259, 1280, 1288, 1275, 1285, 1300, 411, 1291, + 1309, 1309, 1309, 1311, 384, 381, 1312, 1304, 1320, 1310, + 1309, 1320, 1321, 1307, 1325, 1330, 1317, 1329, 1328, 1374, + 1319, 1330, 383, 1340, 1355, 376, 1344, 1363, 1349, 336, + 339, 1355, 1648, 1648, 331, 1350, 1363, 1368, 1354, 1374, + 1364, 1360, 1379, 1369, 1378, 1382, 1648, 1359, 1365, 1365, + 1381, 1375, 1374, 1376, 1391, 1387, 1398, 1648, 1400, 1400, + 1404, 1403, 1412, 1410, 1406, 1405, 1424, 1648, 1410, 1422, + 1420, 1408, 1648, 1419, 1430, 1427, 1432, 1424, 1438, 1420, + + 1436, 1424, 1438, 1424, 1441, 312, 1442, 1436, 306, 301, + 298, 1648, 1450, 1470, 1648, 1473, 1458, 1466, 1464, 281, + 1467, 1476, 1462, 1470, 1469, 274, 1470, 1648, 1483, 1468, + 1648, 1470, 1471, 1486, 1648, 1477, 1473, 1489, 1474, 1648, + 1491, 1479, 1495, 1499, 1489, 1648, 1499, 264, 252, 1517, + 1520, 1648, 1518, 1512, 238, 1512, 1514, 1521, 1527, 1518, + 1528, 1530, 1521, 1648, 1515, 1516, 1648, 1648, 1648, 229, + 1527, 1543, 228, 1534, 1543, 1544, 1543, 1544, 1545, 1648, + 1550, 1534, 1648, 215, 1553, 1554, 1547, 199, 196, 1577, + 1572, 1648, 1565, 143, 1563, 1648, 1648, 1581, 120, 119, + + 1569, 1583, 1648, 1648, 1648, 1584, 1572, 1590, 1574, 1590, + 116, 1648, 1648, 1648, 1641, 126, 1644, 113 } ; -static yyconst flex_int16_t yy_def[518] = +static yyconst flex_int16_t yy_def[519] = { 0, - 513, 1, 513, 513, 513, 513, 513, 514, 513, 513, - 515, 513, 515, 515, 515, 515, 515, 515, 515, 515, - 515, 515, 515, 515, 516, 514, 514, 513, 513, 517, - 517, 517, 513, 517, 517, 517, 517, 517, 517, 517, - 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, - 516, 513, 28, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 513, 517, 517, 517, 513, - 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, - 517, 517, 517, 517, 517, 517, 517, 53, 53, 53, + 514, 1, 514, 514, 514, 514, 514, 515, 514, 514, + 516, 514, 516, 516, 516, 516, 516, 516, 516, 516, + 516, 516, 516, 516, 517, 515, 515, 514, 514, 518, + 518, 518, 514, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 517, 514, 28, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 514, 518, 518, 518, 514, + 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 513, 517, 517, - 517, 513, 517, 517, 517, 517, 517, 517, 517, 517, - 517, 517, 517, 517, 517, 517, 53, 53, 53, 53, - 53, 513, 53, 53, 53, 53, 53, 53, 53, 53, - 53, 53, 53, 53, 53, 53, 53, 53, 53, 513, - 517, 517, 513, 517, 517, 517, 517, 517, 517, 517, - 517, 517, 517, 517, 517, 517, 517, 53, 53, 53, - 53, 53, 53, 513, 513, 513, 53, 53, 53, 53, - 53, 53, 513, 53, 53, 53, 513, 53, 53, 53, - 513, 513, 53, 53, 513, 517, 517, 513, 517, 517, - - 517, 517, 517, 517, 517, 517, 517, 517, 53, 53, - 53, 53, 53, 513, 513, 513, 513, 513, 53, 53, - 53, 513, 513, 53, 513, 53, 53, 53, 513, 53, - 513, 53, 513, 513, 513, 513, 53, 513, 517, 517, - 517, 517, 517, 517, 517, 517, 517, 517, 53, 53, - 53, 53, 53, 513, 513, 513, 513, 53, 53, 53, - 513, 513, 53, 513, 53, 513, 53, 513, 53, 513, - 53, 513, 513, 513, 513, 53, 517, 517, 517, 517, - 513, 513, 53, 53, 53, 513, 513, 513, 513, 53, - 53, 513, 513, 513, 513, 53, 513, 513, 513, 513, - - 513, 513, 513, 53, 513, 513, 513, 513, 513, 517, - 517, 513, 513, 53, 513, 53, 513, 513, 513, 513, - 53, 513, 513, 513, 513, 53, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 517, 513, - 513, 53, 513, 53, 513, 513, 513, 513, 53, 513, - 513, 513, 513, 53, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 53, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 53, 513, 513, 513, - - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 53, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 0, 513, 513, 513, 513 + 53, 53, 53, 53, 53, 53, 53, 514, 518, 518, + 518, 514, 518, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 53, 53, 53, 53, + 53, 514, 53, 53, 53, 53, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 53, 53, 514, + 518, 518, 514, 518, 518, 518, 518, 518, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 53, 53, 53, + 53, 53, 53, 514, 514, 514, 53, 53, 53, 53, + 53, 53, 514, 53, 53, 53, 514, 53, 53, 53, + 514, 514, 53, 53, 514, 518, 518, 514, 518, 518, + + 518, 518, 518, 518, 518, 518, 518, 518, 53, 53, + 53, 53, 53, 514, 514, 514, 514, 514, 53, 53, + 53, 514, 514, 53, 514, 53, 53, 53, 514, 53, + 514, 53, 514, 514, 514, 514, 53, 514, 518, 518, + 518, 518, 518, 518, 518, 518, 518, 518, 53, 53, + 53, 53, 53, 514, 514, 514, 514, 53, 53, 53, + 514, 514, 53, 514, 53, 514, 53, 514, 53, 514, + 53, 514, 514, 514, 514, 53, 518, 518, 518, 518, + 514, 514, 53, 53, 53, 514, 514, 514, 514, 53, + 53, 514, 514, 514, 514, 53, 514, 514, 514, 514, + + 514, 514, 514, 514, 53, 514, 514, 514, 514, 514, + 518, 518, 514, 514, 53, 514, 53, 514, 514, 514, + 514, 53, 514, 514, 514, 514, 53, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 518, + 514, 514, 53, 514, 53, 514, 514, 514, 514, 53, + 514, 514, 514, 514, 53, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 53, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 53, 514, 514, + + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 53, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 0, 514, 514, 514, 514 } ; static yyconst flex_int16_t yy_nxt[1722] = @@ -701,107 +701,107 @@ static yyconst flex_int16_t yy_nxt[1722] = 50, 36, 48, 90, 40, 91, 92, 30, 45, 93, 30, 30, 97, 105, 46, 67, 34, 37, 39, 35, 41, 38, 42, 43, 44, 47, 49, 50, 30, 48, - 90, 40, 91, 92, 512, 45, 93, 504, 503, 97, + 90, 40, 91, 92, 513, 45, 93, 505, 504, 97, 105, 46, 53, 53, 53, 53, 53, 53, 53, 30, - 500, 106, 53, 54, 55, 56, 53, 53, 53, 57, + 501, 106, 53, 54, 55, 56, 53, 53, 53, 57, 58, 53, 53, 53, 53, 59, 53, 60, 53, 61, 62, 63, 64, 65, 53, 53, 53, 53, 106, 53, 54, 55, 56, 53, 53, 53, 57, 58, 53, 53, 53, 53, 59, 53, 60, 53, 61, 62, 63, 64, 65, 53, 53, 53, 53, 66, 66, 66, 66, 66, - 66, 66, 30, 107, 496, 30, 30, 495, 68, 68, + 66, 66, 30, 107, 497, 30, 30, 496, 68, 68, 68, 68, 68, 68, 68, 70, 70, 70, 70, 70, - 70, 70, 30, 491, 30, 30, 30, 30, 30, 30, - 107, 30, 30, 30, 30, 30, 482, 479, 127, 30, - 72, 73, 30, 30, 30, 30, 468, 128, 30, 31, + 70, 70, 30, 492, 30, 30, 30, 30, 30, 30, + 107, 30, 30, 30, 30, 30, 483, 480, 127, 30, + 72, 73, 30, 30, 30, 30, 469, 128, 30, 31, 74, 69, 69, 69, 69, 69, 69, 69, 71, 30, - 463, 462, 30, 30, 30, 127, 30, 72, 73, 129, + 464, 463, 30, 30, 30, 127, 30, 72, 73, 129, 130, 30, 75, 30, 128, 30, 131, 74, 30, 30, - 30, 30, 445, 30, 30, 71, 76, 30, 30, 439, + 30, 30, 446, 30, 30, 71, 76, 30, 30, 440, - 30, 30, 30, 30, 30, 432, 129, 130, 431, 75, + 30, 30, 30, 30, 30, 433, 129, 130, 432, 75, 133, 30, 134, 131, 78, 30, 79, 30, 30, 30, - 30, 30, 77, 76, 430, 135, 81, 30, 138, 80, - 427, 30, 30, 88, 30, 30, 82, 133, 380, 134, - 30, 78, 30, 79, 139, 89, 378, 30, 142, 77, - 30, 30, 135, 143, 377, 138, 80, 30, 30, 30, + 30, 30, 77, 76, 431, 135, 81, 30, 138, 80, + 428, 30, 30, 88, 30, 30, 82, 133, 381, 134, + 30, 78, 30, 79, 139, 89, 379, 30, 142, 77, + 30, 30, 135, 143, 378, 138, 80, 30, 30, 30, 88, 30, 30, 82, 83, 30, 146, 94, 30, 30, 147, 139, 89, 30, 30, 142, 84, 30, 30, 148, - 143, 95, 98, 373, 99, 136, 100, 96, 137, 30, - 370, 83, 85, 146, 94, 149, 168, 147, 86, 353, + 143, 95, 98, 374, 99, 136, 100, 96, 137, 30, + 371, 83, 85, 146, 94, 149, 168, 147, 86, 354, - 30, 30, 352, 84, 30, 30, 148, 30, 95, 98, - 87, 99, 136, 100, 96, 137, 30, 30, 346, 85, - 30, 30, 149, 168, 334, 86, 101, 108, 108, 108, + 30, 30, 353, 84, 30, 30, 148, 30, 95, 98, + 87, 99, 136, 100, 96, 137, 30, 30, 347, 85, + 30, 30, 149, 168, 335, 86, 101, 108, 108, 108, 108, 108, 108, 108, 140, 102, 103, 87, 53, 53, - 53, 141, 104, 30, 53, 53, 315, 309, 169, 144, + 53, 141, 104, 30, 53, 53, 316, 310, 169, 144, 53, 113, 53, 101, 53, 53, 53, 53, 53, 30, 172, 140, 102, 103, 145, 53, 53, 53, 141, 104, 30, 53, 53, 30, 30, 169, 144, 53, 113, 53, - 173, 53, 53, 53, 53, 53, 30, 172, 302, 30, + 173, 53, 53, 53, 53, 53, 30, 172, 300, 30, 109, 145, 110, 110, 110, 110, 110, 110, 110, 112, 112, 112, 112, 112, 112, 112, 30, 173, 214, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 215, - 30, 30, 30, 30, 30, 300, 298, 117, 30, 30, - 292, 289, 30, 31, 288, 111, 111, 111, 111, 111, - 111, 111, 114, 115, 282, 177, 30, 178, 30, 30, - 30, 179, 116, 30, 30, 30, 281, 30, 30, 266, - 30, 30, 30, 180, 30, 30, 118, 236, 181, 114, - 115, 30, 177, 30, 178, 231, 30, 30, 179, 116, - 30, 119, 30, 30, 30, 30, 30, 120, 30, 223, + 30, 30, 30, 30, 30, 298, 292, 117, 30, 30, + 289, 288, 30, 31, 282, 111, 111, 111, 111, 111, + 111, 111, 114, 115, 281, 177, 30, 178, 30, 30, + 30, 179, 116, 30, 30, 30, 302, 30, 30, 266, + 30, 30, 30, 180, 30, 30, 118, 303, 181, 114, + 115, 30, 177, 30, 178, 236, 30, 30, 179, 116, + 30, 119, 30, 30, 30, 30, 30, 120, 30, 231, 180, 170, 182, 118, 30, 181, 30, 30, 30, 171, - 222, 191, 30, 30, 187, 30, 30, 184, 119, 183, - 122, 132, 52, 123, 120, 30, 121, 27, 170, 182, - 27, 52, 30, 29, 30, 30, 171, 30, 30, 30, - 30, 30, 28, 27, 184, 513, 30, 122, 30, 125, - 123, 30, 30, 121, 30, 124, 25, 126, 150, 150, + 223, 222, 30, 30, 191, 30, 30, 184, 119, 187, + 122, 183, 132, 123, 120, 30, 121, 52, 170, 182, + 27, 27, 30, 52, 30, 30, 171, 30, 30, 30, + 30, 30, 29, 28, 184, 27, 30, 122, 30, 125, + 123, 30, 30, 121, 30, 124, 514, 126, 150, 150, 150, 150, 150, 150, 150, 153, 153, 153, 153, 153, - 153, 153, 154, 513, 185, 186, 125, 30, 188, 30, - 189, 513, 124, 30, 126, 30, 30, 30, 30, 30, - 30, 151, 151, 151, 151, 151, 151, 151, 513, 154, + 153, 153, 154, 25, 185, 186, 125, 30, 188, 30, + 189, 514, 124, 30, 126, 30, 30, 30, 30, 30, + 30, 151, 151, 151, 151, 151, 151, 151, 514, 154, 30, 185, 186, 30, 30, 188, 30, 189, 30, 30, - 30, 30, 30, 513, 513, 30, 156, 30, 30, 30, - 30, 30, 155, 513, 158, 30, 157, 30, 30, 513, - 513, 30, 109, 190, 152, 152, 152, 152, 152, 152, - 152, 162, 30, 156, 513, 165, 194, 513, 30, 155, - 159, 158, 30, 157, 513, 30, 30, 30, 209, 30, - 190, 30, 513, 30, 30, 30, 30, 30, 162, 210, + 30, 30, 30, 514, 514, 30, 156, 30, 30, 30, + 30, 30, 155, 514, 158, 30, 157, 30, 30, 514, + 514, 30, 109, 190, 152, 152, 152, 152, 152, 152, + 152, 162, 30, 156, 514, 165, 194, 514, 30, 155, + 159, 158, 30, 157, 514, 30, 30, 30, 209, 30, + 190, 30, 514, 30, 30, 30, 30, 30, 162, 210, 30, 30, 165, 194, 30, 30, 192, 111, 111, 111, - 111, 111, 111, 111, 160, 209, 513, 211, 161, 30, - 163, 513, 30, 30, 30, 30, 210, 30, 30, 30, + 111, 111, 111, 111, 160, 209, 514, 211, 161, 30, + 163, 514, 30, 30, 30, 30, 210, 30, 30, 30, 30, 30, 212, 30, 30, 30, 193, 30, 30, 174, - 513, 160, 513, 30, 211, 161, 213, 163, 175, 513, + 514, 160, 514, 30, 211, 161, 213, 163, 175, 514, 176, 216, 217, 218, 167, 164, 219, 220, 221, 212, - 166, 30, 513, 193, 513, 513, 174, 30, 30, 30, - 224, 30, 109, 213, 513, 175, 30, 176, 216, 217, - 218, 167, 164, 219, 220, 221, 513, 166, 195, 195, - 195, 195, 195, 195, 195, 30, 513, 224, 30, 196, - 513, 197, 197, 197, 197, 197, 197, 197, 513, 513, + 166, 30, 514, 193, 514, 514, 174, 30, 30, 30, + 224, 30, 109, 213, 514, 175, 30, 176, 216, 217, + 218, 167, 164, 219, 220, 221, 514, 166, 195, 195, + 195, 195, 195, 195, 195, 30, 514, 224, 30, 196, + 514, 197, 197, 197, 197, 197, 197, 197, 514, 514, 30, 198, 198, 198, 198, 198, 198, 198, 30, 225, 30, 30, 30, 30, 30, 30, 226, 30, 30, 30, - 30, 30, 30, 513, 227, 30, 30, 30, 30, 228, + 30, 30, 30, 514, 227, 30, 30, 30, 30, 228, 30, 30, 30, 30, 30, 30, 225, 201, 30, 30, - 202, 229, 199, 226, 30, 513, 513, 30, 30, 513, - 30, 227, 30, 513, 203, 230, 228, 30, 513, 30, - 513, 513, 30, 513, 200, 30, 30, 232, 229, 199, + 202, 229, 199, 226, 30, 514, 514, 30, 30, 514, + 30, 227, 30, 514, 203, 230, 228, 30, 514, 30, + 514, 514, 30, 514, 200, 30, 30, 232, 229, 199, 30, 30, 30, 204, 30, 30, 30, 30, 205, 30, 30, 203, 230, 235, 237, 30, 30, 30, 30, 30, - 30, 30, 233, 30, 232, 234, 30, 30, 513, 207, - 204, 244, 513, 30, 30, 205, 30, 30, 513, 206, - 235, 237, 242, 30, 513, 243, 513, 249, 30, 233, - 208, 30, 234, 513, 30, 30, 207, 30, 513, 30, + 30, 30, 233, 30, 232, 234, 30, 30, 514, 207, + 204, 244, 514, 30, 30, 205, 30, 30, 514, 206, + 235, 237, 242, 30, 514, 243, 514, 249, 30, 233, + 208, 30, 234, 514, 30, 30, 207, 30, 514, 30, - 30, 245, 513, 30, 30, 30, 206, 238, 238, 238, + 30, 245, 514, 30, 30, 30, 206, 238, 238, 238, 238, 238, 238, 238, 249, 30, 30, 208, 30, 30, - 30, 30, 30, 513, 239, 239, 239, 239, 239, 239, - 239, 513, 250, 30, 30, 241, 246, 30, 30, 251, - 30, 513, 30, 30, 30, 30, 513, 30, 30, 30, + 30, 30, 30, 514, 239, 239, 239, 239, 239, 239, + 239, 514, 250, 30, 30, 241, 246, 30, 30, 251, + 30, 514, 30, 30, 30, 30, 514, 30, 30, 30, 30, 30, 30, 252, 253, 30, 30, 254, 30, 250, 30, 30, 241, 246, 30, 196, 251, 240, 240, 240, 240, 240, 240, 240, 247, 255, 30, 256, 257, 258, @@ -809,74 +809,74 @@ static yyconst flex_int16_t yy_nxt[1722] = 262, 263, 264, 265, 30, 267, 268, 269, 270, 271, 272, 247, 255, 30, 256, 257, 258, 273, 274, 275, - 259, 276, 260, 248, 513, 261, 513, 262, 263, 264, - 265, 513, 267, 268, 269, 270, 271, 272, 30, 513, - 513, 30, 196, 513, 273, 274, 275, 30, 276, 30, - 30, 30, 30, 30, 513, 277, 277, 277, 277, 277, - 277, 277, 30, 283, 513, 30, 30, 278, 30, 513, - 279, 30, 30, 30, 513, 284, 30, 30, 280, 30, - 30, 30, 30, 30, 30, 30, 285, 286, 513, 30, + 259, 276, 260, 248, 514, 261, 514, 262, 263, 264, + 265, 514, 267, 268, 269, 270, 271, 272, 30, 514, + 514, 30, 196, 514, 273, 274, 275, 30, 276, 30, + 30, 30, 30, 30, 514, 277, 277, 277, 277, 277, + 277, 277, 30, 283, 514, 30, 30, 278, 30, 514, + 279, 30, 30, 30, 514, 284, 30, 30, 280, 30, + 30, 30, 30, 30, 30, 30, 285, 286, 514, 30, 283, 30, 30, 287, 278, 30, 30, 30, 290, 291, - 30, 30, 284, 293, 30, 296, 297, 513, 294, 299, - - 30, 301, 513, 285, 286, 30, 295, 303, 304, 305, - 287, 30, 306, 30, 307, 290, 291, 308, 513, 513, - 293, 513, 296, 297, 30, 294, 299, 30, 301, 30, - 30, 30, 312, 295, 303, 304, 305, 313, 314, 306, - 316, 307, 513, 30, 308, 30, 30, 30, 30, 30, - 317, 310, 310, 310, 310, 310, 310, 310, 30, 312, - 513, 30, 30, 318, 313, 314, 319, 316, 320, 30, - 321, 322, 311, 513, 323, 324, 325, 317, 326, 327, - 328, 329, 330, 331, 332, 30, 333, 30, 335, 336, - 318, 337, 338, 319, 513, 320, 340, 321, 322, 311, - - 30, 323, 324, 325, 341, 326, 327, 328, 329, 330, - 331, 332, 342, 333, 343, 335, 336, 30, 337, 338, - 30, 30, 30, 340, 344, 30, 30, 345, 347, 348, - 513, 341, 513, 349, 350, 351, 354, 513, 355, 342, - 356, 343, 357, 358, 359, 360, 361, 362, 365, 366, - 363, 344, 367, 368, 345, 347, 348, 339, 364, 30, - 349, 350, 351, 354, 30, 355, 369, 356, 371, 357, - 358, 359, 360, 361, 362, 365, 366, 363, 30, 367, - 368, 30, 30, 372, 339, 364, 374, 375, 376, 379, - 381, 382, 383, 369, 384, 371, 385, 386, 387, 388, - - 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, - 372, 399, 400, 374, 375, 376, 379, 381, 382, 383, - 30, 384, 401, 385, 386, 387, 388, 389, 390, 391, - 392, 393, 394, 395, 396, 397, 398, 402, 399, 400, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 401, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, - 422, 423, 424, 425, 402, 426, 428, 403, 404, 405, - 406, 407, 408, 409, 410, 411, 429, 412, 413, 414, - 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, - 425, 433, 426, 428, 434, 435, 436, 437, 438, 440, - - 441, 442, 443, 429, 444, 446, 447, 448, 449, 450, - 451, 452, 453, 454, 455, 456, 457, 458, 433, 459, - 460, 434, 435, 436, 437, 438, 440, 441, 442, 443, - 461, 444, 446, 447, 448, 449, 450, 451, 452, 453, - 454, 455, 456, 457, 458, 464, 459, 460, 465, 466, - 467, 469, 470, 471, 472, 473, 474, 461, 475, 476, - 477, 478, 480, 481, 483, 484, 485, 486, 487, 488, - 489, 490, 464, 492, 493, 465, 466, 467, 469, 470, - 471, 472, 473, 474, 494, 475, 476, 477, 478, 480, - 481, 483, 484, 485, 486, 487, 488, 489, 490, 497, - - 492, 493, 498, 499, 501, 502, 505, 506, 507, 508, - 509, 494, 510, 511, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 497, 513, 513, 498, - 499, 501, 502, 505, 506, 507, 508, 509, 513, 510, - 511, 26, 513, 26, 51, 51, 51, 3, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513 + 30, 30, 284, 293, 30, 296, 297, 514, 294, 299, + + 30, 301, 514, 285, 286, 30, 295, 304, 305, 306, + 287, 30, 307, 30, 308, 290, 291, 309, 514, 514, + 293, 514, 296, 297, 30, 294, 299, 30, 301, 30, + 30, 30, 313, 295, 304, 305, 306, 314, 315, 307, + 317, 308, 514, 30, 309, 30, 30, 30, 30, 30, + 318, 311, 311, 311, 311, 311, 311, 311, 30, 313, + 514, 30, 30, 319, 314, 315, 320, 317, 321, 30, + 322, 323, 312, 514, 324, 325, 326, 318, 327, 328, + 329, 330, 331, 332, 333, 30, 334, 30, 336, 337, + 319, 338, 339, 320, 514, 321, 341, 322, 323, 312, + + 30, 324, 325, 326, 342, 327, 328, 329, 330, 331, + 332, 333, 343, 334, 344, 336, 337, 30, 338, 339, + 30, 30, 30, 341, 345, 30, 30, 346, 348, 349, + 514, 342, 514, 350, 351, 352, 355, 514, 356, 343, + 357, 344, 358, 359, 360, 361, 362, 363, 366, 367, + 364, 345, 368, 369, 346, 348, 349, 340, 365, 30, + 350, 351, 352, 355, 30, 356, 370, 357, 372, 358, + 359, 360, 361, 362, 363, 366, 367, 364, 30, 368, + 369, 30, 30, 373, 340, 365, 375, 376, 377, 380, + 382, 383, 384, 370, 385, 372, 386, 387, 388, 389, + + 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 373, 400, 401, 375, 376, 377, 380, 382, 383, 384, + 30, 385, 402, 386, 387, 388, 389, 390, 391, 392, + 393, 394, 395, 396, 397, 398, 399, 403, 400, 401, + 404, 405, 406, 407, 408, 409, 410, 411, 412, 402, + 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, + 423, 424, 425, 426, 403, 427, 429, 404, 405, 406, + 407, 408, 409, 410, 411, 412, 430, 413, 414, 415, + 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, + 426, 434, 427, 429, 435, 436, 437, 438, 439, 441, + + 442, 443, 444, 430, 445, 447, 448, 449, 450, 451, + 452, 453, 454, 455, 456, 457, 458, 459, 434, 460, + 461, 435, 436, 437, 438, 439, 441, 442, 443, 444, + 462, 445, 447, 448, 449, 450, 451, 452, 453, 454, + 455, 456, 457, 458, 459, 465, 460, 461, 466, 467, + 468, 470, 471, 472, 473, 474, 475, 462, 476, 477, + 478, 479, 481, 482, 484, 485, 486, 487, 488, 489, + 490, 491, 465, 493, 494, 466, 467, 468, 470, 471, + 472, 473, 474, 475, 495, 476, 477, 478, 479, 481, + 482, 484, 485, 486, 487, 488, 489, 490, 491, 498, + + 493, 494, 499, 500, 502, 503, 506, 507, 508, 509, + 510, 495, 511, 512, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 498, 514, 514, 499, + 500, 502, 503, 506, 507, 508, 509, 510, 514, 511, + 512, 26, 514, 26, 51, 51, 51, 3, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514 } ; static yyconst flex_int16_t yy_chk[1722] = @@ -893,67 +893,67 @@ static yyconst flex_int16_t yy_chk[1722] = 16, 17, 14, 18, 16, 19, 20, 21, 22, 23, 24, 15, 22, 55, 17, 56, 57, 30, 21, 58, - 30, 30, 60, 63, 21, 517, 14, 16, 17, 14, - 18, 16, 19, 20, 21, 22, 23, 24, 515, 22, - 55, 17, 56, 57, 510, 21, 58, 499, 498, 60, + 30, 30, 60, 63, 21, 518, 14, 16, 17, 14, + 18, 16, 19, 20, 21, 22, 23, 24, 516, 22, + 55, 17, 56, 57, 511, 21, 58, 500, 499, 60, 63, 21, 28, 28, 28, 28, 28, 28, 28, 30, - 493, 64, 28, 28, 28, 28, 28, 28, 28, 28, + 494, 64, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 64, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, - 29, 29, 31, 65, 488, 31, 31, 487, 31, 31, + 29, 29, 31, 65, 489, 31, 31, 488, 31, 31, 31, 31, 31, 31, 31, 33, 33, 33, 33, 33, - 33, 33, 35, 483, 36, 35, 35, 36, 36, 34, - 65, 37, 34, 34, 37, 37, 472, 469, 88, 38, - 35, 36, 38, 38, 31, 32, 454, 89, 32, 32, + 33, 33, 35, 484, 36, 35, 35, 36, 36, 34, + 65, 37, 34, 34, 37, 37, 473, 470, 88, 38, + 35, 36, 38, 38, 31, 32, 455, 89, 32, 32, 37, 32, 32, 32, 32, 32, 32, 32, 34, 39, - 448, 447, 39, 39, 35, 88, 36, 35, 36, 90, + 449, 448, 39, 39, 35, 88, 36, 35, 36, 90, 91, 34, 38, 37, 89, 40, 92, 37, 40, 40, - 41, 38, 425, 41, 41, 34, 39, 32, 42, 419, + 41, 38, 426, 41, 41, 34, 39, 32, 42, 420, - 43, 42, 42, 43, 43, 410, 90, 91, 409, 38, + 43, 42, 42, 43, 43, 411, 90, 91, 410, 38, 94, 39, 95, 92, 41, 44, 42, 45, 44, 44, - 45, 45, 40, 39, 408, 96, 44, 40, 98, 43, - 405, 46, 41, 54, 46, 46, 45, 94, 354, 95, - 42, 41, 43, 42, 99, 54, 350, 47, 101, 40, - 47, 47, 96, 102, 349, 98, 43, 44, 48, 45, + 45, 45, 40, 39, 409, 96, 44, 40, 98, 43, + 406, 46, 41, 54, 46, 46, 45, 94, 355, 95, + 42, 41, 43, 42, 99, 54, 351, 47, 101, 40, + 47, 47, 96, 102, 350, 98, 43, 44, 48, 45, 54, 48, 48, 45, 46, 49, 104, 59, 49, 49, 105, 99, 54, 46, 50, 101, 47, 50, 50, 106, - 102, 59, 61, 345, 61, 97, 61, 59, 97, 47, - 342, 46, 48, 104, 59, 107, 127, 105, 49, 325, + 102, 59, 61, 346, 61, 97, 61, 59, 97, 47, + 343, 46, 48, 104, 59, 107, 127, 105, 49, 326, - 48, 67, 324, 47, 67, 67, 106, 49, 59, 61, - 50, 61, 97, 61, 59, 97, 50, 71, 318, 48, - 71, 71, 107, 127, 304, 49, 62, 66, 66, 66, + 48, 67, 325, 47, 67, 67, 106, 49, 59, 61, + 50, 61, 97, 61, 59, 97, 50, 71, 319, 48, + 71, 71, 107, 127, 305, 49, 62, 66, 66, 66, 66, 66, 66, 66, 100, 62, 62, 50, 53, 53, 53, 100, 62, 67, 53, 53, 284, 276, 128, 103, 53, 71, 53, 62, 53, 53, 53, 53, 53, 71, 130, 100, 62, 62, 103, 53, 53, 53, 100, 62, 72, 53, 53, 72, 72, 128, 103, 53, 71, 53, - 131, 53, 53, 53, 53, 53, 68, 130, 269, 68, + 131, 53, 53, 53, 53, 53, 68, 130, 267, 68, 68, 103, 68, 68, 68, 68, 68, 68, 68, 70, 70, 70, 70, 70, 70, 70, 73, 131, 173, 73, 73, 74, 72, 75, 74, 74, 75, 75, 76, 173, - 77, 76, 76, 77, 77, 267, 265, 77, 68, 69, - 260, 257, 69, 69, 256, 69, 69, 69, 69, 69, - 69, 69, 73, 75, 250, 133, 78, 134, 73, 78, - 78, 135, 76, 74, 79, 75, 249, 79, 79, 227, - 76, 80, 77, 136, 80, 80, 78, 193, 137, 73, - 75, 69, 133, 81, 134, 189, 81, 81, 135, 76, - 82, 79, 83, 82, 82, 83, 83, 80, 78, 181, + 77, 76, 76, 77, 77, 265, 260, 77, 68, 69, + 257, 256, 69, 69, 250, 69, 69, 69, 69, 69, + 69, 69, 73, 75, 249, 133, 78, 134, 73, 78, + 78, 135, 76, 74, 79, 75, 269, 79, 79, 227, + 76, 80, 77, 136, 80, 80, 78, 269, 137, 73, + 75, 69, 133, 81, 134, 193, 81, 81, 135, 76, + 82, 79, 83, 82, 82, 83, 83, 80, 78, 189, 136, 129, 138, 78, 84, 137, 79, 84, 84, 129, - 180, 147, 86, 80, 143, 86, 86, 140, 79, 139, - 83, 93, 51, 84, 80, 81, 82, 27, 129, 138, - 26, 25, 82, 10, 83, 85, 129, 87, 85, 85, - 87, 87, 9, 8, 140, 3, 84, 83, 113, 86, - 84, 113, 113, 82, 86, 85, 2, 87, 108, 108, + 181, 180, 86, 80, 147, 86, 86, 140, 79, 143, + 83, 139, 93, 84, 80, 81, 82, 51, 129, 138, + 27, 26, 82, 25, 83, 85, 129, 87, 85, 85, + 87, 87, 10, 9, 140, 8, 84, 83, 113, 86, + 84, 113, 113, 82, 86, 85, 3, 87, 108, 108, 108, 108, 108, 108, 108, 112, 112, 112, 112, 112, - 112, 112, 113, 0, 141, 142, 86, 85, 144, 87, + 112, 112, 113, 2, 141, 142, 86, 85, 144, 87, 145, 0, 85, 115, 87, 109, 115, 115, 109, 109, 113, 109, 109, 109, 109, 109, 109, 109, 0, 113, 114, 141, 142, 114, 114, 144, 116, 145, 117, 116, @@ -1021,67 +1021,67 @@ static yyconst flex_int16_t yy_chk[1722] = 286, 277, 277, 277, 277, 277, 277, 277, 280, 281, 0, 280, 280, 287, 282, 283, 288, 285, 289, 279, 290, 292, 278, 0, 293, 294, 295, 286, 296, 297, - 298, 299, 301, 302, 302, 278, 303, 277, 305, 306, - 287, 308, 309, 288, 0, 289, 312, 290, 292, 278, - - 280, 293, 294, 295, 313, 296, 297, 298, 299, 301, - 302, 302, 314, 303, 315, 305, 306, 310, 308, 309, - 310, 310, 311, 312, 316, 311, 311, 317, 319, 320, - 0, 313, 0, 321, 322, 323, 326, 0, 327, 314, - 328, 315, 329, 330, 331, 332, 333, 334, 336, 337, - 335, 316, 338, 340, 317, 319, 320, 311, 335, 310, - 321, 322, 323, 326, 311, 327, 341, 328, 343, 329, - 330, 331, 332, 333, 334, 336, 337, 335, 339, 338, - 340, 339, 339, 344, 311, 335, 346, 347, 348, 351, - 355, 356, 357, 341, 358, 343, 359, 360, 361, 362, - - 363, 364, 365, 367, 368, 369, 370, 371, 372, 373, - 344, 374, 375, 346, 347, 348, 351, 355, 356, 357, - 339, 358, 376, 359, 360, 361, 362, 363, 364, 365, - 367, 368, 369, 370, 371, 372, 373, 378, 374, 375, - 379, 380, 381, 382, 383, 384, 385, 386, 388, 376, - 389, 390, 391, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 378, 404, 406, 379, 380, 381, - 382, 383, 384, 385, 386, 388, 407, 389, 390, 391, - 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, - 403, 412, 404, 406, 413, 415, 416, 417, 418, 420, - - 421, 422, 423, 407, 424, 426, 428, 429, 431, 432, - 433, 435, 436, 437, 438, 440, 441, 442, 412, 443, - 444, 413, 415, 416, 417, 418, 420, 421, 422, 423, - 446, 424, 426, 428, 429, 431, 432, 433, 435, 436, - 437, 438, 440, 441, 442, 449, 443, 444, 450, 452, - 453, 455, 456, 457, 458, 459, 460, 446, 461, 462, - 464, 465, 470, 471, 473, 474, 475, 476, 477, 478, - 480, 481, 449, 484, 485, 450, 452, 453, 455, 456, - 457, 458, 459, 460, 486, 461, 462, 464, 465, 470, - 471, 473, 474, 475, 476, 477, 478, 480, 481, 489, - - 484, 485, 490, 492, 494, 497, 500, 501, 505, 506, - 507, 486, 508, 509, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 489, 0, 0, 490, - 492, 494, 497, 500, 501, 505, 506, 507, 0, 508, - 509, 514, 0, 514, 516, 516, 516, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, - 513 + 298, 299, 301, 302, 302, 278, 304, 277, 306, 307, + 287, 309, 310, 288, 0, 289, 313, 290, 292, 278, + + 280, 293, 294, 295, 314, 296, 297, 298, 299, 301, + 302, 302, 315, 304, 316, 306, 307, 311, 309, 310, + 311, 311, 312, 313, 317, 312, 312, 318, 320, 321, + 0, 314, 0, 322, 323, 324, 327, 0, 328, 315, + 329, 316, 330, 331, 332, 333, 334, 335, 337, 338, + 336, 317, 339, 341, 318, 320, 321, 312, 336, 311, + 322, 323, 324, 327, 312, 328, 342, 329, 344, 330, + 331, 332, 333, 334, 335, 337, 338, 336, 340, 339, + 341, 340, 340, 345, 312, 336, 347, 348, 349, 352, + 356, 357, 358, 342, 359, 344, 360, 361, 362, 363, + + 364, 365, 366, 368, 369, 370, 371, 372, 373, 374, + 345, 375, 376, 347, 348, 349, 352, 356, 357, 358, + 340, 359, 377, 360, 361, 362, 363, 364, 365, 366, + 368, 369, 370, 371, 372, 373, 374, 379, 375, 376, + 380, 381, 382, 383, 384, 385, 386, 387, 389, 377, + 390, 391, 392, 394, 395, 396, 397, 398, 399, 400, + 401, 402, 403, 404, 379, 405, 407, 380, 381, 382, + 383, 384, 385, 386, 387, 389, 408, 390, 391, 392, + 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, + 404, 413, 405, 407, 414, 416, 417, 418, 419, 421, + + 422, 423, 424, 408, 425, 427, 429, 430, 432, 433, + 434, 436, 437, 438, 439, 441, 442, 443, 413, 444, + 445, 414, 416, 417, 418, 419, 421, 422, 423, 424, + 447, 425, 427, 429, 430, 432, 433, 434, 436, 437, + 438, 439, 441, 442, 443, 450, 444, 445, 451, 453, + 454, 456, 457, 458, 459, 460, 461, 447, 462, 463, + 465, 466, 471, 472, 474, 475, 476, 477, 478, 479, + 481, 482, 450, 485, 486, 451, 453, 454, 456, 457, + 458, 459, 460, 461, 487, 462, 463, 465, 466, 471, + 472, 474, 475, 476, 477, 478, 479, 481, 482, 490, + + 485, 486, 491, 493, 495, 498, 501, 502, 506, 507, + 508, 487, 509, 510, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 490, 0, 0, 491, + 493, 495, 498, 501, 502, 506, 507, 508, 0, 509, + 510, 515, 0, 515, 517, 517, 517, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, + 514 } ; -static yyconst flex_int16_t yy_rule_linenum[64] = +static yyconst flex_int16_t yy_rule_linenum[65] = { 0, - 77, 79, 81, 83, 85, 88, 92, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 123, 124, 126, 128, 129, - 130, 131, 132, 133, 135, 136, 139, 144, 145, 146, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 158, - 167, 185, 191 + 77, 79, 81, 83, 85, 88, 92, 94, 96, 97, + 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 125, 126, 128, 130, + 131, 132, 133, 134, 135, 137, 138, 141, 146, 147, + 148, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 160, 169, 187, 193 } ; /* The intent behind this definition is that it'll catch @@ -1509,7 +1509,7 @@ 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 >= 514 ) + if ( yy_current_state >= 515 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1538,13 +1538,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 < 64 ) + else if ( yy_act < 65 ) fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n", (long)yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 64 ) + else if ( yy_act == 65 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 65 ) + else if ( yy_act == 66 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -1604,269 +1604,274 @@ YY_RULE_SETUP case 8: YY_RULE_SETUP #line 94 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return BINARY_PROTOCOL; } +{ yyextra->begin= yytext; return SOCKET; } YY_BREAK case 9: YY_RULE_SETUP -#line 95 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return BUFFER_REQUESTS; } +#line 96 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return BINARY_PROTOCOL; } YY_BREAK case 10: YY_RULE_SETUP -#line 96 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CONFIGURE_FILE; } +#line 97 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return BUFFER_REQUESTS; } YY_BREAK case 11: YY_RULE_SETUP -#line 97 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return CONNECT_TIMEOUT; } +#line 98 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return CONFIGURE_FILE; } YY_BREAK case 12: YY_RULE_SETUP -#line 98 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return DISTRIBUTION; } +#line 99 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return CONNECT_TIMEOUT; } YY_BREAK case 13: YY_RULE_SETUP -#line 99 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return HASH_WITH_NAMESPACE; } +#line 100 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return DISTRIBUTION; } YY_BREAK case 14: YY_RULE_SETUP -#line 100 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return HASH; } +#line 101 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return HASH_WITH_NAMESPACE; } YY_BREAK case 15: YY_RULE_SETUP -#line 101 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_BYTES_WATERMARK; } +#line 102 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return HASH; } YY_BREAK case 16: YY_RULE_SETUP -#line 102 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_KEY_PREFETCH; } +#line 103 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return IO_BYTES_WATERMARK; } YY_BREAK case 17: YY_RULE_SETUP -#line 103 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return IO_MSG_WATERMARK; } +#line 104 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return IO_KEY_PREFETCH; } YY_BREAK case 18: YY_RULE_SETUP -#line 104 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return NOREPLY; } +#line 105 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return IO_MSG_WATERMARK; } YY_BREAK case 19: YY_RULE_SETUP -#line 105 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } +#line 106 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return NOREPLY; } YY_BREAK case 20: YY_RULE_SETUP -#line 106 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return POLL_TIMEOUT; } +#line 107 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return NUMBER_OF_REPLICAS; } YY_BREAK case 21: YY_RULE_SETUP -#line 107 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } +#line 108 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return POLL_TIMEOUT; } YY_BREAK case 22: YY_RULE_SETUP -#line 108 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RCV_TIMEOUT; } +#line 109 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return RANDOMIZE_REPLICA_READ; } YY_BREAK case 23: YY_RULE_SETUP -#line 109 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return REMOVE_FAILED_SERVERS; } +#line 110 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return RCV_TIMEOUT; } YY_BREAK case 24: YY_RULE_SETUP -#line 110 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RETRY_TIMEOUT; } +#line 111 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return REMOVE_FAILED_SERVERS; } YY_BREAK case 25: YY_RULE_SETUP -#line 111 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SND_TIMEOUT; } +#line 112 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return RETRY_TIMEOUT; } YY_BREAK case 26: YY_RULE_SETUP -#line 112 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SOCKET_RECV_SIZE; } +#line 113 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return SND_TIMEOUT; } YY_BREAK case 27: YY_RULE_SETUP -#line 113 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SOCKET_SEND_SIZE; } +#line 114 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return SOCKET_RECV_SIZE; } YY_BREAK case 28: YY_RULE_SETUP -#line 114 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SORT_HOSTS; } +#line 115 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return SOCKET_SEND_SIZE; } YY_BREAK case 29: YY_RULE_SETUP -#line 115 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SUPPORT_CAS; } +#line 116 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return SORT_HOSTS; } YY_BREAK case 30: YY_RULE_SETUP -#line 116 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_KEEPALIVE; } +#line 117 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return SUPPORT_CAS; } YY_BREAK case 31: YY_RULE_SETUP -#line 117 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_KEEPIDLE; } +#line 118 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return _TCP_KEEPALIVE; } YY_BREAK case 32: YY_RULE_SETUP -#line 118 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return _TCP_NODELAY; } +#line 119 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return _TCP_KEEPIDLE; } YY_BREAK case 33: YY_RULE_SETUP -#line 119 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return USE_UDP; } +#line 120 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return _TCP_NODELAY; } YY_BREAK case 34: YY_RULE_SETUP -#line 120 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return USER_DATA; } +#line 121 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return USE_UDP; } YY_BREAK case 35: YY_RULE_SETUP -#line 121 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return VERIFY_KEY; } +#line 122 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return USER_DATA; } YY_BREAK case 36: YY_RULE_SETUP #line 123 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return POOL_MIN; } +{ yyextra->begin= yytext; return VERIFY_KEY; } YY_BREAK case 37: YY_RULE_SETUP -#line 124 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return POOL_MAX; } +#line 125 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return POOL_MIN; } YY_BREAK case 38: YY_RULE_SETUP #line 126 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return NAMESPACE; } +{ yyextra->begin= yytext; return POOL_MAX; } YY_BREAK case 39: YY_RULE_SETUP #line 128 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return INCLUDE; } +{ yyextra->begin= yytext; return NAMESPACE; } YY_BREAK case 40: YY_RULE_SETUP -#line 129 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return RESET; } +#line 130 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return INCLUDE; } YY_BREAK case 41: YY_RULE_SETUP -#line 130 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return PARSER_DEBUG; } +#line 131 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return RESET; } YY_BREAK case 42: YY_RULE_SETUP -#line 131 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return SERVERS; } +#line 132 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return PARSER_DEBUG; } YY_BREAK case 43: YY_RULE_SETUP -#line 132 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return END; } +#line 133 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return SERVERS; } YY_BREAK case 44: YY_RULE_SETUP -#line 133 "libmemcached/options/scanner.l" -{ yyextra->begin= yytext; return ERROR; } +#line 134 "libmemcached/options/scanner.l" +{ yyextra->begin= yytext; return END; } YY_BREAK case 45: YY_RULE_SETUP #line 135 "libmemcached/options/scanner.l" -{ return TRUE; } +{ yyextra->begin= yytext; return ERROR; } YY_BREAK case 46: YY_RULE_SETUP -#line 136 "libmemcached/options/scanner.l" -{ return FALSE; } +#line 137 "libmemcached/options/scanner.l" +{ return TRUE; } YY_BREAK case 47: YY_RULE_SETUP -#line 139 "libmemcached/options/scanner.l" +#line 138 "libmemcached/options/scanner.l" +{ return FALSE; } + YY_BREAK +case 48: +YY_RULE_SETUP +#line 141 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return UNKNOWN_OPTION; } YY_BREAK -case 48: -YY_RULE_SETUP -#line 144 "libmemcached/options/scanner.l" -{ return CONSISTENT; } - YY_BREAK case 49: YY_RULE_SETUP -#line 145 "libmemcached/options/scanner.l" -{ return MODULA; } +#line 146 "libmemcached/options/scanner.l" +{ return CONSISTENT; } YY_BREAK case 50: YY_RULE_SETUP -#line 146 "libmemcached/options/scanner.l" -{ return RANDOM; } +#line 147 "libmemcached/options/scanner.l" +{ return MODULA; } YY_BREAK case 51: YY_RULE_SETUP #line 148 "libmemcached/options/scanner.l" -{ return MD5; } +{ return RANDOM; } YY_BREAK case 52: YY_RULE_SETUP -#line 149 "libmemcached/options/scanner.l" -{ return CRC; } +#line 150 "libmemcached/options/scanner.l" +{ return MD5; } YY_BREAK case 53: YY_RULE_SETUP -#line 150 "libmemcached/options/scanner.l" -{ return FNV1_64; } +#line 151 "libmemcached/options/scanner.l" +{ return CRC; } YY_BREAK case 54: YY_RULE_SETUP -#line 151 "libmemcached/options/scanner.l" -{ return FNV1A_64; } +#line 152 "libmemcached/options/scanner.l" +{ return FNV1_64; } YY_BREAK case 55: YY_RULE_SETUP -#line 152 "libmemcached/options/scanner.l" -{ return FNV1_32; } +#line 153 "libmemcached/options/scanner.l" +{ return FNV1A_64; } YY_BREAK case 56: YY_RULE_SETUP -#line 153 "libmemcached/options/scanner.l" -{ return FNV1A_32; } +#line 154 "libmemcached/options/scanner.l" +{ return FNV1_32; } YY_BREAK case 57: YY_RULE_SETUP -#line 154 "libmemcached/options/scanner.l" -{ return HSIEH; } +#line 155 "libmemcached/options/scanner.l" +{ return FNV1A_32; } YY_BREAK case 58: YY_RULE_SETUP -#line 155 "libmemcached/options/scanner.l" -{ return MURMUR; } +#line 156 "libmemcached/options/scanner.l" +{ return HSIEH; } YY_BREAK case 59: YY_RULE_SETUP -#line 156 "libmemcached/options/scanner.l" -{ return JENKINS; } +#line 157 "libmemcached/options/scanner.l" +{ return MURMUR; } YY_BREAK case 60: YY_RULE_SETUP #line 158 "libmemcached/options/scanner.l" +{ return JENKINS; } + YY_BREAK +case 61: +YY_RULE_SETUP +#line 160 "libmemcached/options/scanner.l" { yylval->server.port= MEMCACHED_DEFAULT_PORT; yylval->server.weight= 1; @@ -1876,9 +1881,9 @@ YY_RULE_SETUP return IPADDRESS; } YY_BREAK -case 61: +case 62: YY_RULE_SETUP -#line 167 "libmemcached/options/scanner.l" +#line 169 "libmemcached/options/scanner.l" { if (yyextra->is_server()) { @@ -1897,29 +1902,29 @@ YY_RULE_SETUP return STRING; } YY_BREAK -case 62: +case 63: YY_RULE_SETUP -#line 185 "libmemcached/options/scanner.l" +#line 187 "libmemcached/options/scanner.l" { yylval->string.c_str = yytext; yylval->string.size = yyleng; return QUOTED_STRING; } YY_BREAK -case 63: +case 64: YY_RULE_SETUP -#line 191 "libmemcached/options/scanner.l" +#line 193 "libmemcached/options/scanner.l" { yyextra->begin= yytext; return UNKNOWN; } YY_BREAK -case 64: +case 65: YY_RULE_SETUP -#line 196 "libmemcached/options/scanner.l" +#line 198 "libmemcached/options/scanner.l" ECHO; YY_BREAK -#line 1923 "libmemcached/options/scanner.cc" +#line 1928 "libmemcached/options/scanner.cc" case YY_STATE_EOF(INITIAL): yyterminate(); @@ -2235,7 +2240,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 >= 514 ) + if ( yy_current_state >= 515 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -2269,11 +2274,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 >= 514 ) + if ( yy_current_state >= 515 ) 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 == 513); + yy_is_jam = (yy_current_state == 514); return yy_is_jam ? 0 : yy_current_state; } @@ -3185,7 +3190,7 @@ void config_free (void * ptr , yyscan_t yyscanner) /* %ok-for-header */ -#line 196 "libmemcached/options/scanner.l" +#line 198 "libmemcached/options/scanner.l" diff --git a/libmemcached/options/scanner.h b/libmemcached/options/scanner.h index 3e7b5aee..44d45934 100644 --- a/libmemcached/options/scanner.h +++ b/libmemcached/options/scanner.h @@ -471,7 +471,7 @@ extern int config_lex \ #undef YY_DECL #endif -#line 196 "libmemcached/options/scanner.l" +#line 198 "libmemcached/options/scanner.l" #line 478 "libmemcached/options/scanner.h" diff --git a/libmemcached/options/scanner.l b/libmemcached/options/scanner.l index dd6a9e00..80f1c8d8 100644 --- a/libmemcached/options/scanner.l +++ b/libmemcached/options/scanner.l @@ -91,6 +91,8 @@ "--SERVER=" { yyextra->begin= yytext; yyextra->set_server(); return SERVER; } +"--SOCKET=" { yyextra->begin= yytext; return SOCKET; } + "--BINARY-PROTOCOL" { yyextra->begin= yytext; return BINARY_PROTOCOL; } "--BUFFER-REQUESTS" { yyextra->begin= yytext; return BUFFER_REQUESTS; } "--CONFIGURE-FILE=" { yyextra->begin= yytext; return CONFIGURE_FILE; } diff --git a/tests/mem_functions.cc b/tests/mem_functions.cc index 4182eee9..da132940 100644 --- a/tests/mem_functions.cc +++ b/tests/mem_functions.cc @@ -1136,30 +1136,28 @@ static test_return_t get_test3(memcached_st *memc) static test_return_t get_test4(memcached_st *memc) { - memcached_return_t rc; const char *key= "foo"; - char *value; size_t value_length= 8191; - char *string; - size_t string_length; - uint32_t flags; - uint32_t x; - value = (char*)malloc(value_length); + char *value= (char*)malloc(value_length); test_true(value); - for (x= 0; x < value_length; x++) + for (uint32_t x= 0; x < value_length; x++) + { value[x] = (char) (x % 127); + } - rc= memcached_set(memc, key, strlen(key), - value, value_length, - (time_t)0, (uint32_t)0); - test_true(rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED); + memcached_return_t rc= memcached_set(memc, key, strlen(key), + value, value_length, + (time_t)0, (uint32_t)0); + test_true(rc == MEMCACHED_SUCCESS or rc == MEMCACHED_BUFFERED); - for (x= 0; x < 10; x++) + for (uint32_t x= 0; x < 10; x++) { - string= memcached_get(memc, key, strlen(key), - &string_length, &flags, &rc); + uint32_t flags; + size_t string_length; + char *string= memcached_get(memc, key, strlen(key), + &string_length, &flags, &rc); test_compare(MEMCACHED_SUCCESS, rc); test_true(string); @@ -6472,6 +6470,7 @@ test_st parser_tests[] ={ {"bad server strings", 0, (test_callback_fn*)servers_bad_test }, {"server with weights", 0, (test_callback_fn*)server_with_weight_test }, {"parsing servername, port, and weight", 0, (test_callback_fn*)test_hostname_port_weight }, + {"--socket=", 0, (test_callback_fn*)test_parse_socket }, {0, 0, (test_callback_fn*)0} }; diff --git a/tests/parser.cc b/tests/parser.cc index 31bcf9b0..bfe458df 100644 --- a/tests/parser.cc +++ b/tests/parser.cc @@ -235,24 +235,20 @@ scanner_variable_t hash_strings[]= { }; -static test_return_t _test_option(scanner_variable_t *scanner, bool test_true= true) +static test_return_t _test_option(scanner_variable_t *scanner, bool test_true_opt= true) { - (void)test_true; - for (scanner_variable_t *ptr= scanner; ptr->type != NIL; ptr++) { - memcached_st *memc; - memc= memcached(ptr->option.c_str, ptr->option.size); - if (test_true) + memcached_st *memc= memcached(ptr->option.c_str, ptr->option.size); + if (test_true_opt) { + char buffer[2048]; if (not memc) { - char buffer[2048]; - memcached_return_t rc= libmemcached_check_configuration(ptr->option.c_str, ptr->option.size, buffer, sizeof(buffer)); - std::cerr << "About error for " << memcached_strerror(NULL, rc) << " : " << buffer << std::endl; + libmemcached_check_configuration(ptr->option.c_str, ptr->option.size, buffer, sizeof(buffer)); } - test_true(memc); + test_true_got(memc, buffer); if (ptr->check_func) { @@ -547,6 +543,38 @@ test_return_t test_hostname_port_weight(memcached_st *) return TEST_SUCCESS; } +static memcached_return_t dump_socket_information(const memcached_st *, + const memcached_server_st *instance, + void *context) +{ + if (not strcmp(memcached_server_name(instance), static_cast(context))) + { + std::cerr << std::endl << __FILE__ << ":" << __LINE__ << " " << memcached_server_name(instance) << " != " << static_cast(context) << std::endl; + return MEMCACHED_FAILURE; + } + + return MEMCACHED_SUCCESS; +} + +test_return_t test_parse_socket(memcached_st *) +{ + char buffer[BUFSIZ]; + + test_compare_got(MEMCACHED_SUCCESS, + libmemcached_check_configuration(test_literal_param("--socket=\"/tmp/foo\""), buffer, sizeof(buffer)), + buffer); + + memcached_st *memc= memcached(test_literal_param("--socket=\"/tmp/foo\"")); + test_true(memc); + + memcached_server_fn callbacks[]= { dump_socket_information }; + test_true(memcached_success(memcached_server_cursor(memc, callbacks, (void*)("/tmp/foo"), 1))); + + memcached_free(memc); + + return TEST_SUCCESS; +} + /* By setting the timeout value to zero, we force poll() to return immediatly. */ diff --git a/tests/parser.h b/tests/parser.h index dac1a691..11b5368f 100644 --- a/tests/parser.h +++ b/tests/parser.h @@ -104,6 +104,9 @@ test_return_t regression_bug_71231153_connect(memcached_st *); LIBTEST_INTERNAL_API test_return_t regression_bug_71231153_poll(memcached_st *); +LIBTEST_INTERNAL_API +test_return_t test_parse_socket(memcached_st *); + #ifdef __cplusplus } #endif