Browse Source

[master] regen flex/bison files

Francis Dupont 8 years ago
parent
commit
d5eedcbba7

+ 125 - 123
src/bin/agent/agent_lexer.cc

@@ -1194,12 +1194,12 @@ int agent__flex_debug = 1;
 
 
 static const flex_int16_t yy_rule_linenum[56] =
 static const flex_int16_t yy_rule_linenum[56] =
     {   0,
     {   0,
-      127,  129,  131,  136,  137,  142,  143,  144,  156,  159,
-      164,  171,  180,  189,  198,  207,  216,  225,  234,  243,
-      252,  261,  270,  279,  288,  297,  306,  315,  324,  333,
-      342,  351,  360,  369,  378,  387,  396,  405,  503,  508,
-      513,  518,  519,  520,  521,  522,  523,  525,  543,  556,
-      561,  565,  567,  569,  571
+      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
     } ;
     } ;
 
 
 /* The intent behind this definition is that it'll catch
 /* The intent behind this definition is that it'll catch
@@ -1227,10 +1227,12 @@ char *agent_text;
 #include <exceptions/exceptions.h>
 #include <exceptions/exceptions.h>
 #include <cc/dhcp_config_error.h>
 #include <cc/dhcp_config_error.h>
 
 
-// Work around an incompatibility in flex (at least versions
-// 2.5.31 through 2.5.33): it generates code that does
-// not conform to C89.  See Debian bug 333231
-// <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.
+/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
+
+/* Work around an incompatibility in flex (at least versions
+   2.5.31 through 2.5.33): it generates code that does
+   not conform to C89.  See Debian bug 333231
+   <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
 # undef yywrap
 # undef yywrap
 # define yywrap() 1
 # define yywrap() 1
 
 
@@ -1246,9 +1248,9 @@ 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 1251 "agent_lexer.cc"
+#line 1253 "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
@@ -1269,13 +1271,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 90 "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.
+#line 92 "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);
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1277 "agent_lexer.cc"
-#line 1278 "agent_lexer.cc"
+#line 1279 "agent_lexer.cc"
+#line 1280 "agent_lexer.cc"
 
 
 #define INITIAL 0
 #define INITIAL 0
 #define COMMENT 1
 #define COMMENT 1
@@ -1557,24 +1559,24 @@ YY_DECL
 
 
 	{
 	{
 /* %% [7.0] user's declarations go here */
 /* %% [7.0] user's declarations go here */
-#line 96 "agent_lexer.ll"
+#line 98 "agent_lexer.ll"
 
 
 
 
 
 
-#line 100 "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
+#line 102 "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 */
 
 
-    // Code run each time yylex is called.
+    /* Code run each time yylex is called. */
     driver.loc_.step();
     driver.loc_.step();
 
 
