X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Foptions%2Fscanner.l;h=cc00618d786a059e73da65c16e69711c4f860fac;hb=609d07c5a051c301ce6595747c2f64d3819554f5;hp=b501ffe562989605f09e1616645f2c5b562589c3;hpb=6e9731947eace4be83d553a242a44b36b3adcf22;p=awesomized%2Flibmemcached diff --git a/libmemcached/options/scanner.l b/libmemcached/options/scanner.l index b501ffe5..cc00618d 100644 --- a/libmemcached/options/scanner.l +++ b/libmemcached/options/scanner.l @@ -20,15 +20,15 @@ %top{ -#pragma GCC diagnostic ignored "-Wold-style-cast" -#pragma GCC diagnostic ignored "-Wsign-compare" -#pragma GCC diagnostic ignored "-Wunused-parameter" - +#include #include #include -#include #include +#pragma GCC diagnostic ignored "-Wold-style-cast" +#pragma GCC diagnostic ignored "-Wsign-compare" +#pragma GCC diagnostic ignored "-Wunused-parameter" + #define YY_EXTRA_TYPE Context* } @@ -76,11 +76,11 @@ =|,|[ ] { return yytext[0];} -[[:digit:]]+ { yylval->number = atoi(yytext); return (NUMBER); } +[[:digit:]]+ { yylval->number= atoi(yytext); return (NUMBER); } -:[[:digit:]]{1,5} { yylval->server.port = atoi(yytext +1); return PORT; } +:[[:digit:]]{1,5} { yylval->number= atoi(yytext +1); return PORT; } -"/?"[[:digit:]]{1,5} { yylval->server.weight = atoi(yytext +2); return WEIGHT_START; } +"/?"[[:digit:]]{1,5} { yylval->number= atoi(yytext +2); return WEIGHT_START; } [\t\r\n] ; /* skip whitespace */ @@ -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; } @@ -160,7 +162,7 @@ JENKINS { return JENKINS; } yylval->server.weight= 1; yylval->server.c_str= yyextra->set_hostname(yytext, yyleng); if (yylval->server.c_str) - yylval->server.length= yyleng; + yylval->server.size= yyleng; return IPADDRESS; } @@ -171,20 +173,21 @@ JENKINS { return JENKINS; } yylval->server.weight= 1; yylval->server.c_str= yyextra->set_hostname(yytext, yyleng); if (yylval->server.c_str) - yylval->server.length= yyleng; + yylval->server.size= yyleng; return HOSTNAME; } yylval->string.c_str = yytext; - yylval->string.length = yyleng; + yylval->string.size = yyleng; return STRING; } -(\".*\") { - yylval->string.c_str = yytext; - yylval->string.length = yyleng; +L?\"(\\.|[^\\"])*\" { + yyget_text(yyscanner)[yyleng -1]= 0; + yylval->string.c_str= yytext +1; + yylval->string.size= yyleng -2; return QUOTED_STRING; }