介绍
扩展巴科斯-瑙尔范式(Extended Backus–Naur Form,EBNF)是一种用于描述计算机编程语言等正式语言的与上下文无关语法的元语法(metasyntax)符号表示法。简而言之,它是一种描述语言的语言。它是基本巴科斯范式(BNF)元语法符号表示法的一种扩展。
最初由尼克劳斯·维尔特开发,最常用的EBNF变体由标准是 ISO-14977 所定义。
EBNF的基本语法形式如下,这个形式也被叫做production:
左式(LeftHandSide) = 右式(RightHandSide).
左式也被叫做 非终端符号(non-terminal symbol),而右式则描述了其的组成。
终端符号与非终端符号
终端符号(Terminal symbols):形成所描述的语言的最基本符号。所描述语言的标点符号(不是EBNF自己的)会被左右加引号(它们也是终端符号),而其他终端符号会用粗体(这边因不方便加粗,就不加粗了)打印。
非终端符号:是用于描述语法的变量,它必须被定义在一个production中。或说,它们必须出现在某个地方的production的左式中。
符号
下表是 推荐标准ISO/IEC 14977 所定义的符号:
约定
1 .使用了如下约定:
EBNF的每个元标识符(meta-identifier)都被写为用连字符(“-“,hyphens)连接起来的一个或多个单词;
以 “-symbol” 结束的元标识符是EBNF的终端符号。
2 .用普通字符表示的EBNF操作符按照优先级(顶部为最高优先级)排序为:
*repetit