简单例子:
Java语句: if ( expression )statements else statements
在文法中:使用变量expr 来表示 expression , 使用变量stmt来表示 statements
那个这个构造规则可以表示为:
stmt → if( expr ) stmt else stmt
"→" 读作 "可以具有如下形式",以上规则叫做“产生式”。在产生式中 if、else、括号 这样的词法元素叫做 终结符号,
而 expr、stmt 表示终结符号的序列,叫做非终结符号。
文法定义:
一个上下文无关文法由4个元素组成:
- 一个终结符号集合,他们有时候也称为“词法单元”。终结符号是该文法所定义的语言的基本符号的集合。
- 一个非终结符号集合,他们有时候也称为“语法变量”。每个非终结符号表示一个终结符号串的集合。
- 一个产生式集合,每个产生式 都包含一个叫做产生式头或左部的非终结符号,一个箭头,和一个称为产生式体或右部的 由终结符号和非终结符号组成的序列。产生式主要用来表示某个构造的某种书写形式,如果产生式头表示某个构造,那么产生式体表示该构造的书写形式。
- 指定一个非终结符号为开始符号。
图示:
(未完待续.....)