Browse Source

[4264] Parser files regenerated.

Tomek Mrugalski 9 years ago
parent
commit
f4adfa66b1
3 changed files with 115 additions and 106 deletions
  1. 80 78
      src/lib/eval/lexer.cc
  2. 31 24
      src/lib/eval/parser.cc
  3. 4 4
      src/lib/eval/parser.h

+ 80 - 78
src/lib/eval/lexer.cc

@@ -486,7 +486,7 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	flex_int32_t yy_nxt;
 	};
 	};
-static yyconst flex_int16_t yy_acclist[98] =
+static yyconst flex_int16_t yy_acclist[99] =
     {   0,
     {   0,
        22,   20,   21,    1,   20,   21,    2,   21,   20,   21,
        22,   20,   21,    1,   20,   21,    2,   21,   20,   21,
        15,   20,   21,   16,   20,   21,   19,   20,   21,   20,
        15,   20,   21,   16,   20,   21,   19,   20,   21,   20,
@@ -496,20 +496,20 @@ static yyconst flex_int16_t yy_acclist[98] =
        20,   21,16390,   20,   21,16390,   20,   21,16390,    1,
        20,   21,16390,   20,   21,16390,   20,   21,16390,    1,
         2,    3,    5,    7,16390, 8198,16390,16390,16390,16390,
         2,    3,    5,    7,16390, 8198,16390,16390,16390,16390,
     16390,16390,    4,   13,16390,   10,16390,16390,16390,16390,
     16390,16390,    4,   13,16390,   10,16390,16390,16390,16390,
-    16390,16390,16390,16390,    9,16390,16390,   12,16390,16390,
+    16390,16390,16390,16390,    9,16390,16390,16390,16390,    8,
-        8,16390,16390,16390,16390,   11,16390
+    16390,   12,16390,16390,16390,16390,   11,16390
 
 
     } ;
     } ;
 
 
-static yyconst flex_int16_t yy_accept[63] =
+static yyconst flex_int16_t yy_accept[64] =
     {   0,
     {   0,
         1,    1,    1,    2,    4,    7,    9,   11,   14,   17,
         1,    1,    1,    2,    4,    7,    9,   11,   14,   17,
        20,   22,   25,   28,   31,   33,   36,   39,   42,   45,
        20,   22,   25,   28,   31,   33,   36,   39,   42,   45,
        48,   51,   54,   57,   60,   61,   62,   62,   63,   64,
        48,   51,   54,   57,   60,   61,   62,   62,   63,   64,
        64,   65,   65,   65,   66,   67,   68,   69,   70,   71,
        64,   65,   65,   65,   66,   67,   68,   69,   70,   71,
        72,   73,   74,   76,   78,   79,   80,   81,   82,   83,
        72,   73,   74,   76,   78,   79,   80,   81,   82,   83,
-       84,   85,   87,   88,   90,   91,   93,   94,   95,   96,
+       84,   85,   87,   88,   89,   90,   92,   94,   95,   96,
-       98,   98
+       97,   99,   99
     } ;
     } ;
 
 
 static yyconst flex_int32_t yy_ec[256] =
 static yyconst flex_int32_t yy_ec[256] =
@@ -519,15 +519,15 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    2,    1,    1,    1,    1,    1,    1,    4,    5,
         1,    2,    1,    1,    1,    1,    1,    1,    4,    5,
         6,    1,    1,    7,    8,    9,    1,   10,   11,   11,
         6,    1,    1,    7,    8,    9,    1,   10,   11,   11,
