Commit ca696211 authored by Shawn Routhier's avatar Shawn Routhier
Browse files

[trac4269] Add code for handling constant length fields in DHCPv6 messages

parent 2bc621d5
......@@ -483,8 +483,8 @@ static void yy_fatal_error (yyconst char msg[] );
(yy_c_buf_p) = yy_cp;
/* %% [4.0] data tables for the DFA and the user's section 1 definitions go here */
#define YY_NUM_RULES 26
#define YY_END_OF_BUFFER 27
#define YY_NUM_RULES 29
#define YY_END_OF_BUFFER 30
/* This struct is not used in this scanner,
but its presence is necessary. */
struct yy_trans_info
......@@ -492,35 +492,40 @@ struct yy_trans_info
flex_int32_t yy_verify;
flex_int32_t yy_nxt;
};
static yyconst flex_int16_t yy_acclist[128] =
static yyconst flex_int16_t yy_acclist[152] =
{ 0,
27, 25, 26, 1, 25, 26, 2, 26, 25, 26,
20, 25, 26, 21, 25, 26, 24, 25, 26, 25,
26, 19, 25, 26, 5, 25, 26, 5, 25, 26,
25, 26, 25, 26,16390, 22, 25, 26, 23, 25,
26, 25, 26,16390, 25, 26,16390, 25, 26,16390,
25, 26,16390, 25, 26,16390, 25, 26,16390, 25,
26,16390, 25, 26,16390, 25, 26,16390, 1, 2,
3, 5, 7,16390, 8198,16390,16390,16390,16390,16390,
16390,16390, 18,16390,16390,16390,16390, 4, 14,16390,
17,16390,16390,16390, 11,16390, 16,16390,16390,16390,
16390,16390,16390,16390,16390,16390,16390, 10,16390,16390,
16390,16390,16390,16390, 15,16390, 12,16390, 8,16390,
9,16390,16390,16390,16390, 13,16390
30, 28, 29, 1, 28, 29, 2, 29, 28, 29,
20, 28, 29, 21, 28, 29, 24, 28, 29, 28,
29, 19, 28, 29, 5, 28, 29, 5, 28, 29,
28, 29, 28, 29,16390, 22, 28, 29, 23, 28,
29, 28, 29,16390, 28, 29,16390, 28, 29,16390,
28, 29,16390, 28, 29,16390, 28, 29,16390, 28,
29,16390, 28, 29,16390, 28, 29,16390, 28, 29,
16390, 28, 29,16390, 1, 2, 3, 5, 7,16390,
8198,16390,16390,16390,16390,16390,16390,16390,16390, 18,
16390,16390,16390,16390,16390,16390, 4, 14,16390, 17,
16390,16390,16390, 11,16390,16390, 16,16390,16390,16390,
16390,16390,16390,16390,16390,16390,16390,16390, 25,16390,
16390,16390, 10,16390,16390,16390,16390,16390,16390,16390,
16390,16390, 15,16390, 12,16390,16390, 8,16390, 9,
16390,16390,16390, 26,16390,16390, 27,16390,16390, 13,
16390
} ;
static yyconst flex_int16_t yy_accept[82] =
static yyconst flex_int16_t yy_accept[99] =
{ 0,
1, 1, 1, 2, 4, 7, 9, 11, 14, 17,
20, 22, 25, 28, 31, 33, 36, 39, 42, 45,
48, 51, 54, 57, 60, 63, 66, 69, 70, 71,
71, 72, 73, 73, 74, 74, 74, 75, 76, 77,
78, 79, 80, 81, 82, 83, 85, 86, 87, 88,
89, 91, 93, 94, 95, 97, 99, 100, 101, 102,
103, 104, 105, 106, 107, 108, 110, 111, 112, 113,
114, 115, 117, 119, 121, 123, 124, 125, 126, 128,
128
48, 51, 54, 57, 60, 63, 66, 69, 72, 75,
76, 77, 77, 78, 79, 79, 80, 80, 80, 81,
82, 83, 84, 85, 86, 87, 88, 89, 90, 92,
93, 94, 95, 96, 97, 98, 100, 102, 103, 104,
106, 107, 109, 110, 111, 112, 113, 114, 115, 116,
117, 118, 119, 121, 122, 123, 125, 126, 127, 128,
129, 130, 131, 132, 133, 135, 137, 138, 140, 142,
143, 144, 146, 147, 149, 150, 152, 152
} ;
static yyconst YY_CHAR yy_ec[256] =
......@@ -530,15 +535,15 @@ static yyconst YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 2, 1, 1, 1, 1, 1, 1, 4, 5,
6, 1, 1, 7, 8, 9, 1, 10, 11, 11,
11, 12, 11, 11, 11, 11, 11, 1, 1, 1,
13, 1, 1, 1, 14, 14, 14, 14, 14, 14,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 16, 15, 15,
17, 1, 18, 1, 19, 1, 20, 21, 22, 23,
24, 14, 25, 26, 27, 15, 15, 28, 15, 29,
30, 31, 15, 32, 33, 34, 35, 15, 15, 36,
37, 15, 1, 1, 1, 1, 1, 1, 1, 1,
11, 12, 11, 13, 11, 11, 11, 1, 1, 1,
14, 1, 1, 1, 15, 15, 15, 15, 15, 15,
16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
16, 16, 16, 16, 16, 16, 16, 17, 16, 16,
18, 1, 19, 1, 20, 1, 21, 22, 23, 24,
25, 15, 26, 27, 28, 16, 29, 30, 31, 32,
33, 34, 16, 35, 36, 37, 38, 16, 16, 39,
40, 16, 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,
......@@ -555,118 +560,140 @@ static yyconst YY_CHAR yy_ec[256] =
1, 1, 1, 1, 1
} ;
static yyconst YY_CHAR yy_meta[38] =
static yyconst YY_CHAR yy_meta[41] =
{ 0,
1, 2, 3, 1, 1, 1, 1, 2, 1, 4,
4, 4, 1, 4, 2, 2, 1, 2, 2, 4,
4, 4, 4, 4, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2
4, 4, 4, 1, 5, 2, 6, 1, 2, 2,
5, 5, 5, 5, 5, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 6, 2
} ;
static yyconst flex_uint16_t yy_base[84] =
static yyconst flex_uint16_t yy_base[102] =
{ 0,
0, 0, 202, 219, 167, 155, 138, 219, 219, 219,
28, 219, 31, 34, 94, 46, 219, 219, 66, 22,
27, 29, 31, 44, 42, 51, 53, 103, 80, 74,
219, 77, 0, 219, 88, 90, 68, 219, 70, 81,
72, 84, 86, 92, 95, 74, 88, 104, 99, 0,
102, 108, 112, 110, 116, 118, 121, 131, 124, 127,
134, 136, 138, 143, 145, 147, 149, 153, 156, 175,
160, 162, 165, 167, 169, 172, 177, 182, 180, 219,
211, 214, 58
0, 0, 122, 289, 103, 82, 70, 289, 289, 289,
31, 289, 28, 36, 59, 49, 289, 289, 68, 23,
33, 29, 28, 45, 49, 60, 61, 64, 74, 64,
59, 46, 289, 100, 0, 289, 105, 112, 50, 289,
65, 93, 71, 88, 89, 100, 97, 103, 106, 109,
113, 125, 119, 129, 0, 122, 130, 133, 134, 137,
141, 142, 147, 155, 159, 152, 160, 151, 172, 164,
168, 173, 177, 180, 181, 184, 185, 192, 195, 196,
202, 207, 203, 212, 211, 215, 221, 218, 222, 227,
232, 228, 231, 235, 240, 239, 289, 272, 275, 280,
283
} ;
static yyconst flex_int16_t yy_def[84] =
static yyconst flex_int16_t yy_def[102] =
{ 0,
80, 1, 80, 80, 80, 80, 81, 80, 80, 80,
80, 80, 80, 80, 80, 82, 80, 80, 82, 19,
19, 19, 19, 19, 19, 19, 19, 80, 80, 81,
80, 80, 83, 80, 80, 19, 19, 80, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 83,
97, 1, 97, 97, 97, 97, 98, 97, 97, 97,
97, 97, 99, 97, 97, 100, 97, 97, 100, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 97,
97, 98, 97, 97, 101, 97, 97, 19, 19, 97,
19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 101, 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, 19, 19, 19, 19, 19, 19, 19,
19, 19, 19, 19, 19, 19, 19, 19, 19, 0,
80, 80, 80
19, 19, 19, 19, 19, 19, 0, 97, 97, 97,
97
} ;
static yyconst flex_uint16_t yy_nxt[257] =
static yyconst flex_uint16_t yy_nxt[330] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 14, 15, 16, 16, 16, 17, 18, 4, 19,
16, 20, 16, 21, 16, 22, 16, 16, 23, 24,
16, 25, 26, 27, 16, 16, 16, 32, 32, 32,
32, 32, 32, 32, 32, 32, 33, 35, 35, 37,
37, 41, 43, 36, 37, 37, 37, 37, 37, 37,
44, 50, 42, 38, 36, 47, 33, 35, 35, 37,
37, 37, 37, 36, 45, 46, 49, 31, 37, 37,
37, 37, 29, 38, 36, 48, 32, 32, 32, 35,
35, 80, 80, 39, 40, 37, 37, 51, 37, 37,
53, 37, 37, 52, 28, 38, 34, 80, 37, 37,
54, 37, 37, 37, 37, 58, 37, 37, 37, 37,
37, 55, 37, 37, 59, 56, 37, 37, 57, 37,
37, 37, 37, 61, 60, 37, 37, 37, 37, 37,
37, 31, 62, 37, 37, 37, 37, 63, 37, 37,
64, 37, 37, 67, 37, 37, 65, 29, 37, 37,
66, 37, 37, 37, 37, 37, 37, 69, 28, 68,
37, 37, 37, 37, 37, 37, 37, 37, 71, 70,
37, 37, 72, 37, 74, 73, 75, 37, 37, 37,
37, 76, 37, 37, 37, 37, 37, 37, 77, 37,
37, 80, 37, 37, 37, 78, 79, 37, 37, 37,
37, 30, 30, 80, 30, 37, 37, 37, 3, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80
14, 14, 14, 15, 16, 16, 16, 17, 18, 4,
19, 16, 20, 16, 21, 16, 22, 16, 16, 16,
23, 24, 25, 26, 27, 28, 29, 16, 16, 16,
34, 34, 34, 34, 35, 34, 34, 34, 34, 33,
37, 37, 39, 45, 39, 43, 38, 39, 39, 39,
39, 31, 39, 46, 39, 30, 35, 40, 38, 37,
37, 44, 36, 33, 39, 38, 39, 47, 39, 39,
39, 39, 48, 49, 31, 51, 40, 38, 50, 39,
39, 39, 39, 39, 56, 39, 39, 41, 53, 42,
39, 52, 58, 39, 30, 39, 37, 37, 54, 34,
34, 34, 34, 97, 97, 59, 57, 39, 39, 39,
39, 97, 39, 40, 39, 61, 39, 60, 39, 39,
97, 39, 39, 62, 39, 39, 97, 39, 39, 63,
39, 39, 65, 39, 39, 64, 66, 97, 39, 68,
39, 39, 97, 39, 39, 69, 39, 67, 39, 39,
39, 39, 39, 39, 39, 39, 39, 73, 39, 70,
39, 39, 39, 39, 72, 97, 39, 71, 39, 74,
39, 39, 77, 39, 39, 97, 39, 75, 39, 39,
39, 39, 78, 39, 97, 39, 76, 39, 97, 39,
79, 39, 39, 39, 39, 81, 39, 80, 39, 39,
39, 39, 39, 39, 39, 39, 39, 83, 89, 82,
84, 39, 97, 39, 39, 39, 39, 39, 85, 87,
86, 39, 39, 88, 39, 97, 39, 90, 39, 91,
39, 39, 39, 39, 39, 92, 39, 39, 97, 39,
39, 39, 39, 39, 93, 94, 39, 39, 39, 39,
39, 39, 95, 39, 39, 96, 39, 97, 39, 39,
39, 39, 32, 32, 97, 32, 32, 32, 34, 97,
34, 39, 39, 39, 39, 39, 55, 55, 3, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97
} ;
static yyconst flex_int16_t yy_chk[257] =
static yyconst flex_int16_t yy_chk[330] =
{ 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, 11, 11, 11,
13, 13, 13, 14, 14, 14, 13, 16, 16, 20,
20, 20, 22, 16, 21, 21, 22, 22, 23, 23,
23, 83, 21, 16, 16, 25, 13, 19, 19, 25,
25, 24, 24, 19, 24, 24, 27, 30, 26, 26,
27, 27, 29, 19, 19, 26, 32, 32, 32, 35,
35, 36, 36, 19, 19, 37, 37, 39, 39, 41,
41, 46, 46, 40, 28, 35, 15, 36, 40, 40,
42, 42, 42, 43, 43, 47, 47, 36, 36, 44,
44, 43, 45, 45, 48, 44, 49, 49, 45, 51,
51, 48, 48, 53, 49, 52, 52, 54, 54, 53,
53, 7, 54, 55, 55, 56, 56, 57, 57, 57,
58, 59, 59, 61, 60, 60, 59, 6, 58, 58,
60, 61, 61, 62, 62, 63, 63, 63, 5, 62,
64, 64, 65, 65, 66, 66, 67, 67, 65, 64,
68, 68, 67, 69, 69, 68, 70, 71, 71, 72,
72, 71, 73, 73, 74, 74, 75, 75, 76, 76,
76, 3, 70, 70, 77, 77, 78, 79, 79, 78,
78, 81, 81, 0, 81, 82, 82, 82, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80, 80, 80, 80, 80,
80, 80, 80, 80, 80, 80
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
11, 11, 11, 11, 13, 14, 14, 14, 14, 32,
16, 16, 20, 22, 20, 20, 16, 23, 22, 23,
22, 31, 21, 23, 21, 30, 13, 16, 16, 19,
19, 21, 15, 7, 24, 19, 24, 24, 25, 39,
25, 39, 25, 25, 6, 27, 19, 19, 26, 26,
27, 26, 27, 28, 41, 28, 41, 19, 29, 19,
43, 28, 43, 29, 5, 29, 37, 37, 29, 34,
34, 34, 34, 38, 38, 44, 42, 44, 45, 44,
45, 3, 42, 37, 42, 46, 47, 45, 47, 46,
38, 46, 48, 47, 48, 49, 0, 49, 50, 48,
50, 38, 51, 38, 51, 50, 52, 0, 53, 54,
53, 56, 0, 56, 52, 58, 52, 53, 54, 57,
54, 57, 58, 59, 58, 59, 60, 64, 60, 59,
61, 62, 61, 62, 63, 0, 63, 61, 63, 65,
68, 66, 68, 66, 64, 0, 64, 66, 65, 67,
65, 67, 69, 70, 0, 70, 67, 71, 0, 71,
70, 69, 72, 69, 72, 72, 73, 71, 73, 74,
75, 74, 75, 76, 77, 76, 77, 75, 82, 74,
77, 78, 0, 78, 79, 80, 79, 80, 78, 80,
79, 81, 83, 81, 83, 0, 82, 83, 82, 84,
85, 84, 85, 84, 86, 87, 86, 88, 0, 88,
87, 89, 87, 89, 90, 91, 90, 92, 90, 92,
93, 91, 93, 91, 94, 95, 94, 0, 96, 95,
96, 95, 98, 98, 0, 98, 98, 98, 99, 0,
99, 100, 100, 100, 100, 100, 101, 101, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97, 97,
97, 97, 97, 97, 97, 97, 97, 97, 97
} ;
/* Table of booleans, true if rule could match eol. */
static yyconst flex_int32_t yy_rule_can_match_eol[27] =
static yyconst flex_int32_t yy_rule_can_match_eol[30] =
{ 0,
0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, };
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, };
extern int yy_flex_debug;
int yy_flex_debug = 1;
static yyconst flex_int16_t yy_rule_linenum[26] =
static yyconst flex_int16_t yy_rule_linenum[29] =
{ 0,
78, 82, 88, 98, 104, 118, 125, 126, 127, 128,
129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
139, 140, 141, 142, 144
139, 140, 141, 142, 144, 145, 146, 148
} ;
static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
......@@ -743,7 +770,7 @@ static isc::eval::location loc;
// by moving it ahead by yyleng bytes. yyleng specifies the length of the
// currently matched token.
#define YY_USER_ACTION loc.columns(yyleng);
#line 747 "lexer.cc"
#line 774 "lexer.cc"
#define INITIAL 0
......@@ -1040,7 +1067,7 @@ YY_DECL
loc.step();
#line 1044 "lexer.cc"
#line 1071 "lexer.cc"
while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
{
......@@ -1068,14 +1095,14 @@ yy_match:
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 81 )
if ( yy_current_state >= 98 )
yy_c = yy_meta[(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_cp;
}
while ( yy_current_state != 80 );
while ( yy_current_state != 97 );
yy_find_action:
/* %% [10.0] code to find the action number goes here */
......@@ -1138,13 +1165,13 @@ do_action: /* This label is used only to access EOF actions. */
{
if ( yy_act == 0 )
fprintf( stderr, "--scanner backing up\n" );
else if ( yy_act < 26 )
else if ( yy_act < 29 )
fprintf( stderr, "--accepting rule at line %ld (\"%s\")\n",
(long)yy_rule_linenum[yy_act], yytext );
else if ( yy_act == 26 )
else if ( yy_act == 29 )
fprintf( stderr, "--accepting default rule (\"%s\")\n",
yytext );
else if ( yy_act == 27 )
else if ( yy_act == 30 )
fprintf( stderr, "--(end of buffer or a NUL)\n" );
else
fprintf( stderr, "--EOF (start condition %d)\n", YY_START );
......@@ -1314,18 +1341,33 @@ return isc::eval::EvalParser::make_COMA(loc);
case 25:
YY_RULE_SETUP
#line 144 "lexer.ll"
return isc::eval::EvalParser::make_PKT6(loc);
YY_BREAK
case 26:
YY_RULE_SETUP
#line 145 "lexer.ll"
return isc::eval::EvalParser::make_MSGTYPE(loc);
YY_BREAK
case 27:
YY_RULE_SETUP
#line 146 "lexer.ll"
return isc::eval::EvalParser::make_TRANSID(loc);
YY_BREAK
case 28:
YY_RULE_SETUP
#line 148 "lexer.ll"
driver.error (loc, "Invalid character: " + std::string(yytext));
YY_BREAK
case YY_STATE_EOF(INITIAL):
#line 145 "lexer.ll"
#line 149 "lexer.ll"
return isc::eval::EvalParser::make_END(loc);
YY_BREAK
case 26:
case 29:
YY_RULE_SETUP
#line 146 "lexer.ll"
#line 150 "lexer.ll"
ECHO;
YY_BREAK
#line 1329 "lexer.cc"
#line 1371 "lexer.cc"
case YY_END_OF_BUFFER:
{
......@@ -1610,7 +1652,7 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 81 )
if ( yy_current_state >= 98 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
......@@ -1638,11 +1680,11 @@ static int yy_get_next_buffer (void)
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
if ( yy_current_state >= 81 )
if ( yy_current_state >= 98 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
yy_is_jam = (yy_current_state == 80);
yy_is_jam = (yy_current_state == 97);
if ( ! yy_is_jam )
*(yy_state_ptr)++ = yy_current_state;
......@@ -2408,7 +2450,7 @@ void yyfree (void * ptr )
/* %ok-for-header */
#line 146 "lexer.ll"
#line 150 "lexer.ll"
......
......@@ -141,6 +141,10 @@ blank [ \t]
"]" return isc::eval::EvalParser::make_RBRACKET(loc);
"," return isc::eval::EvalParser::make_COMA(loc);
"pkt6" return isc::eval::EvalParser::make_PKT6(loc);
"msgtype" return isc::eval::EvalParser::make_MSGTYPE(loc);
"transid" return isc::eval::EvalParser::make_TRANSID(loc);
. driver.error (loc, "Invalid character: " + std::string(yytext));
<<EOF>> return isc::eval::EvalParser::make_END(loc);
%%
......
This diff is collapsed.
......@@ -298,14 +298,17 @@ namespace isc { namespace eval {
// option_repr_type
char dummy1[sizeof(TokenOption::RepresentationType)];
// pkt6_field
char dummy2[sizeof(TokenPkt6::FieldType)];
// "constant string"
// "integer"
// "constant hexstring"
// "option name"
char dummy2[sizeof(std::string)];
char dummy3[sizeof(std::string)];
// option_code
char dummy3[sizeof(uint16_t)];
char dummy4[sizeof(uint16_t)];
};
/// Symbol semantic values.
......@@ -347,10 +350,13 @@ namespace isc { namespace eval {
TOKEN_ALL = 273,
TOKEN_COMA = 274,
TOKEN_CONCAT = 275,
TOKEN_STRING = 276,
TOKEN_INTEGER = 277,
TOKEN_HEXSTRING = 278,
TOKEN_OPTION_NAME = 279
TOKEN_PKT6 = 276,
TOKEN_MSGTYPE = 277,
TOKEN_TRANSID = 278,
TOKEN_STRING = 279,
TOKEN_INTEGER = 280,
TOKEN_HEXSTRING = 281,
TOKEN_OPTION_NAME = 282
};
};
......@@ -390,6 +396,8 @@ namespace isc { namespace eval {
basic_symbol (typename Base::kind_type t, const TokenOption::RepresentationType v, const location_type& l);
basic_symbol (typename Base::kind_type t, const TokenPkt6::FieldType v, const location_type& l);
basic_symbol (typename Base::kind_type t, const std::string v, const location_type& l);
basic_symbol (typename Base::kind_type t, const uint16_t v, const location_type& l);
......@@ -537,6 +545,18 @@ namespace isc { namespace eval {
symbol_type
make_CONCAT (const location_type& l);
static inline
symbol_type
make_PKT6 (const location_type& l);
static inline
symbol_type
make_MSGTYPE (const location_type& l);
static inline
symbol_type
make_TRANSID (const location_type& l);
static inline
symbol_type
make_STRING (const std::string& v, const location_type& l);
......@@ -638,7 +658,7 @@ namespace isc { namespace eval {
// number is the opposite. If YYTABLE_NINF, syntax error.
static const unsigned char yytable_[];
static const signed char yycheck_[];
static const unsigned char yycheck_[];
// YYSTOS[STATE-NUM] -- The (internal number of the) accessing
// symbol of state STATE-NUM.
......@@ -759,11 +779,11 @@ namespace isc { namespace eval {
{
yyeof_ = 0,
yylast_ = 70, ///< Last index in yytable_.
yynnts_ = 8, ///< Number of nonterminal symbols.
yyfinal_ = 18, ///< Termination state number.
yynnts_ = 9, ///< Number of nonterminal symbols.
yyfinal_ = 20, ///< Termination state number.
yyterror_ = 1,
yyerrcode_ = 256,
yyntokens_ = 25 ///< Number of tokens.
yyntokens_ = 28 ///< Number of tokens.
};
......@@ -807,9 +827,10 @@ namespace isc { namespace eval {
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24
15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27
};
const unsigned int user_token_number_max_ = 279;
const unsigned int user_token_number_max_ = 282;
const token_number_type undef_token_ = 2;
if (static_cast<int>(t) <= yyeof_)
......@@ -842,18 +863,22 @@ namespace isc { namespace eval {
{
switch (other.type_get ())
{
case 30: // option_repr_type
case 33: // option_repr_type
value.copy< TokenOption::RepresentationType > (other.value);
break;
case 21: // "constant string"
case 22