X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fcsl%2Fscanner.l;h=5a3419069faf4aa04e663ae64a808b07e821c00f;hb=458694809f0633be65695c2e845e2333652e4b91;hp=b4a6b480acbcd073bebb821b09fedb681cc3ab30;hpb=a8c94e3cfba54f0d1e2689f77b4948d84d4da27b;p=m6w6%2Flibmemcached diff --git a/libmemcached/csl/scanner.l b/libmemcached/csl/scanner.l index b4a6b480..5a341906 100644 --- a/libmemcached/csl/scanner.l +++ b/libmemcached/csl/scanner.l @@ -1,23 +1,40 @@ /* vim:expandtab:shiftwidth=2:tabstop=2:smarttab: * - * Configure Scripting Language + * Libmemcached library + * + * Copyright (C) 2012 Data Differential, http://datadifferential.com/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * + * * The names of its contributors may not be used to endorse or + * promote products derived from this software without specific prior + * written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * Copyright (C) 2011 DataDifferental, http://datadifferential.com - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . */ + %top{ #include @@ -29,9 +46,20 @@ #pragma GCC diagnostic ignored "-Wold-style-cast" #pragma GCC diagnostic ignored "-Wsign-compare" #pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wmissing-declarations" +#pragma GCC diagnostic ignored "-Wunused-result" +#pragma GCC diagnostic ignored "-Wmissing-noreturn" +#endif + +#ifdef __clang__ +#pragma GCC diagnostic ignored "-Wshorten-64-to-32" #endif -#define YY_NO_INPUT +#ifndef __INTEL_COMPILER +#ifndef __clang__ +#pragma GCC diagnostic ignored "-Wlogical-op" +#endif +#endif #define YY_EXTRA_TYPE Context* @@ -59,6 +87,10 @@ } \ } +#define YY_FATAL_ERROR(msg) \ +{ \ +} + #define YY_INPUT(buffer, result, max_size) get_lex_chars(buffer, result, max_size, PARAM) @@ -66,14 +98,16 @@ %option 8bit %option bison-bridge +%option never-interactive %option case-insensitive -%option debug +%option noinput %option nounput %option noyywrap %option outfile="libmemcached/csl/scanner.cc" header-file="libmemcached/csl/scanner.h" %option perf-report %option prefix="config_" %option reentrant +%option warn %% @@ -131,6 +165,8 @@ "--NAMESPACE=" { yyextra->begin= yytext; return yyextra->previous_token= NAMESPACE; } +"--FETCH-VERSION" { yyextra->begin= yytext; return yyextra->previous_token= FETCH_VERSION; } + INCLUDE { yyextra->begin= yytext; return yyextra->previous_token= INCLUDE; } RESET { yyextra->begin= yytext; return yyextra->previous_token= RESET; } DEBUG { yyextra->begin= yytext; return yyextra->previous_token= PARSER_DEBUG; } @@ -162,36 +198,26 @@ MURMUR { return MURMUR; } JENKINS { return JENKINS; } (([[:digit:]]{1,3}"."){3}([[:digit:]]{1,3})) { - yylval->server.port= MEMCACHED_DEFAULT_PORT; - yylval->server.weight= 1; - yylval->server.c_str= yyextra->set_hostname(yytext, yyleng); - if (yylval->server.c_str) - yylval->server.size= yyleng; + yyextra->hostname(yytext, yyleng, yylval->server); return IPADDRESS; } [[:alnum:]]["."[:alnum:]_-]+[[:alnum:]] { if (yyextra->is_server()) { - yylval->server.port= MEMCACHED_DEFAULT_PORT; - yylval->server.weight= 1; - yylval->server.c_str= yyextra->set_hostname(yytext, yyleng); - if (yylval->server.c_str) - yylval->server.size= yyleng; + yyextra->hostname(yytext, yyleng, yylval->server); return HOSTNAME; } - yylval->string.c_str = yytext; - yylval->string.size = yyleng; + yyextra->string_buffer(yytext, yyleng, yylval->string); return STRING; } L?\"(\\.|[^\\"])*\" { yyget_text(yyscanner)[yyleng -1]= 0; - yylval->string.c_str= yytext +1; - yylval->string.size= yyleng -2; + yyextra->string_buffer(yytext +1, yyleng -2, yylval->string); return QUOTED_STRING; } @@ -210,6 +236,7 @@ void Context::init_scanner() void Context::destroy_scanner() { + (void)yy_fatal_error; // Removes warning about unused yy_fatal_error() yylex_destroy(scanner); }