-    // We currently have 3 points of entries defined:
-    // START_JSON - which expects any valid JSON
-    // START_AGENT - which expects full configuration (with outer map and Control-agent
-    //               object in it.
-    // START_SUB_AGENT - which expects only content of the Control-agent, this is
-    //                   primarily useful for testing.
+    /* We currently have 3 points of entries defined:
+       START_JSON - which expects any valid JSON
+       START_AGENT - which expects full configuration (with outer map and Control-agent
+                     object in it.
+       START_SUB_AGENT - which expects only content of the Control-agent, this is
+                         primarily useful for testing. */
     if (start_token_flag) {
     if (start_token_flag) {
         start_token_flag = false;
         start_token_flag = false;
         switch (start_token_value) {
         switch (start_token_value) {
@@ -1589,7 +1591,7 @@ YY_DECL
     }
     }
 
 
 
 
-#line 1592 "agent_lexer.cc"
+#line 1594 "agent_lexer.cc"
 
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
 		{
@@ -1667,17 +1669,17 @@ do_action:	/* This label is used only to access EOF actions. */
 
 
 case 1:
 case 1:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 127 "agent_lexer.ll"
+#line 129 "agent_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 2:
 case 2:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 129 "agent_lexer.ll"
+#line 131 "agent_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 3:
 case 3:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 131 "agent_lexer.ll"
+#line 133 "agent_lexer.ll"
 {
 {
   BEGIN(COMMENT);
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
   comment_start_line = driver.loc_.end.line;;
@@ -1685,37 +1687,37 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 4:
 case 4:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 136 "agent_lexer.ll"
+#line 138 "agent_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 5:
 case 5:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 137 "agent_lexer.ll"
+#line 139 "agent_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(COMMENT):
 case YY_STATE_EOF(COMMENT):
-#line 138 "agent_lexer.ll"
+#line 140 "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 142 "agent_lexer.ll"
+#line 144 "agent_lexer.ll"
 BEGIN(DIR_ENTER);
 BEGIN(DIR_ENTER);
 	YY_BREAK
 	YY_BREAK
 case 7:
 case 7:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 143 "agent_lexer.ll"
+#line 145 "agent_lexer.ll"
 BEGIN(DIR_INCLUDE);
 BEGIN(DIR_INCLUDE);
 	YY_BREAK
 	YY_BREAK
 case 8:
 case 8:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 144 "agent_lexer.ll"
+#line 146 "agent_lexer.ll"
 {
 {
-    // Include directive.
+    /* Include directive. */
 
 
-    // Extract the filename.
+    /* Extract the filename. */
     std::string tmp(yytext+1);
     std::string tmp(yytext+1);
     tmp.resize(tmp.size() - 1);
     tmp.resize(tmp.size() - 1);
 
 
@@ -1725,37 +1727,37 @@ 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 153 "agent_lexer.ll"
+#line 155 "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 156 "agent_lexer.ll"
+#line 158 "agent_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 10:
 case 10:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 159 "agent_lexer.ll"
+#line 161 "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();
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 11:
 case 11:
 /* rule 11 can match eol */
 /* rule 11 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 164 "agent_lexer.ll"
+#line 166 "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);
     driver.loc_.step();
     driver.loc_.step();
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 12:
 case 12:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 171 "agent_lexer.ll"
+#line 173 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -1767,7 +1769,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 13:
 case 13:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 180 "agent_lexer.ll"
+#line 182 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1779,7 +1781,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 14:
 case 14:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 189 "agent_lexer.ll"
+#line 191 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1791,7 +1793,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 15:
 case 15:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 198 "agent_lexer.ll"
+#line 200 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1803,7 +1805,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 16:
 case 16:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 207 "agent_lexer.ll"
+#line 209 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
     case ParserContext::CONTROL_SOCKETS:
@@ -1815,7 +1817,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 17:
 case 17:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 216 "agent_lexer.ll"
+#line 218 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
     case ParserContext::CONTROL_SOCKETS:
@@ -1827,7 +1829,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 18:
 case 18:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 225 "agent_lexer.ll"
+#line 227 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONTROL_SOCKETS:
     case ParserContext::CONTROL_SOCKETS:
@@ -1839,7 +1841,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 19:
 case 19:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 234 "agent_lexer.ll"
+#line 236 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::SERVER:
     case ParserContext::SERVER:
@@ -1851,7 +1853,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 20:
 case 20:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 243 "agent_lexer.ll"
+#line 245 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::SERVER:
     case ParserContext::SERVER:
@@ -1863,7 +1865,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 21:
 case 21:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 252 "agent_lexer.ll"
+#line 254 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::SOCKET_TYPE:
     case ParserContext::SOCKET_TYPE:
@@ -1875,7 +1877,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 22:
 case 22:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 261 "agent_lexer.ll"
+#line 263 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::AGENT:
     case ParserContext::AGENT:
@@ -1887,7 +1889,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 23:
 case 23:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 270 "agent_lexer.ll"
+#line 272 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::HOOKS_LIBRARIES:
     case ParserContext::HOOKS_LIBRARIES:
@@ -1899,7 +1901,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 24:
 case 24:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 279 "agent_lexer.ll"
+#line 281 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::HOOKS_LIBRARIES:
     case ParserContext::HOOKS_LIBRARIES:
@@ -1911,7 +1913,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 25:
 case 25:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 288 "agent_lexer.ll"
+#line 290 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -1923,7 +1925,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 26:
 case 26:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 297 "agent_lexer.ll"
+#line 299 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGING:
     case ParserContext::LOGGING:
@@ -1935,7 +1937,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 27:
 case 27:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 306 "agent_lexer.ll"
+#line 308 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -1947,7 +1949,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 28:
 case 28:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 315 "agent_lexer.ll"
+#line 317 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -1959,7 +1961,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 29:
 case 29:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 324 "agent_lexer.ll"
+#line 326 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -1971,7 +1973,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 30:
 case 30:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 333 "agent_lexer.ll"
+#line 335 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -1983,7 +1985,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 31:
 case 31:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 342 "agent_lexer.ll"
+#line 344 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -1995,7 +1997,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 32:
 case 32:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 351 "agent_lexer.ll"
+#line 353 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::OUTPUT_OPTIONS:
     case ParserContext::OUTPUT_OPTIONS:
@@ -2007,7 +2009,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 33:
 case 33:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 360 "agent_lexer.ll"
+#line 362 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -2019,7 +2021,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 34:
 case 34:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 369 "agent_lexer.ll"
+#line 371 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::LOGGERS:
     case ParserContext::LOGGERS:
@@ -2031,7 +2033,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 35:
 case 35:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 378 "agent_lexer.ll"
+#line 380 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2043,7 +2045,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 36:
 case 36:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 387 "agent_lexer.ll"
+#line 389 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2055,7 +2057,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 37:
 case 37:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 396 "agent_lexer.ll"
+#line 398 "agent_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case ParserContext::CONFIG:
     case ParserContext::CONFIG:
@@ -2067,11 +2069,11 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 38:
 case 38:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 405 "agent_lexer.ll"
+#line 407 "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.
-    // for 'foo' we should get foo
+    /* 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.
+       for 'foo' we should get foo */
     std::string raw(yytext+1);
     std::string raw(yytext+1);
     size_t len = raw.size() - 1;
     size_t len = raw.size() - 1;
     raw.resize(len);
     raw.resize(len);
@@ -2082,12 +2084,12 @@ YY_RULE_SETUP
         char c = raw[pos];
         char c = raw[pos];
         switch (c) {
         switch (c) {
         case '"':
         case '"':
-            // impossible condition
+            /* impossible condition */
             driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
             driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
         case '\\':
         case '\\':
             ++pos;
             ++pos;
             if (pos >= len) {
             if (pos >= len) {
-                // impossible condition
+                /* impossible condition */
                 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
                 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
             }
             }
             c = raw[pos];
             c = raw[pos];
@@ -2113,10 +2115,10 @@ YY_RULE_SETUP
                 decoded.push_back('\t');
                 decoded.push_back('\t');
                 break;
                 break;
             case 'u':
             case 'u':
-                // support only \u0000 to \u00ff
+                /* support only \u0000 to \u00ff */
                 ++pos;
                 ++pos;
                 if (pos + 4 > len) {
                 if (pos + 4 > len) {
-                    // impossible condition
+                    /* impossible condition */
                     driver.error(driver.loc_,
                     driver.error(driver.loc_,
                                  "Overflow unicode escape in \"" + raw + "\"");
                                  "Overflow unicode escape in \"" + raw + "\"");
                 }
                 }
@@ -2132,7 +2134,7 @@ YY_RULE_SETUP
                 } else if ((c >= 'a') && (c <= 'f')) {
                 } else if ((c >= 'a') && (c <= 'f')) {
                     b = (c - 'a' + 10) << 4;
                     b = (c - 'a' + 10) << 4;
                 } else {
                 } else {
-                    // impossible condition
+                    /* impossible condition */
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                 }
                 }
                 pos++;
                 pos++;
@@ -2144,19 +2146,19 @@ YY_RULE_SETUP
                 } else if ((c >= 'a') && (c <= 'f')) {
                 } else if ((c >= 'a') && (c <= 'f')) {
                     b |= c - 'a' + 10;
                     b |= c - 'a' + 10;
                 } else {
                 } else {
-                    // impossible condition
+                    /* impossible condition */
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                 }
                 }
                 decoded.push_back(static_cast<char>(b & 0xff));
                 decoded.push_back(static_cast<char>(b & 0xff));
                 break;
                 break;
             default:
             default:
-                // impossible condition
+                /* impossible condition */
                 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
                 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
             }
             }
             break;
             break;
         default:
         default:
             if ((c >= 0) && (c < 0x20)) {
             if ((c >= 0) && (c < 0x20)) {
-                // impossible condition
+                /* impossible condition */
                 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
                 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
             }
             }
             decoded.push_back(c);
             decoded.push_back(c);
@@ -2169,85 +2171,85 @@ YY_RULE_SETUP
 case 39:
 case 39:
 /* rule 39 can match eol */
 /* rule 39 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 503 "agent_lexer.ll"
+#line 505 "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));
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 40:
 case 40:
 /* rule 40 can match eol */
 /* rule 40 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 508 "agent_lexer.ll"
+#line 510 "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));
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 41:
 case 41:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 513 "agent_lexer.ll"
+#line 515 "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));
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 42:
 case 42:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 518 "agent_lexer.ll"
+#line 520 "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 519 "agent_lexer.ll"
+#line 521 "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 520 "agent_lexer.ll"
+#line 522 "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 521 "agent_lexer.ll"
+#line 523 "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 522 "agent_lexer.ll"
+#line 524 "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 523 "agent_lexer.ll"
+#line 525 "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 525 "agent_lexer.ll"
+#line 527 "agent_lexer.ll"
 {
 {
-    // An integer was found.
+    /* An integer was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
     int64_t integer = 0;
     int64_t integer = 0;
     try {
     try {
-        // In substring we want to use negative values (e.g. -1).
-        // In enterprise-id we need to use values up to 0xffffffff.
-        // To cover both of those use cases, we need at least
-        // int64_t.
+        /* In substring we want to use negative values (e.g. -1).
+           In enterprise-id we need to use values up to 0xffffffff.
+           To cover both of those use cases, we need at least
+           int64_t. */
         integer = boost::lexical_cast<int64_t>(tmp);
         integer = boost::lexical_cast<int64_t>(tmp);
     } catch (const boost::bad_lexical_cast &) {
     } catch (const boost::bad_lexical_cast &) {
         driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
         driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
     }
     }
 
 
-    // The parser needs the string form as double conversion is no lossless
+    /* The parser needs the string form as double conversion is no lossless */
     return AgentParser::make_INTEGER(integer, driver.loc_);
     return AgentParser::make_INTEGER(integer, driver.loc_);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 49:
 case 49:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 543 "agent_lexer.ll"
+#line 545 "agent_lexer.ll"
 {
 {
-    // A floating point was found.
+    /* A floating point was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
     double fp = 0.0;
     double fp = 0.0;
     try {
     try {
@@ -2261,7 +2263,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 50:
 case 50:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 556 "agent_lexer.ll"
+#line 558 "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_);
@@ -2269,33 +2271,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 51:
 case 51:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 561 "agent_lexer.ll"
+#line 563 "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 565 "agent_lexer.ll"
+#line 567 "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 567 "agent_lexer.ll"
+#line 569 "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 569 "agent_lexer.ll"
+#line 571 "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 571 "agent_lexer.ll"
+#line 573 "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 573 "agent_lexer.ll"
+#line 575 "agent_lexer.ll"
 {
 {
     if (driver.states_.empty()) {
     if (driver.states_.empty()) {
         return AgentParser::make_END(driver.loc_);
         return AgentParser::make_END(driver.loc_);
@@ -2321,10 +2323,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 	YY_BREAK
 case 56:
 case 56:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 596 "agent_lexer.ll"
+#line 598 "agent_lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 2327 "agent_lexer.cc"
+#line 2329 "agent_lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -3425,7 +3427,7 @@ void agent_free (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 596 "agent_lexer.ll"
+#line 598 "agent_lexer.ll"
 
 
 
 
 using namespace isc::dhcp;
 using namespace isc::dhcp;
@@ -3444,7 +3446,7 @@ ParserContext::scanStringBegin(const std::string& str, ParserType parser_type)
     buffer = agent__scan_bytes(str.c_str(), str.size());
     buffer = agent__scan_bytes(str.c_str(), str.size());
     if (!buffer) {
     if (!buffer) {
         fatal("cannot scan string");
         fatal("cannot scan string");
-        // fatal() throws an exception so this can't be reached
+        /* fatal() throws an exception so this can't be reached */
     }
     }
 }
 }
 
 
