Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sebastian Schrader
Kea
Commits
f004bcef
Commit
f004bcef
authored
Dec 17, 2017
by
Francis Dupont
Browse files
[trac5351] regen bison
parent
998f40eb
Changes
8
Hide whitespace changes
Inline
Side-by-side
src/bin/dhcp4/dhcp4_parser.cc
View file @
f004bcef
...
...
@@ -2326,987 +2326,991 @@ namespace isc { namespace dhcp {
// Merge the comment
user_context
->
set
(
"comment"
,
old
->
get
(
"comment"
));
}
// Set the user context
parent
->
set
(
"user-context"
,
user_context
);
ctx
.
leave
();
}
#line 233
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 233
5
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
393
:
#line 138
3
"dhcp4_parser.yy" // lalr1.cc:859
#line 138
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 234
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 234
3
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
394
:
#line 138
5
"dhcp4_parser.yy" // lalr1.cc:859
#line 138
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
parent
=
ctx
.
stack_
.
back
();
ElementPtr
e
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
3
].
location
)));
ElementPtr
s
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
e
->
set
(
"comment"
,
s
);
ElementPtr
user_context
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
3
].
location
)));
ElementPtr
comment
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
user_context
->
set
(
"comment"
,
comment
);
// Handle already existing user context
ConstElementPtr
old
=
parent
->
get
(
"user-context"
);
if
(
old
)
{
// Check for duplicate comment
if
(
old
->
contains
(
"comment"
))
{
if
(
old
->
contains
(
"comment"
))
{
std
::
stringstream
msg
;
msg
<<
"duplicate user-context/comment entries (previous at "
<<
old
->
getPosition
().
str
()
<<
")"
;
error
(
yystack_
[
3
].
location
,
msg
.
str
());
}
// Merge the user context in the comment
merge
(
e
,
old
);
merge
(
user_context
,
old
);
}
parent
->
set
(
"user-context"
,
e
);
// Set the user context
parent
->
set
(
"user-context"
,
user_context
);
ctx
.
leave
();
}
#line 23
6
7 "dhcp4_parser.cc" // lalr1.cc:859
#line 237
2
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
395
:
#line 141
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 141
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
l
(
new
ListElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"reservations"
,
l
);
ctx
.
stack_
.
push_back
(
l
);
ctx
.
enter
(
ctx
.
RESERVATIONS
);
}
#line 23
7
8 "dhcp4_parser.cc" // lalr1.cc:859
#line 238
3
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
396
:
#line 14
15
"dhcp4_parser.yy" // lalr1.cc:859
#line 14
20
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
stack_
.
pop_back
();
ctx
.
leave
();
}
#line 23
87
"dhcp4_parser.cc" // lalr1.cc:859
#line 23
92
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
401
:
#line 14
28
"dhcp4_parser.yy" // lalr1.cc:859
#line 14
33
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
add
(
m
);
ctx
.
stack_
.
push_back
(
m
);
}
#line 2
397
"dhcp4_parser.cc" // lalr1.cc:859
#line 2
402
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
402
:
#line 143
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 143
7
"dhcp4_parser.yy" // lalr1.cc:859
{
/// @todo: an identifier parameter is required.
ctx
.
stack_
.
pop_back
();
}
#line 24
06
"dhcp4_parser.cc" // lalr1.cc:859
#line 24
11
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
403
:
#line 14
37
"dhcp4_parser.yy" // lalr1.cc:859
#line 14
42
"dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the reservations list entry map
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
push_back
(
m
);
}
#line 241
6
"dhcp4_parser.cc" // lalr1.cc:859
#line 24
2
1 "dhcp4_parser.cc" // lalr1.cc:859
break
;
case
404
:
#line 144
1
"dhcp4_parser.yy" // lalr1.cc:859
#line 144
6
"dhcp4_parser.yy" // lalr1.cc:859
{
/// @todo: an identifier parameter is required.
// parsing completed
}
#line 24
25
"dhcp4_parser.cc" // lalr1.cc:859
#line 24
30
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
424
:
#line 147
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 147
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 243
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 243
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
425
:
#line 147
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 147
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
next_server
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"next-server"
,
next_server
);
ctx
.
leave
();
}
#line 244
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 244
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
426
:
#line 148
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 148
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 245
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 245
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
427
:
#line 148
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 148
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
srv
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"server-hostname"
,
srv
);
ctx
.
leave
();
}
#line 246
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 246
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
428
:
#line 14
88
"dhcp4_parser.yy" // lalr1.cc:859
#line 14
93
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 24
69
"dhcp4_parser.cc" // lalr1.cc:859
#line 24
74
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
429
:
#line 149
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 149
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
bootfile
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"boot-file-name"
,
bootfile
);
ctx
.
leave
();
}
#line 24
79
"dhcp4_parser.cc" // lalr1.cc:859
#line 24
84
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
430
:
#line 1
496
"dhcp4_parser.yy" // lalr1.cc:859
#line 1
501
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 24
87
"dhcp4_parser.cc" // lalr1.cc:859
#line 24
92
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
431
:
#line 1
498
"dhcp4_parser.yy" // lalr1.cc:859
#line 1
503
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
addr
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"ip-address"
,
addr
);
ctx
.
leave
();
}
#line 2
497
"dhcp4_parser.cc" // lalr1.cc:859
#line 2
502
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
432
:
#line 150
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 150
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 250
5
"dhcp4_parser.cc" // lalr1.cc:859
#line 25
1
0 "dhcp4_parser.cc" // lalr1.cc:859
break
;
case
433
:
#line 15
06
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
11
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
d
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"duid"
,
d
);
ctx
.
leave
();
}
#line 25
15
"dhcp4_parser.cc" // lalr1.cc:859
#line 25
20
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
434
:
#line 151
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 151
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 252
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 252
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
435
:
#line 151
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 151
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
hw
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"hw-address"
,
hw
);
ctx
.
leave
();
}
#line 253
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 253
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
436
:
#line 152
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 152
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 254
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 254
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
437
:
#line 152
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 152
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
hw
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"client-id"
,
hw
);
ctx
.
leave
();
}
#line 255
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 255
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
438
:
#line 15
28
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
33
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 25
59
"dhcp4_parser.cc" // lalr1.cc:859
#line 25
64
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
439
:
#line 153
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 153
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
hw
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"circuit-id"
,
hw
);
ctx
.
leave
();
}
#line 25
69
"dhcp4_parser.cc" // lalr1.cc:859
#line 25
74
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
440
:
#line 15
36
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
41
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 25
77
"dhcp4_parser.cc" // lalr1.cc:859
#line 25
82
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
441
:
#line 153
8
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
4
3 "dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
hw
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"flex-id"
,
hw
);
ctx
.
leave
();
}
#line 25
87
"dhcp4_parser.cc" // lalr1.cc:859
#line 25
92
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
442
:
#line 154
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 154
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 2
595
"dhcp4_parser.cc" // lalr1.cc:859
#line 2
600
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
443
:
#line 15
46
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
51
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
host
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"hostname"
,
host
);
ctx
.
leave
();
}
#line 260
5
"dhcp4_parser.cc" // lalr1.cc:859
#line 26
1
0 "dhcp4_parser.cc" // lalr1.cc:859
break
;
case
444
:
#line 155
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 155
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
c
(
new
ListElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"client-classes"
,
c
);
ctx
.
stack_
.
push_back
(
c
);
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 261
6
"dhcp4_parser.cc" // lalr1.cc:859
#line 26
2
1 "dhcp4_parser.cc" // lalr1.cc:859
break
;
case
445
:
#line 15
57
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
62
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
stack_
.
pop_back
();
ctx
.
leave
();
}
#line 26
25
"dhcp4_parser.cc" // lalr1.cc:859
#line 26
30
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
446
:
#line 15
65
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
70
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"relay"
,
m
);
ctx
.
stack_
.
push_back
(
m
);
ctx
.
enter
(
ctx
.
RELAY
);
}
#line 26
36
"dhcp4_parser.cc" // lalr1.cc:859
#line 26
41
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
447
:
#line 157
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 157
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
stack_
.
pop_back
();
ctx
.
leave
();
}
#line 26
4
5 "dhcp4_parser.cc" // lalr1.cc:859
#line 265
0
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
448
:
#line 15
75
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
80
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 265
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 265
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
449
:
#line 15
77
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
82
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
ip
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"ip-address"
,
ip
);
ctx
.
leave
();
}
#line 266
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 266
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
450
:
#line 15
86
"dhcp4_parser.yy" // lalr1.cc:859
#line 15
91
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
l
(
new
ListElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"client-classes"
,
l
);
ctx
.
stack_
.
push_back
(
l
);
ctx
.
enter
(
ctx
.
CLIENT_CLASSES
);
}
#line 267
4
"dhcp4_parser.cc" // lalr1.cc:859
#line 267
9
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
451
:
#line 159
1
"dhcp4_parser.yy" // lalr1.cc:859
#line 159
6
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
stack_
.
pop_back
();
ctx
.
leave
();
}
#line 268
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 268
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
454
:
#line 160
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 160
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
add
(
m
);
ctx
.
stack_
.
push_back
(
m
);
}
#line 269
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 269
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
455
:
#line 160
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 160
9
"dhcp4_parser.yy" // lalr1.cc:859
{
// The name client class parameter is required.
ctx
.
require
(
"name"
,
ctx
.
loc2pos
(
yystack_
[
3
].
location
),
ctx
.
loc2pos
(
yystack_
[
0
].
location
));
ctx
.
stack_
.
pop_back
();
}
#line 270
3
"dhcp4_parser.cc" // lalr1.cc:859
#line 270
8
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
471
:
#line 163
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 163
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 271
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 271
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
472
:
#line 163
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 163
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
test
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"test"
,
test
);
ctx
.
leave
();
}
#line 272
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 272
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
473
:
#line 164
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 164
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
time
(
new
IntElement
(
yystack_
[
0
].
value
.
as
<
int64_t
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"dhcp4o6-port"
,
time
);
}
#line 273
0
"dhcp4_parser.cc" // lalr1.cc:859
#line 273
5
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
474
:
#line 165
1
"dhcp4_parser.yy" // lalr1.cc:859
#line 165
6
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"control-socket"
,
m
);
ctx
.
stack_
.
push_back
(
m
);
ctx
.
enter
(
ctx
.
CONTROL_SOCKET
);
}
#line 274
1
"dhcp4_parser.cc" // lalr1.cc:859
#line 274
6
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
475
:
#line 16
5
6 "dhcp4_parser.yy" // lalr1.cc:859
#line 166
1
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
stack_
.
pop_back
();
ctx
.
leave
();
}
#line 275
0
"dhcp4_parser.cc" // lalr1.cc:859
#line 275
5
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
483
:
#line 167
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 167
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 27
58
"dhcp4_parser.cc" // lalr1.cc:859
#line 27
63
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
484
:
#line 167
4
"dhcp4_parser.yy" // lalr1.cc:859
#line 167
9
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
stype
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"socket-type"
,
stype
);
ctx
.
leave
();
}
#line 27
68
"dhcp4_parser.cc" // lalr1.cc:859
#line 27
73
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
485
:
#line 168
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 168
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ctx
.
enter
(
ctx
.
NO_KEYWORD
);
}
#line 27
76
"dhcp4_parser.cc" // lalr1.cc:859
#line 27
81
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
486
:
#line 168
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 168
7
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
name
(
new
StringElement
(
yystack_
[
0
].
value
.
as
<
std
::
string
>
(),
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"socket-name"
,
name
);
ctx
.
leave
();
}
#line 27
86
"dhcp4_parser.cc" // lalr1.cc:859
#line 27
91
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
487
:
#line 169
0
"dhcp4_parser.yy" // lalr1.cc:859
#line 169
5
"dhcp4_parser.yy" // lalr1.cc:859
{
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
back
()
->
set
(
"dhcp-ddns"
,
m
);
ctx
.
stack_
.
push_back
(
m
);
ctx
.
enter
(
ctx
.
DHCP_DDNS
);
}
#line 2
797
"dhcp4_parser.cc" // lalr1.cc:859
#line 2
802
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
488
:
#line 1
695
"dhcp4_parser.yy" // lalr1.cc:859
#line 1
700
"dhcp4_parser.yy" // lalr1.cc:859
{
// The enable updates DHCP DDNS parameter is required.
ctx
.
require
(
"enable-updates"
,
ctx
.
loc2pos
(
yystack_
[
2
].
location
),
ctx
.
loc2pos
(
yystack_
[
0
].
location
));
ctx
.
stack_
.
pop_back
();
ctx
.
leave
();
}
#line 28
08
"dhcp4_parser.cc" // lalr1.cc:859
#line 28
13
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
489
:
#line 170
2
"dhcp4_parser.yy" // lalr1.cc:859
#line 170
7
"dhcp4_parser.yy" // lalr1.cc:859
{
// Parse the dhcp-ddns map
ElementPtr
m
(
new
MapElement
(
ctx
.
loc2pos
(
yystack_
[
0
].
location
)));
ctx
.
stack_
.
push_back
(
m
);
}
#line 28
18
"dhcp4_parser.cc" // lalr1.cc:859
#line 28
23
"dhcp4_parser.cc" // lalr1.cc:859
break
;
case
490
:
#line 17
06
"dhcp4_parser.yy" // lalr1.cc:859
#line 17
11
"dhcp4_parser.yy" // lalr1.cc:859
{
// The enable updates DHCP DDNS parameter is required.
ctx
.
require
(
"enable-updates"
,
ctx
.
loc2pos
(
yystack_
[
3
].
location
),
ctx
.
loc2pos
(
yystack_
[
0
].
location
));
// parsing completed
}