.. -*- coding: utf-8; -*-===== BNF=====What is BNF?============.. contents:: :local:BNF is an acronym for "Backus Naur Form". John Backus and Peter Naur introducedfor the first time a formal notation to describe the syntax of a given language(ALGOL 60 programming language).See: :rfc:`2234`.BNF syntax==========The meta-symbols of BNF are:``::=`` Meaning "is defined as".``|`` Meaning "or".``<``, ``>`` Angle brackets used to surround category names (some times skipped).``[``, ``]`` Optional items are enclosed in.``{``, ``}`` Repetitive items (zero or more times) are enclosed in.``"abc..."`` Terminals are enclosed in to distinguish them from meta-symbols.BNF in BNF==========:: syntax ::= { rule } rule ::= identifier "::=" expression expression ::= term { "|" term } term ::= factor { factor } factor ::= identifier | quoted_symbol | "(" expression ")" | "[" expression "]" | "{" expression "}" identifier ::= letter { letter | digit } quoted_symbol ::= """ { any_character } """