Browse Source

[master] regen flex/bison

Francis Dupont 7 years ago
parent
commit
19bf3e2810

+ 79 - 74
src/bin/agent/agent_lexer.cc

@@ -1319,12 +1319,12 @@ int yy_flex_debug = 1;
 
 static const flex_int16_t yy_rule_linenum[56] =
     {   0,
-      129,  131,  133,  138,  139,  144,  145,  146,  158,  161,
-      166,  173,  182,  191,  200,  209,  218,  227,  236,  245,
-      254,  263,  272,  281,  290,  299,  308,  317,  326,  335,
-      344,  353,  362,  371,  380,  389,  398,  407,  505,  510,
-      515,  520,  521,  522,  523,  524,  525,  527,  545,  558,
-      563,  567,  569,  571,  573
+      133,  135,  137,  142,  143,  148,  149,  150,  162,  165,
+      170,  177,  186,  195,  204,  213,  222,  231,  240,  249,
+      258,  267,  276,  285,  294,  303,  312,  321,  330,  339,
+      348,  357,  366,  375,  384,  393,  402,  411,  509,  514,
+      519,  524,  525,  526,  527,  528,  529,  531,  549,  562,
+      567,  571,  573,  575,  577
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1342,6 +1342,10 @@ char *yytext;
    License, v. 2.0. If a copy of the MPL was not distributed with this
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #line 8 "agent_lexer.ll"
+
+/* Generated files do not make clang static analyser so happy */
+#ifndef __clang_analyzer__
+
 #include <cerrno>
 #include <climits>
 #include <cstdlib>
@@ -1375,7 +1379,7 @@ using isc::agent::AgentParser;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::agent::ParserContext::fatal(msg)
-#line 1378 "agent_lexer.cc"
+#line 1382 "agent_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -1396,13 +1400,13 @@ using isc::agent::AgentParser;
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
 /* for errors */
-#line 92 "agent_lexer.ll"
+#line 96 "agent_lexer.ll"
 /* This code run each time a pattern is matched. It updates the location
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1404 "agent_lexer.cc"
-#line 1405 "agent_lexer.cc"
+#line 1408 "agent_lexer.cc"
+#line 1409 "agent_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -1684,11 +1688,11 @@ YY_DECL
 
 	{
 /* %% [7.0] user's declarations go here */
-#line 98 "agent_lexer.ll"
+#line 102 "agent_lexer.ll"
 
 
 
-#line 102 "agent_lexer.ll"
+#line 106 "agent_lexer.ll"
     /* This part of the code is copied over to the verbatim to the top
        of the generated yylex function. Explanation:
        http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
@@ -1716,7 +1720,7 @@ YY_DECL
     }
 
 
-#line 1719 "agent_lexer.cc"
+#line 1723 "agent_lexer.cc"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -1794,17 +1798,17 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 129 "agent_lexer.ll"
+#line 133 "agent_lexer.ll"
 ;
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 131 "agent_lexer.ll"
+#line 135 "agent_lexer.ll"
 ;
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 133 "agent_lexer.ll"
+#line 137 "agent_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -1812,33 +1816,33 @@ YY_RULE_SETUP
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 138 "agent_lexer.ll"
+#line 142 "agent_lexer.ll"
 BEGIN(INITIAL);
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 139 "agent_lexer.ll"
+#line 143 "agent_lexer.ll"
 ;
 	YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 140 "agent_lexer.ll"
+#line 144 "agent_lexer.ll"
 {
     isc_throw(ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 144 "agent_lexer.ll"
+#line 148 "agent_lexer.ll"
 BEGIN(DIR_ENTER);
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 145 "agent_lexer.ll"
+#line 149 "agent_lexer.ll"
 BEGIN(DIR_INCLUDE);
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 146 "agent_lexer.ll"
+#line 150 "agent_lexer.ll"
 {
     /* Include directive. */
 
@@ -1852,19 +1856,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 155 "agent_lexer.ll"
+#line 159 "agent_lexer.ll"
 {
     isc_throw(ParseError, "Directive not closed.");
 }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 158 "agent_lexer.ll"
+#line 162 "agent_lexer.ll"
 BEGIN(INITIAL);
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 161 "agent_lexer.ll"
+#line 165 "agent_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -1873,7 +1877,7 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 166 "agent_lexer.ll"
+#line 170 "agent_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
@@ -1882,7 +1886,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 173 "agent_lexer.ll"
+#line 177 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
@@ -1894,7 +1898,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 182 "agent_lexer.ll"
+#line 186 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
@@ -1906,7 +1910,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 191 "agent_lexer.ll"
+#line 195 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
@@ -1918,7 +1922,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 200 "agent_lexer.ll"
+#line 204 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
@@ -1930,7 +1934,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 209 "agent_lexer.ll"
+#line 213 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
@@ -1942,7 +1946,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 218 "agent_lexer.ll"
+#line 222 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
@@ -1954,7 +1958,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 227 "agent_lexer.ll"
+#line 231 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
@@ -1966,7 +1970,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 236 "agent_lexer.ll"
+#line 240 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::SERVER:
@@ -1978,7 +1982,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 245 "agent_lexer.ll"
+#line 249 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::SERVER:
@@ -1990,7 +1994,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 254 "agent_lexer.ll"
+#line 258 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::SOCKET_TYPE:
@@ -2002,7 +2006,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 263 "agent_lexer.ll"
+#line 267 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
@@ -2014,7 +2018,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 272 "agent_lexer.ll"
+#line 276 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::HOOKS_LIBRARIES:
@@ -2026,7 +2030,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 281 "agent_lexer.ll"
+#line 285 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::HOOKS_LIBRARIES:
@@ -2038,7 +2042,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 290 "agent_lexer.ll"
+#line 294 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
@@ -2050,7 +2054,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 299 "agent_lexer.ll"
+#line 303 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::LOGGING:
@@ -2062,7 +2066,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 308 "agent_lexer.ll"
+#line 312 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
@@ -2074,7 +2078,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 317 "agent_lexer.ll"
+#line 321 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
@@ -2086,7 +2090,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 326 "agent_lexer.ll"
+#line 330 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
@@ -2098,7 +2102,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 335 "agent_lexer.ll"
+#line 339 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
@@ -2110,7 +2114,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 344 "agent_lexer.ll"
+#line 348 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
@@ -2122,7 +2126,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 353 "agent_lexer.ll"
+#line 357 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
@@ -2134,7 +2138,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 362 "agent_lexer.ll"
+#line 366 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
@@ -2146,7 +2150,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 371 "agent_lexer.ll"
+#line 375 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
@@ -2158,7 +2162,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 380 "agent_lexer.ll"
+#line 384 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
@@ -2170,7 +2174,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 389 "agent_lexer.ll"
+#line 393 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
@@ -2182,7 +2186,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 398 "agent_lexer.ll"
+#line 402 "agent_lexer.ll"
 {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
@@ -2194,7 +2198,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 407 "agent_lexer.ll"
+#line 411 "agent_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -2296,7 +2300,7 @@ YY_RULE_SETUP
 case 39:
 /* rule 39 can match eol */
 YY_RULE_SETUP
-#line 505 "agent_lexer.ll"
+#line 509 "agent_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -2305,7 +2309,7 @@ YY_RULE_SETUP
 case 40:
 /* rule 40 can match eol */
 YY_RULE_SETUP
-#line 510 "agent_lexer.ll"
+#line 514 "agent_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -2313,7 +2317,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 515 "agent_lexer.ll"
+#line 519 "agent_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -2321,37 +2325,37 @@ YY_RULE_SETUP
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 520 "agent_lexer.ll"
+#line 524 "agent_lexer.ll"
 { return AgentParser::make_LSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 521 "agent_lexer.ll"
+#line 525 "agent_lexer.ll"
 { return AgentParser::make_RSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 522 "agent_lexer.ll"
+#line 526 "agent_lexer.ll"
 { return AgentParser::make_LCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 523 "agent_lexer.ll"
+#line 527 "agent_lexer.ll"
 { return AgentParser::make_RCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 524 "agent_lexer.ll"
+#line 528 "agent_lexer.ll"
 { return AgentParser::make_COMMA(driver.loc_); }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 525 "agent_lexer.ll"
+#line 529 "agent_lexer.ll"
 { return AgentParser::make_COLON(driver.loc_); }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 527 "agent_lexer.ll"
+#line 531 "agent_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -2372,7 +2376,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 545 "agent_lexer.ll"
+#line 549 "agent_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -2388,7 +2392,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 558 "agent_lexer.ll"
+#line 562 "agent_lexer.ll"
 {
     string tmp(yytext);
     return AgentParser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -2396,33 +2400,33 @@ YY_RULE_SETUP
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 563 "agent_lexer.ll"
+#line 567 "agent_lexer.ll"
 {
    return AgentParser::make_NULL_TYPE(driver.loc_);
 }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 567 "agent_lexer.ll"
+#line 571 "agent_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 569 "agent_lexer.ll"
+#line 573 "agent_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 571 "agent_lexer.ll"
+#line 575 "agent_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 573 "agent_lexer.ll"
+#line 577 "agent_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 575 "agent_lexer.ll"
+#line 579 "agent_lexer.ll"
 {
     if (driver.states_.empty()) {
         return AgentParser::make_END(driver.loc_);
@@ -2448,10 +2452,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 598 "agent_lexer.ll"
+#line 602 "agent_lexer.ll"
 ECHO;
 	YY_BREAK
-#line 2454 "agent_lexer.cc"
+#line 2458 "agent_lexer.cc"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -3556,7 +3560,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 598 "agent_lexer.ll"
+#line 602 "agent_lexer.ll"
 
 
 using namespace isc::dhcp;
@@ -3658,4 +3662,5 @@ class Dummy {
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 }
+#endif /* !__clang_analyzer__ */
 

+ 1 - 1
src/bin/agent/agent_parser.cc

@@ -490,7 +490,7 @@ namespace isc { namespace agent {
     /// The return value of parse ().
     int yyresult;
 
-    // FIXME: This should be completely indented.  It is not yet to
+    // FIXME: This shoud be completely indented.  It is not yet to
     // avoid gratuitous conflicts when merging into the master branch.
     try
       {

+ 1 - 1
src/bin/agent/agent_parser.h

@@ -218,7 +218,7 @@ namespace isc { namespace agent {
     /// Both variants must be built beforehand, because swapping the actual
     /// data requires reading it (with as()), and this is not possible on
     /// unconstructed variants: it would require some dynamic testing, which
-    /// should not be the variant's responsibility.
+    /// should not be the variant's responsability.
     /// Swapping between built and (possibly) non-built is done with
     /// variant::move ().
     template <typename T>

+ 1 - 1
src/bin/agent/location.hh

@@ -1,4 +1,4 @@
-// Generated 201707141119
+// Generated 201710081556
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Locations for Bison parsers in C++

+ 1 - 1
src/bin/agent/position.hh

@@ -1,4 +1,4 @@
-// Generated 201707141119
+// Generated 201710081556
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Positions for Bison parsers in C++

+ 1 - 1
src/bin/agent/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201707141119
+// Generated 201710081556
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Stack handling for Bison parsers in C++

+ 86 - 81
src/bin/d2/d2_lexer.cc

@@ -1059,13 +1059,13 @@ int yy_flex_debug = 1;
 
 static const flex_int16_t yy_rule_linenum[62] =
     {   0,
-      129,  131,  133,  138,  139,  144,  145,  146,  158,  161,
-      166,  172,  181,  192,  203,  212,  221,  230,  240,  250,
-      260,  269,  278,  288,  298,  308,  319,  328,  338,  348,
-      359,  368,  377,  386,  395,  404,  413,  422,  435,  444,
-      453,  462,  471,  481,  579,  584,  589,  594,  595,  596,
-      597,  598,  599,  601,  619,  632,  637,  641,  643,  645,
-      647
+      133,  135,  137,  142,  143,  148,  149,  150,  162,  165,
+      170,  176,  185,  196,  207,  216,  225,  234,  244,  254,
+      264,  273,  282,  292,  302,  312,  323,  332,  342,  352,
+      363,  372,  381,  390,  399,  408,  417,  426,  439,  448,
+      457,  466,  475,  485,  583,  588,  593,  598,  599,  600,
+      601,  602,  603,  605,  623,  636,  641,  645,  647,  649,
+      651
     } ;
 
 /* The intent behind this definition is that it'll catch
@@ -1083,6 +1083,10 @@ char *yytext;
    License, v. 2.0. If a copy of the MPL was not distributed with this
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #line 8 "d2_lexer.ll"
+
+/* Generated files do not make clang static analyser so happy */
+#ifndef __clang_analyzer__
+
 #include <cerrno>
 #include <climits>
 #include <cstdlib>
@@ -1112,7 +1116,7 @@ unsigned int comment_start_line = 0;
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg)
-#line 1115 "d2_lexer.cc"
+#line 1119 "d2_lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -1133,13 +1137,13 @@ unsigned int comment_start_line = 0;
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
 /* for errors */
-#line 88 "d2_lexer.ll"
+#line 92 "d2_lexer.ll"
 /* This code run each time a pattern is matched. It updates the location
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1141 "d2_lexer.cc"
-#line 1142 "d2_lexer.cc"
+#line 1145 "d2_lexer.cc"
+#line 1146 "d2_lexer.cc"
 
 #define INITIAL 0
 #define COMMENT 1
@@ -1421,11 +1425,11 @@ YY_DECL
 
 	{
 /* %% [7.0] user's declarations go here */
-#line 94 "d2_lexer.ll"
+#line 98 "d2_lexer.ll"
 
 
 
-#line 98 "d2_lexer.ll"
+#line 102 "d2_lexer.ll"
     /* This part of the code is copied over to the verbatim to the top
        of the generated yylex function. Explanation:
        http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
@@ -1457,7 +1461,7 @@ YY_DECL
     }
 
 
-#line 1460 "d2_lexer.cc"
+#line 1464 "d2_lexer.cc"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -1535,17 +1539,17 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 129 "d2_lexer.ll"
+#line 133 "d2_lexer.ll"
 ;
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 131 "d2_lexer.ll"
+#line 135 "d2_lexer.ll"
 ;
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 133 "d2_lexer.ll"
+#line 137 "d2_lexer.ll"
 {
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
@@ -1553,33 +1557,33 @@ YY_RULE_SETUP
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 138 "d2_lexer.ll"
+#line 142 "d2_lexer.ll"
 BEGIN(INITIAL);
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 139 "d2_lexer.ll"
+#line 143 "d2_lexer.ll"
 ;
 	YY_BREAK
 case YY_STATE_EOF(COMMENT):
-#line 140 "d2_lexer.ll"
+#line 144 "d2_lexer.ll"
 {
     isc_throw(D2ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 144 "d2_lexer.ll"
+#line 148 "d2_lexer.ll"
 BEGIN(DIR_ENTER);
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 145 "d2_lexer.ll"
+#line 149 "d2_lexer.ll"
 BEGIN(DIR_INCLUDE);
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 146 "d2_lexer.ll"
+#line 150 "d2_lexer.ll"
 {
     /* Include directive. */
 
@@ -1593,19 +1597,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
-#line 155 "d2_lexer.ll"
+#line 159 "d2_lexer.ll"
 {
     isc_throw(D2ParseError, "Directive not closed.");
 }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 158 "d2_lexer.ll"
+#line 162 "d2_lexer.ll"
 BEGIN(INITIAL);
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 161 "d2_lexer.ll"
+#line 165 "d2_lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
@@ -1614,7 +1618,7 @@ YY_RULE_SETUP
 case 11:
 /* rule 11 can match eol */
 YY_RULE_SETUP
-#line 166 "d2_lexer.ll"
+#line 170 "d2_lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
@@ -1623,7 +1627,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 172 "d2_lexer.ll"
+#line 176 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
@@ -1635,7 +1639,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 181 "d2_lexer.ll"
+#line 185 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1649,7 +1653,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 192 "d2_lexer.ll"
+#line 196 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1663,7 +1667,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 203 "d2_lexer.ll"
+#line 207 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1675,7 +1679,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 212 "d2_lexer.ll"
+#line 216 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1687,7 +1691,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 221 "d2_lexer.ll"
+#line 225 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1699,7 +1703,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 230 "d2_lexer.ll"
+#line 234 "d2_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
@@ -1712,7 +1716,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 240 "d2_lexer.ll"
+#line 244 "d2_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
@@ -1725,7 +1729,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 250 "d2_lexer.ll"
+#line 254 "d2_lexer.ll"
 {
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_FORMAT) {
@@ -1738,7 +1742,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 260 "d2_lexer.ll"
+#line 264 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1750,7 +1754,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 269 "d2_lexer.ll"
+#line 273 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1762,7 +1766,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 278 "d2_lexer.ll"
+#line 282 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::FORWARD_DDNS:
@@ -1775,7 +1779,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 288 "d2_lexer.ll"
+#line 292 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
@@ -1788,7 +1792,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 298 "d2_lexer.ll"
+#line 302 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
@@ -1801,7 +1805,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 308 "d2_lexer.ll"
+#line 312 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DNS_SERVER:
@@ -1814,7 +1818,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 319 "d2_lexer.ll"
+#line 323 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1826,7 +1830,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 328 "d2_lexer.ll"
+#line 332 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -1839,7 +1843,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 338 "d2_lexer.ll"
+#line 342 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -1852,7 +1856,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 348 "d2_lexer.ll"
+#line 352 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -1865,7 +1869,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 359 "d2_lexer.ll"
+#line 363 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
@@ -1877,7 +1881,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 368 "d2_lexer.ll"
+#line 372 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGING:
@@ -1889,7 +1893,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 377 "d2_lexer.ll"
+#line 381 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1901,7 +1905,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 386 "d2_lexer.ll"
+#line 390 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1913,7 +1917,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 395 "d2_lexer.ll"
+#line 399 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1925,7 +1929,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 404 "d2_lexer.ll"
+#line 408 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1937,7 +1941,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 413 "d2_lexer.ll"
+#line 417 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1949,7 +1953,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 422 "d2_lexer.ll"
+#line 426 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1965,7 +1969,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 435 "d2_lexer.ll"
+#line 439 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1977,7 +1981,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 444 "d2_lexer.ll"
+#line 448 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1989,7 +1993,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 453 "d2_lexer.ll"
+#line 457 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
@@ -2001,7 +2005,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 462 "d2_lexer.ll"
+#line 466 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
@@ -2013,7 +2017,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 471 "d2_lexer.ll"
+#line 475 "d2_lexer.ll"
 {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
@@ -2025,7 +2029,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 481 "d2_lexer.ll"
+#line 485 "d2_lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -2127,7 +2131,7 @@ YY_RULE_SETUP
 case 45:
 /* rule 45 can match eol */
 YY_RULE_SETUP
-#line 579 "d2_lexer.ll"
+#line 583 "d2_lexer.ll"
 {
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -2136,7 +2140,7 @@ YY_RULE_SETUP
 case 46:
 /* rule 46 can match eol */
 YY_RULE_SETUP
-#line 584 "d2_lexer.ll"
+#line 588 "d2_lexer.ll"
 {
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -2144,7 +2148,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 589 "d2_lexer.ll"
+#line 593 "d2_lexer.ll"
 {
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -2152,37 +2156,37 @@ YY_RULE_SETUP
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 594 "d2_lexer.ll"
+#line 598 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 595 "d2_lexer.ll"
+#line 599 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 596 "d2_lexer.ll"
+#line 600 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 597 "d2_lexer.ll"
+#line 601 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 598 "d2_lexer.ll"
+#line 602 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_COMMA(driver.loc_); }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 599 "d2_lexer.ll"
+#line 603 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_COLON(driver.loc_); }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 601 "d2_lexer.ll"
+#line 605 "d2_lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(yytext);
@@ -2203,7 +2207,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 619 "d2_lexer.ll"
+#line 623 "d2_lexer.ll"
 {
     /* A floating point was found. */
     std::string tmp(yytext);
@@ -2219,7 +2223,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 632 "d2_lexer.ll"
+#line 636 "d2_lexer.ll"
 {
     string tmp(yytext);
     return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -2227,33 +2231,33 @@ YY_RULE_SETUP
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 637 "d2_lexer.ll"
+#line 641 "d2_lexer.ll"
 {
    return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_);
 }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 641 "d2_lexer.ll"
+#line 645 "d2_lexer.ll"
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 643 "d2_lexer.ll"
+#line 647 "d2_lexer.ll"
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 645 "d2_lexer.ll"
+#line 649 "d2_lexer.ll"
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 647 "d2_lexer.ll"
+#line 651 "d2_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 649 "d2_lexer.ll"
+#line 653 "d2_lexer.ll"
 {
     if (driver.states_.empty()) {
         return isc::d2::D2Parser::make_END(driver.loc_);
@@ -2279,10 +2283,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 672 "d2_lexer.ll"
+#line 676 "d2_lexer.ll"
 ECHO;
 	YY_BREAK
-#line 2285 "d2_lexer.cc"
+#line 2289 "d2_lexer.cc"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -3387,7 +3391,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 672 "d2_lexer.ll"
+#line 676 "d2_lexer.ll"
 
 
 using namespace isc::dhcp;
@@ -3489,4 +3493,5 @@ class Dummy {
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 }
+#endif /* !__clang_analyzer__ */
 

+ 1 - 1
src/bin/d2/d2_parser.cc

@@ -490,7 +490,7 @@ namespace isc { namespace d2 {
     /// The return value of parse ().
     int yyresult;
 
-    // FIXME: This should be completely indented.  It is not yet to
+    // FIXME: This shoud be completely indented.  It is not yet to
     // avoid gratuitous conflicts when merging into the master branch.
     try
       {

+ 1 - 1
src/bin/d2/d2_parser.h

@@ -219,7 +219,7 @@ namespace isc { namespace d2 {
     /// Both variants must be built beforehand, because swapping the actual
     /// data requires reading it (with as()), and this is not possible on
     /// unconstructed variants: it would require some dynamic testing, which
-    /// should not be the variant's responsibility.
+    /// should not be the variant's responsability.
     /// Swapping between built and (possibly) non-built is done with
     /// variant::move ().
     template <typename T>

+ 1 - 1
src/bin/d2/location.hh

@@ -1,4 +1,4 @@
-// Generated 201707141118
+// Generated 201710081556
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Locations for Bison parsers in C++

+ 1 - 1
src/bin/d2/position.hh

@@ -1,4 +1,4 @@
-// Generated 201707141118
+// Generated 201710081556
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Positions for Bison parsers in C++

+ 1 - 1
src/bin/d2/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201707141118
+// Generated 201710081556
 // A Bison parser, made by GNU Bison 3.0.4.
 
 // Stack handling for Bison parsers in C++

File diff suppressed because it is too large
+ 189 - 184
src/bin/dhcp4/dhcp4_lexer.cc


File diff suppressed because it is too large
+ 195 - 190
src/bin/dhcp6/dhcp6_lexer.cc


+ 73 - 68
src/lib/eval/lexer.cc

@@ -974,12 +974,12 @@ int yy_flex_debug = 1;
 
 static const flex_int16_t yy_rule_linenum[52] =
     {   0,
-      102,  107,  113,  123,  129,  147,  154,  168,  169,  170,
-      171,  172,  173,  174,  175,  176,  177,  178,  179,  180,
-      181,  182,  183,  184,  185,  186,  187,  188,  189,  190,
-      191,  192,  193,  194,  195,  196,  197,  198,  199,  200,
-      201,  202,  203,  204,  205,  206,  207,  208,  209,  210,
-      211
+      106,  111,  117,  127,  133,  151,  158,  172,  173,  174,
+      175,  176,  177,  178,  179,  180,  181,  182,  183,  184,
+      185,  186,  187,  188,  189,  190,  191,  192,  193,  194,
+      195,  196,  197,  198,  199,  200,  201,  202,  203,  204,
+      205,  206,  207,  208,  209,  210,  211,  212,  213,  214,
+      215
     } ;
 
 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
@@ -1012,6 +1012,10 @@ char *yytext;
    License, v. 2.0. If a copy of the MPL was not distributed with this
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #line 8 "lexer.ll"
+
+/* Generated files do not make clang static analyser so happy */
+#ifndef __clang_analyzer__
+
 #include <cerrno>
 #include <climits>
 #include <cstdlib>
@@ -1041,7 +1045,7 @@ namespace {
 
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg)
-#line 1044 "lexer.cc"
+#line 1048 "lexer.cc"
 /* noyywrap disables automatic rewinding for the next file to parse. Since we
    always parse only a single string, there's no need to do any wraps. And
    using yywrap requires linking with -lfl, which provides the default yywrap
@@ -1061,13 +1065,13 @@ namespace {
 /* These are not token expressions yet, just convenience expressions that
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
-#line 76 "lexer.ll"
+#line 80 "lexer.ll"
 /* This code run each time a pattern is matched. It updates the location
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
 #define YY_USER_ACTION  loc.columns(evalleng);
-#line 1069 "lexer.cc"
-#line 1070 "lexer.cc"
+#line 1073 "lexer.cc"
+#line 1074 "lexer.cc"
 
 #define INITIAL 0
 
@@ -1351,11 +1355,11 @@ YY_DECL
 
 	{
 /* %% [7.0] user's declarations go here */
-#line 82 "lexer.ll"
+#line 86 "lexer.ll"
 
 
 
-#line 86 "lexer.ll"
+#line 90 "lexer.ll"
     /* Code run each time evallex is called. */
     loc.step();
 
@@ -1372,7 +1376,7 @@ YY_DECL
 
 
 
-#line 1375 "lexer.cc"
+#line 1379 "lexer.cc"
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
@@ -1487,7 +1491,7 @@ do_action:	/* This label is used only to access EOF actions. */
 /* %% [13.0] actions go here */
 case 1:
 YY_RULE_SETUP
-#line 102 "lexer.ll"
+#line 106 "lexer.ll"
 {
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     loc.step();
@@ -1496,7 +1500,7 @@ YY_RULE_SETUP
 case 2:
 /* rule 2 can match eol */
 YY_RULE_SETUP
-#line 107 "lexer.ll"
+#line 111 "lexer.ll"
 {
     /* Newline found. Let's update the location and continue. */
     loc.lines(evalleng);
@@ -1505,7 +1509,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 113 "lexer.ll"
+#line 117 "lexer.ll"
 {
     /* A string has been matched. It contains the actual string and single quotes.
        We need to get those quotes out of the way and just use its content, e.g.
@@ -1518,7 +1522,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 123 "lexer.ll"
+#line 127 "lexer.ll"
 {
     /* A hex string has been matched. It contains the '0x' or '0X' header
        followed by at least one hexadecimal digit. */
@@ -1527,7 +1531,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 129 "lexer.ll"
+#line 133 "lexer.ll"
 {
     /* An integer was found. */
     std::string tmp(evaltext);
@@ -1549,7 +1553,7 @@ YY_RULE_SETUP
 case 6:
 /* rule 6 can match eol */
 YY_RULE_SETUP
-#line 147 "lexer.ll"
+#line 151 "lexer.ll"
 {
     /* This string specifies option name starting with a letter
        and further containing letters, digits, hyphens and
@@ -1559,7 +1563,7 @@ YY_RULE_SETUP
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 154 "lexer.ll"
+#line 158 "lexer.ll"
 {
     /* IPv4 or IPv6 address */
     std::string tmp(evaltext);
@@ -1576,234 +1580,234 @@ YY_RULE_SETUP
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 168 "lexer.ll"
+#line 172 "lexer.ll"
 return isc::eval::EvalParser::make_EQUAL(loc);
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 169 "lexer.ll"
+#line 173 "lexer.ll"
 return isc::eval::EvalParser::make_OPTION(loc);
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 170 "lexer.ll"
+#line 174 "lexer.ll"
 return isc::eval::EvalParser::make_RELAY4(loc);
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 171 "lexer.ll"
+#line 175 "lexer.ll"
 return isc::eval::EvalParser::make_RELAY6(loc);
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 172 "lexer.ll"
+#line 176 "lexer.ll"
 return isc::eval::EvalParser::make_PEERADDR(loc);
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 173 "lexer.ll"
+#line 177 "lexer.ll"
 return isc::eval::EvalParser::make_LINKADDR(loc);
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 174 "lexer.ll"
+#line 178 "lexer.ll"
 return isc::eval::EvalParser::make_TEXT(loc);
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 175 "lexer.ll"
+#line 179 "lexer.ll"
 return isc::eval::EvalParser::make_HEX(loc);
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 176 "lexer.ll"
+#line 180 "lexer.ll"
 return isc::eval::EvalParser::make_EXISTS(loc);
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 177 "lexer.ll"
+#line 181 "lexer.ll"
 return isc::eval::EvalParser::make_PKT(loc);
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 178 "lexer.ll"
+#line 182 "lexer.ll"
 return isc::eval::EvalParser::make_IFACE(loc);
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 179 "lexer.ll"
+#line 183 "lexer.ll"
 return isc::eval::EvalParser::make_SRC(loc);
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 180 "lexer.ll"
+#line 184 "lexer.ll"
 return isc::eval::EvalParser::make_DST(loc);
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 181 "lexer.ll"
+#line 185 "lexer.ll"
 return isc::eval::EvalParser::make_LEN(loc);
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 182 "lexer.ll"
+#line 186 "lexer.ll"
 return isc::eval::EvalParser::make_PKT4(loc);
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 183 "lexer.ll"
+#line 187 "lexer.ll"
 return isc::eval::EvalParser::make_CHADDR(loc);
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 184 "lexer.ll"
+#line 188 "lexer.ll"
 return isc::eval::EvalParser::make_HLEN(loc);
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 185 "lexer.ll"
+#line 189 "lexer.ll"
 return isc::eval::EvalParser::make_HTYPE(loc);
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 186 "lexer.ll"
+#line 190 "lexer.ll"
 return isc::eval::EvalParser::make_CIADDR(loc);
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 187 "lexer.ll"
+#line 191 "lexer.ll"
 return isc::eval::EvalParser::make_GIADDR(loc);
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 188 "lexer.ll"
+#line 192 "lexer.ll"
 return isc::eval::EvalParser::make_YIADDR(loc);
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 189 "lexer.ll"
+#line 193 "lexer.ll"
 return isc::eval::EvalParser::make_SIADDR(loc);
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 190 "lexer.ll"
+#line 194 "lexer.ll"
 return isc::eval::EvalParser::make_PKT6(loc);
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 191 "lexer.ll"
+#line 195 "lexer.ll"
 return isc::eval::EvalParser::make_MSGTYPE(loc);
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 192 "lexer.ll"
+#line 196 "lexer.ll"
 return isc::eval::EvalParser::make_TRANSID(loc);
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 193 "lexer.ll"
+#line 197 "lexer.ll"
 return isc::eval::EvalParser::make_VENDOR(loc);
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 194 "lexer.ll"
+#line 198 "lexer.ll"
 return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 195 "lexer.ll"
+#line 199 "lexer.ll"
 return isc::eval::EvalParser::make_DATA(loc);
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 196 "lexer.ll"
+#line 200 "lexer.ll"
 return isc::eval::EvalParser::make_ENTERPRISE(loc);
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 197 "lexer.ll"
+#line 201 "lexer.ll"
 return isc::eval::EvalParser::make_SUBSTRING(loc);
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 198 "lexer.ll"
+#line 202 "lexer.ll"
 return isc::eval::EvalParser::make_ALL(loc);
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 199 "lexer.ll"
+#line 203 "lexer.ll"
 return isc::eval::EvalParser::make_CONCAT(loc);
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 200 "lexer.ll"
+#line 204 "lexer.ll"
 return isc::eval::EvalParser::make_IFELSE(loc);
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 201 "lexer.ll"
+#line 205 "lexer.ll"
 return isc::eval::EvalParser::make_NOT(loc);
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 202 "lexer.ll"
+#line 206 "lexer.ll"
 return isc::eval::EvalParser::make_AND(loc);
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 203 "lexer.ll"
+#line 207 "lexer.ll"
 return isc::eval::EvalParser::make_OR(loc);
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 204 "lexer.ll"
+#line 208 "lexer.ll"
 return isc::eval::EvalParser::make_DOT(loc);
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 205 "lexer.ll"
+#line 209 "lexer.ll"
 return isc::eval::EvalParser::make_LPAREN(loc);
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 206 "lexer.ll"
+#line 210 "lexer.ll"
 return isc::eval::EvalParser::make_RPAREN(loc);
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 207 "lexer.ll"
+#line 211 "lexer.ll"
 return isc::eval::EvalParser::make_LBRACKET(loc);
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 208 "lexer.ll"
+#line 212 "lexer.ll"
 return isc::eval::EvalParser::make_RBRACKET(loc);
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 209 "lexer.ll"
+#line 213 "lexer.ll"
 return isc::eval::EvalParser::make_COMA(loc);
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 210 "lexer.ll"
+#line 214 "lexer.ll"
 return isc::eval::EvalParser::make_ANY(loc);
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 211 "lexer.ll"
+#line 215 "lexer.ll"
 driver.error (loc, "Invalid character: " + std::string(evaltext));
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 212 "lexer.ll"
+#line 216 "lexer.ll"
 return isc::eval::EvalParser::make_END(loc);
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 213 "lexer.ll"
+#line 217 "lexer.ll"
 ECHO;
 	YY_BREAK
-#line 1806 "lexer.cc"
+#line 1810 "lexer.cc"
 
 	case YY_END_OF_BUFFER:
 		{
@@ -2887,7 +2891,7 @@ void yyfree (void * ptr )
 
 /* %ok-for-header */
 
-#line 213 "lexer.ll"
+#line 217 "lexer.ll"
 
 
 using namespace isc::eval;
@@ -2921,4 +2925,5 @@ class Dummy {
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 }
+#endif /* !__clang_analyzer__ */