1014 C語言文法定義與C程式的推導過程

2022-04-09 15:27:11 字數 3118 閱讀 3224

《程式》->《外部宣告》|《程式》《外部宣告》

《外部宣告》->《函式定義》|《定義》

《函式定義》->《型別說明》《宣告》《復合語句》

《型別說明》->無返回型|字元型|整型|單精度型

《宣告》->《指標直接說明符》|《直接說明符》

《指標》-><』*』>|<』*』指標》

《直接宣告符》->《識別符號》|《直接宣告符》』[』』]』|《直接宣告符》』[』< 常量表示式》』]』>|《識別符號》』(』 參數列》』)』|《識別符號》』(』 』)』|《直接宣告符 >』;』 《識別符號列表》

《識別符號列表》->《識別符號》|《識別符號列表》 』,』 《識別符號》

《常量表示式》->《條件表示式》

《參數列》->《引數宣告》|《參數列 >』,』 《引數宣告》

《引數宣告》->《宣告說明》《識別符號》

《復合語句》->』』|』』|』』

《宣告列表》->《宣告》|《宣告列表》《宣告》

《宣告》->《初始化宣告符》|《初始化宣告符列表 > 』, 』< 初始化宣告符》

《初始化宣告符》->《宣告符》|《宣告符》』=』 《初始化》

《初始化》->《賦值表示式》|』』|』』

《初始化列表》->《初始化》|《初始化列表》 『,』< 初始化》

《語句列表》->《語句》|《語句列表》

《語句》->《復合語句》|《表示式語句》|《條件語句》|《迴圈語句》|《跳轉語句》

《表示式語句》->』;『|《表示式》』;『

《條件語句》->如果<』(『>《表示式》<』)『>《語句》|如果』(『《表示式》』)『《語句》那麼《語句》

《迴圈語句》->當』(』《表示式》』)『《語句》|為』(』《表示式語句》《表示式語句》』)』|為』(』《表示式語句》《表示式語句》《表示式》』)』《語句》

《跳轉語句》->繼續』;』|結束』;』|返回』;』|返回《表示式》』;』

《表示式》->《賦值表示式》|《表示式》』,』《賦值表示式》

《賦值表示式》->《條件表示式》|《一元表示式》《賦值運算子》《賦值表示式》

《條件表示式》->《邏輯或表達》|《邏輯或表示式》』?』《表示式》』:』《條件表示式》

《邏輯或表示式》->《邏輯與表示式》|《邏輯或表示式》或《邏輯與表示式》

《邏輯與表示式》->《包容性或表示式》|《邏輯與表示式》和《包容性或表示式》

《包容性或表示式》->《異或表示式》|《包容性或表示式》』|』《異或表示式》

《異或表示式》->《與表示式》|《異或表示式》』^』《與表示式》

《與表示式》->《平等表示式》|《與表示式》』&』《平等表示式》

《平等表示式》->《關係表示式》|《平等表示式》eq_op《關係表示式》|《平等表示式》ne_op《關係表示式》

《關係表示式》->《移動表示式》|《關係表示式》』<』《移動表示式》|《關係表示式》』>』《移動表示式》|《關係表示式》 le_op 《移動表示式》|《關係表示式》 ge_op 《移動表示式》

《移動表示式》->《新增表示式》|《移動表示式》 left_op 《新增表示式》|《移動表示式》 right_op 《新增表示式》

《新增表示式》->《乘法表示式》|《新增表示式》』+』《乘法表示式》|《新增表示式》』-』《乘法表示式》

《乘法表示式》->《轉換表示式》|《乘法表示式》』*』《轉換表示式》|《乘法表示式》』/』《轉換表示式》|《乘法表示式》』%』《轉換表示式》

《轉換表示式》->《一元表示式》|』(』《型別名稱》』)』《轉換表示式》

《一元表示式》->《字尾表示式》| inc_op 《一元表示式》|dec_op 《一元表示式》|《一元運算子》< 轉換表示式》|位元組《一元表示式》|位元組』(』《型別名稱》』)』

