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] =
 static const flex_int16_t yy_rule_linenum[56] =
     {   0,
     {   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
 /* 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
    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/. */
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #line 8 "agent_lexer.ll"
 #line 8 "agent_lexer.ll"
+
+/* Generated files do not make clang static analyser so happy */
+#ifndef __clang_analyzer__
+
 #include <cerrno>
 #include <cerrno>
 #include <climits>
 #include <climits>
 #include <cstdlib>
 #include <cstdlib>
@@ -1375,7 +1379,7 @@ using isc::agent::AgentParser;
 
 
 /* To avoid the call to exit... oops! */
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::agent::ParserContext::fatal(msg)
 #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
 /* 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
    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
    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
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
    incorrect inputs (e.g., IP addresses) which must be checked. */
 /* for errors */
 /* 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
 /* 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
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
 #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 INITIAL 0
 #define COMMENT 1
 #define COMMENT 1
@@ -1684,11 +1688,11 @@ YY_DECL
 
 
 	{
 	{
 /* %% [7.0] user's declarations go here */
 /* %% [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
     /* This part of the code is copied over to the verbatim to the top
        of the generated yylex function. Explanation:
        of the generated yylex function. Explanation:
        http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
        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 */
 	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:
 case 1:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 129 "agent_lexer.ll"
+#line 133 "agent_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 2:
 case 2:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 131 "agent_lexer.ll"
+#line 135 "agent_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 3:
 case 3:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 133 "agent_lexer.ll"
+#line 137 "agent_lexer.ll"
 {
 {
   BEGIN(COMMENT);
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
   comment_start_line = driver.loc_.end.line;;
@@ -1812,33 +1816,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 4:
 case 4:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 138 "agent_lexer.ll"
+#line 142 "agent_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 5:
 case 5:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 139 "agent_lexer.ll"
+#line 143 "agent_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(COMMENT):
 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);
     isc_throw(ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 6:
 case 6:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 144 "agent_lexer.ll"
+#line 148 "agent_lexer.ll"
 BEGIN(DIR_ENTER);
 BEGIN(DIR_ENTER);
 	YY_BREAK
 	YY_BREAK
 case 7:
 case 7:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 145 "agent_lexer.ll"
+#line 149 "agent_lexer.ll"
 BEGIN(DIR_INCLUDE);
 BEGIN(DIR_INCLUDE);
 	YY_BREAK
 	YY_BREAK
 case 8:
 case 8:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 146 "agent_lexer.ll"
+#line 150 "agent_lexer.ll"
 {
 {
     /* Include directive. */
     /* Include directive. */
 
 
@@ -1852,19 +1856,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
 case YY_STATE_EOF(DIR_EXIT):
-#line 155 "agent_lexer.ll"
+#line 159 "agent_lexer.ll"
 {
 {
     isc_throw(ParseError, "Directive not closed.");
     isc_throw(ParseError, "Directive not closed.");
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 9:
 case 9:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 158 "agent_lexer.ll"
+#line 162 "agent_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 10:
 case 10:
 YY_RULE_SETUP
 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. */
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
     driver.loc_.step();
@@ -1873,7 +1877,7 @@ YY_RULE_SETUP
 case 11:
 case 11:
 /* rule 11 can match eol */
 /* rule 11 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 166 "agent_lexer.ll"
+#line 170 "agent_lexer.ll"
 {
 {
     /* Newline found. Let's update the location and continue. */
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
     driver.loc_.lines(yyleng);
@@ -1882,7 +1886,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 12:
 case 12:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 173 "agent_lexer.ll"
+#line 177 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -1894,7 +1898,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 13:
 case 13:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 182 "agent_lexer.ll"
+#line 186 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1906,7 +1910,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 14:
 case 14:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 191 "agent_lexer.ll"
+#line 195 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1918,7 +1922,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 15:
 case 15:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 200 "agent_lexer.ll"
+#line 204 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1930,7 +1934,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 16:
 case 16:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 209 "agent_lexer.ll"
+#line 213 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
     case ParserContext::CONTROL_SOCKETS:
@@ -1942,7 +1946,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 17:
 case 17:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 218 "agent_lexer.ll"
+#line 222 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
     case ParserContext::CONTROL_SOCKETS:
@@ -1954,7 +1958,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 18:
 case 18:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 227 "agent_lexer.ll"
+#line 231 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
     case ParserContext::CONTROL_SOCKETS:
@@ -1966,7 +1970,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 19:
 case 19:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 236 "agent_lexer.ll"
+#line 240 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::SERVER:
     case ParserContext::SERVER:
@@ -1978,7 +1982,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 20:
 case 20:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 245 "agent_lexer.ll"
+#line 249 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::SERVER:
     case ParserContext::SERVER:
@@ -1990,7 +1994,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 21:
 case 21:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 254 "agent_lexer.ll"
+#line 258 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::SOCKET_TYPE:
     case ParserContext::SOCKET_TYPE:
@@ -2002,7 +2006,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 22:
 case 22:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 263 "agent_lexer.ll"
+#line 267 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -2014,7 +2018,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 23:
 case 23:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 272 "agent_lexer.ll"
+#line 276 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::HOOKS_LIBRARIES:
     case ParserContext::HOOKS_LIBRARIES:
@@ -2026,7 +2030,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 24:
 case 24:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 281 "agent_lexer.ll"
+#line 285 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::HOOKS_LIBRARIES:
     case ParserContext::HOOKS_LIBRARIES:
@@ -2038,7 +2042,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 25:
 case 25:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 290 "agent_lexer.ll"
+#line 294 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2050,7 +2054,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 26:
 case 26:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 299 "agent_lexer.ll"
+#line 303 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGING:
     case ParserContext::LOGGING:
@@ -2062,7 +2066,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 27:
 case 27:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 308 "agent_lexer.ll"
+#line 312 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -2074,7 +2078,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 28:
 case 28:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 317 "agent_lexer.ll"
+#line 321 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -2086,7 +2090,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 29:
 case 29:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 326 "agent_lexer.ll"
+#line 330 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -2098,7 +2102,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 30:
 case 30:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 335 "agent_lexer.ll"
+#line 339 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -2110,7 +2114,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 31:
 case 31:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 344 "agent_lexer.ll"
+#line 348 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -2122,7 +2126,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 32:
 case 32:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 353 "agent_lexer.ll"
+#line 357 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -2134,7 +2138,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 33:
 case 33:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 362 "agent_lexer.ll"
+#line 366 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -2146,7 +2150,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 34:
 case 34:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 371 "agent_lexer.ll"
+#line 375 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -2158,7 +2162,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 35:
 case 35:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 380 "agent_lexer.ll"
+#line 384 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2170,7 +2174,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 36:
 case 36:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 389 "agent_lexer.ll"
+#line 393 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2182,7 +2186,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 37:
 case 37:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 398 "agent_lexer.ll"
+#line 402 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2194,7 +2198,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 38:
 case 38:
 YY_RULE_SETUP
 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.
     /* 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.
        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:
 case 39:
 /* rule 39 can match eol */
 /* rule 39 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 505 "agent_lexer.ll"
+#line 509 "agent_lexer.ll"
 {
 {
     /* Bad string with a forbidden control character inside */
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -2305,7 +2309,7 @@ YY_RULE_SETUP
 case 40:
 case 40:
 /* rule 40 can match eol */
 /* rule 40 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 510 "agent_lexer.ll"
+#line 514 "agent_lexer.ll"
 {
 {
     /* Bad string with a bad escape inside */
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -2313,7 +2317,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 41:
 case 41:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 515 "agent_lexer.ll"
+#line 519 "agent_lexer.ll"
 {
 {
     /* Bad string with an open escape at the end */
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -2321,37 +2325,37 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 42:
 case 42:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 520 "agent_lexer.ll"
+#line 524 "agent_lexer.ll"
 { return AgentParser::make_LSQUARE_BRACKET(driver.loc_); }
 { return AgentParser::make_LSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 43:
 case 43:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 521 "agent_lexer.ll"
+#line 525 "agent_lexer.ll"
 { return AgentParser::make_RSQUARE_BRACKET(driver.loc_); }
 { return AgentParser::make_RSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 44:
 case 44:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 522 "agent_lexer.ll"
+#line 526 "agent_lexer.ll"
 { return AgentParser::make_LCURLY_BRACKET(driver.loc_); }
 { return AgentParser::make_LCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 45:
 case 45:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 523 "agent_lexer.ll"
+#line 527 "agent_lexer.ll"
 { return AgentParser::make_RCURLY_BRACKET(driver.loc_); }
 { return AgentParser::make_RCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 46:
 case 46:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 524 "agent_lexer.ll"
+#line 528 "agent_lexer.ll"
 { return AgentParser::make_COMMA(driver.loc_); }
 { return AgentParser::make_COMMA(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 47:
 case 47:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 525 "agent_lexer.ll"
+#line 529 "agent_lexer.ll"
 { return AgentParser::make_COLON(driver.loc_); }
 { return AgentParser::make_COLON(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 48:
 case 48:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 527 "agent_lexer.ll"
+#line 531 "agent_lexer.ll"
 {
 {
     /* An integer was found. */
     /* An integer was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -2372,7 +2376,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 49:
 case 49:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 545 "agent_lexer.ll"
+#line 549 "agent_lexer.ll"
 {
 {
     /* A floating point was found. */
     /* A floating point was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -2388,7 +2392,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 50:
 case 50:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 558 "agent_lexer.ll"
+#line 562 "agent_lexer.ll"
 {
 {
     string tmp(yytext);
     string tmp(yytext);
     return AgentParser::make_BOOLEAN(tmp == "true", driver.loc_);
     return AgentParser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -2396,33 +2400,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 51:
 case 51:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 563 "agent_lexer.ll"
+#line 567 "agent_lexer.ll"
 {
 {
    return AgentParser::make_NULL_TYPE(driver.loc_);
    return AgentParser::make_NULL_TYPE(driver.loc_);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 52:
 case 52:
 YY_RULE_SETUP
 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");
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 53:
 case 53:
 YY_RULE_SETUP
 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");
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 54:
 case 54:
 YY_RULE_SETUP
 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");
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 55:
 case 55:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 573 "agent_lexer.ll"
+#line 577 "agent_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(INITIAL):
-#line 575 "agent_lexer.ll"
+#line 579 "agent_lexer.ll"
 {
 {
     if (driver.states_.empty()) {
     if (driver.states_.empty()) {
         return AgentParser::make_END(driver.loc_);
         return AgentParser::make_END(driver.loc_);
@@ -2448,10 +2452,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 	YY_BREAK
 case 56:
 case 56:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 598 "agent_lexer.ll"
+#line 602 "agent_lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 2454 "agent_lexer.cc"
+#line 2458 "agent_lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -3556,7 +3560,7 @@ void yyfree (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 598 "agent_lexer.ll"
+#line 602 "agent_lexer.ll"
 
 
 
 
 using namespace isc::dhcp;
 using namespace isc::dhcp;
@@ -3658,4 +3662,5 @@ class Dummy {
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
     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 ().
     /// The return value of parse ().
     int yyresult;
     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.
     // avoid gratuitous conflicts when merging into the master branch.
     try
     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
     /// Both variants must be built beforehand, because swapping the actual
     /// data requires reading it (with as()), and this is not possible on
     /// data requires reading it (with as()), and this is not possible on
     /// unconstructed variants: it would require some dynamic testing, which
     /// 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
     /// Swapping between built and (possibly) non-built is done with
     /// variant::move ().
     /// variant::move ().
     template <typename T>
     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.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Locations for Bison parsers in C++
 // 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.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Positions for Bison parsers in C++
 // 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.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Stack handling for Bison parsers in C++
 // 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] =
 static const flex_int16_t yy_rule_linenum[62] =
     {   0,
     {   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
 /* 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
    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/. */
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #line 8 "d2_lexer.ll"
 #line 8 "d2_lexer.ll"
+
+/* Generated files do not make clang static analyser so happy */
+#ifndef __clang_analyzer__
+
 #include <cerrno>
 #include <cerrno>
 #include <climits>
 #include <climits>
 #include <cstdlib>
 #include <cstdlib>
@@ -1112,7 +1116,7 @@ unsigned int comment_start_line = 0;
 
 
 /* To avoid the call to exit... oops! */
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::d2::D2ParserContext::fatal(msg)
 #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
 /* 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
    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
    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
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
    incorrect inputs (e.g., IP addresses) which must be checked. */
 /* for errors */
 /* 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
 /* 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
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
    currently matched token. */
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
 #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 INITIAL 0
 #define COMMENT 1
 #define COMMENT 1
@@ -1421,11 +1425,11 @@ YY_DECL
 
 
 	{
 	{
 /* %% [7.0] user's declarations go here */
 /* %% [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
     /* This part of the code is copied over to the verbatim to the top
        of the generated yylex function. Explanation:
        of the generated yylex function. Explanation:
        http://www.gnu.org/software/bison/manual/html_node/Multiple-start_002dsymbols.html */
        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 */
 	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:
 case 1:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 129 "d2_lexer.ll"
+#line 133 "d2_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 2:
 case 2:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 131 "d2_lexer.ll"
+#line 135 "d2_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 3:
 case 3:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 133 "d2_lexer.ll"
+#line 137 "d2_lexer.ll"
 {
 {
   BEGIN(COMMENT);
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
   comment_start_line = driver.loc_.end.line;;
@@ -1553,33 +1557,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 4:
 case 4:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 138 "d2_lexer.ll"
+#line 142 "d2_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 5:
 case 5:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 139 "d2_lexer.ll"
+#line 143 "d2_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(COMMENT):
 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);
     isc_throw(D2ParseError, "Comment not closed. (/* in line " << comment_start_line);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 6:
 case 6:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 144 "d2_lexer.ll"
+#line 148 "d2_lexer.ll"
 BEGIN(DIR_ENTER);
 BEGIN(DIR_ENTER);
 	YY_BREAK
 	YY_BREAK
 case 7:
 case 7:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 145 "d2_lexer.ll"
+#line 149 "d2_lexer.ll"
 BEGIN(DIR_INCLUDE);
 BEGIN(DIR_INCLUDE);
 	YY_BREAK
 	YY_BREAK
 case 8:
 case 8:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 146 "d2_lexer.ll"
+#line 150 "d2_lexer.ll"
 {
 {
     /* Include directive. */
     /* Include directive. */
 
 
@@ -1593,19 +1597,19 @@ YY_RULE_SETUP
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_ENTER):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_INCLUDE):
 case YY_STATE_EOF(DIR_EXIT):
 case YY_STATE_EOF(DIR_EXIT):
-#line 155 "d2_lexer.ll"
+#line 159 "d2_lexer.ll"
 {
 {
     isc_throw(D2ParseError, "Directive not closed.");
     isc_throw(D2ParseError, "Directive not closed.");
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 9:
 case 9:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 158 "d2_lexer.ll"
+#line 162 "d2_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 10:
 case 10:
 YY_RULE_SETUP
 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. */
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     driver.loc_.step();
     driver.loc_.step();
@@ -1614,7 +1618,7 @@ YY_RULE_SETUP
 case 11:
 case 11:
 /* rule 11 can match eol */
 /* rule 11 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 166 "d2_lexer.ll"
+#line 170 "d2_lexer.ll"
 {
 {
     /* Newline found. Let's update the location and continue. */
     /* Newline found. Let's update the location and continue. */
     driver.loc_.lines(yyleng);
     driver.loc_.lines(yyleng);
@@ -1623,7 +1627,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 12:
 case 12:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 172 "d2_lexer.ll"
+#line 176 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -1635,7 +1639,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 13:
 case 13:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 181 "d2_lexer.ll"
+#line 185 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1649,7 +1653,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 14:
 case 14:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 192 "d2_lexer.ll"
+#line 196 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1663,7 +1667,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 15:
 case 15:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 203 "d2_lexer.ll"
+#line 207 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1675,7 +1679,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 16:
 case 16:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 212 "d2_lexer.ll"
+#line 216 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1687,7 +1691,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 17:
 case 17:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 221 "d2_lexer.ll"
+#line 225 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1699,7 +1703,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 18:
 case 18:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 230 "d2_lexer.ll"
+#line 234 "d2_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
@@ -1712,7 +1716,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 19:
 case 19:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 240 "d2_lexer.ll"
+#line 244 "d2_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_PROTOCOL) {
@@ -1725,7 +1729,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 20:
 case 20:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 250 "d2_lexer.ll"
+#line 254 "d2_lexer.ll"
 {
 {
     /* dhcp-ddns value keywords are case insensitive */
     /* dhcp-ddns value keywords are case insensitive */
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_FORMAT) {
     if (driver.ctx_ == isc::d2::D2ParserContext::NCR_FORMAT) {
@@ -1738,7 +1742,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 21:
 case 21:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 260 "d2_lexer.ll"
+#line 264 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1750,7 +1754,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 22:
 case 22:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 269 "d2_lexer.ll"
+#line 273 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1762,7 +1766,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 23:
 case 23:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 278 "d2_lexer.ll"
+#line 282 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::FORWARD_DDNS:
     case isc::d2::D2ParserContext::FORWARD_DDNS:
@@ -1775,7 +1779,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 24:
 case 24:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 288 "d2_lexer.ll"
+#line 292 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
@@ -1788,7 +1792,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 25:
 case 25:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 298 "d2_lexer.ll"
+#line 302 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
@@ -1801,7 +1805,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 26:
 case 26:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 308 "d2_lexer.ll"
+#line 312 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DNS_SERVER:
     case isc::d2::D2ParserContext::DNS_SERVER:
@@ -1814,7 +1818,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 27:
 case 27:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 319 "d2_lexer.ll"
+#line 323 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1826,7 +1830,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 28:
 case 28:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 328 "d2_lexer.ll"
+#line 332 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -1839,7 +1843,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 29:
 case 29:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 338 "d2_lexer.ll"
+#line 342 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -1852,7 +1856,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 30:
 case 30:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 348 "d2_lexer.ll"
+#line 352 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -1865,7 +1869,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 31:
 case 31:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 359 "d2_lexer.ll"
+#line 363 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -1877,7 +1881,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 32:
 case 32:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 368 "d2_lexer.ll"
+#line 372 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGING:
     case isc::d2::D2ParserContext::LOGGING:
@@ -1889,7 +1893,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 33:
 case 33:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 377 "d2_lexer.ll"
+#line 381 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1901,7 +1905,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 34:
 case 34:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 386 "d2_lexer.ll"
+#line 390 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1913,7 +1917,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 35:
 case 35:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 395 "d2_lexer.ll"
+#line 399 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1925,7 +1929,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 36:
 case 36:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 404 "d2_lexer.ll"
+#line 408 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1937,7 +1941,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 37:
 case 37:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 413 "d2_lexer.ll"
+#line 417 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -1949,7 +1953,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 38:
 case 38:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 422 "d2_lexer.ll"
+#line 426 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1965,7 +1969,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 39:
 case 39:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 435 "d2_lexer.ll"
+#line 439 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1977,7 +1981,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 40:
 case 40:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 444 "d2_lexer.ll"
+#line 448 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -1989,7 +1993,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 41:
 case 41:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 453 "d2_lexer.ll"
+#line 457 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -2001,7 +2005,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 42:
 case 42:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 462 "d2_lexer.ll"
+#line 466 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -2013,7 +2017,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 43:
 case 43:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 471 "d2_lexer.ll"
+#line 475 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -2025,7 +2029,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 44:
 case 44:
 YY_RULE_SETUP
 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.
     /* 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.
        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:
 case 45:
 /* rule 45 can match eol */
 /* rule 45 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 579 "d2_lexer.ll"
+#line 583 "d2_lexer.ll"
 {
 {
     /* Bad string with a forbidden control character inside */
     /* Bad string with a forbidden control character inside */
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
     driver.error(driver.loc_, "Invalid control in " + std::string(yytext));
@@ -2136,7 +2140,7 @@ YY_RULE_SETUP
 case 46:
 case 46:
 /* rule 46 can match eol */
 /* rule 46 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 584 "d2_lexer.ll"
+#line 588 "d2_lexer.ll"
 {
 {
     /* Bad string with a bad escape inside */
     /* Bad string with a bad escape inside */
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
     driver.error(driver.loc_, "Bad escape in " + std::string(yytext));
@@ -2144,7 +2148,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 47:
 case 47:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 589 "d2_lexer.ll"
+#line 593 "d2_lexer.ll"
 {
 {
     /* Bad string with an open escape at the end */
     /* Bad string with an open escape at the end */
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
     driver.error(driver.loc_, "Overflow escape in " + std::string(yytext));
@@ -2152,37 +2156,37 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 48:
 case 48:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 594 "d2_lexer.ll"
+#line 598 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); }
 { return isc::d2::D2Parser::make_LSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 49:
 case 49:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 595 "d2_lexer.ll"
+#line 599 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); }
 { return isc::d2::D2Parser::make_RSQUARE_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 50:
 case 50:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 596 "d2_lexer.ll"
+#line 600 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); }
 { return isc::d2::D2Parser::make_LCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 51:
 case 51:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 597 "d2_lexer.ll"
+#line 601 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); }
 { return isc::d2::D2Parser::make_RCURLY_BRACKET(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 52:
 case 52:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 598 "d2_lexer.ll"
+#line 602 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_COMMA(driver.loc_); }
 { return isc::d2::D2Parser::make_COMMA(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 53:
 case 53:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 599 "d2_lexer.ll"
+#line 603 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_COLON(driver.loc_); }
 { return isc::d2::D2Parser::make_COLON(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 54:
 case 54:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 601 "d2_lexer.ll"
+#line 605 "d2_lexer.ll"
 {
 {
     /* An integer was found. */
     /* An integer was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -2203,7 +2207,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 55:
 case 55:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 619 "d2_lexer.ll"
+#line 623 "d2_lexer.ll"
 {
 {
     /* A floating point was found. */
     /* A floating point was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
@@ -2219,7 +2223,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 56:
 case 56:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 632 "d2_lexer.ll"
+#line 636 "d2_lexer.ll"
 {
 {
     string tmp(yytext);
     string tmp(yytext);
     return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_);
     return isc::d2::D2Parser::make_BOOLEAN(tmp == "true", driver.loc_);
@@ -2227,33 +2231,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 57:
 case 57:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 637 "d2_lexer.ll"
+#line 641 "d2_lexer.ll"
 {
 {
    return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_);
    return isc::d2::D2Parser::make_NULL_TYPE(driver.loc_);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 58:
 case 58:
 YY_RULE_SETUP
 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");
 driver.error (driver.loc_, "JSON true reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 59:
 case 59:
 YY_RULE_SETUP
 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");
 driver.error (driver.loc_, "JSON false reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 60:
 case 60:
 YY_RULE_SETUP
 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");
 driver.error (driver.loc_, "JSON null reserved keyword is lower case only");
 	YY_BREAK
 	YY_BREAK
 case 61:
 case 61:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 647 "d2_lexer.ll"
+#line 651 "d2_lexer.ll"
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 driver.error (driver.loc_, "Invalid character: " + std::string(yytext));
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(INITIAL):
-#line 649 "d2_lexer.ll"
+#line 653 "d2_lexer.ll"
 {
 {
     if (driver.states_.empty()) {
     if (driver.states_.empty()) {
         return isc::d2::D2Parser::make_END(driver.loc_);
         return isc::d2::D2Parser::make_END(driver.loc_);
@@ -2279,10 +2283,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 	YY_BREAK
 case 62:
 case 62:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 672 "d2_lexer.ll"
+#line 676 "d2_lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 2285 "d2_lexer.cc"
+#line 2289 "d2_lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -3387,7 +3391,7 @@ void yyfree (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 672 "d2_lexer.ll"
+#line 676 "d2_lexer.ll"
 
 
 
 
 using namespace isc::dhcp;
 using namespace isc::dhcp;
@@ -3489,4 +3493,5 @@ class Dummy {
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
     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 ().
     /// The return value of parse ().
     int yyresult;
     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.
     // avoid gratuitous conflicts when merging into the master branch.
     try
     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
     /// Both variants must be built beforehand, because swapping the actual
     /// data requires reading it (with as()), and this is not possible on
     /// data requires reading it (with as()), and this is not possible on
     /// unconstructed variants: it would require some dynamic testing, which
     /// 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
     /// Swapping between built and (possibly) non-built is done with
     /// variant::move ().
     /// variant::move ().
     template <typename T>
     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.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Locations for Bison parsers in C++
 // 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.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Positions for Bison parsers in C++
 // 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.
 // A Bison parser, made by GNU Bison 3.0.4.
 
 
 // Stack handling for Bison parsers in C++
 // 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] =
 static const flex_int16_t yy_rule_linenum[52] =
     {   0,
     {   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;
 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
    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/. */
    file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 #line 8 "lexer.ll"
 #line 8 "lexer.ll"
+
+/* Generated files do not make clang static analyser so happy */
+#ifndef __clang_analyzer__
+
 #include <cerrno>
 #include <cerrno>
 #include <climits>
 #include <climits>
 #include <cstdlib>
 #include <cstdlib>
@@ -1041,7 +1045,7 @@ namespace {
 
 
 /* To avoid the call to exit... oops! */
 /* To avoid the call to exit... oops! */
 #define YY_FATAL_ERROR(msg) isc::eval::EvalContext::fatal(msg)
 #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
 /* 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
    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
    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
 /* These are not token expressions yet, just convenience expressions that
    can be used during actual token definitions. Note some can match
    can be used during actual token definitions. Note some can match
    incorrect inputs (e.g., IP addresses) which must be checked. */
    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
 /* 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
    by moving it ahead by yyleng bytes. yyleng specifies the length of the
    currently matched token. */
    currently matched token. */
 #define YY_USER_ACTION  loc.columns(evalleng);
 #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
 #define INITIAL 0
 
 
@@ -1351,11 +1355,11 @@ YY_DECL
 
 
 	{
 	{
 /* %% [7.0] user's declarations go here */
 /* %% [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. */
     /* Code run each time evallex is called. */
     loc.step();
     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 */
 	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 */
 /* %% [13.0] actions go here */
 case 1:
 case 1:
 YY_RULE_SETUP
 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. */
     /* Ok, we found a with space. Let's ignore it and update loc variable. */
     loc.step();
     loc.step();
@@ -1496,7 +1500,7 @@ YY_RULE_SETUP
 case 2:
 case 2:
 /* rule 2 can match eol */
 /* rule 2 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 107 "lexer.ll"
+#line 111 "lexer.ll"
 {
 {
     /* Newline found. Let's update the location and continue. */
     /* Newline found. Let's update the location and continue. */
     loc.lines(evalleng);
     loc.lines(evalleng);
@@ -1505,7 +1509,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 3:
 case 3:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 113 "lexer.ll"
+#line 117 "lexer.ll"
 {
 {
     /* A string has been matched. It contains the actual string and single quotes.
     /* 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.
        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
 	YY_BREAK
 case 4:
 case 4:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 123 "lexer.ll"
+#line 127 "lexer.ll"
 {
 {
     /* A hex string has been matched. It contains the '0x' or '0X' header
     /* A hex string has been matched. It contains the '0x' or '0X' header
        followed by at least one hexadecimal digit. */
        followed by at least one hexadecimal digit. */
@@ -1527,7 +1531,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 5:
 case 5:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 129 "lexer.ll"
+#line 133 "lexer.ll"
 {
 {
     /* An integer was found. */
     /* An integer was found. */
     std::string tmp(evaltext);
     std::string tmp(evaltext);
@@ -1549,7 +1553,7 @@ YY_RULE_SETUP
 case 6:
 case 6:
 /* rule 6 can match eol */
 /* rule 6 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 147 "lexer.ll"
+#line 151 "lexer.ll"
 {
 {
     /* This string specifies option name starting with a letter
     /* This string specifies option name starting with a letter
        and further containing letters, digits, hyphens and
        and further containing letters, digits, hyphens and
@@ -1559,7 +1563,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 7:
 case 7:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 154 "lexer.ll"
+#line 158 "lexer.ll"
 {
 {
     /* IPv4 or IPv6 address */
     /* IPv4 or IPv6 address */
     std::string tmp(evaltext);
     std::string tmp(evaltext);
@@ -1576,234 +1580,234 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 8:
 case 8:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 168 "lexer.ll"
+#line 172 "lexer.ll"
 return isc::eval::EvalParser::make_EQUAL(loc);
 return isc::eval::EvalParser::make_EQUAL(loc);
 	YY_BREAK
 	YY_BREAK
 case 9:
 case 9:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 169 "lexer.ll"
+#line 173 "lexer.ll"
 return isc::eval::EvalParser::make_OPTION(loc);
 return isc::eval::EvalParser::make_OPTION(loc);
 	YY_BREAK
 	YY_BREAK
 case 10:
 case 10:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 170 "lexer.ll"
+#line 174 "lexer.ll"
 return isc::eval::EvalParser::make_RELAY4(loc);
 return isc::eval::EvalParser::make_RELAY4(loc);
 	YY_BREAK
 	YY_BREAK
 case 11:
 case 11:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 171 "lexer.ll"
+#line 175 "lexer.ll"
 return isc::eval::EvalParser::make_RELAY6(loc);
 return isc::eval::EvalParser::make_RELAY6(loc);
 	YY_BREAK
 	YY_BREAK
 case 12:
 case 12:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 172 "lexer.ll"
+#line 176 "lexer.ll"
 return isc::eval::EvalParser::make_PEERADDR(loc);
 return isc::eval::EvalParser::make_PEERADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 13:
 case 13:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 173 "lexer.ll"
+#line 177 "lexer.ll"
 return isc::eval::EvalParser::make_LINKADDR(loc);
 return isc::eval::EvalParser::make_LINKADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 14:
 case 14:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 174 "lexer.ll"
+#line 178 "lexer.ll"
 return isc::eval::EvalParser::make_TEXT(loc);
 return isc::eval::EvalParser::make_TEXT(loc);
 	YY_BREAK
 	YY_BREAK
 case 15:
 case 15:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 175 "lexer.ll"
+#line 179 "lexer.ll"
 return isc::eval::EvalParser::make_HEX(loc);
 return isc::eval::EvalParser::make_HEX(loc);
 	YY_BREAK
 	YY_BREAK
 case 16:
 case 16:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 176 "lexer.ll"
+#line 180 "lexer.ll"
 return isc::eval::EvalParser::make_EXISTS(loc);
 return isc::eval::EvalParser::make_EXISTS(loc);
 	YY_BREAK
 	YY_BREAK
 case 17:
 case 17:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 177 "lexer.ll"
+#line 181 "lexer.ll"
 return isc::eval::EvalParser::make_PKT(loc);
 return isc::eval::EvalParser::make_PKT(loc);
 	YY_BREAK
 	YY_BREAK
 case 18:
 case 18:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 178 "lexer.ll"
+#line 182 "lexer.ll"
 return isc::eval::EvalParser::make_IFACE(loc);
 return isc::eval::EvalParser::make_IFACE(loc);
 	YY_BREAK
 	YY_BREAK
 case 19:
 case 19:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 179 "lexer.ll"
+#line 183 "lexer.ll"
 return isc::eval::EvalParser::make_SRC(loc);
 return isc::eval::EvalParser::make_SRC(loc);
 	YY_BREAK
 	YY_BREAK
 case 20:
 case 20:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 180 "lexer.ll"
+#line 184 "lexer.ll"
 return isc::eval::EvalParser::make_DST(loc);
 return isc::eval::EvalParser::make_DST(loc);
 	YY_BREAK
 	YY_BREAK
 case 21:
 case 21:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 181 "lexer.ll"
+#line 185 "lexer.ll"
 return isc::eval::EvalParser::make_LEN(loc);
 return isc::eval::EvalParser::make_LEN(loc);
 	YY_BREAK
 	YY_BREAK
 case 22:
 case 22:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 182 "lexer.ll"
+#line 186 "lexer.ll"
 return isc::eval::EvalParser::make_PKT4(loc);
 return isc::eval::EvalParser::make_PKT4(loc);
 	YY_BREAK
 	YY_BREAK
 case 23:
 case 23:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 183 "lexer.ll"
+#line 187 "lexer.ll"
 return isc::eval::EvalParser::make_CHADDR(loc);
 return isc::eval::EvalParser::make_CHADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 24:
 case 24:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 184 "lexer.ll"
+#line 188 "lexer.ll"
 return isc::eval::EvalParser::make_HLEN(loc);
 return isc::eval::EvalParser::make_HLEN(loc);
 	YY_BREAK
 	YY_BREAK
 case 25:
 case 25:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 185 "lexer.ll"
+#line 189 "lexer.ll"
 return isc::eval::EvalParser::make_HTYPE(loc);
 return isc::eval::EvalParser::make_HTYPE(loc);
 	YY_BREAK
 	YY_BREAK
 case 26:
 case 26:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 186 "lexer.ll"
+#line 190 "lexer.ll"
 return isc::eval::EvalParser::make_CIADDR(loc);
 return isc::eval::EvalParser::make_CIADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 27:
 case 27:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 187 "lexer.ll"
+#line 191 "lexer.ll"
 return isc::eval::EvalParser::make_GIADDR(loc);
 return isc::eval::EvalParser::make_GIADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 28:
 case 28:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 188 "lexer.ll"
+#line 192 "lexer.ll"
 return isc::eval::EvalParser::make_YIADDR(loc);
 return isc::eval::EvalParser::make_YIADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 29:
 case 29:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 189 "lexer.ll"
+#line 193 "lexer.ll"
 return isc::eval::EvalParser::make_SIADDR(loc);
 return isc::eval::EvalParser::make_SIADDR(loc);
 	YY_BREAK
 	YY_BREAK
 case 30:
 case 30:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 190 "lexer.ll"
+#line 194 "lexer.ll"
 return isc::eval::EvalParser::make_PKT6(loc);
 return isc::eval::EvalParser::make_PKT6(loc);
 	YY_BREAK
 	YY_BREAK
 case 31:
 case 31:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 191 "lexer.ll"
+#line 195 "lexer.ll"
 return isc::eval::EvalParser::make_MSGTYPE(loc);
 return isc::eval::EvalParser::make_MSGTYPE(loc);
 	YY_BREAK
 	YY_BREAK
 case 32:
 case 32:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 192 "lexer.ll"
+#line 196 "lexer.ll"
 return isc::eval::EvalParser::make_TRANSID(loc);
 return isc::eval::EvalParser::make_TRANSID(loc);
 	YY_BREAK
 	YY_BREAK
 case 33:
 case 33:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 193 "lexer.ll"
+#line 197 "lexer.ll"
 return isc::eval::EvalParser::make_VENDOR(loc);
 return isc::eval::EvalParser::make_VENDOR(loc);
 	YY_BREAK
 	YY_BREAK
 case 34:
 case 34:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 194 "lexer.ll"
+#line 198 "lexer.ll"
 return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
 return isc::eval::EvalParser::make_VENDOR_CLASS(loc);
 	YY_BREAK
 	YY_BREAK
 case 35:
 case 35:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 195 "lexer.ll"
+#line 199 "lexer.ll"
 return isc::eval::EvalParser::make_DATA(loc);
 return isc::eval::EvalParser::make_DATA(loc);
 	YY_BREAK
 	YY_BREAK
 case 36:
 case 36:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 196 "lexer.ll"
+#line 200 "lexer.ll"
 return isc::eval::EvalParser::make_ENTERPRISE(loc);
 return isc::eval::EvalParser::make_ENTERPRISE(loc);
 	YY_BREAK
 	YY_BREAK
 case 37:
 case 37:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 197 "lexer.ll"
+#line 201 "lexer.ll"
 return isc::eval::EvalParser::make_SUBSTRING(loc);
 return isc::eval::EvalParser::make_SUBSTRING(loc);
 	YY_BREAK
 	YY_BREAK
 case 38:
 case 38:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 198 "lexer.ll"
+#line 202 "lexer.ll"
 return isc::eval::EvalParser::make_ALL(loc);
 return isc::eval::EvalParser::make_ALL(loc);
 	YY_BREAK
 	YY_BREAK
 case 39:
 case 39:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 199 "lexer.ll"
+#line 203 "lexer.ll"
 return isc::eval::EvalParser::make_CONCAT(loc);
 return isc::eval::EvalParser::make_CONCAT(loc);
 	YY_BREAK
 	YY_BREAK
 case 40:
 case 40:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 200 "lexer.ll"
+#line 204 "lexer.ll"
 return isc::eval::EvalParser::make_IFELSE(loc);
 return isc::eval::EvalParser::make_IFELSE(loc);
 	YY_BREAK
 	YY_BREAK
 case 41:
 case 41:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 201 "lexer.ll"
+#line 205 "lexer.ll"
 return isc::eval::EvalParser::make_NOT(loc);
 return isc::eval::EvalParser::make_NOT(loc);
 	YY_BREAK
 	YY_BREAK
 case 42:
 case 42:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 202 "lexer.ll"
+#line 206 "lexer.ll"
 return isc::eval::EvalParser::make_AND(loc);
 return isc::eval::EvalParser::make_AND(loc);
 	YY_BREAK
 	YY_BREAK
 case 43:
 case 43:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 203 "lexer.ll"
+#line 207 "lexer.ll"
 return isc::eval::EvalParser::make_OR(loc);
 return isc::eval::EvalParser::make_OR(loc);
 	YY_BREAK
 	YY_BREAK
 case 44:
 case 44:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 204 "lexer.ll"
+#line 208 "lexer.ll"
 return isc::eval::EvalParser::make_DOT(loc);
 return isc::eval::EvalParser::make_DOT(loc);
 	YY_BREAK
 	YY_BREAK
 case 45:
 case 45:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 205 "lexer.ll"
+#line 209 "lexer.ll"
 return isc::eval::EvalParser::make_LPAREN(loc);
 return isc::eval::EvalParser::make_LPAREN(loc);
 	YY_BREAK
 	YY_BREAK
 case 46:
 case 46:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 206 "lexer.ll"
+#line 210 "lexer.ll"
 return isc::eval::EvalParser::make_RPAREN(loc);
 return isc::eval::EvalParser::make_RPAREN(loc);
 	YY_BREAK
 	YY_BREAK
 case 47:
 case 47:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 207 "lexer.ll"
+#line 211 "lexer.ll"
 return isc::eval::EvalParser::make_LBRACKET(loc);
 return isc::eval::EvalParser::make_LBRACKET(loc);
 	YY_BREAK
 	YY_BREAK
 case 48:
 case 48:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 208 "lexer.ll"
+#line 212 "lexer.ll"
 return isc::eval::EvalParser::make_RBRACKET(loc);
 return isc::eval::EvalParser::make_RBRACKET(loc);
 	YY_BREAK
 	YY_BREAK
 case 49:
 case 49:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 209 "lexer.ll"
+#line 213 "lexer.ll"
 return isc::eval::EvalParser::make_COMA(loc);
 return isc::eval::EvalParser::make_COMA(loc);
 	YY_BREAK
 	YY_BREAK
 case 50:
 case 50:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 210 "lexer.ll"
+#line 214 "lexer.ll"
 return isc::eval::EvalParser::make_ANY(loc);
 return isc::eval::EvalParser::make_ANY(loc);
 	YY_BREAK
 	YY_BREAK
 case 51:
 case 51:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 211 "lexer.ll"
+#line 215 "lexer.ll"
 driver.error (loc, "Invalid character: " + std::string(evaltext));
 driver.error (loc, "Invalid character: " + std::string(evaltext));
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(INITIAL):
-#line 212 "lexer.ll"
+#line 216 "lexer.ll"
 return isc::eval::EvalParser::make_END(loc);
 return isc::eval::EvalParser::make_END(loc);
 	YY_BREAK
 	YY_BREAK
 case 52:
 case 52:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 213 "lexer.ll"
+#line 217 "lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 1806 "lexer.cc"
+#line 1810 "lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -2887,7 +2891,7 @@ void yyfree (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 213 "lexer.ll"
+#line 217 "lexer.ll"
 
 
 
 
 using namespace isc::eval;
 using namespace isc::eval;
@@ -2921,4 +2925,5 @@ class Dummy {
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 };
 }
 }
+#endif /* !__clang_analyzer__ */