程序→<外部声明>|<程序>
外部声明→<功能定义>|<声明>
功能定义→<声明复合语句的类型>
类型→<VOID| CHAR| INT| FLOAT>
说明符→<指针直接说明符>|<直接说明符>
指针→<*>|<*指针>
直接说明符→<标识符>|<直接说明符’[‘ ‘]’ >|<直接说明符’[’ 常数表达式 ’]’>|<标识符'(' 参数列表 ')'
>|<标识符'(' ')'|直接说明‘,’标识符表
标识符表→标识符 |标识符列表
常数表
程序→<外部声明>|<程序>
外部声明→<功能定义>|<声明>
功能定义→<声明复合语句的类型>
类型→<VOID| CHAR| INT| FLOAT>
说明符→<指针直接说明符>|<直接说明符>
指针→<*>|<*指针>
直接说明符→<标识符>|<直接说明符’[‘ ‘]’ >|<直接说明符’[’ 常数表达式 ’]’>|<标识符'(' 参数列表 ')'
>|<标识符'(' ')'|直接说明‘,’标识符表
标识符表→标识符 |标识符列表
常数表达式→条件表达式
参数表→参数声明|参数表
参数声明→标识符的声明符说明
复合语句→ '{' '}'| '{' 声明列表'}'| '{' <声明列表><语句表> '}'
声明→声明符|初始化声明符
初始化声明符→声明符|声明符的初始设定式
初始设定式→赋值表达式| '{' 初始设定式列表 '}'
语句→选择语句|循环语句|跳转语句|表达语句|条件语句
表达语句→;|表达式;
选择语句→if(表达式)语句| if(表达式)语句else语句
循环语句→while(表达式)语句|for(表达式;表达式;表达式)语句|
跳转语句→| CONTINUE ';'| BREAK ';'| RETURN ';'| 返回表达式';'
达式→条件表达式
参数表→参数声明|参数表
参数声明→标识符的声明符说明
复合语句→ '{' '}'| '{' 声明列表'}'| '{' <声明列表><语句表> '}'
声明→声明符|初始化声明符
初始化声明符→声明符|声明符的初始设定式
初始设定式→赋值表达式| '{' 初始设定式列表 '}'
语句→选择语句|循环语句|跳转语句|表达语句|条件语句
表达语句→;|表达式;
选择语句→if(表达式)语句| if(表达式)语句else语句
循环语句→while(表达式)语句|for(表达式;表达式;表达式)语句|
跳转语句→| CONTINUE ';'| BREAK ';'| RETURN ';'| 返回表达式';'