|
@@ -1,4 +1,4 @@
|
|
|
-/* Copyright (C) 2016 Internet Systems Consortium, Inc. ("ISC")
|
|
|
+/* Copyright (C) 2016-2017 Internet Systems Consortium, Inc. ("ISC")
|
|
|
|
|
|
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
|
|
@@ -121,6 +121,9 @@ using namespace std;
|
|
|
EXPIRED_LEASES_PROCESSING "expired-leases-processing"
|
|
|
|
|
|
SERVER_ID "server-id"
|
|
|
+ LLT "LLT"
|
|
|
+ EN "EN"
|
|
|
+ LL "LL"
|
|
|
IDENTIFIER "identifier"
|
|
|
HTYPE "htype"
|
|
|
TIME "time"
|
|
@@ -185,6 +188,7 @@ using namespace std;
|
|
|
%token <bool> BOOLEAN "boolean"
|
|
|
|
|
|
%type <ElementPtr> value
|
|
|
+%type <ElementPtr> duid_type
|
|
|
|
|
|
%printer { yyoutput << $$; } <*>;
|
|
|
|
|
@@ -454,7 +458,7 @@ database_map_params: database_map_param
|
|
|
| database_map_params COMMA database_map_param
|
|
|
;
|
|
|
|
|
|
-database_map_param: type
|
|
|
+database_map_param: database_type
|
|
|
| user
|
|
|
| password
|
|
|
| host
|
|
@@ -465,7 +469,7 @@ database_map_param: type
|
|
|
| unknown_map_entry
|
|
|
;
|
|
|
|
|
|
-type: TYPE {
|
|
|
+database_type: TYPE {
|
|
|
ctx.enter(ctx.NO_KEYWORD);
|
|
|
} COLON STRING {
|
|
|
ElementPtr prf(new StringElement($4, ctx.loc2pos(@4)));
|
|
@@ -870,7 +874,13 @@ code: CODE COLON INTEGER {
|
|
|
|
|
|
option_def_code: code;
|
|
|
|
|
|
-option_def_type: type;
|
|
|
+option_def_type: TYPE {
|
|
|
+ ctx.enter(ctx.NO_KEYWORD);
|
|
|
+} COLON STRING {
|
|
|
+ ElementPtr prf(new StringElement($4, ctx.loc2pos(@4)));
|
|
|
+ ctx.stack_.back()->set("type", prf);
|
|
|
+ ctx.leave();
|
|
|
+};
|
|
|
|
|
|
option_def_record_types: RECORD_TYPES {
|
|
|
ctx.enter(ctx.NO_KEYWORD);
|
|
@@ -1328,7 +1338,7 @@ server_id_params: server_id_param
|
|
|
| server_id_params COMMA server_id_param
|
|
|
;
|
|
|
|
|
|
-server_id_param: type
|
|
|
+server_id_param: server_id_type
|
|
|
| identifier
|
|
|
| time
|
|
|
| htype
|
|
@@ -1337,6 +1347,18 @@ server_id_param: type
|
|
|
| unknown_map_entry
|
|
|
;
|
|
|
|
|
|
+server_id_type: TYPE {
|
|
|
+ ctx.enter(ctx.DUID_TYPE);
|
|
|
+} COLON duid_type {
|
|
|
+ ctx.stack_.back()->set("type", $4);
|
|
|
+ ctx.leave();
|
|
|
+};
|
|
|
+
|
|
|
+duid_type: LLT { $$ = ElementPtr(new StringElement("LLT", ctx.loc2pos(@1))); }
|
|
|
+ | EN { $$ = ElementPtr(new StringElement("EN", ctx.loc2pos(@1))); }
|
|
|
+ | LL { $$ = ElementPtr(new StringElement("LL", ctx.loc2pos(@1))); }
|
|
|
+ ;
|
|
|
+
|
|
|
htype: HTYPE COLON INTEGER {
|
|
|
ElementPtr htype(new IntElement($3, ctx.loc2pos(@3)));
|
|
|
ctx.stack_.back()->set("htype", htype);
|