程序 → <外部声明>|<程序><外部声明>
<外部声明> → <函数定义> | <声明>
<函数定义> → <类型标识符> <说明符> <复合语句>
<类型标识符> → void | char | int | float
说明符 → <指针 ><直接说明符>|<直接说明符>
指针 → <*>|<*><指针>
<参数列表> → <参数声明> | <参数列表 ,参数声明>
<参数声明> → <说明符声明><标识符>
<复合语句> → < 语句列表 > | <声明列表 语句列表>
<语句列表> → <语句> | <语句列表> <语句>
<语句> → <复合语句> | <表达式语句> | <循环语句> | <条件语句>
<表达式语句> → <表达式;>
<循环语句> → < WHILE(表达式)语句> | < FOR(表达式语句表达式语句)语句> | < FOR(表达式语句表达式语句表达式)语句>
<条件语句> → < IF(表达式)语句> | < IF(表达式)语句 > < ELSE 语句>
<表达式语句> → <赋值表达式> | <逻辑表达式> | <算术表达式 E>
<赋值表达式> → <变量> = <算术表达式>
<逻辑表达式> → (<表达式> | <数字> ) <逻辑运算符> (<表达式> | <数字>)
E → E + T | E – T | T
T → T * F| T / F | F
F F ↑ P | P
P (E) | <常量> | <标识符>
< 赋值运算符> → <乘法赋值> | <除法赋值> | <求余赋值> | <加法赋值> | <减法赋值>