Esempio n. 1
0
    Keyword('deallocate-on-exit').suppress()
    - isc_boolean('deallocate_on_exit')
    + semicolon
)

#   deny-answer-addresses { address_match_list }
#     [ except-from { name_list } ]; [ Opt ]
options_stmt_deny_answer_addresses = (
    Keyword('deny-answer-addresses').suppress()
    + Group (
        lbrack
        + (
            ZeroOrMore(
                Group(
                    (
                        exclamation('not')
                        + aml_nesting
                    )
                    | (
                        exclamation('not')
                        + aml_choices
                        + semicolon
                    )
                    | (
                        aml_nesting
                    )
                    | (
                        aml_choices
                        + semicolon
                    )  # never set a ResultsLabel here, you get duplicate but un-nested 'addr'
                )  # never set a ResultsLabel here, you get no []
    isc_boolean, quoted_path_name, number_type, \
    exclamation, key_id
from bind9_parser.isc_aml import aml_nesting, aml_choices
from bind9_parser.isc_inet import ip46_addr_or_wildcard, \
    inet_ip_port_keyword_and_wildcard_element

#  ( ip46_addr_or_prefix | * ) [ port ( ip_port | * ) ]
controls_inet_addr_and_port = (
    ip46_addr_or_wildcard('control_server_addr') +
    Optional(inet_ip_port_keyword_and_wildcard_element))

controls_inet_allow_element = Group(
    Keyword('allow').suppress() + lbrack + (
        ZeroOrMore(
            Group(
                (exclamation('not') + aml_nesting)
                | (exclamation('not') + aml_choices + semicolon)
                | (aml_nesting)
                | (
                    aml_choices + semicolon
                )  # never set a ResultsLabel here, you get duplicate but un-nested 'addr'
            )  # never set a ResultsLabel here, you get no []
        )(None))('aml') + rbrack
    # NOSEMICOLON HERE!
)('allow')

#  keys { key_id; [ ... ] };
controls_keys_element = (
    Keyword('keys').suppress() + lbrack +
    ZeroOrMore(Group(key_id(None) + semicolon)) + rbrack
    # NO SEMICOLON HERE!