-       11,   11,   11,   11,   11,   11,   11,    1,    1,    1,
+       11,   12,   11,   11,   11,   11,   11,    1,    1,    1,
-       12,    1,    1,    1,   13,   13,   13,   13,   13,   13,
+       13,    1,    1,    1,   14,   14,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   14,   14,   14,
+       15,   15,   15,   15,   15,   15,   15,   15,   15,   15,
-       14,   14,   14,   14,   14,   14,   14,   15,   14,   14,
+       15,   15,   15,   15,   15,   15,   15,   16,   15,   15,
-       16,    1,   17,    1,   18,    1,   19,   20,   13,   13,
+       17,    1,   18,    1,   19,    1,   20,   21,   14,   14,
-
+
-       21,   13,   22,   23,   24,   14,   14,   25,   14,   26,
+       22,   14,   23,   24,   25,   15,   15,   26,   15,   27,
-       27,   28,   14,   29,   30,   31,   32,   14,   14,   33,
+       28,   29,   15,   30,   31,   32,   33,   15,   15,   34,
-       34,   14,    1,    1,    1,    1,    1,    1,    1,    1,
+       35,   15,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -544,78 +544,80 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
         1,    1,    1,    1,    1
     } ;
     } ;
 
 
-static yyconst flex_int32_t yy_meta[35] =
+static yyconst flex_int32_t yy_meta[36] =
     {   0,
     {   0,
         1,    2,    3,    1,    1,    1,    1,    2,    1,    4,
         1,    2,    3,    1,    1,    1,    1,    2,    1,    4,
-        4,    1,    4,    2,    2,    1,    2,    2,    4,    4,
+        4,    4,    1,    4,    2,    2,    1,    2,    2,    4,
-        4,    2,    2,    2,    2,    2,    2,    2,    2,    2,
+        4,    4,    2,    2,    2,    2,    2,    2,    2,    2,
-        2,    2,    2,    2
+        2,    2,    2,    2,    2
     } ;
     } ;
 
 
-static yyconst flex_int16_t yy_base[65] =
+static yyconst flex_int16_t yy_base[66] =
     {   0,
     {   0,
-        0,    0,  128,  129,  125,  123,  121,  129,  129,  129,
+        0,    0,  135,  136,  132,  130,  128,  136,  136,  136,
-       25,  129,   27,   29,  112,   41,  129,  129,   59,   20,
+       26,  136,   29,   32,  118,   46,  136,  136,   64,   24,
-       22,   27,   21,   30,  121,  119,  117,  129,   46,    0,
+       26,   25,   27,   35,  128,  126,  124,  136,   58,    0,
-      129,   61,   63,   95,  129,   94,   46,   43,   93,   50,
+      136,   56,   73,  101,  136,  100,   45,   30,   99,   52,
-       48,    0,   92,   91,   58,   66,   62,   64,   69,   65,
+       51,    0,   98,   97,   55,   66,   58,   61,   68,   62,
-       72,   90,   75,   85,   73,   68,   80,   81,   47,   61,
+       69,   96,   76,   86,   74,   95,   90,   80,   81,   87,
-      129,  107,  110,   50
+       85,  136,  113,  116,  105
     } ;
     } ;
 
 
-static yyconst flex_int16_t yy_def[65] =
+static yyconst flex_int16_t yy_def[66] =
     {   0,
     {   0,
-       61,    1,   61,   61,   61,   61,   62,   61,   61,   61,
+       62,    1,   62,   62,   62,   62,   63,   62,   62,   62,
-       61,   61,   61,   61,   61,   63,   61,   61,   63,   19,
+       62,   62,   62,   62,   62,   64,   62,   62,   64,   19,
-       19,   19,   19,   19,   61,   61,   62,   61,   61,   64,
+       19,   19,   19,   19,   62,   62,   63,   62,   62,   65,
-       61,   61,   19,   19,   61,   19,   19,   19,   19,   19,
+       62,   62,   19,   19,   62,   19,   19,   19,   19,   19,
-       19,   64,   19,   19,   19,   19,   19,   19,   19,   19,
+       19,   65,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
        19,   19,   19,   19,   19,   19,   19,   19,   19,   19,
-        0,   61,   61,   61
+       19,    0,   62,   62,   62
     } ;
     } ;
 
 
