<程式> -> <外部聲明> | <程式> <外部聲明>
<外部聲明> -> <函數定義> | <聲明>
<函數定義> -> <說明符類型> <聲明> <複合語句>
<說明符類型> -> <空類> | <字元型> | <浮點型>
<聲明> -> <指針> <直接說明符> | <直接說明符>
<指針> -> <*> | <*指針>
<直接說明符> -> <辨別符> | <直接說明符 '[' ']'> | <直接辨別符'[' 恒表達式 ']'> | <辨別符'(' 參數名單 ')'> | <辨別符'(' ')'> | <直接說明符 ';' 識别名單>
<識别名單> -> <辨別符> | <識别名單 ';' 辨別符>
<恒表達式> -> <恒表達式>
<參數名單> -> <參數聲明> | <參數名單 ';' 參數聲明>
<參數聲明> -> <聲明辨別符> | <辨別符>
<複合語句> -> <'{' '}'> | <'{'語句名單'}'> | <'{'識别名單 語句名單'}'>
<識别名單> -> <識别符> | <識别名單 識别符>
<識别符> -> <初始化辨別符> | <初始化辨別符 ';' 初始化辨別符>
<初始化辨別符> -> <辨別符> | <辨別符 '=' 初始化器>
<初始化器> -> <任務表達式> | <'{' 初始化清單 '}'> | <'{' 初始化清單 '}'>
<初始化清單> -> <初始化器> |<初始化清單 ';' 初始化器>
<語句表> -> <語句> | <語句表 語句>
<語句> -> <複合語句> | <語句表達式> | <選擇語句> | <疊代語句> | <跳轉語句>
<語句表達式> -> <表達式>
<選擇語句> -> < : IF'(' 表達式 ')' 語句> |<IF '(' 表達式 ')' 語句 ELSE 語句>
<疊代語句> -> <WHILE '(' 表達式 ')' 語句> | <FOR'(' 表達語句 表達語句 ')' 語句> | <FOR'(' 表達語句 表達語句 ')' 語句>
<跳轉語句> -> <CONTINUE> | <BREAK> | <RETURN> | <RETURN 表達式>
<表達式> -> <:複制表達式> | <表達式 ';' 複制表達式>
<指派表達式> -> <條件表達式> | <一進制指派 運算符表達式 指派表達式>
<條件表達式> -> <邏輯或表達式> | <>