]> granicus.if.org Git - pdns/commitdiff
fix bindparser reduce conflicts
authorStefan Bühler <stbuehler@web.de>
Mon, 18 Nov 2013 19:04:25 +0000 (20:04 +0100)
committerStefan Bühler <stbuehler@web.de>
Tue, 19 Nov 2013 11:55:55 +0000 (12:55 +0100)
resolve reduce conflicts to what yacc defaulted to:

  * 'root_command' included 'command' directly and through
    'options_command' and 'zone_command'; separate option/zone commands
    for global usage, which don't include 'command' anymore.
  * 'command' included 'also_notify' and 'zone_also_notify'; yacc resolved
    conflict by defaulting to 'also_notify'; removed 'zone_also_notify'
    from global zone commands.

pdns/bindparser.yy

index 5e2ff5dfc8ca5812bda4ae954906ee4394635915..4b9340e2fbb28f5bcbfb25e39e247c8640c6fbe9 100644 (file)
@@ -110,7 +110,7 @@ root_commands:
        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:
@@ -122,7 +122,7 @@ command:
        terms 
        ;
 
-zone_command:
+global_zone_command:
        ZONETOK quotedname zone_block
        {
                s_di.name=stripDot($2);
@@ -141,7 +141,7 @@ zone_command:
        ;
 
 
-options_command:
+global_options_command:
        OPTIONSTOK OBRACE options_commands EBRACE
        |
        LOGGINGTOK OBRACE options_commands EBRACE
@@ -169,7 +169,10 @@ options_commands:
        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
@@ -208,12 +211,19 @@ zone_block:
        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