summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/grammar/grammar-d2-parser.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sphinx/grammar/grammar-d2-parser.rst')
-rw-r--r--doc/sphinx/grammar/grammar-d2-parser.rst310
1 files changed, 310 insertions, 0 deletions
diff --git a/doc/sphinx/grammar/grammar-d2-parser.rst b/doc/sphinx/grammar/grammar-d2-parser.rst
new file mode 100644
index 0000000..4f02ab0
--- /dev/null
+++ b/doc/sphinx/grammar/grammar-d2-parser.rst
@@ -0,0 +1,310 @@
+This grammar is generated from ``d2_parser.yy``. See :ref:`dhcp-ddns-server` for more details.
+
+.. code-block:: BNF
+ :linenos:
+
+ Grammar
+
+ $accept ::= start EOF
+
+ start ::= TOPLEVEL_JSON sub_json
+
+ start ::= TOPLEVEL_DHCPDDNS syntax_map
+
+ start ::= SUB_DHCPDDNS sub_dhcpddns
+
+ start ::= SUB_TSIG_KEY sub_tsig_key
+
+ start ::= SUB_TSIG_KEYS sub_tsig_keys
+
+ start ::= SUB_DDNS_DOMAIN sub_ddns_domain
+
+ start ::= SUB_DDNS_DOMAINS sub_ddns_domains
+
+ start ::= SUB_DNS_SERVER sub_dns_server
+
+ start ::= SUB_DNS_SERVERS sub_dns_servers
+
+ start ::= SUB_HOOKS_LIBRARY sub_hooks_library
+
+ value ::= INTEGER
+ | FLOAT
+ | BOOLEAN
+ | STRING
+ | NULL
+ | map2
+ | list_generic
+
+ sub_json ::= value
+
+ map2 ::= "{" map_content "}"
+
+ map_value ::= map2
+
+ map_content ::=
+ | not_empty_map
+
+ not_empty_map ::= STRING ":" value
+ | not_empty_map "," STRING ":" value
+ | not_empty_map ","
+
+ list_generic ::= "[" list_content "]"
+
+ list_content ::=
+ | not_empty_list
+
+ not_empty_list ::= value
+ | not_empty_list "," value
+ | not_empty_list ","
+
+ unknown_map_entry ::= STRING ":"
+
+ syntax_map ::= "{" global_object "}"
+
+ global_object ::= "DhcpDdns" ":" "{" dhcpddns_params "}"
+ | global_object_comma
+
+ global_object_comma ::= global_object ","
+
+ sub_dhcpddns ::= "{" dhcpddns_params "}"
+
+ dhcpddns_params ::= dhcpddns_param
+ | dhcpddns_params "," dhcpddns_param
+ | dhcpddns_params ","
+
+ dhcpddns_param ::= ip_address
+ | port
+ | dns_server_timeout
+ | ncr_protocol
+ | ncr_format
+ | forward_ddns
+ | reverse_ddns
+ | tsig_keys
+ | control_socket
+ | hooks_libraries
+ | loggers
+ | user_context
+ | comment
+ | unknown_map_entry
+
+ ip_address ::= "ip-address" ":" STRING
+
+ port ::= "port" ":" INTEGER
+
+ dns_server_timeout ::= "dns-server-timeout" ":" INTEGER
+
+ ncr_protocol ::= "ncr-protocol" ":" ncr_protocol_value
+
+ ncr_protocol_value ::= "UDP"
+ | "TCP"
+
+ ncr_format ::= "ncr-format" ":" "JSON"
+
+ user_context ::= "user-context" ":" map_value
+
+ comment ::= "comment" ":" STRING
+
+ forward_ddns ::= "forward-ddns" ":" "{" ddns_mgr_params "}"
+
+ reverse_ddns ::= "reverse-ddns" ":" "{" ddns_mgr_params "}"
+
+ ddns_mgr_params ::=
+ | not_empty_ddns_mgr_params
+
+ not_empty_ddns_mgr_params ::= ddns_mgr_param
+ | ddns_mgr_params "," ddns_mgr_param
+ | ddns_mgr_params ","
+
+ ddns_mgr_param ::= ddns_domains
+ | unknown_map_entry
+
+ ddns_domains ::= "ddns-domains" ":" "[" ddns_domain_list "]"
+
+ sub_ddns_domains ::= "[" ddns_domain_list "]"
+
+ ddns_domain_list ::=
+ | not_empty_ddns_domain_list
+
+ not_empty_ddns_domain_list ::= ddns_domain
+ | not_empty_ddns_domain_list "," ddns_domain
+ | not_empty_ddns_domain_list ","
+
+ ddns_domain ::= "{" ddns_domain_params "}"
+
+ sub_ddns_domain ::= "{" ddns_domain_params "}"
+
+ ddns_domain_params ::= ddns_domain_param
+ | ddns_domain_params "," ddns_domain_param
+ | ddns_domain_params ","
+
+ ddns_domain_param ::= ddns_domain_name
+ | ddns_key_name
+ | dns_servers
+ | user_context
+ | comment
+ | unknown_map_entry
+
+ ddns_domain_name ::= "name" ":" STRING
+
+ ddns_key_name ::= "key-name" ":" STRING
+
+ dns_servers ::= "dns-servers" ":" "[" dns_server_list "]"
+
+ sub_dns_servers ::= "[" dns_server_list "]"
+
+ dns_server_list ::= dns_server
+ | dns_server_list "," dns_server
+ | dns_server_list ","
+
+ dns_server ::= "{" dns_server_params "}"
+
+ sub_dns_server ::= "{" dns_server_params "}"
+
+ dns_server_params ::= dns_server_param
+ | dns_server_params "," dns_server_param
+ | dns_server_params ","
+
+ dns_server_param ::= dns_server_hostname
+ | dns_server_ip_address
+ | dns_server_port
+ | ddns_key_name
+ | user_context
+ | comment
+ | unknown_map_entry
+
+ dns_server_hostname ::= "hostname" ":" STRING
+
+ dns_server_ip_address ::= "ip-address" ":" STRING
+
+ dns_server_port ::= "port" ":" INTEGER
+
+ tsig_keys ::= "tsig-keys" ":" "[" tsig_keys_list "]"
+
+ sub_tsig_keys ::= "[" tsig_keys_list "]"
+
+ tsig_keys_list ::=
+ | not_empty_tsig_keys_list
+
+ not_empty_tsig_keys_list ::= tsig_key
+ | not_empty_tsig_keys_list "," tsig_key
+ | not_empty_tsig_keys_list ","
+
+ tsig_key ::= "{" tsig_key_params "}"
+
+ sub_tsig_key ::= "{" tsig_key_params "}"
+
+ tsig_key_params ::= tsig_key_param
+ | tsig_key_params "," tsig_key_param
+ | tsig_key_params ","
+
+ tsig_key_param ::= tsig_key_name
+ | tsig_key_algorithm
+ | tsig_key_digest_bits
+ | tsig_key_secret
+ | user_context
+ | comment
+ | unknown_map_entry
+
+ tsig_key_name ::= "name" ":" STRING
+
+ tsig_key_algorithm ::= "algorithm" ":" STRING
+
+ tsig_key_digest_bits ::= "digest-bits" ":" INTEGER
+
+ tsig_key_secret ::= "secret" ":" STRING
+
+ control_socket ::= "control-socket" ":" "{" control_socket_params "}"
+
+ control_socket_params ::= control_socket_param
+ | control_socket_params "," control_socket_param
+ | control_socket_params ","
+
+ control_socket_param ::= control_socket_type
+ | control_socket_name
+ | user_context
+ | comment
+ | unknown_map_entry
+
+ control_socket_type ::= "socket-type" ":" STRING
+
+ control_socket_name ::= "socket-name" ":" STRING
+
+ hooks_libraries ::= "hooks-libraries" ":" "[" hooks_libraries_list "]"
+
+ hooks_libraries_list ::=
+ | not_empty_hooks_libraries_list
+
+ not_empty_hooks_libraries_list ::= hooks_library
+ | not_empty_hooks_libraries_list "," hooks_library
+ | not_empty_hooks_libraries_list ","
+
+ hooks_library ::= "{" hooks_params "}"
+
+ sub_hooks_library ::= "{" hooks_params "}"
+
+ hooks_params ::= hooks_param
+ | hooks_params "," hooks_param
+ | hooks_params ","
+ | unknown_map_entry
+
+ hooks_param ::= library
+ | parameters
+
+ library ::= "library" ":" STRING
+
+ parameters ::= "parameters" ":" map_value
+
+ loggers ::= "loggers" ":" "[" loggers_entries "]"
+
+ loggers_entries ::= logger_entry
+ | loggers_entries "," logger_entry
+ | loggers_entries ","
+
+ logger_entry ::= "{" logger_params "}"
+
+ logger_params ::= logger_param
+ | logger_params "," logger_param
+ | logger_params ","
+
+ logger_param ::= name
+ | output_options_list
+ | debuglevel
+ | severity
+ | user_context
+ | comment
+ | unknown_map_entry
+
+ name ::= "name" ":" STRING
+
+ debuglevel ::= "debuglevel" ":" INTEGER
+
+ severity ::= "severity" ":" STRING
+
+ output_options_list ::= "output_options" ":" "[" output_options_list_content "]"
+
+ output_options_list_content ::= output_entry
+ | output_options_list_content "," output_entry
+ | output_options_list_content ","
+
+ output_entry ::= "{" output_params_list "}"
+
+ output_params_list ::= output_params
+ | output_params_list "," output_params
+ | output_params_list ","
+
+ output_params ::= output
+ | flush
+ | maxsize
+ | maxver
+ | pattern
+
+ output ::= "output" ":" STRING
+
+ flush ::= "flush" ":" BOOLEAN
+
+ maxsize ::= "maxsize" ":" INTEGER
+
+ maxver ::= "maxver" ":" INTEGER
+
+ pattern ::= "pattern" ":" STRING
+