-static yyconst flex_int16_t yy_nxt[164] =
+static yyconst flex_int16_t yy_nxt[172] =
     {   0,
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
-       14,   15,   16,   16,   16,   17,   18,    4,   19,   16,
+       14,   14,   15,   16,   16,   16,   17,   18,    4,   19,
-       16,   16,   20,   16,   16,   16,   21,   16,   22,   23,
+       16,   16,   16,   20,   16,   16,   16,   21,   16,   22,
-       24,   16,   16,   16,   29,   29,   29,   29,   29,   29,
+       23,   24,   16,   16,   16,   29,   29,   29,   29,   29,
-       37,   30,   32,   32,   34,   34,   34,   39,   33,   38,
+       29,   29,   29,   29,   30,   37,   39,   32,   32,   34,
-       41,   34,   40,   42,   34,   29,   29,   35,   33,   30,
+       34,   34,   34,   33,   38,   34,   41,   32,   32,   40,
-       32,   32,   32,   32,   61,   61,   33,   34,   60,   47,
+       34,   45,   30,   35,   33,   32,   32,   29,   29,   29,
-       34,   34,   34,   45,   34,   35,   33,   35,   44,   61,
+       34,   33,   47,   35,   62,   62,   34,   34,   44,   49,
-       48,   49,   34,   36,   50,   34,   34,   34,   34,   34,
+       34,   35,   33,   34,   48,   50,   34,   34,   51,   36,
-       34,   51,   34,   34,   52,   53,   34,   34,   54,   34,
+       62,   34,   52,   34,   34,   53,   54,   57,   34,   34,
-
+
-       56,   57,   55,   58,   34,   34,   59,   27,   27,   34,
+       55,   34,   56,   58,   59,   34,   34,   60,   42,   61,
-       27,   34,   34,   34,   34,   34,   34,   46,   43,   34,
+       34,   34,   34,   27,   27,   34,   27,   34,   34,   34,
-       28,   26,   25,   31,   28,   26,   25,   61,    3,   61,
+       34,   34,   34,   34,   46,   43,   34,   28,   26,   25,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       31,   28,   26,   25,   62,    3,   62,   62,   62,   62,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       61,   61,   61
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       62
     } ;
     } ;
 
 
-static yyconst flex_int16_t yy_chk[164] =
+static yyconst flex_int16_t yy_chk[172] =
     {   0,
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,   11,   11,   13,   13,   14,   14,
+        1,    1,    1,    1,    1,   11,   11,   11,   13,   13,
-       20,   13,   16,   16,   20,   23,   21,   22,   16,   21,
+       13,   14,   14,   14,   13,   20,   22,   16,   16,   20,
-       24,   22,   23,   64,   24,   29,   29,   16,   16,   13,
+       22,   21,   23,   16,   21,   38,   24,   32,   32,   23,
-       19,   19,   32,   32,   33,   33,   19,   38,   59,   40,
+       24,   38,   13,   16,   16,   19,   19,   29,   29,   29,
-       37,   59,   41,   38,   40,   19,   19,   32,   37,   33,
+       37,   19,   40,   32,   33,   33,   41,   40,   37,   45,
-       41,   45,   45,   19,   46,   60,   47,   33,   48,   50,
+       45,   19,   19,   47,   41,   46,   48,   50,   47,   19,
-       46,   47,   56,   49,   48,   49,   51,   55,   50,   53,
+       33,   46,   48,   49,   51,   49,   50,   54,   33,   55,
-
+
-       53,   55,   51,   57,   57,   58,   58,   62,   62,   54,
+       51,   53,   53,   55,   58,   58,   59,   59,   65,   60,
-       62,   63,   63,   63,   52,   44,   43,   39,   36,   34,
+       61,   54,   60,   63,   63,   57,   63,   64,   64,   64,
-       27,   26,   25,   15,    7,    6,    5,    3,   61,   61,
+       56,   52,   44,   43,   39,   36,   34,   27,   26,   25,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       15,    7,    6,    5,    3,   62,   62,   62,   62,   62,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       61,   61,   61,   61,   61,   61,   61,   61,   61,   61,
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
-       61,   61,   61
+       62,   62,   62,   62,   62,   62,   62,   62,   62,   62,
+       62
     } ;
     } ;
 
 
 /* Table of booleans, true if rule could match eol. */
 /* Table of booleans, true if rule could match eol. */
