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

2022-05-26 04:18:13 字數 2842 閱讀 6588

《程式》 →《外部宣告》|《程式》《外部宣告》

《外部宣告》 →《函式定義》|《宣告》

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

《型別說明符》 →|||

《宣告符》 →《指標直接宣告符》|《直接宣告符》

《指標》 →<'*'>|<' *' 指標》

《直接宣告符》→《識別符號》《直接宣告符 '['']'>《直接宣告符 '[' 常量表示式']'>|《識別符號 (引數列表)>|《識別符號 '(' ')'>|《直接宣告符 ',' 識別符號列表》

《識別符號列表》<: 識別符號》|《識別符號列表','識別符號》

《常數表示式》 →《條件表示式》

《引數列表》 →《引數宣告》|《引數列表 ',' 引數宣告》

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

《復合語句》 →<''>|<' '>|<' '>

《宣告列表》 →《宣告》|《宣告列表》《宣告》

《宣告》 →《初始化宣告符》|《初始化宣告符列表 ',' 初始化宣告符》

《初始化宣告符》 →《宣告符》|《宣告符 '=' 初始值設定項》

《初始值設定項》 →《賦值表示式》|<' '>|<' '>

《初始值設定項列表》 →《初始值設定項》|《初始值設定項列表 ',' 初始值設定項》

《語句列表》 →《宣告》|《語句列表》

《語句》 →|《復合語句》|《表示式語句》|《選擇語句》|《迭代語句》|《跳轉語句》

《表示式語句》 →<';'>|《表示式 ';'>

《選擇語句》<: if '(' 表示式')' 語句》|《迭代語句》 →《跳轉語句》|《繼續 ';'>|《打破;>《返回 ';'>|《返回表示式 ';'>

《表示式》<: 賦值表示式》|《表示式 ',' 賦值表示式》

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

《條件表示式 >→《邏輯或表示式》|《邏輯或表示式 '? '表達':' 條件表示式》

《邏輯或表示式 >→《邏輯和表達》|《邏輯或邏輯 or 運算表示式和表示式》

《邏輯和表達》: 《包容性或表示式》|《邏輯和具有包容性和 op 表示式》

《包容性或表達》 →《異或表示式》《包容性或表示式 ' |' 異或表示式》

《異或表示式》: 《與表示式》|《異或表示式 ' ^' 和表示式》

《和表示式》: 《相等表示式》|《和表示式 '&' 相等表示式》

《相等表示式》: 《關係表示式》|《相等表示式情商 op 關係表示式》|《相等表示式 ne op 關係表示式》

《關係表示式》: 《轉移表示式》|《關係表示式 ' <' 轉移表示式》|《關係表示式 ' >' 轉移表示式》|《關係表示式le op 轉變表示式》|《關係表示式 ge op 轉變表示式》

《轉變表示式》: 《加法表示式》|《轉變表示式 left op 加法表示式》|《轉變表示式 right op 加法表示式》

《加法表示式》: 《乘法表示式》|《加法表示式 '+' 乘法表示式》|《加法表示式 '-' 乘法表示式》

《乘法表示式》: 《表示式轉換》|《乘法表示式 ' *' 表示式轉換》|《乘法表示式 '/' 強制轉換表示式》|《乘法表示式 '%' 強制轉換表示式》

《強制轉換表示式》: 《一元表示式》|<'(' 鍵入名稱')' 強制轉換表示式》

《一元表示式》: 《字尾表示式》|

《字尾表示式》 →: 《主要表示式》|《字尾表示式 '[' 表達']'>|《字尾表示式 '(' ')'>|《字尾表示式 '(' 引數表示式列表')'>|《字尾表示式 '.'識別符號》|《字尾表示式 ptr op 識別符號》|《字尾表示式 inc op>|《字尾表示式 dec op>

《主要表示式》 →《識別符號》|《恆定》|《字串型》|<' (' 表示式 ')'>

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

《一元運算子》: <'&'>|<'*'>|<'+'>|<'-'>|<'~'>|<'!'>

《賦值運算子》 → <'='>|《儲存類說明符》 → 《定義型別》|《外來的》|《靜態》|《自動》

《結構或聯合的說明符》: 《結構或聯合識別符號' '>|《結構或聯合 ' '>|《結構或聯合的識別符號》

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

《結構宣告列表》: 《結構宣告》|《結構宣告列表結構宣告》

《結構宣告》: 《說明符限定符列表結構宣告符列表 ';'>

《說明符限定符列表》 →《型別說明符說明符限定符列表中》|《型別說明符》|《型別限定符說明符限定符列表中》|《型別限定符》

《結構宣告符列表 >→《結構宣告符》|《結構宣告符列表 ',' 結構宣告符》

《結構宣告符》 →: 《宣告符》|<':' 常量表示式|宣告符 ':' 常量表示式》

→《列舉 ' '>|→《列舉數》|《列舉數列表 ',' 列舉器》

《列舉數 >→《識別符號》|《識別符號 '=' 常量表示式》

《型別限定符》 →《常量》|《變數》

《型別限定符列表》 →《型別限定符》|《型別限定符列表型別限定符》

《引數型別列表》 →《引數列表》|《引數列表 ',' 省略號》

《引數列表》 →<: 引數宣告》|《引數列表 ',' 引數宣告》

《型別名稱 >→《說明符限定符列表中》|《說明符限定符列表抽象宣告符》

《抽象的宣告符》 →《指標》|《直接的抽象宣告符》|《指標直接抽象宣告符》

《直接的抽象宣告符 >→ <' (' 抽象宣告符 ')'>|<'[' ']'>|<'[' 常量表示式']'>|《直接抽象宣告符 '['']'> |《直接抽象宣告符 '[' 常量表示式']'>|<'(' ')'>|<' (' 引數型別列表 ')'> |《直接的抽象宣告符 '(' ')'>|《直接抽象宣告符 '(' 引數型別列表')'>

《標記的語句 >→《識別符號 ':' 宣告》|

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

程式 外部宣告 程式 外部宣告 外部宣告 函式定義 定義 函式定義 型別說明 宣告 復合語句 型別說明 無返回型 字元型 整型 單精度型 宣告 指標直接說明符 直接說明符 指標 指標 直接宣告符 識別符號 直接宣告符 直接宣告符 常量表示式 識別符號 參數列 識別符號 直接宣告符 識別符號列表 識別...

1014 C語言的文法

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

PAT 乙等 1014 C語言

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