BNF范式和EBNF范式
BNF 的全称是 Backus–Naur form,是一种表示上下文无关语法的表示方式。
BNF范式(巴科斯范式)是一种用递归的思想来表述计算机语言符号集的定义规范。
基本结构为 ::=
non-terminal意为非终止符,就是说我们还没有定义完的东西,还可以继续由右边的replacement,也就是代替物来进一步解释、定义。
法则:
::=表示定义;
“ ”双引号里的内容表示字符;
<>尖括号里的内容表示必选内容;
| 竖线两边的是可选内容,相当于or;
示例
定义java中的switch语句:
BNF:Backus-Naur Form
描述语言的数学方法,是定义语言的语法,非常精确,没有歧义;
BNF
从一个符号开始,起始标志,给出替换前面符号的规则;
这些规则叫做书写规范,形式如下:
symbol := alternative1 | alternative2 …
:=左侧的符号必须被右侧某一个可选项代替;
替换项通常有两个符号和终结符构成,终结符代表书写过程终止;
另一种变化,把终止符放在引号中,与符号区分开;
@表示符号可以去掉;
EBNF(Extended Backus–Naur form),是一个计算机用语,意思是扩展的巴科斯范式,用来描述计算机语言语法的符号集。
现在在网络上大多数能搜出来的都是extended BNF ,允许使用循环。