<程序> -> <外部声明> | <程序> <外部声明>
<外部声明> -> <函数定义> | <声明>
<函数定义> -> <说明符类型> <声明> <复合语句>
<说明符类型> -> <空类> | <字符型> | <浮点型>
<声明> -> <指针> <直接说明符> | <直接说明符>
<指针> -> <*> | <*指针>
<直接说明符> -> <标识符> | <直接说明符 '[' ']'> | <直接标识符'[' 恒表达式 ']'> | <标识符'(' 参数名单 ')'> | <标识符'(' ')'> | <直接说明符 ';' 识别名单>
<识别名单> -> <标识符> | <识别名单 ';' 标识符>
<恒表达式> -> <恒表达式>
<参数名单> -> <参数声明> | <参数名单 ';' 参数声明>
<参数声明> -> <> | <>