@@ -657,7 +659,7 @@ goto find_rule; \
 #define YY_RESTORE_YY_MORE_OFFSET
 #define YY_RESTORE_YY_MORE_OFFSET
 char *yytext;
 char *yytext;
 #line 1 "lexer.ll"
 #line 1 "lexer.ll"
-/* Copyright (C) 2015 Internet Systems Consortium, Inc. ("ISC")
+/* Copyright (C) 2015-2016 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
@@ -707,7 +709,7 @@ static isc::eval::location loc;
 // 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(yyleng);
 #define YY_USER_ACTION  loc.columns(yyleng);
-#line 711 "lexer.cc"
+#line 713 "lexer.cc"
 
 
 #define INITIAL 0
 #define INITIAL 0
 
 
@@ -1001,7 +1003,7 @@ YY_DECL
     loc.step();
     loc.step();
 
 
 
 
-#line 1005 "lexer.cc"
+#line 1007 "lexer.cc"
 
 
 	while ( 1 )		/* loops until end-of-file is reached */
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
 		{
@@ -1029,14 +1031,14 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 62 )
+				if ( yy_current_state >= 63 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			*(yy_state_ptr)++ = yy_current_state;
 			*(yy_state_ptr)++ = yy_current_state;
 			++yy_cp;
 			++yy_cp;
 			}
 			}
-		while ( yy_current_state != 61 );
+		while ( yy_current_state != 62 );
 
 
 yy_find_action:
 yy_find_action:
 /* %% [10.0] code to find the action number goes here */
 /* %% [10.0] code to find the action number goes here */
@@ -1210,7 +1212,7 @@ return isc::eval::EvalParser::make_SUBSTRING(loc);
 case 12:
 case 12:
 YY_RULE_SETUP
 YY_RULE_SETUP
 #line 130 "lexer.ll"
 #line 130 "lexer.ll"
-return isc::eval::EvalParser::make_RELAY(loc);
+return isc::eval::EvalParser::make_RELAY4(loc);
 	YY_BREAK
 	YY_BREAK
 case 13:
 case 13:
 YY_RULE_SETUP
 YY_RULE_SETUP
@@ -1261,7 +1263,7 @@ YY_RULE_SETUP
 #line 141 "lexer.ll"
 #line 141 "lexer.ll"
 ECHO;
 ECHO;
 	YY_BREAK
 	YY_BREAK
-#line 1265 "lexer.cc"
+#line 1267 "lexer.cc"
 
 
 	case YY_END_OF_BUFFER:
 	case YY_END_OF_BUFFER:
 		{
 		{
@@ -1542,7 +1544,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 62 )
+			if ( yy_current_state >= 63 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1570,11 +1572,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 62 )
+		if ( yy_current_state >= 63 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 61);
+	yy_is_jam = (yy_current_state == 62);
 	if ( ! yy_is_jam )
 	if ( ! yy_is_jam )
 		*(yy_state_ptr)++ = yy_current_state;
 		*(yy_state_ptr)++ = yy_current_state;
 
 

+ 31 - 24
src/lib/eval/parser.cc

@@ -653,82 +653,89 @@ namespace isc { namespace eval {
                          break;
                          break;
                      }
                      }
                      case Option::V6:
                      case Option::V6:
-                         error(yystack_[5].location, "relay support for v6 is not implemented");
+                         // We will have relay6[123] for the DHCPv6.
+                         // In a very distant future we'll possibly be able
+                         // to mix both if we have DHCPv4-over-DHCPv6, so it
+                         // has some sense to make it explicit whether we
+                         // talk about DHCPv4 relay or DHCPv6 relay. However,
+                         // for the time being relay4 can be used in DHCPv4
+                         // only.
+                         error(yystack_[5].location, "relay4 can only be used in DHCPv4.");
                      }
                      }
                   }
                   }
-#line 660 "parser.cc" // lalr1.cc:847
+#line 667 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 8:
   case 8:
