<程序>→<外部聲明>|<程序><外部聲明>
<外部聲明>→<函數定義>|<聲明>
<函數定義>→<類型說明><聲明符><復合語句>
<類型說明>→<無返回類型>|<字符型>|<整型>|<浮點型>
<聲明符>→<指針><直接聲明>|<直接聲明>
<指針>→<*>|<*><指針>
<直接聲明>→<標識符>|<直接聲明>[ ]|<直接聲明>(<常量表達式>)|<標識符>(<參數表>)|<標識符>( )| <直接聲明>,<標識符表>
<標識符表>→<標識符>|<標識符表>,<標識符>
<常量表達式>→<條件表達式>
<參數表>→<參數聲明>|<參數表>,<參數聲明>
<參數聲明>→<聲明說明><標識符>
<復合語句>→{ }|{<語句表>}|{<聲明表><語句表>}
<聲明表>→<聲明符>|<聲明符><聲明表>
<聲明>→<初始化聲明>|<初始化聲明表>,<初始化聲明>
<初始化聲明>→<聲明符>|<聲明符>=<初始化>
<初始化>→<賦值表達式>|{<初始化表>}|{<初始化表>,}
<初始化表>→<初始化>|<初始化表>,<初始化>
<語句表>→<語句>|<語句表><語句>
<語句>→|<復合語句>|<表達式語句>|<選擇語句>|<循環語句>|<跳轉語句>
<表達式語句>→;|<表達式>;
<選擇語句>→if(<表達式>)<語句>|if(<表達式>)<語句>else<語句>
<循環語句>→while(<表達式>)|for(<表達式語句><表達式語句>)<語句>|for(<表達式語句><表達式語句><表達式>)<語句>
<跳轉語句>→|continue;|break;|return;|return <表達式>;
<表達式>→<賦值表達式>|<表達式>,<賦值表達式>
<賦值表達式>→<條件表達式>|<一元表達式><賦值運算符><賦值表達式>
<條件表達式>→<邏輯或表達式>|<邏輯或表達式>?<表達式>:<條件表達式>
<邏輯或表達式>→<邏輯與表達式>|<邏輯或表達式>or-op<邏輯與表達式>
<邏輯與表達式>→<包容性或表達式>|<邏輯與表達式>and-op<包容性或表達式>
<包容性或表達式>→<異或表達式>|<包容性或表達式>|<異或表達式>
<異或表達式>→<與表達式>|<異或表達式>^<與表達式>
<與表達式>→<等值表達式>|<與表達式>&<等值表達式>
<等值表達式>→<關系表達式>|<等值表達式>eq-op<關系表達式>|<等值表達式>ne-op<關系表達式>
<關系表達式>→<移動表達式>|<關系表達式><<移動表達式>|<關系表達式>><移動表達式>|<關系表達式>le-op<移動表達式>|<關系表達式>ge-op<移動表達式>
<移動表達式>→<運算表達式>|<移動表達式>lert-op<運算表達式>|<移動表達式>right-op<運算表達式>
<運算表達式>→<乘除表達式>|<運算表達式>+<乘除表達式>|<運算表達式>-<乘除表達式>
<乘除表達式>→<轉換表達式>|<乘除表達式>*<轉換表達式>|<乘除表達式>/<轉換表達式>
|<乘除表達式>%<轉換表達式>
<轉換表達式>→<一元表達式>|(<類型名稱>)<轉換表達式>
<一元表達式>→<后綴表達式>|inc-op <一元表達式>|dec-op <一元表達式>|<一元表達式><轉換表達式>|sizeof<一元表達式>|sizeof(<類型名稱>)
<后綴表達式>→<主要表達式>|<后綴表達式>[<表達式>]|<后綴表達式>( )|<后綴表達式>(<參數表達式表> )|<后綴表達式>.<標識符>|<后綴表達式>ptr-op<標識符>|<后綴表達式>inc-op|<后綴表達式>dec-op
<主要表達式>→<標識符>|<常量>|<字符串>|(<表達式>)
<參數表達式表>→<賦值表達式>|<參數表達式表>,<賦值表達式>
<一元運算符>→&|*|+|-|~|!
<賦值表達式>→=| MUL_ASSIGN| DIV_ASSIGN| MOD_ASSIGN| ADD_ASSIGN| SUB_ASSIGN| LEFT_ASSIGN| RIGHT_ASSIGN| AND_ASSIGN| XOR_ASSIGN| OR_ASSIGN
<存儲類說明>→<聲明類型>|<外部變量聲明>|<靜態存儲>|<自動存儲>|<寄存器變量>
<結構或聯合說明>→<結構或聯合><標識符>{<結構聲明表>}|<結構或聯合>{<結構聲明表>}|<結構或聯合><標識符>
<結構或聯合>→<結構>|<聯合>
<結構聲明表>→<結構聲明>|<結構聲明表><結構聲明>
<結構聲明>→<結構聲明表>
<說明限定表>→<類型說明><說明限定表>|<類型說明>|<類型限定><說明限定表>|<類型限定>
<結構聲明表>→<結構聲明>|<結構聲明表>,<結構聲明>
<結構聲明>→:<聲明符>|:<常量表達式>|<聲明符>:<常量表達式>
<枚舉說明>→<枚舉>{<枚舉表>}|<枚舉><標識符>{<枚舉表>}|<枚舉><標識符>
<枚舉表>→<枚舉>|<枚舉表>,<枚舉>
<枚舉>→<標識符>|<標識符>=<常量表達式>
<類型限定>→<常量>|<變量>
<類型限定表>→<類型限定>|<類型限定表><類型限定>
<參數類型表>→<參數表>|<參數表>,<省略號>
<參數表>→<參數聲明>|<參數表>,<參數聲明>
<類型名稱>→<說明限定表>|<說明限定表><抽象聲明>
<抽象聲明>→<指針>|<直接抽象聲明>|<指針><直接抽象聲明>
<直接抽象聲明>→(<抽象聲明>)|[ ]|[ <常量表達式>]|<直接抽象聲明>[ ] |<直接抽象聲明>[<常量表達式> ]|( )|(<參數類型表>)|<直接抽象聲明>( )|<直接抽象聲明>(<參數類型表> )
<標記語句>→<標識符>:<語句> |case<常量表達式>:<語句>|default:<語句>