C語言文法翻譯


 

<程序>→<外部聲明>|<程序><外部聲明>

<外部聲明>→<函數定義>|<聲明>

<函數定義>→<類型說明符><聲明符><復合語句>

<類型說明符>→<無返回型>|<字符型>|<整型>|<浮點型>

<聲明符>→<指針><直接聲明>|<直接聲明>

<指針>→*|*<指針>

<直接聲明>→<標識符>|<直接聲明>[]|<直接聲明>[常量表達式]|<標識符>(參數表)|< 標識符>()|<直接聲明>,< 標識符列表>

<標識符列表>→<標識符>|<標識符列表>,<標識符>

<常量表達式>→<條件表達式>

<參數表>→<參數聲明>|<參數表>, <參數聲明>

<參數聲明>→<聲明說明符><標識符>

<復合語句>→{<>}|{<語句列表>}|{<聲明列表><語句列表>}

<聲明列表>→<聲明>|<聲明列表><聲明>

<聲明>→<初始化聲明符>|<初始化聲明符列表>,<初始化聲明符>

<初始化聲明符>→<聲明>|<聲明符>=<初始化>

 <初始化>→<賦值表達式>|{< initializer list

初始化列表>}|{< initializer list

初始化列表>,}

<初始化列表>→<初始化>|<初始化列表>,<初始化>

<語句列表>→<語句>|<語句列表><語句>

<語句>→<復合語句>|<表達式語句>|< selection statement

選擇語句>|<迭代語句>|<跳轉語句>

<表達式語句>→;|<表達式>;

<選擇語句>→if(<表達式>)<語句>| if(<表達式>)<語句>else<語句>

<迭代語句>→while(<表達式>)<語句>|for(<表達式語句><表達式語句>)<語句>|for(<表達式語句><表達式語句><表達式>)<語句>

<跳轉語句>→continue;|break;|return;| return<表達式>;

<表達式>→<賦值表達式>|<表達式>,<賦值表達式>

<賦值表達式>→<條件表達式>|<一元表達式><賦值操作符><賦值表達式>

<條件表達式>→<邏輯或表達式>|<邏輯或表達式>?<表達式>:<條件表達式>

<邏輯或表達式>→<邏輯與表達式>|<邏輯或表達式> OR OP<邏輯與表達式>

<邏輯與表達式>→<包含或表達式>|<邏輯與表達式>and op<包含或表達式>

<包含或表達式>→<按位或表達式>|<與表達式>|<按位或表達式>^<與表達式>

<與表達式>→<等式表達式>|<與表達式>&<等式表達式>

<等式表達式>→<關系表達式>|<等式表達式> EQ_OP<關系表達式>|<等式表達式> NE_OP<關系表達式>

<關系表達式>→<轉換表達式> |<關系表達式><<轉換表達式>|<關系表達式>><轉換表達式>|<關系表達式>le op<轉換表達式>|<關系表達式>ge op<表轉換達式>

<轉換表達式>→<加法表達式>|<轉換表達式>left op<加法表達式>|<轉換表達式>right op<加法表達式>

<加法表達式>→<乘法表達式>|<加法表達式>+<乘法表達式>|<加法表達式>-<乘法表達式>

<乘法表達式>→<鑄造表達式>|<乘法表達式>*<鑄造表達式>|<乘法表達式>/<鑄造表達式>|<乘法表達式>%<鑄造表達式>

<鑄造表達式>→<一元表達式>|(<類型名稱>)<<鑄造表達式>>

<一元表達式>→<后綴表達式>| INC OP<一元表達式>| DEC_OP<一元表達式>|<一元運算符><鑄造表達式>| SIZEOF<一元表達式>| SIZEOF(<類型名稱>)

<后綴表達式>→<原始表達式>|<后綴表達式>[<表達式>]| <后綴表達式>()|<后綴表達式>(<表達式的參數列表>)|<后綴表達式>. IDENTIFIER|<后綴表達式> PTR OP IDENTIFIER|<后綴表達式> PTR OP IDENTIFIER|<后綴表達式> INC OP|<后綴表達式> DEC OP

<原始表達式>→IDENTIFIER| CONSTANT| STRING LITERAL|(<表達式>)

<表達式的參數列表>→<參數表達式>|<表達式的參數列表>,<參數表達式>

<一元運算符>→&|*|+|-|~|!

<賦值操作符>→=| MUL_ASSIGN| DIV_ASSIGN| MOD_ASSIGN| ADD_ASSIGN|SUB_ASSIGN|LEFT_ASSIGN|RIGHT_ASSIGN|AND_ASSIGN| XOR_ASSIGN| OR_ASSIGN

<存儲類說明符>→ TYPEDEF| EXTERN| STATIC| AUTO| REGISTER

<結構體或共用體的說明符>→<結構體或共用體> IDENTIFIER{<結構體聲明列表>}|<結構體或共用體>{<結構體聲明列表>}|<結構體或共用體> IDENTIFIER

<結構體或共用體>→STRUCT| UNION

<結構體聲明列表>→<結構體聲明>|<結構體聲明列表><結構體聲明>

<結構體聲明>→<說明符限定符列表><結構體聲明列表>;

<說明符限定符列表>→<類型說明符><說明符限定符列表>|<類型說明符>|<類型限定符><說明符限定符列表>|<類型限定符>

<結構體聲明符列表>→<結構體聲明>|<結構體聲明符列表>,<結構體聲明>

<結構體聲明>→<聲明>|:<常量表達式>|<聲明>:<常量表達式>

<枚舉說明符>→ ENUM{<枚舉數列表>}| ENUM IDENTIFIER{<枚舉數列表>}| ENUM IDENTIFIER

<枚舉數列表>→<枚舉法>|<枚舉數列表>,<枚舉法>

<枚舉法>→IDENTIFIER| IDENTIFIER=<常量表達式>

<類型限定符>→ CONST| VOLATILE

<說明符限定符列表>→<類型限定符>|<說明符限定符列表><類型限定符>

<參數類型列表>→<參數表>|<參數表>, ELLIPSIS

<參數表>→<參數聲明>|<參數表>,<參數聲明>

<類型名稱>→<說明符限定符列表>|<說明符限定符列表><抽象說明>

<抽象說明>→<指針>|<直接聲明符>|<指針><直接聲明符>

<直接聲明符>→(<抽象說明>)|[]|[<常量表達式>]|<直接聲明符>[]|<直接聲明符>[<常量表達式>]|()|(<參數類型列表>)|<直接聲明符>()|<直接聲明符>(<參數類型列表>)

<標號語句>→ IDENTIFIER:< 語句>| CASE<常量表達式>:< 語句>| DEFAULT: < 語句>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM