root_commands root_command SEMICOLON
;
-root_command: command | acl_command | zone_command | options_command
+root_command: command | acl_command | global_zone_command | global_options_command
;
commands:
terms
;
-zone_command:
+global_zone_command:
ZONETOK quotedname zone_block
{
s_di.name=stripDot($2);
;
-options_command:
+global_options_command:
OPTIONSTOK OBRACE options_commands EBRACE
|
LOGGINGTOK OBRACE options_commands EBRACE
options_command SEMICOLON options_commands
;
-options_command: command | options_directory_command | also_notify_command
+options_command: command | global_options_command
+ ;
+
+global_options_command: options_directory_command | also_notify_command
;
options_directory_command: DIRECTORYTOK quotedname
OBRACE zone_commands EBRACE
;
-zone_commands:
+zone_commands:
|
zone_commands zone_command SEMICOLON
;
-zone_command: command | zone_file_command | zone_type_command | zone_masters_command | zone_also_notify_command
+/* commands in zone
+ * in global scope also_notify_command is used instead of zone_also_notify_command
+ */
+zone_command: command | global_zone_command | zone_also_notify_command
+ ;
+
+/* zone commands that also are available at global scope */
+global_zone_command: zone_file_command | zone_type_command | zone_masters_command
;
zone_masters_command: MASTERTOK OBRACE masters EBRACE