《字尾表示式》->《主要表示式》|《字尾表示式》』[』《表示式》』]』|《字尾表示式》』(』』)』|《字尾表示式》』(』《引數表示式列表》』)』|《字尾表示式》』.』《識別符號》|《字尾表示式》 ptr_op 《識別符號》|《字尾表示式》 inc_op |《字尾表示式》 dec_op

《字尾表示式》』(『《引數表示式列表》』)』|《字尾表示式》』.』《識別符號》|《字尾表示式》|《字尾表示式 dec op>

《主表示式》-->《識別符號》|《不變》|《字串字面量》|』(『《表示式》』)』

《引數表示式列表》:《賦值表示式》|《引數表示式列表》』,』 《賦值表示式》

《一元運算子》:』&』|』*』|』+』|』-『|』~』|』!』

《賦值運算子》-->』=』| mul_assign| div_assign| mod_assign| add_assign| sub_assign| left_assign| right_assign| and_assign| xor_assign| or_assign

《儲存類說明》-->typedef |extern|靜態的|自動的|暫存器

《結構或聯合說明符》:《結構或聯合識別符號》』』|《結構或聯合識別符號》

《結構或聯合》:《結構》|《聯合》

< struct宣告列表》:《說明限定表》-->《型別說明符》《說明限定表》|《型別說明符》|《型別限定》《說明限定表》|《型別限定》

《結構說明符列表》-->《結構說明符》|《結構說明符列表》』.』 《結構說明符》

《結構說明符》-->《宣告符》|』:』《常量表示式》|《宣告符》』:』 《常量表示式》

《列舉說明》-->《列舉》』』|《列舉識別符號》』』|

《列舉識別符號》

《列舉列表》-->《列舉》|《列舉列表》』;』 《列舉》

《列舉》-->《識別符號》|《識別符號》』=』《常量表示式》

《型別限定》-->《常量》|《變數》

《型別限定表》-->|《型別限定表》《型別限定》

《引數型別列表》-->《引數列表》|《引數列表》』.』《省略號》

《引數列表》-->《引數宣告》|《引數列表》』;』 《引數宣告》

《型別名》-->《說明限定表》|《說明限定表》《抽象宣告符》

《抽象宣告符》-->《指標》||《指標直接抽象宣告符》

《指標直接抽象宣告符》-->』(『《抽象宣告》』)』|』[『』]』|』[『《常數表示式》』]』|《直接抽象宣告符》』[『』]』|《直接抽象宣告符》』[『《常數表示式》』]』|』(『』)』|』(『《引數型別列表》』)』|《直接抽象宣告符》』(『』)』|《直接抽象宣告符》』(『《引數型別列表》』)』

《標籤語句》-->《識別符號》』;』《語句》|《案例》《常數表示式》』;』《語句》|《預設》』:』《語句》

1014 C語言文法定義與C程式的推導過程

程式 外部宣告 程式 外部宣告 外部宣告 函式定義 宣告 函式定義 型別說明符 宣告符 復合語句 型別說明符 宣告符 指標直接宣告符 直接宣告符 指標 指標 直接宣告符 識別符號 直接宣告符 直接宣告符 常量表示式 識別符號 引數列表 識別符號 直接宣告符 識別符號列表 識別符號列表 識別符號 識別...

1014 C語言的文法

程式 外部宣告 程式 外部宣告 外部宣告 函式定義 宣告 函式定義 函式型別 說明符 復合語句 函式型別 void char int float 說明符 指標 直接說明符 直接說明符 指標 指標 直接說明符 識別符號 直接說明符 直接說明符 常量表示式 識別符號 引數序列 識別符號 直接說明符,識別...

PAT 乙等 1014 C語言

大偵探福爾摩斯接到一張奇怪的字條 我們約會吧!3485djdkxh4hhge 2984akdfkkkkggedsb s hgsfdk d hyscvnm 大偵探很快就明白了,字條上奇怪的亂碼實際上就是約會的時間 星期四 14 04 因為前面兩字串中第1對相同的大寫英文本母 大小寫有區分 是第4個字母...