<程式>→<外部聲明>|<程式><外部聲明>
<外部聲明>→<函數定義>|<聲明>
<函數定義>→<類型說明><聲明><複合語句>
<類型說明>→void|char|int |float
<聲明>→<指針直接說明符>|<直接說明符>
<指針>→’*‘|'*'指針
<直接說明符>→<辨別符>|<直接說明符‘[’‘]’>|<直接說明符‘[’常數表達式‘]’> |<辨別符‘(’參數清單‘)’>|<辨別符><‘(’‘)’>>|<直接說明符><','><辨別符清單>
<辨別符清單>→<:辨別符>|<辨別符清單><','><辨別符>
<常數表達式>→<條件表達式>
<參數清單>→<參數聲明>|<參數清單><','><參數聲明>
<參數聲明>→<聲明說明符><辨別符>
<複合語句>→<‘{’><‘}’>|<'{'><語句清單><'}'>|<'{'><聲明清單><語句清單><'}'>
<聲明清單>→<聲明>|<聲明清單><聲明>
<聲明>→<初始化聲明>|<初始化聲明清單><‘,’><初始化聲明>
<初始化聲明>→<聲明>|<聲明><‘=’><初始化程式>
<初始化程式>→<指派表達式>|<‘{’><初始化程式清單><‘}’>|<'{'><初始化程式清單><','><'}'>
<初始化程式清單>→<初始化程式>|<初始化程式清單><‘,’><初始化程式>
<語句清單>→<語句>|<語句清單><語句>
<語句>→<複合語句>|<表達式語句>|<選擇語句>|<循環語句>|<跳躍語句>
<表達式語句>→<';'>|<表達式><';'>
<選擇語句>→<:><if><'('><表達式><')'><語句>|<if><'('><表達式><')'><語句><else><語句>
<循環語句>→<while><'('><表達式><')'><語句>|<for><'('><表達式語句><表達式語句><')'><語句>|<for><'('><表達式語句><表達式語句><表達式><')'><語句>
<跳躍語句>→ CONTINUE< ';'>| BREAK <';'>| RETURN <';'>| RETURN <表達式> <';'>
<表達式>→<:><指派表達式>|<表達式><','><指派表達式>
<指派表達式>→<條件表達式>|<一進制表達式><指派操作符><指派表達式>
<條件表達式>→<邏輯或表達> | <邏輯或表達><‘?‘> <表達式>< ‘:‘><條件表達式>
<邏輯或表達>→<邏輯與表達> |< 邏輯或表達 或運算><邏輯表達式>
< 邏輯與表達>:<或表達式> |< 邏輯表達式 >和<運算或表達式>
< 或運算表達式>→<異或表達式> |< 或運算表達式 ><‘>|<‘>< 異或表達式>
< 異或表達式>:<與表達式> | < 異或表達式><‘^‘><與表達式>
< 與表達式>:<相等表達式> |< 與表達式><‘&‘><相等表達式>
< 相等表達式>:<關系表達式> |< 相等表達式等于運算關系表達式> | <相等表達式不等于運算關系表達式>
< 關系表達式>:<移位表達式> | <關系表達式><‘<‘><移位表達式 >|< 關系表達式><‘>‘><移位表達式> |< 關系表達式小于等于運算移位表達式> |< 關系表達式大于等于運算移位表達式>
< 移位表達式>:<加法表達式> | <移位表達式左運算加法表達式> |< 移位表達式右運算加法表達式>
< 加法表達式:<乘法表達式> |< 加法表達式><‘+‘><乘法表達式> |< 加法表達式><‘-‘><乘法表達式>
< 乘法表達式>:<強制轉換表達式> | <乘法表達式><‘*‘><強制轉換表達式> | <乘法表達式><‘/‘><強制轉換表達式 >| <乘法表達式><‘%‘><強制轉換表達式>
< 強制轉換表達式>:<一進制表達式> |< ‘(‘>< 類型名稱 ><‘)‘><強制轉換表達式>
<一進制表達式>:<字尾表達式> | <INC運算一進制表達式> |< DEC運算一進制表達式> |< 一進制運算符将表達式> | < 結構體變量的一進制表達式 >| < 結構體變量的><‘(‘>< 類型名稱>< ‘)‘>
<字尾表達式>:<基本表達式> | <字尾表達式><‘[‘><表達式><‘]‘> |< 字尾表達式><‘(‘ ><‘)'> | <字尾表達式>< ‘(‘><參數表達式清單><‘)‘ > | <字尾表達式><‘.‘>< 辨別符 >| <字尾表達式指針運算辨別符> |< 字尾表達式INC運算> |< 字尾表達式DEC運算>
<基本表達式>→<辨別符> |<常量 >| <字元串常量> | < ‘(‘><表達式><‘)‘>
<參數表達式清單>:< 指派表達式 >| <參數表達式清單><‘,‘><指派表達式>
<一進制運算符>:< ‘&‘> | < ‘*‘> | < ‘+‘> | < ‘-‘> | < ‘~‘> |< ‘!‘>
<指派運算符>→<‘=‘> |< 乘法配置設定> | <DIV配置設定> |< MOD配置設定> | <加法配置設定> | < SUB配置設定> |< 左配置設定 >| <右配置設定與配置設定>|< 異或配置設定 >|<或配置設定>
<存儲類說明符>→<定義類型> |< 外部變量> |< 靜态 >|< 自動> | <寄存器>
<結構或聯合說明符>:<結構或聯合辨別符><‘{‘><結構體聲明清單><‘}‘> |< 結構或聯合><‘{'><結構體聲明清單><‘}‘ > |< 結構或聯合辨別符>
<結構或聯合>:<結構體> |< 聯合>
<結構體聲明清單>:<結構體聲明> |< 結構體清單聲明結構體聲明>
<結構體聲明>:<說明符限定符清單結構說明符><‘;‘>
<說明符說明符限定符清單> →<類型說明符說明符限定符清單> |< 類型說明符> |< 類型限定符說明符限定符清單 >| <類型限定符>
<結構說明符清單>→<結構體聲明> |< 結構說明符清單><‘,‘><結構體聲明>
<結構體聲明>→<:><聲明 >| < ‘:‘><常量表達式> |< 聲明><‘:‘><常量表達式>
<枚舉聲明>→<枚舉><‘{‘><枚舉器清單><‘}‘> | <枚舉辨別符><‘{‘><枚舉器清單><‘}‘> | <枚舉辨別符>
<枚舉器清單>→<枚舉器> | <枚舉器清單><‘,‘>
<枚舉器枚舉器>→<辨別符 >|< 辨別符><‘=‘><常量表達式>
<類型限定符>→<常量 >|< 易失的>
<類型限定符清單>→<類型限定符> | <類型限定符清單>< 類型限定符>
<參數類型清單>→<參數清單> | <參數清單><‘,‘><省略符号>
<參數清單>→<:><聲明參數> |< 參數清單><‘,‘><聲明參數>
<抽象說明符>→<指針> | <直接抽象說明符> | <指針直接抽象說明符>
<直接抽象說明符>→ <‘(‘> <抽象說明符 ><‘)‘ > |< ‘[‘ ><‘]‘ >| < ‘[‘>< 常量表達式><‘]‘>| <直接抽象說明符><‘[‘>< ‘]‘> | <直接抽象說明符><‘[‘>< 常量表達式>< ‘]‘> | < ‘(‘>< ‘)‘> | < ‘(‘><參數類型清單><‘)‘> |< 直接抽象說明符><‘(‘>< ‘)‘> | <直接抽象說明符><‘(‘><參數類型清單><‘)‘>
<有标号語句>→<辨別符><‘:><‘語句> | <CASE常量表達式><‘:‘><語句 > | < DEFAULT><‘:‘><語句>