<程序>→<外部声明>|<程序><外部声明>
<外部声明>→<函数定义>|<定义>
<函数定义>→<函数定义>|<定义>
<函数定义>→<类型标识符><声明部分语句>
<类型标识符>→<无类型>|<字符型>|<整型>|<浮点型>
<声明符>→<指针直接声明>|<直接声明>
<指针>→<’*’>|<’*’指针>
<直接声明> <标识符>|<直接声明’[‘ ‘]’>|<直接声明’[‘常量表达式’]’>|<标识符’(‘参数列表’)’>|<标识符’(‘ ‘)’>|<直接声明’,’标识符列表>
<标识符列表>:<标识符>|<标识符列表><标识符>
<常量表达式>→<条件表达式>
<参数列表>→<参数说明>|<参数列表><参数说明>
<参数声明>→<说明符声明><标识符>
<复合语句>→ <’{‘ ‘}’>|<语句列表>|<声明列表><语句列表>
<声明列表>→<声明>|<声明列表><声明>
<声明>→<初始化声明>|<初始化声明列表><初始化声明>
<初始化声明>→<声明>|<声明>’=’初始化程序
<初始化程序>→<赋值表达式>|<’{‘初始化列表’}’>|<’{‘初始化列表’}’>
<初始化列表>→<初始化程序>|<初始化列表><初始化程序>
<语句列表>→<语句>|<语句列表><语句>
<语句>→ <复合语句>|<表达式语句>|<条件语句>|<循环语句>|<跳转语句>
<表达式>→<’;’>|<表达式’;’>
<表达式>:<赋值表达式>|<表达式><赋值表达式>
<赋值表达式>→<条件表达式>|<一元表达式赋值运算符><赋值表达式>
<条件表达式>→<逻辑或表达式>|<逻辑或表达式><表达式><条件表达式>
<逻辑或表达式>→<逻辑与表达式>|<逻辑或表达式><运算逻辑表达式>
<逻辑与表达式>:<表达式>|<逻辑表达式><运算表达式>|<表达式>
<或运算表达式>→<异或表达式>|<或运算表达式>|<异或表达式>
<有标号语句>→<标识符>:<语句> | case<常量表达式>:<语句> | default:<语句>