产生式(BNF-巴科斯范式)
- 用尖括号括起来
- 语法结构分成基础结构和需要用基础结构复合的复合结构
- 基础结构称终结符
- 复合皆否称非终结符
- 引号与中间的字符表示终结符
- 可以有括号
- *表示重复多次
- |表示或
- +表示至少一次
示例
```定义语言
终结符
“a”
“b”定义 Number 为
::= “0” | “1” | “2” |… |”9”任意位的Number
::= “0” | ((“1” | “2” |… |”9”) + *)加法1:
::= “+”
加法2: 递归实现加法
::= “+”
加法3 合并1与2
::= | “+”
<a name="FIz8J"></a>### 四则运算- 1 + 2 * 3
::= | “*”
::= |
“||” |
“&&”
括号
::= |
“(“ “)”
```
BNF范式是一种用递归的思想来表述计算机语言符号集的定义规范法则:
::=表示定义;
“ ”双引号里的内容表示字符;
<>尖括号里的内容表示必选内容;
| 竖线两边的是可选内容,相当于or;
示例
定义java中的switch语句:
<switch statement> ::= switch ( <expression> ) <switch block><switch block> ::= { <switch block statement groups><switch labels> }<switch block statement groups> ::= <switch block statement group> | <switch block statement groups> <switch block statement group><switch block statement group> ::= <switch labels><block statements><switch labels> ::= <switch label> | <switch labels> <switch label><switch label> ::= case <constant expression> :<……> | default :< ……>