-#line 111 "parser.yy" // lalr1.cc:847
+#line 118 "parser.yy" // lalr1.cc:847
     {
     {
                       TokenPtr sub(new TokenSubstring());
                       TokenPtr sub(new TokenSubstring());
                       ctx.expression.push_back(sub);
                       ctx.expression.push_back(sub);
                   }
                   }
-#line 669 "parser.cc" // lalr1.cc:847
+#line 676 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 10:
   case 10:
-#line 120 "parser.yy" // lalr1.cc:847
+#line 127 "parser.yy" // lalr1.cc:847
     {
     {
                      yylhs.value.as< uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as< std::string > (), yystack_[0].location);
                      yylhs.value.as< uint16_t > () = ctx.convertOptionCode(yystack_[0].value.as< std::string > (), yystack_[0].location);
                  }
                  }
-#line 677 "parser.cc" // lalr1.cc:847
+#line 684 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 11:
   case 11:
-#line 124 "parser.yy" // lalr1.cc:847
+#line 131 "parser.yy" // lalr1.cc:847
     {
     {
                      yylhs.value.as< uint16_t > () = ctx.convertOptionName(yystack_[0].value.as< std::string > (), yystack_[0].location);
                      yylhs.value.as< uint16_t > () = ctx.convertOptionName(yystack_[0].value.as< std::string > (), yystack_[0].location);
                  }
                  }
-#line 685 "parser.cc" // lalr1.cc:847
+#line 692 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 12:
   case 12:
-#line 130 "parser.yy" // lalr1.cc:847
+#line 137 "parser.yy" // lalr1.cc:847
     {
     {
                           yylhs.value.as< TokenOption::RepresentationType > () = TokenOption::TEXTUAL;
                           yylhs.value.as< TokenOption::RepresentationType > () = TokenOption::TEXTUAL;
                       }
                       }
-#line 693 "parser.cc" // lalr1.cc:847
+#line 700 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 13:
   case 13:
-#line 134 "parser.yy" // lalr1.cc:847
+#line 141 "parser.yy" // lalr1.cc:847
     {
     {
                           yylhs.value.as< TokenOption::RepresentationType > () = TokenOption::HEXADECIMAL;
                           yylhs.value.as< TokenOption::RepresentationType > () = TokenOption::HEXADECIMAL;
                       }
                       }
-#line 701 "parser.cc" // lalr1.cc:847
+#line 708 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 14:
   case 14:
-#line 140 "parser.yy" // lalr1.cc:847
+#line 147 "parser.yy" // lalr1.cc:847
     {
     {
                      TokenPtr str(new TokenString(yystack_[0].value.as< std::string > ()));
                      TokenPtr str(new TokenString(yystack_[0].value.as< std::string > ()));
                      ctx.expression.push_back(str);
                      ctx.expression.push_back(str);
                  }
                  }
-#line 710 "parser.cc" // lalr1.cc:847
+#line 717 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 15:
   case 15:
-#line 147 "parser.yy" // lalr1.cc:847
+#line 154 "parser.yy" // lalr1.cc:847
     {
     {
                       TokenPtr str(new TokenString(yystack_[0].value.as< std::string > ()));
                       TokenPtr str(new TokenString(yystack_[0].value.as< std::string > ()));
                       ctx.expression.push_back(str);
                       ctx.expression.push_back(str);
                   }
                   }
-#line 719 "parser.cc" // lalr1.cc:847
+#line 726 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
   case 16:
   case 16:
-#line 152 "parser.yy" // lalr1.cc:847
+#line 159 "parser.yy" // lalr1.cc:847
     {
     {
                      TokenPtr str(new TokenString("all"));
                      TokenPtr str(new TokenString("all"));
                      ctx.expression.push_back(str);
                      ctx.expression.push_back(str);
                  }
                  }
-#line 728 "parser.cc" // lalr1.cc:847
+#line 735 "parser.cc" // lalr1.cc:847
     break;
     break;
 
 
 
 
