From: Francis Dupont Date: Fri, 3 Nov 2017 21:50:12 +0000 (+0100) Subject: [5425] Extended syntax X-Git-Tag: trac5374_base~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0c5b59a0768564f1cd155b31a1ec8929769146d;p=thirdparty%2Fkea.git [5425] Extended syntax --- diff --git a/src/bin/dhcp4/dhcp4_lexer.ll b/src/bin/dhcp4/dhcp4_lexer.ll index c0ea9459df..ba8f1f1944 100644 --- a/src/bin/dhcp4/dhcp4_lexer.ll +++ b/src/bin/dhcp4/dhcp4_lexer.ll @@ -791,6 +791,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"client-class\" { switch(driver.ctx_) { case isc::dhcp::Parser4Context::SUBNET4: + case isc::dhcp::Parser4Context::POOLS: case isc::dhcp::Parser4Context::SHARED_NETWORK: case isc::dhcp::Parser4Context::CLIENT_CLASSES: return isc::dhcp::Dhcp4Parser::make_CLIENT_CLASS(driver.loc_); diff --git a/src/bin/dhcp4/dhcp4_parser.yy b/src/bin/dhcp4/dhcp4_parser.yy index 66ea540244..f72a5524c4 100644 --- a/src/bin/dhcp4/dhcp4_parser.yy +++ b/src/bin/dhcp4/dhcp4_parser.yy @@ -1329,6 +1329,7 @@ pool_params: pool_param pool_param: pool_entry | option_data_list + | client_class | user_context | unknown_map_entry ; @@ -1535,11 +1536,11 @@ client_classes: CLIENT_CLASSES { ctx.leave(); }; -client_classes_list: client_class - | client_classes_list COMMA client_class +client_classes_list: client_class_entry + | client_classes_list COMMA client_class_entry ; -client_class: LCURLY_BRACKET { +client_class_entry: LCURLY_BRACKET { ElementPtr m(new MapElement(ctx.loc2pos(@1))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m); diff --git a/src/bin/dhcp6/dhcp6_lexer.ll b/src/bin/dhcp6/dhcp6_lexer.ll index 6d891067c4..a31486b3fb 100644 --- a/src/bin/dhcp6/dhcp6_lexer.ll +++ b/src/bin/dhcp6/dhcp6_lexer.ll @@ -607,7 +607,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_PREFERRED_LIFETIME(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("preferred-lifetime", driver.loc_); @@ -618,7 +618,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_VALID_LIFETIME(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("valid-lifetime", driver.loc_); @@ -629,7 +629,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_RENEW_TIMER(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("renew-timer", driver.loc_); @@ -640,7 +640,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_REBIND_TIMER(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("rebind-timer", driver.loc_); @@ -659,7 +659,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"subnet6\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::DHCP6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_SUBNET6(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("subnet6", driver.loc_); @@ -668,7 +668,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"shared-networks\" { switch (driver.ctx_) { - case Parser6Context::DHCP6: + case isc::dhcp::Parser6Context::DHCP6: return Dhcp6Parser::make_SHARED_NETWORKS(driver.loc_); default: return Dhcp6Parser::make_STRING("shared-networks", driver.loc_); @@ -693,7 +693,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} case isc::dhcp::Parser6Context::RESERVATIONS: case isc::dhcp::Parser6Context::CLIENT_CLASSES: case isc::dhcp::Parser6Context::CLIENT_CLASS: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_OPTION_DATA(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("option-data", driver.loc_); @@ -709,7 +709,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} case isc::dhcp::Parser6Context::CLIENT_CLASSES: case isc::dhcp::Parser6Context::CLIENT_CLASS: case isc::dhcp::Parser6Context::LOGGERS: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_NAME(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("name", driver.loc_); @@ -829,7 +829,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"interface\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_INTERFACE(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("interface", driver.loc_); @@ -839,7 +839,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"interface-id\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_INTERFACE_ID(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("interface-id", driver.loc_); @@ -858,7 +858,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"rapid-commit\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_RAPID_COMMIT(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("rapid-commit", driver.loc_); @@ -868,7 +868,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"reservation-mode\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_RESERVATION_MODE(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("reservation-mode", driver.loc_); @@ -1043,8 +1043,10 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"client-class\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: + case isc::dhcp::Parser6Context::POOLS: + case isc::dhcp::Parser6Context::PD_POOLS: case isc::dhcp::Parser6Context::CLIENT_CLASSES: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_CLIENT_CLASS(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("client-class", driver.loc_); @@ -1177,7 +1179,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"relay\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::SUBNET6: - case Parser6Context::SHARED_NETWORK: + case isc::dhcp::Parser6Context::SHARED_NETWORK: return isc::dhcp::Dhcp6Parser::make_RELAY(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("relay", driver.loc_); @@ -1187,7 +1189,7 @@ ControlCharacterFill [^"\\]|\\{JSONEscapeSequence} \"ip-address\" { switch(driver.ctx_) { case isc::dhcp::Parser6Context::RELAY: - return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_); + return isc::dhcp::Dhcp6Parser::make_IP_ADDRESS(driver.loc_); default: return isc::dhcp::Dhcp6Parser::make_STRING("ip-address", driver.loc_); } diff --git a/src/bin/dhcp6/dhcp6_parser.yy b/src/bin/dhcp6/dhcp6_parser.yy index 5b59e0dc5b..7ad030d55e 100644 --- a/src/bin/dhcp6/dhcp6_parser.yy +++ b/src/bin/dhcp6/dhcp6_parser.yy @@ -1292,6 +1292,7 @@ pool_params: pool_param pool_param: pool_entry | option_data_list + | client_class | user_context | unknown_map_entry ; @@ -1366,6 +1367,7 @@ pd_pool_param: pd_prefix | pd_prefix_len | pd_delegated_len | option_data_list + | client_class | excluded_prefix | excluded_prefix_len | user_context @@ -1558,11 +1560,11 @@ client_classes: CLIENT_CLASSES { ctx.leave(); }; -client_classes_list: client_class - | client_classes_list COMMA client_class +client_classes_list: client_class_entry + | client_classes_list COMMA client_class_entry ; -client_class: LCURLY_BRACKET { +client_class_entry: LCURLY_BRACKET { ElementPtr m(new MapElement(ctx.loc2pos(@1))); ctx.stack_.back()->add(m); ctx.stack_.push_back(m);