標籤:ret while 參數聲明 來源程式 指標 聲明 類型 無符號 else
C語言文法
來源程式 → 外部聲明 | 子程式(外部聲明)
外部聲明 → 函數定義| 函式宣告
函數定義 → 類型標識符(複合句)
標識符類型 → 無類型 | 字元型 | 整型 | 浮點型
整型→ 長整型 | 短整型 | 無符號整型
聲明→ 指標直接聲明| 直接聲明
指標 → * | * 指標
直接聲明→ 標識符| 直接聲明[ ]| 直接聲明[常量運算式]| 標識符(參數列表)| 標識符() | (直接聲明 , 標識符列表)
標識符列表→標識符 | (標識符列表 ,標識符)
常數運算式→ 條件運算式
參數列表→ 參數聲明| (參數列表 ,參數聲明)
參數聲明→ 說明符聲明,標識符
複合陳述式 → { } | { 語句列表 } | { 聲明列表 語句列表 }
聲明列表→ 聲明 | 聲明列表 聲明
聲明→初始化聲明| (初始化聲明列表 ,初始化聲明)
初始化聲明 → 聲明| 聲明=初始化程式
初始化程式 → 運算式 | {初始化程式列表} | {初始化程式列表 , }
初始化程式列表 → 初始化程式 | (初始化程式列表 , 初始化程式)
語句列表→ 語句| 語句列表
語句→語句| 複合陳述式 | 運算式語句 | 選擇語句|迴圈語句|跳躍陳述式
運算式語句→ 運算式;
選擇語句→ IF(運算式)語句| IF(運算式)語句 | ELSE 語句
迴圈語句→ WHILE(運算式)語句 | FOR(運算式語句;運算式語句)| FOR(運算式語句;運算式語句;運算式語句)
跳躍陳述式| continue; |breack; | return; | return 運算式;
運算式→賦值運算式|(運算式, 賦值運算式)
賦值運算式→條件運算式|一元運算式 (賦值操作符)賦值運算式
條件運算式 → 邏輯‘或’運算式|邏輯‘或’運算式?運算式:條件運算式
邏輯‘或’運算式→邏輯‘與’運算式 |邏輯‘或’運算式‘或’運算|邏輯‘與’運算式
邏輯‘與’運算式→ 邏輯‘或’運算式|邏輯‘與’運算式‘與’運算(邏輯‘或’運算式)
或運算運算式→異或運算式 |或運算運算式‘|異或運算式
相等運算式→關聯運算式|相等運算式 等於運算 關聯運算式| 相等運算式 不等於運算 關聯運算式
加法運算式→乘法運算式>| (加法運算式 + 乘法運算式)|(加法運算式 - 乘法運算式)
乘法運算式→強制轉換運算式| (乘法運算式 * 強制轉換運算式)| (乘法運算式 / 強制轉換運算式)|(乘法運算式 % 強制轉換運算式)
基本運算式→ 標識符 | 常量 | 字串|(運算式)
C語言文法