X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fcsl%2Fparser.yy;h=87fe4f3b4f9b706cbf429f166fdafd428562b1fd;hb=4a35931d46dadb5d664389b0fbe1498c5567e15f;hp=3ee3940f3e9809660775e46ac9323e2bb3a52fef;hpb=b0e10bd4ddc74e7018d2370283f3ae6316228cc7;p=awesomized%2Flibmemcached diff --git a/libmemcached/csl/parser.yy b/libmemcached/csl/parser.yy index 3ee3940f..87fe4f3b 100644 --- a/libmemcached/csl/parser.yy +++ b/libmemcached/csl/parser.yy @@ -42,17 +42,16 @@ class Context; %} -%error-verbose +%define parse.error verbose +%define api.pure +%define api.prefix {config_} +%define api.value.type {union CONFIG_STYPE} %debug %defines %expect 0 -%output "libmemcached/csl/parser.cc" -%defines "libmemcached/csl/parser.h" %lex-param { yyscan_t *scanner } -%name-prefix="config_" %parse-param { class Context *context } %parse-param { yyscan_t *scanner } -%pure-parser %require "2.5" %start begin %verbose @@ -66,33 +65,34 @@ class Context; #include #ifndef __INTEL_COMPILER -#pragma GCC diagnostic ignored "-Wold-style-cast" +# pragma GCC diagnostic ignored "-Wold-style-cast" #endif #ifndef __INTEL_COMPILER -#ifndef __clang__ -#pragma GCC diagnostic ignored "-Wlogical-op" -#endif +# ifndef __clang__ +# pragma GCC diagnostic ignored "-Wlogical-op" +# pragma GCC diagnostic ignored "-Wunsafe-loop-optimizations" +# endif #endif -int conf_lex(YYSTYPE* lvalp, void* scanner); +int config_lex(YYSTYPE* lvalp, void* scanner); #define select_yychar(__context) yychar == UNKNOWN ? ( (__context)->previous_token == END ? UNKNOWN : (__context)->previous_token ) : yychar #define stryytname(__yytokentype) ((__yytokentype) < YYNTOKENS ) ? yytname[(__yytokentype)] : "" -#define parser_abort(__context, __error_message) do { (__context)->abort((__error_message), yytokentype(select_yychar(__context)), stryytname(YYTRANSLATE(select_yychar(__context)))); YYABORT; } while (0) +#define parser_abort(__context, __error_message) do { (__context)->abort((__error_message), config_tokentype(select_yychar(__context)), stryytname(YYTRANSLATE(select_yychar(__context)))); YYABORT; } while (0) // This is bison calling error. inline void __config_error(Context *context, yyscan_t *scanner, const char *error, int last_token, const char *last_token_str) { if (not context->end()) { - context->error(error, yytokentype(last_token), last_token_str); + context->error(error, config_tokentype(last_token), last_token_str); } else { - context->error(error, yytokentype(last_token), last_token_str); + context->error(error, config_tokentype(last_token), last_token_str); } }