BNF:
以形式化的符号来描述给定编程语言的语法规则。
比如:C语言的声明语句可以用BNF这样描述:
::=
;
|
[];
这一句中这个非终结符被定义成了两种形式(上面用|隔开的两部分),同时在这里引入了三个终结符:
分号; 左方括号[,右方括号 ]。
::=
|
|
::=
* |
*
::=
int|char|double|float|long|short|void
::=
enum|struct|union|
到这里就基本上把定义清楚了。
::=
0x |
0 |
::=
|
::=
|
::=
|
::=
| A | B | C | D | E |
F
::=
| 8 |
9
::= 0 | 1 |
2 | 3 | 4 | 5 | 6 | 7
到这里就把定义清楚了
::=
|
::=
|||
::= _ |
|
::=
a|b|c|d|e|f|g|h|i|j
……
::=
A|B|C|D|E|F|G|H|I|J ……
到此为止整个声明语句就定义完了(就是说已经没有非终结符了)。