@@ -3462,7 +3464,7 @@ ParserContext::scanFileBegin(FILE * f,
     yy_flex_debug = trace_scanning_;
     yy_flex_debug = trace_scanning_;
     YY_BUFFER_STATE buffer;
     YY_BUFFER_STATE buffer;
 
 
-    // See dhcp6_lexer.cc header for available definitions
+    /* See agent_lexer.cc header for available definitions */
     buffer = agent__create_buffer(f, 65536 /*buffer size*/);
     buffer = agent__create_buffer(f, 65536 /*buffer size*/);
     if (!buffer) {
     if (!buffer) {
         fatal("cannot scan file " + filename);
         fatal("cannot scan file " + filename);
@@ -3476,7 +3478,7 @@ ParserContext::scanEnd() {
         fclose(sfile_);
         fclose(sfile_);
     sfile_ = 0;
     sfile_ = 0;
     static_cast<void>(agent_lex_destroy());
     static_cast<void>(agent_lex_destroy());
-    // Close files
+    /* Close files */
     while (!sfiles_.empty()) {
     while (!sfiles_.empty()) {
         FILE* f = sfiles_.back();
         FILE* f = sfiles_.back();
         if (f) {
         if (f) {
@@ -3484,7 +3486,7 @@ ParserContext::scanEnd() {
         }
         }
         sfiles_.pop_back();
         sfiles_.pop_back();
     }
     }
-    // Delete states
+    /* Delete states */
     while (!states_.empty()) {
     while (!states_.empty()) {
         agent__delete_buffer(states_.back());
         agent__delete_buffer(states_.back());
         states_.pop_back();
         states_.pop_back();
@@ -3521,9 +3523,9 @@ ParserContext::includeFile(const std::string& filename) {
 }
 }
 
 
 namespace {
 namespace {
-/// To avoid unused function error
+/** To avoid unused function error */
 class Dummy {
 class Dummy {
-    // cppcheck-suppress unusedPrivateFunction
+    /* cppcheck-suppress unusedPrivateFunction */
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 };
 }
 }

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

@@ -1,4 +1,4 @@
-// Generated 201704181958
+// Generated 201705171457
 // 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 201704181958
+// Generated 201705171457
 // 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 201704181958
+// Generated 201705171457
 // 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++

+ 124 - 122
src/bin/d2/d2_lexer.cc

@@ -1265,12 +1265,12 @@ int d2_parser__flex_debug = 1;
 
 
 static const flex_int16_t yy_rule_linenum[61] =
 static const flex_int16_t yy_rule_linenum[61] =
     {   0,
     {   0,
-      127,  129,  131,  136,  137,  142,  143,  144,  156,  159,
-      164,  170,  179,  190,  201,  210,  219,  228,  238,  248,
-      258,  267,  276,  286,  296,  306,  317,  326,  336,  346,
-      357,  366,  375,  384,  393,  402,  411,  420,  433,  442,
-      451,  460,  470,  568,  573,  578,  583,  584,  585,  586,
-      587,  588,  590,  608,  621,  626,  630,  632,  634,  636
+      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,  472,  570,  575,  580,  585,  586,  587,  588,
+      589,  590,  592,  610,  623,  628,  632,  634,  636,  638
     } ;
     } ;
 
 
 /* The intent behind this definition is that it'll catch
 /* The intent behind this definition is that it'll catch
@@ -1297,10 +1297,12 @@ char *d2_parser_text;
 #include <boost/lexical_cast.hpp>
 #include <boost/lexical_cast.hpp>
 #include <exceptions/exceptions.h>
 #include <exceptions/exceptions.h>
 
 
-// Work around an incompatibility in flex (at least versions
-// 2.5.31 through 2.5.33): it generates code that does
-// not conform to C89.  See Debian bug 333231
-// <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.
+/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
+
+/* Work around an incompatibility in flex (at least versions
+   2.5.31 through 2.5.33): it generates code that does
+   not conform to C89.  See Debian bug 333231
+   <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
 # undef yywrap
 # undef yywrap
 # define yywrap() 1
 # define yywrap() 1
 
 
@@ -1313,9 +1315,9 @@ 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 1318 "d2_lexer.cc"
+#line 1320 "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
@@ -1336,13 +1338,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 86 "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.
+#line 88 "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);
 #define YY_USER_ACTION  driver.loc_.columns(yyleng);
-#line 1344 "d2_lexer.cc"
-#line 1345 "d2_lexer.cc"
+#line 1346 "d2_lexer.cc"
+#line 1347 "d2_lexer.cc"
 
 
 #define INITIAL 0
 #define INITIAL 0
 #define COMMENT 1
 #define COMMENT 1
@@ -1624,16 +1626,16 @@ YY_DECL
 
 
 	{
 	{
 /* %% [7.0] user's declarations go here */
 /* %% [7.0] user's declarations go here */
-#line 92 "d2_lexer.ll"
+#line 94 "d2_lexer.ll"
 
 
 
 
 
 
-#line 96 "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
+#line 98 "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 */
 
 
-    // Code run each time yylex is called.
+    /* Code run each time yylex is called. */
     driver.loc_.step();
     driver.loc_.step();
 
 
     if (start_token_flag) {
     if (start_token_flag) {
@@ -1660,7 +1662,7 @@ YY_DECL
     }
     }
 
 
 
 
-#line 1663 "d2_lexer.cc"
+#line 1665 "d2_lexer.cc"
 
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
 		{
@@ -1738,17 +1740,17 @@ do_action:	/* This label is used only to access EOF actions. */
 
 
 case 1:
 case 1:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 127 "d2_lexer.ll"
+#line 129 "d2_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 2:
 case 2:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 129 "d2_lexer.ll"
+#line 131 "d2_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case 3:
 case 3:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 131 "d2_lexer.ll"
+#line 133 "d2_lexer.ll"
 {
 {
   BEGIN(COMMENT);
   BEGIN(COMMENT);
   comment_start_line = driver.loc_.end.line;;
   comment_start_line = driver.loc_.end.line;;
@@ -1756,37 +1758,37 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 4:
 case 4:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 136 "d2_lexer.ll"
+#line 138 "d2_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 5:
 case 5:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 137 "d2_lexer.ll"
+#line 139 "d2_lexer.ll"
 ;
 ;
 	YY_BREAK
 	YY_BREAK
 case YY_STATE_EOF(COMMENT):
 case YY_STATE_EOF(COMMENT):
-#line 138 "d2_lexer.ll"
+#line 140 "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 142 "d2_lexer.ll"
+#line 144 "d2_lexer.ll"
 BEGIN(DIR_ENTER);
 BEGIN(DIR_ENTER);
 	YY_BREAK
 	YY_BREAK
 case 7:
 case 7:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 143 "d2_lexer.ll"
+#line 145 "d2_lexer.ll"
 BEGIN(DIR_INCLUDE);
 BEGIN(DIR_INCLUDE);
 	YY_BREAK
 	YY_BREAK
 case 8:
 case 8:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 144 "d2_lexer.ll"
+#line 146 "d2_lexer.ll"
 {
 {
-    // Include directive.
+    /* Include directive. */
 
 
-    // Extract the filename.
+    /* Extract the filename. */
     std::string tmp(yytext+1);
     std::string tmp(yytext+1);
     tmp.resize(tmp.size() - 1);
     tmp.resize(tmp.size() - 1);
 
 
@@ -1796,37 +1798,37 @@ 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 153 "d2_lexer.ll"
+#line 155 "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 156 "d2_lexer.ll"
+#line 158 "d2_lexer.ll"
 BEGIN(INITIAL);
 BEGIN(INITIAL);
 	YY_BREAK
 	YY_BREAK
 case 10:
 case 10:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 159 "d2_lexer.ll"
+#line 161 "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();
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 11:
 case 11:
 /* rule 11 can match eol */
 /* rule 11 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 164 "d2_lexer.ll"
+#line 166 "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);
     driver.loc_.step();
     driver.loc_.step();
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 12:
 case 12:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 170 "d2_lexer.ll"
+#line 172 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -1838,7 +1840,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 13:
 case 13:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 179 "d2_lexer.ll"
+#line 181 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1852,7 +1854,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 14:
 case 14:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 190 "d2_lexer.ll"
+#line 192 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1866,7 +1868,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 15:
 case 15:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 201 "d2_lexer.ll"
+#line 203 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1878,7 +1880,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 16:
 case 16:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 210 "d2_lexer.ll"
+#line 212 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1890,7 +1892,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 17:
 case 17:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 219 "d2_lexer.ll"
+#line 221 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1902,7 +1904,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 18:
 case 18:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 228 "d2_lexer.ll"
+#line 230 "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) {
@@ -1915,7 +1917,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 19:
 case 19:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 238 "d2_lexer.ll"
+#line 240 "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) {
@@ -1928,7 +1930,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 20:
 case 20:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 248 "d2_lexer.ll"
+#line 250 "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) {
@@ -1941,7 +1943,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 21:
 case 21:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 258 "d2_lexer.ll"
+#line 260 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1953,7 +1955,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 22:
 case 22:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 267 "d2_lexer.ll"
+#line 269 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -1965,7 +1967,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 23:
 case 23:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 276 "d2_lexer.ll"
+#line 278 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::FORWARD_DDNS:
     case isc::d2::D2ParserContext::FORWARD_DDNS:
@@ -1978,7 +1980,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 24:
 case 24:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 286 "d2_lexer.ll"
+#line 288 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
@@ -1991,7 +1993,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 25:
 case 25:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 296 "d2_lexer.ll"
+#line 298 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
     case isc::d2::D2ParserContext::DDNS_DOMAIN:
@@ -2004,7 +2006,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 26:
 case 26:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 306 "d2_lexer.ll"
+#line 308 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DNS_SERVER:
     case isc::d2::D2ParserContext::DNS_SERVER:
@@ -2017,7 +2019,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 27:
 case 27:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 317 "d2_lexer.ll"
+#line 319 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::DHCPDDNS:
     case isc::d2::D2ParserContext::DHCPDDNS:
@@ -2029,7 +2031,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 28:
 case 28:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 326 "d2_lexer.ll"
+#line 328 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -2042,7 +2044,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 29:
 case 29:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 336 "d2_lexer.ll"
+#line 338 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -2055,7 +2057,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 30:
 case 30:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 346 "d2_lexer.ll"
+#line 348 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::TSIG_KEY:
     case isc::d2::D2ParserContext::TSIG_KEY:
@@ -2068,7 +2070,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 31:
 case 31:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 357 "d2_lexer.ll"
+#line 359 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -2080,7 +2082,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 32:
 case 32:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 366 "d2_lexer.ll"
+#line 368 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGING:
     case isc::d2::D2ParserContext::LOGGING:
@@ -2092,7 +2094,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 33:
 case 33:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 375 "d2_lexer.ll"
+#line 377 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -2104,7 +2106,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 34:
 case 34:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 384 "d2_lexer.ll"
+#line 386 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -2116,7 +2118,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 35:
 case 35:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 393 "d2_lexer.ll"
+#line 395 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -2128,7 +2130,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 36:
 case 36:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 402 "d2_lexer.ll"
+#line 404 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -2140,7 +2142,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 37:
 case 37:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 411 "d2_lexer.ll"
+#line 413 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
     case isc::d2::D2ParserContext::OUTPUT_OPTIONS:
@@ -2152,7 +2154,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 38:
 case 38:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 420 "d2_lexer.ll"
+#line 422 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -2168,7 +2170,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 39:
 case 39:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 433 "d2_lexer.ll"
+#line 435 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -2180,7 +2182,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 40:
 case 40:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 442 "d2_lexer.ll"
+#line 444 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::LOGGERS:
     case isc::d2::D2ParserContext::LOGGERS:
@@ -2192,7 +2194,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 41:
 case 41:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 451 "d2_lexer.ll"
+#line 453 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -2204,7 +2206,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 42:
 case 42:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 460 "d2_lexer.ll"
+#line 462 "d2_lexer.ll"
 {
 {
     switch(driver.ctx_) {
     switch(driver.ctx_) {
     case isc::d2::D2ParserContext::CONFIG:
     case isc::d2::D2ParserContext::CONFIG:
@@ -2216,11 +2218,11 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 43:
 case 43:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 470 "d2_lexer.ll"
+#line 472 "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.
-    // for 'foo' we should get foo
+    /* 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.
+       for 'foo' we should get foo */
     std::string raw(yytext+1);
     std::string raw(yytext+1);
     size_t len = raw.size() - 1;
     size_t len = raw.size() - 1;
     raw.resize(len);
     raw.resize(len);
@@ -2231,12 +2233,12 @@ YY_RULE_SETUP
         char c = raw[pos];
         char c = raw[pos];
         switch (c) {
         switch (c) {
         case '"':
         case '"':
-            // impossible condition
+            /* impossible condition */
             driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
             driver.error(driver.loc_, "Bad quote in \"" + raw + "\"");
         case '\\':
         case '\\':
             ++pos;
             ++pos;
             if (pos >= len) {
             if (pos >= len) {
-                // impossible condition
+                /* impossible condition */
                 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
                 driver.error(driver.loc_, "Overflow escape in \"" + raw + "\"");
             }
             }
             c = raw[pos];
             c = raw[pos];
@@ -2262,10 +2264,10 @@ YY_RULE_SETUP
                 decoded.push_back('\t');
                 decoded.push_back('\t');
                 break;
                 break;
             case 'u':
             case 'u':
-                // support only \u0000 to \u00ff
+                /* support only \u0000 to \u00ff */
                 ++pos;
                 ++pos;
                 if (pos + 4 > len) {
                 if (pos + 4 > len) {
-                    // impossible condition
+                    /* impossible condition */
                     driver.error(driver.loc_,
                     driver.error(driver.loc_,
                                  "Overflow unicode escape in \"" + raw + "\"");
                                  "Overflow unicode escape in \"" + raw + "\"");
                 }
                 }
@@ -2281,7 +2283,7 @@ YY_RULE_SETUP
                 } else if ((c >= 'a') && (c <= 'f')) {
                 } else if ((c >= 'a') && (c <= 'f')) {
                     b = (c - 'a' + 10) << 4;
                     b = (c - 'a' + 10) << 4;
                 } else {
                 } else {
-                    // impossible condition
+                    /* impossible condition */
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                 }
                 }
                 pos++;
                 pos++;
@@ -2293,19 +2295,19 @@ YY_RULE_SETUP
                 } else if ((c >= 'a') && (c <= 'f')) {
                 } else if ((c >= 'a') && (c <= 'f')) {
                     b |= c - 'a' + 10;
                     b |= c - 'a' + 10;
                 } else {
                 } else {
-                    // impossible condition
+                    /* impossible condition */
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                     driver.error(driver.loc_, "Not hexadecimal in unicode escape in \"" + raw + "\"");
                 }
                 }
                 decoded.push_back(static_cast<char>(b & 0xff));
                 decoded.push_back(static_cast<char>(b & 0xff));
                 break;
                 break;
             default:
             default:
-                // impossible condition
+                /* impossible condition */
                 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
                 driver.error(driver.loc_, "Bad escape in \"" + raw + "\"");
             }
             }
             break;
             break;
         default:
         default:
             if ((c >= 0) && (c < 0x20)) {
             if ((c >= 0) && (c < 0x20)) {
-                // impossible condition
+                /* impossible condition */
                 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
                 driver.error(driver.loc_, "Invalid control in \"" + raw + "\"");
             }
             }
             decoded.push_back(c);
             decoded.push_back(c);
@@ -2318,85 +2320,85 @@ YY_RULE_SETUP
 case 44:
 case 44:
 /* rule 44 can match eol */
 /* rule 44 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 568 "d2_lexer.ll"
+#line 570 "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));
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 45:
 case 45:
 /* rule 45 can match eol */
 /* rule 45 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 573 "d2_lexer.ll"
+#line 575 "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));
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 46:
 case 46:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 578 "d2_lexer.ll"
+#line 580 "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));
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 47:
 case 47:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 583 "d2_lexer.ll"
+#line 585 "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 48:
 case 48:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 584 "d2_lexer.ll"
+#line 586 "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 49:
 case 49:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 585 "d2_lexer.ll"
+#line 587 "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 50:
 case 50:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 586 "d2_lexer.ll"
+#line 588 "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 51:
 case 51:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 587 "d2_lexer.ll"
+#line 589 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_COMMA(driver.loc_); }
 { return isc::d2::D2Parser::make_COMMA(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 52:
 case 52:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 588 "d2_lexer.ll"
+#line 590 "d2_lexer.ll"
 { return isc::d2::D2Parser::make_COLON(driver.loc_); }
 { return isc::d2::D2Parser::make_COLON(driver.loc_); }
 	YY_BREAK
 	YY_BREAK
 case 53:
 case 53:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 590 "d2_lexer.ll"
+#line 592 "d2_lexer.ll"
 {
 {
-    // An integer was found.
+    /* An integer was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
     int64_t integer = 0;
     int64_t integer = 0;
     try {
     try {
-        // In substring we want to use negative values (e.g. -1).
-        // In enterprise-id we need to use values up to 0xffffffff.
-        // To cover both of those use cases, we need at least
-        // int64_t.
+        /* In substring we want to use negative values (e.g. -1).
+           In enterprise-id we need to use values up to 0xffffffff.
+           To cover both of those use cases, we need at least
+           int64_t. */
         integer = boost::lexical_cast<int64_t>(tmp);
         integer = boost::lexical_cast<int64_t>(tmp);
     } catch (const boost::bad_lexical_cast &) {
     } catch (const boost::bad_lexical_cast &) {
         driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
         driver.error(driver.loc_, "Failed to convert " + tmp + " to an integer.");
     }
     }
 
 
-    // The parser needs the string form as double conversion is no lossless
+    /* The parser needs the string form as double conversion is no lossless */
     return isc::d2::D2Parser::make_INTEGER(integer, driver.loc_);
     return isc::d2::D2Parser::make_INTEGER(integer, driver.loc_);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 54:
 case 54:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 608 "d2_lexer.ll"
+#line 610 "d2_lexer.ll"
 {
 {
-    // A floating point was found.
+    /* A floating point was found. */
     std::string tmp(yytext);
     std::string tmp(yytext);
     double fp = 0.0;
     double fp = 0.0;
     try {
     try {
@@ -2410,7 +2412,7 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 55:
 case 55:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 621 "d2_lexer.ll"
+#line 623 "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_);
@@ -2418,33 +2420,33 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 56:
 case 56:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 626 "d2_lexer.ll"
+#line 628 "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 57:
 case 57:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 630 "d2_lexer.ll"
+#line 632 "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 58:
 case 58:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 632 "d2_lexer.ll"
+#line 634 "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 59:
 case 59:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 634 "d2_lexer.ll"
+#line 636 "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 60:
 case 60:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 636 "d2_lexer.ll"
+#line 638 "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 638 "d2_lexer.ll"
+#line 640 "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_);
@@ -2470,10 +2472,10 @@ case YY_STATE_EOF(INITIAL):
 	YY_BREAK
 	YY_BREAK
 case 61:
 case 61:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 661 "d2_lexer.ll"
+#line 663 "d2_lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 2476 "d2_lexer.cc"
+#line 2478 "d2_lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -3574,7 +3576,7 @@ void d2_parser_free (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 661 "d2_lexer.ll"
+#line 663 "d2_lexer.ll"
 
 
 
 
 using namespace isc::dhcp;
 using namespace isc::dhcp;
@@ -3593,7 +3595,7 @@ D2ParserContext::scanStringBegin(const std::string& str, ParserType parser_type)
     buffer = d2_parser__scan_bytes(str.c_str(), str.size());
     buffer = d2_parser__scan_bytes(str.c_str(), str.size());
     if (!buffer) {
     if (!buffer) {
         fatal("cannot scan string");
         fatal("cannot scan string");
-        // fatal() throws an exception so this can't be reached
+        /* fatal() throws an exception so this can't be reached */
     }
     }
 }
 }
 
 
@@ -3611,7 +3613,7 @@ D2ParserContext::scanFileBegin(FILE * f,
     yy_flex_debug = trace_scanning_;
     yy_flex_debug = trace_scanning_;
     YY_BUFFER_STATE buffer;
     YY_BUFFER_STATE buffer;
 
 
-    // See d2_lexer.cc header for available definitions
+    /* See d2_lexer.cc header for available definitions */
     buffer = d2_parser__create_buffer(f, 65536 /*buffer size*/);
     buffer = d2_parser__create_buffer(f, 65536 /*buffer size*/);
     if (!buffer) {
     if (!buffer) {
         fatal("cannot scan file " + filename);
         fatal("cannot scan file " + filename);
@@ -3625,7 +3627,7 @@ D2ParserContext::scanEnd() {
         fclose(sfile_);
         fclose(sfile_);
     sfile_ = 0;
     sfile_ = 0;
     static_cast<void>(d2_parser_lex_destroy());
     static_cast<void>(d2_parser_lex_destroy());
-    // Close files
+    /* Close files */
     while (!sfiles_.empty()) {
     while (!sfiles_.empty()) {
         FILE* f = sfiles_.back();
         FILE* f = sfiles_.back();
         if (f) {
         if (f) {
@@ -3633,7 +3635,7 @@ D2ParserContext::scanEnd() {
         }
         }
         sfiles_.pop_back();
         sfiles_.pop_back();
     }
     }
-    // Delete states
+    /* Delete states */
     while (!states_.empty()) {
     while (!states_.empty()) {
         d2_parser__delete_buffer(states_.back());
         d2_parser__delete_buffer(states_.back());
         states_.pop_back();
         states_.pop_back();
@@ -3670,9 +3672,9 @@ D2ParserContext::includeFile(const std::string& filename) {
 }
 }
 
 
 namespace {
 namespace {
-/// To avoid unused function error
+/** To avoid unused function error */
 class Dummy {
 class Dummy {
-    // cppcheck-suppress unusedPrivateFunction
+    /* cppcheck-suppress unusedPrivateFunction */
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 };
 }
 }

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

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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 201704181957
+// Generated 201705171457
 // 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 201704181957
+// Generated 201705171457
 // 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
+ 220 - 218
src/bin/dhcp4/dhcp4_lexer.cc


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

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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/dhcp4/position.hh

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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/dhcp4/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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
+ 227 - 225
src/bin/dhcp6/dhcp6_lexer.cc


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

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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/dhcp6/position.hh

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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/dhcp6/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201704181957
+// Generated 201705171457
 // 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++

+ 101 - 99
src/lib/eval/lexer.cc

@@ -805,11 +805,11 @@ int eval_flex_debug = 1;
 
 
 static const flex_int16_t yy_rule_linenum[51] =
 static const flex_int16_t yy_rule_linenum[51] =
     {   0,
     {   0,
-      100,  105,  111,  121,  127,  145,  152,  166,  167,  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
+      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
     } ;
     } ;
 
 
 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
@@ -836,7 +836,7 @@ goto find_rule; \
 #define YY_RESTORE_YY_MORE_OFFSET
 #define YY_RESTORE_YY_MORE_OFFSET
 char *evaltext;
 char *evaltext;
 #line 1 "lexer.ll"
 #line 1 "lexer.ll"
-/* Copyright (C) 2015-2016 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2015-2017 Internet Systems Consortium, Inc. ("ISC")
 
 
    This Source Code Form is subject to the terms of the Mozilla Public
    This Source Code Form is subject to the terms of the Mozilla Public
    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
@@ -851,15 +851,17 @@ char *evaltext;
 #include <asiolink/io_address.h>
 #include <asiolink/io_address.h>
 #include <boost/lexical_cast.hpp>
 #include <boost/lexical_cast.hpp>
 
 
-// Work around an incompatibility in flex (at least versions
-// 2.5.31 through 2.5.33): it generates code that does
-// not conform to C89.  See Debian bug 333231
-// <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>.
+/* Please avoid C++ style comments (// ... eol) as they break flex 2.6.2 */
+
+/* Work around an incompatibility in flex (at least versions
+   2.5.31 through 2.5.33): it generates code that does
+   not conform to C89.  See Debian bug 333231
+   <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=333231>. */
 # undef yywrap
 # undef yywrap
 # define yywrap() 1
 # define yywrap() 1
 
 
-// The location of the current token. The lexer will keep updating it. This
-// variable will be useful for logging errors.
+/* The location of the current token. The lexer will keep updating it. This
+   variable will be useful for logging errors. */
 static isc::eval::location loc;
 static isc::eval::location loc;
 
 
 namespace {
 namespace {
@@ -867,9 +869,9 @@ namespace {
     isc::eval::EvalContext::ParserType start_token_value;
     isc::eval::EvalContext::ParserType start_token_value;
 };
 };
 
 
-// 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 872 "lexer.cc"
+#line 874 "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
@@ -889,13 +891,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 74 "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.
+#line 76 "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);
 #define YY_USER_ACTION  loc.columns(evalleng);
-#line 897 "lexer.cc"
-#line 898 "lexer.cc"
+#line 899 "lexer.cc"
+#line 900 "lexer.cc"
 
 
 #define INITIAL 0
 #define INITIAL 0
 
 
@@ -1179,12 +1181,12 @@ YY_DECL
 
 
 	{
 	{
 /* %% [7.0] user's declarations go here */
 /* %% [7.0] user's declarations go here */
-#line 80 "lexer.ll"
+#line 82 "lexer.ll"
 
 
 
 
 
 
-#line 84 "lexer.ll"
-    // Code run each time evallex is called.
+#line 86 "lexer.ll"
+    /* Code run each time evallex is called. */
     loc.step();
     loc.step();
 
 
     if (start_token_flag) {
     if (start_token_flag) {
@@ -1200,7 +1202,7 @@ YY_DECL
 
 
 
 
 
 
-#line 1203 "lexer.cc"
+#line 1205 "lexer.cc"
 
 
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
 		{
 		{
@@ -1315,29 +1317,29 @@ 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 100 "lexer.ll"
+#line 102 "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();
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 2:
 case 2:
 /* rule 2 can match eol */
 /* rule 2 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 105 "lexer.ll"
+#line 107 "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);
     loc.step();
     loc.step();
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 3:
 case 3:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 111 "lexer.ll"
+#line 113 "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.
-    // for 'foo' we should get foo
+    /* 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.
+       for 'foo' we should get foo */
     std::string tmp(evaltext+1);
     std::string tmp(evaltext+1);
     tmp.resize(tmp.size() - 1);
     tmp.resize(tmp.size() - 1);
 
 
@@ -1346,53 +1348,53 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 4:
 case 4:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 121 "lexer.ll"
+#line 123 "lexer.ll"
 {
 {
-    // A hex string has been matched. It contains the '0x' or '0X' header
-    // followed by at least one hexadecimal digit.
+    /* A hex string has been matched. It contains the '0x' or '0X' header
+       followed by at least one hexadecimal digit. */
     return isc::eval::EvalParser::make_HEXSTRING(evaltext, loc);
     return isc::eval::EvalParser::make_HEXSTRING(evaltext, loc);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 5:
 case 5:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 127 "lexer.ll"
+#line 129 "lexer.ll"
 {
 {
-    // An integer was found.
+    /* An integer was found. */
     std::string tmp(evaltext);
     std::string tmp(evaltext);
 
 
     try {
     try {
-        // In substring we want to use negative values (e.g. -1).
-        // In enterprise-id we need to use values up to 0xffffffff.
-        // To cover both of those use cases, we need at least
-        // int64_t.
+        /* In substring we want to use negative values (e.g. -1).
+           In enterprise-id we need to use values up to 0xffffffff.
+           To cover both of those use cases, we need at least
+           int64_t. */
         static_cast<void>(boost::lexical_cast<int64_t>(tmp));
         static_cast<void>(boost::lexical_cast<int64_t>(tmp));
     } catch (const boost::bad_lexical_cast &) {
     } catch (const boost::bad_lexical_cast &) {
         driver.error(loc, "Failed to convert " + tmp + " to an integer.");
         driver.error(loc, "Failed to convert " + tmp + " to an integer.");
     }
     }
 
 
-    // The parser needs the string form as double conversion is no lossless
+    /* The parser needs the string form as double conversion is no lossless */
     return isc::eval::EvalParser::make_INTEGER(tmp, loc);
     return isc::eval::EvalParser::make_INTEGER(tmp, loc);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 6:
 case 6:
 /* rule 6 can match eol */
 /* rule 6 can match eol */
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 145 "lexer.ll"
+#line 147 "lexer.ll"
 {
 {
-    // This string specifies option name starting with a letter
-    // and further containing letters, digits, hyphens and
-    // underscores and finishing by letters or digits.
+    /* This string specifies option name starting with a letter
+       and further containing letters, digits, hyphens and
+       underscores and finishing by letters or digits. */
     return isc::eval::EvalParser::make_OPTION_NAME(evaltext, loc);
     return isc::eval::EvalParser::make_OPTION_NAME(evaltext, loc);
 }
 }
 	YY_BREAK
 	YY_BREAK
 case 7:
 case 7:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 152 "lexer.ll"
+#line 154 "lexer.ll"
 {
 {
-    // IPv4 or IPv6 address
+    /* IPv4 or IPv6 address */
     std::string tmp(evaltext);
     std::string tmp(evaltext);
 
 
-    // Some incorrect addresses can match so we have to check.
+    /* Some incorrect addresses can match so we have to check. */
     try {
     try {
         isc::asiolink::IOAddress ip(tmp);
         isc::asiolink::IOAddress ip(tmp);
     } catch (...) {
     } catch (...) {
@@ -1404,229 +1406,229 @@ YY_RULE_SETUP
 	YY_BREAK
 	YY_BREAK
 case 8:
 case 8:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 166 "lexer.ll"
+#line 168 "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 167 "lexer.ll"
+#line 169 "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 168 "lexer.ll"
+#line 170 "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 169 "lexer.ll"
+#line 171 "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 170 "lexer.ll"
+#line 172 "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 171 "lexer.ll"
+#line 173 "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 172 "lexer.ll"
+#line 174 "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 173 "lexer.ll"
+#line 175 "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 174 "lexer.ll"
+#line 176 "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 175 "lexer.ll"
+#line 177 "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 176 "lexer.ll"
+#line 178 "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 177 "lexer.ll"
+#line 179 "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 178 "lexer.ll"
+#line 180 "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 179 "lexer.ll"
+#line 181 "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 180 "lexer.ll"
+#line 182 "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 181 "lexer.ll"
+#line 183 "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 182 "lexer.ll"
+#line 184 "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 183 "lexer.ll"
+#line 185 "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 184 "lexer.ll"
+#line 186 "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 185 "lexer.ll"
+#line 187 "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 186 "lexer.ll"
+#line 188 "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 187 "lexer.ll"
+#line 189 "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 188 "lexer.ll"
+#line 190 "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 189 "lexer.ll"
+#line 191 "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 190 "lexer.ll"
+#line 192 "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 191 "lexer.ll"
+#line 193 "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 192 "lexer.ll"
+#line 194 "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 193 "lexer.ll"
+#line 195 "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 194 "lexer.ll"
+#line 196 "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 195 "lexer.ll"
+#line 197 "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 196 "lexer.ll"
+#line 198 "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 197 "lexer.ll"
+#line 199 "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 198 "lexer.ll"
+#line 200 "lexer.ll"
 return isc::eval::EvalParser::make_NOT(loc);
 return isc::eval::EvalParser::make_NOT(loc);
 	YY_BREAK
 	YY_BREAK
 case 41:
 case 41:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 199 "lexer.ll"
+#line 201 "lexer.ll"
 return isc::eval::EvalParser::make_AND(loc);
 return isc::eval::EvalParser::make_AND(loc);
 	YY_BREAK
 	YY_BREAK
 case 42:
 case 42:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 200 "lexer.ll"
+#line 202 "lexer.ll"
 return isc::eval::EvalParser::make_OR(loc);
 return isc::eval::EvalParser::make_OR(loc);
 	YY_BREAK
 	YY_BREAK
 case 43:
 case 43:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 201 "lexer.ll"
+#line 203 "lexer.ll"
 return isc::eval::EvalParser::make_DOT(loc);
 return isc::eval::EvalParser::make_DOT(loc);
 	YY_BREAK
 	YY_BREAK
 case 44:
 case 44:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 202 "lexer.ll"
+#line 204 "lexer.ll"
 return isc::eval::EvalParser::make_LPAREN(loc);
 return isc::eval::EvalParser::make_LPAREN(loc);
 	YY_BREAK
 	YY_BREAK
 case 45:
 case 45:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 203 "lexer.ll"
+#line 205 "lexer.ll"
 return isc::eval::EvalParser::make_RPAREN(loc);
 return isc::eval::EvalParser::make_RPAREN(loc);
 	YY_BREAK
 	YY_BREAK
 case 46:
 case 46:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 204 "lexer.ll"
+#line 206 "lexer.ll"
 return isc::eval::EvalParser::make_LBRACKET(loc);
 return isc::eval::EvalParser::make_LBRACKET(loc);
 	YY_BREAK
 	YY_BREAK
 case 47:
 case 47:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 205 "lexer.ll"
+#line 207 "lexer.ll"
 return isc::eval::EvalParser::make_RBRACKET(loc);
 return isc::eval::EvalParser::make_RBRACKET(loc);
 	YY_BREAK
 	YY_BREAK
 case 48:
 case 48:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 206 "lexer.ll"
+#line 208 "lexer.ll"
 return isc::eval::EvalParser::make_COMA(loc);
 return isc::eval::EvalParser::make_COMA(loc);
 	YY_BREAK
 	YY_BREAK
 case 49:
 case 49:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 207 "lexer.ll"
+#line 209 "lexer.ll"
 return isc::eval::EvalParser::make_ANY(loc);
 return isc::eval::EvalParser::make_ANY(loc);
 	YY_BREAK
 	YY_BREAK
 case 50:
 case 50:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 208 "lexer.ll"
+#line 210 "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 209 "lexer.ll"
+#line 211 "lexer.ll"
 return isc::eval::EvalParser::make_END(loc);
 return isc::eval::EvalParser::make_END(loc);
 	YY_BREAK
 	YY_BREAK
 case 51:
 case 51:
 YY_RULE_SETUP
 YY_RULE_SETUP
-#line 210 "lexer.ll"
+#line 212 "lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 1629 "lexer.cc"
+#line 1631 "lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -2707,7 +2709,7 @@ void evalfree (void * ptr )
 
 
 /* %ok-for-header */
 /* %ok-for-header */
 
 
-#line 210 "lexer.ll"
+#line 212 "lexer.ll"
 
 
 
 
 using namespace isc::eval;
 using namespace isc::eval;
@@ -2724,7 +2726,7 @@ EvalContext::scanStringBegin(ParserType type)
     buffer = eval_scan_bytes(string_.c_str(), string_.size());
     buffer = eval_scan_bytes(string_.c_str(), string_.size());
     if (!buffer) {
     if (!buffer) {
         fatal("cannot scan string");
         fatal("cannot scan string");
-        // fatal() throws an exception so this can't be reached
+        /* fatal() throws an exception so this can't be reached */
     }
     }
 }
 }
 
 
@@ -2735,9 +2737,9 @@ EvalContext::scanStringEnd()
 }
 }
 
 
 namespace {
 namespace {
-/// To avoid unused function error
+/** To avoid unused function error */
 class Dummy {
 class Dummy {
-    // cppcheck-suppress unusedPrivateFunction
+    /* cppcheck-suppress unusedPrivateFunction */
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
     void dummy() { yy_fatal_error("Fix me: how to disable its definition?"); }
 };
 };
 }
 }

+ 1 - 1
src/lib/eval/location.hh

@@ -1,4 +1,4 @@
-// Generated 201704031753
+// Generated 201705171457
 // 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/lib/eval/position.hh

@@ -1,4 +1,4 @@
-// Generated 201704031753
+// Generated 201705171457
 // 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/lib/eval/stack.hh

@@ -1,4 +1,4 @@
-// Generated 201704031753
+// Generated 201705171457
 // 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++