<程序>→<外部声明>|<程序><外部声明>
<外部声明>→<函数定义>|<声明>
<函数定义>→<类型说明><声明符><符合语句>
<类型说明>→<void>|<char>|<int>|<float>
<声明符>→<指针直接声明符>|<直接声明符>
<指针>→<'*'>|< '*' 指针>
<直接声明符>→<标识符>|<’[‘ ‘]’>|<[’ 常量表达式’]’>|<参数表>|<(' ')>|< 标识符列表>
<复合语句>→<'{' '}'>|<语句列表>|<声明列表>
<声明列表>→<声明>|<声明列表声明>
<标识符列表>→<标识符>|<标识符列><标识符>
<常量表达式>→<条件表达式>
<参数表>→<参数声明>|<参数列表><参数声明>
<声明>→<声明>|<声明列表声明>
<初始化>→<赋值表达式>|<“{ }”“初始化列表”>|<“{ }”“初始化列表”>
<初始化列表>→<初始化>|<初始化列表'><初始化>
<语句列表>→<语句>|<语句列表><语句>
<语句>→<复合语句>|<表达语句>|<选择语句>|<迭代语句>|<跳转语句>
<选择语句>→<if>|<IF (“表达式”)ELSE语句的声明>
<迭代语句>→< WHILE >|< FOR >|< FOR ><语句>
<跳转语句>→< CONTINUE >|< BREAK >< RETURN >< RETURN ><语句>
<一元运算符>→ '&'| '*'| '+'| '-'| '~'| '!'
<存储类说明符>→< TYPEDEF >|< EXTERN >|< STATIC >|< AUTO >|< REGISTER >
<结构或联合说明符>→<结构或联合说明符><结构体声明列表>|<结构或联合><结构体声明列表>|<结构或联合><标识符>
<结构或联合>→< STRUCT >|< UNION >
<结构体声明列表>→<结构体声明>|<结构体声明><结构体声明列表>
<结构体声明>→<说明符限定符列表><结构说明符>
<说明符限定符列表>→<类型说明符><说明符限定符列表>|<类型说明符>|<说明符限定符列表>|<类型限定符>
<结构说明符列表>→<结构说明符>|<结构说明符列表><结构说明符>
<结构说明符>→<说明符>|<常数表达式>|<常数表达式><说明符>
<枚举说明符>→<枚举器列表>|<枚举标识符><枚举器列表>|<枚举标识符>
<枚举标识符>→<枚举>|<枚举标识符><枚举>
<枚举>→<标识符>|<常数表达式><标识符>
<函数定义> —〉 <类型说明><函数名><参数列表><复合语句>
<函数名> —〉<标识符><参数列表〉 —〉<类型说明><变量名><复合语句> —〉<变量>|<语句><语句> —〉<表达式语句〉|<选择语句>|<循环语句>|<跳跃语句><表达式语句> —〉 <赋值表达式>|<关系表达式>|<逻辑表达式><赋值表达式> —〉 = | += | =+ | -= | =-<关系表达式> —> 〉| < | 〉=| <=<逻辑表达式> —〉 + | - | * | / <选择语句> —〉 if else语句| switch语句<循环语句> —〉 for语句|while语句|do while语句<跳跃语句> —> return语句|break语句|continue语句<变量> —> <类型>丨<变量名>丨<变量值><类型说明> —> int丨char丨double丨float丨long<变量名> <==> SS —> A|SBA —> a|b|c|……y|zB —> 0|1|2|3|4|5|6|7|8|9<变量值> —> <字母>丨〈数字〉<标识符> 〈==〉 SS —> a|b|c|……y|z|S<字母> —> a|b|c|……y|z<数字> 〈==〉 SA —> 1|2|3|4|5|6|7|8|9S —> A|SA|SA0
来自路人