程序->外部聲明 | 程序 外部聲明
程序->外部聲明A'
A'->外部聲明A'|ε
外部聲明->修飾符 變量名 形參
修飾符->void | int | char | float
形參->修飾符A'
A'->函數名|指針 變量名
函數名->L | IL | ID
函數名->LA'
A'->LA'|DA'|ε
L->a|b|c|...|z
D->0|1|2|...|9
指針->’*’A'
A'-> ε| 指針
函數->外部聲明 函數主體 | main() 函數主體|函數 外部聲明 函數主體
函數主體->內部聲明 語句列表 | 語句列表
內部聲明->修飾符A'| 變量名 ';' | ';'
A'->變量名 內部聲明 | 指針 變量名
語句列表->語句列表A'
A'->條件語句 | 賦值語句
賦值語句->變量名 '=' E
變量名-〉函數名
E-〉EA'| T
A'->+T|-T
T->TB'|F
B'->*F|/F
F->PC'
C'->PC'|ε
P->(E)|i
條件語句->條件語句1|條件語句2
條件語句1->if 條件 條件語句1 else 條件語句1 | 語句列表
條件語句2->if 條件| if 條件 條件語句1 else 條件語句2