程式-> <外部聲明><程式><外部聲明>
外部聲明-> <函數定義>|<聲明>
函數定義-> <函數類型><說明符><複合語句>
函數類型-> void|char|int|float
說明符-> <指針 ><直接說明符>|<直接說明符>
指針-> <*>|<*><指針>
直接說明符-> <辨別符>|<直接說明符[]>|<直接說明符[常量表達式]>|<辨別符(參數序列)>|<辨別符()>|<直接說明符,辨別符序列>
辨別符序列-> <辨別符>|<辨別符序列><,><辨別符>
常量表達式-> <條件表達式>
參數序列-> <參數聲明>|<參數聲明><,><參數聲明>
參數聲明-> <聲明說明符><聲明符>
複合語句-> <{}>|<{<陳述序列>}>|<{<聲明序列><陳述序列>}>
聲明序列-> <聲明符>|<聲明序列><聲明符>
聲明符-> <初始化說明符>|<初始化說明符><,><初始化說明符>
初始化說明符-> <說明符>|<說明符><=><初始化程式>
初始化程式-> <指派表達式>|<{<初始化序列>}>|<{<初始化序列><,>}>
初始化序列-> <初始化程式>|<初始化序列><,><初始化>
陳述序列-> <陳述語句>|<陳述序列><陳述語句>
陳述語句-> <複合語句>|<表達式語句>|<選擇語句>|<循環語句>|<轉移語句>
表達式語句-> <;>|<表達式><;>
選擇語句-> IF(<表達式>)<陳述語句>|IF(<表達式>)<陳述語句>ELSE<陳述語句>
循環語句->WHILE(<表達式>)<陳述語句>|FOR(<表達式語句><表達式語句>)<陳述語句>|FOR(<表達式語句><表達式語句><陳述語句>)<陳述語句>
轉移語句->CONTINUE;| BREAK; | RETURN; | RETURN <表達式>;
表達式-><任務表達式>|<表達式>;<任務表達式>
任務表達式-><條件表達式>|<一進制運算符><指派運算符><任務表達式>
條件表達式-><OR表達式>|<OR表達式>?<表達式>:<條件表達式>
OR表達式-><AND表達式>|<OR表達式>OR_OP<AND表達式>
AND表達式-><包含OR表達式>|<AND表達式>AND_OP<包含OR表達式>
包含OR表達式-><單獨OR表達式>|<包含OR表達式>'|'<單獨OR表達式>
單獨OR表達式-><AND表達式>|<單獨OR表達式>'^'<AND 表達式>
AND 表達式-><指派表達式>|<AND表達式>'&'<指派表達式>
指派表達式-><關系式>|<指派表達式>EQ_OP<關系式>|<指派表達式>NE_OP<關系式>
關系式-><位移表達式>|<關系式>'<'<位移表達式>|<關系式>'>'<位移表達式>|
<關系式>LE_OP<位移表達式>|<關系式>GE_OP<位移表達式>
位移表達式-><相加表達式>|<位移表達式>LEFT_OP<相加表達式>|
<位移表達式>RIGHT_OP<相加表達式>
相加表達式-><乘法表達式>|<相加表達式>'+'<乘法表達式>|<相加表達式>'-'<乘法表達式>
乘法表達式-><計算表達式>|<乘法表達式>'*'<計算表達式>|
<乘法表達式>'/'<計算表達式>|<乘法表達式>'%'<計算表達式>
計算表達式-><一進制表達式>|(<類型名>)<計算表達式>
一進制表達式-><字尾表達式>