-#line 732 "parser.cc" // lalr1.cc:847
+#line 739 "parser.cc" // lalr1.cc:847
             default:
             default:
               break;
               break;
             }
             }
@@ -1066,7 +1073,7 @@ namespace isc { namespace eval {
   const EvalParser::yytname_[] =
   const EvalParser::yytname_[] =
   {
   {
   "\"end of file\"", "error", "$undefined", "\"==\"", "\"option\"",
   "\"end of file\"", "error", "$undefined", "\"==\"", "\"option\"",
-  "\"substring\"", "\"text\"", "\"relay\"", "\"hex\"", "\"all\"", "\".\"",
+  "\"substring\"", "\"text\"", "\"relay4\"", "\"hex\"", "\"all\"", "\".\"",
   "\",\"", "\"(\"", "\")\"", "\"[\"", "\"]\"", "\"constant string\"",
   "\",\"", "\"(\"", "\")\"", "\"[\"", "\"]\"", "\"constant string\"",
   "\"integer\"", "\"constant hexstring\"", "\"option name\"", "TOKEN",
   "\"integer\"", "\"constant hexstring\"", "\"option name\"", "TOKEN",
   "$accept", "expression", "bool_expr", "string_expr", "option_code",
   "$accept", "expression", "bool_expr", "string_expr", "option_code",
@@ -1077,8 +1084,8 @@ namespace isc { namespace eval {
   const unsigned char
   const unsigned char
   EvalParser::yyrline_[] =
   EvalParser::yyrline_[] =
   {
   {
-       0,    72,    72,    75,    82,    87,    92,    97,   110,   115,
+       0,    72,    72,    75,    82,    87,    92,    97,   117,   122,
-     119,   123,   129,   133,   139,   146,   151
+     126,   130,   136,   140,   146,   153,   158
   };
   };
 
 
   // Print the state stack on the debug stream.
   // Print the state stack on the debug stream.
@@ -1113,8 +1120,8 @@ namespace isc { namespace eval {
 
 
 #line 13 "parser.yy" // lalr1.cc:1155
 #line 13 "parser.yy" // lalr1.cc:1155
 } } // isc::eval
 } } // isc::eval
-#line 1117 "parser.cc" // lalr1.cc:1155
+#line 1124 "parser.cc" // lalr1.cc:1155
-#line 158 "parser.yy" // lalr1.cc:1156
+#line 165 "parser.yy" // lalr1.cc:1156
 
 
 void
 void
 isc::eval::EvalParser::error(const location_type& loc,
 isc::eval::EvalParser::error(const location_type& loc,

+ 4 - 4
src/lib/eval/parser.h

@@ -333,7 +333,7 @@ namespace isc { namespace eval {
         TOKEN_OPTION = 259,
         TOKEN_OPTION = 259,
         TOKEN_SUBSTRING = 260,
         TOKEN_SUBSTRING = 260,
         TOKEN_TEXT = 261,
         TOKEN_TEXT = 261,
-        TOKEN_RELAY = 262,
+        TOKEN_RELAY4 = 262,
         TOKEN_HEX = 263,
         TOKEN_HEX = 263,
         TOKEN_ALL = 264,
         TOKEN_ALL = 264,
         TOKEN_DOT = 265,
         TOKEN_DOT = 265,
@@ -467,7 +467,7 @@ namespace isc { namespace eval {
 
 
     static inline
     static inline
     symbol_type
     symbol_type
-    make_RELAY (const location_type& l);
+    make_RELAY4 (const location_type& l);
 
 
     static inline
     static inline
     symbol_type
     symbol_type
@@ -1039,9 +1039,9 @@ namespace isc { namespace eval {
   }
   }
 
 
   EvalParser::symbol_type
   EvalParser::symbol_type
-  EvalParser::make_RELAY (const location_type& l)
+  EvalParser::make_RELAY4 (const location_type& l)
   {
   {
-    return symbol_type (token::TOKEN_RELAY, l);
+    return symbol_type (token::TOKEN_RELAY4, l);
   }
   }
 
 
   EvalParser::symbol_type
   EvalParser::symbol_type