#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-fpermissive"
-#include <iostream>
-
#include <libmemcached/options/context.h>
#include <libmemcached/options/parser.h>
#include <libmemcached/options/string.h>
#include <libmemcached/options/symbol.h>
#define YY_EXTRA_TYPE Context*
-#define YY_USER_ACTION yylloc->first_line = yylineno;
}
%}
+%option 8bit
%option bison-bridge
-%option bison-locations
%option case-insensitive
%option debug
%option nounput
%option noyywrap
-%option yylineno
%option outfile="libmemcached/options/scanner.cc" header-file="libmemcached/options/scanner.h"
%option perf-report
-%option prefix="libmemcached_"
+%option prefix="config_"
%option reentrant
%%
"--CONNECT_TIMEOUT" { yyextra->begin= yytext; return CONNECT_TIMEOUT; }
"--CONNECT-TIMEOUT" { yyextra->begin= yytext; return CONNECT_TIMEOUT; }
"--CORK" { yyextra->begin= yytext; return _CORK; }
-"--DISTRIBUTION" { yyextra->begin= yytext; return DISTRIBUTION; }
-"--HASH" { yyextra->begin= yytext; return HASH; }
+"--DISTRIBUTION=" { yyextra->begin= yytext; return DISTRIBUTION; }
+"--HASH=" { yyextra->begin= yytext; return HASH; }
"--HASH_WITH_PREFIX_KEY" { yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; }
"--HASH-WITH-PREFIX_KEY" { yyextra->begin= yytext; return HASH_WITH_PREFIX_KEY; }
"--IO_BYTES_WATERMARK" { yyextra->begin= yytext; return IO_BYTES_WATERMARK; }
"--IO_MSG_WATERMARK" { yyextra->begin= yytext; return IO_MSG_WATERMARK; }
"--IO-MSG-WATERMARK" { yyextra->begin= yytext; return IO_MSG_WATERMARK; }
"--KETAMA" { yyextra->begin= yytext; return KETAMA; }
-"--KETAMA_HASH" { yyextra->begin= yytext; return KETAMA_HASH; }
-"--KETAMA-HASH" { yyextra->begin= yytext; return KETAMA_HASH; }
+"--KETAMA_HASH=" { yyextra->begin= yytext; return KETAMA_HASH; }
+"--KETAMA-HASH=" { yyextra->begin= yytext; return KETAMA_HASH; }
"--KETAMA_WEIGHTED" { yyextra->begin= yytext; return KETAMA_WEIGHTED; }
"--KETAMA-WEIGHTED" { yyextra->begin= yytext; return KETAMA_WEIGHTED; }
"--NOREPLY" { yyextra->begin= yytext; return NOREPLY; }
"--USE_UDP" { yyextra->begin= yytext; return USE_UDP; }
"--USE-UDP" { yyextra->begin= yytext; return USE_UDP; }
-"--PREFIX-KEY" { yyextra->begin= yytext; return PREFIX_KEY; }
-"--PREFIX_KEY" { yyextra->begin= yytext; return PREFIX_KEY; }
+"--PREFIX-KEY=" { yyextra->begin= yytext; return PREFIX_KEY; }
+"--PREFIX_KEY=" { yyextra->begin= yytext; return PREFIX_KEY; }
INCLUDE { yyextra->begin= yytext; return INCLUDE; }
RESET { yyextra->begin= yytext; return RESET; }
-DEBUG { yyextra->begin= yytext; return DEBUG; }
+DEBUG { yyextra->begin= yytext; return PARSER_DEBUG; }
SERVERS { yyextra->begin= yytext; return SERVERS; }
END { yyextra->begin= yytext; return END; }
+ERROR { yyextra->begin= yytext; return ERROR; }
TRUE { return TRUE; }
FALSE { return FALSE; }
return HOSTNAME_WITH_PORT;
}
-[[:alnum:]]+"."[[:alpha:].]+ {
+[[:alnum:]]+"."[[:alpha:].]+[[:alnum:]] {
yylval->string.c_str = yytext;
yylval->string.length = yyleng;
return HOSTNAME;
{
yylex_destroy(scanner);
}
+