0%

巴科斯-诺尔范式(BNF)

介绍

巴科斯-诺尔范式缩写为: BNF , 是一种用形式化符号精确描述程序设计语言的语法的一种形式系统.实际上,BNF范式等价于乔姆斯基的2型文法.它是一种典型的元语言,可以严格地表示语法规则,且描述的文法是上下文无关文法.

语法

1
2
//这里<>并非规则,可忽略该符号
<符号> ::= <使用符号的表达式>

规则

规则 实例 描述
::= var ::= Name 定义为
“” “word” 在双引号中的字符代表其本身,双引号外则为语法本身
<> <>内包含的为必选项
[] [a] []内包含的为可选项
{} {a} {}内包含可重复0~无穷次的项
| a|b 或者

实例

Java For循环

FOR_STATEMENT ::=
“for”
“(“ ( variable_declaration |( expression “;” ) | “;” )
[ expression ] “;”
[ expression ]
“)” statement

Lua For 循环

stat ::= for namelist in explist do block end
namelist ::= Name {`,´ Name}

您的支持是对我最大的动力 (●'◡'●)