文法分析


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

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

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

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

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

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

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

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

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

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

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

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

<聲明表>→<聲明符>|<聲明符><聲明表>

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

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

<初始化>→<賦值表達式>|{<初始化表>}|{<初始化表>,}

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

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

<語句>→|<復合語句>|<表達式語句>|<選擇語句>|<循環語句>|<跳轉語句>

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

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

<循環語句>→while(<表達式>)|for(<表達式語句><表達式語句>)<語句>|for(<表達式語句><表達式語句><表達式>)<語句>

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

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

<賦值表達式>→<條件表達式>|<一元表達式><賦值運算符><賦值表達式>

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

<邏輯或表達式>→<邏輯與表達式>|<邏輯或表達式>or-op<邏輯與表達式>

<邏輯與表達式>→<包容性或表達式>|<邏輯與表達式>and-op<包容性或表達式>

<包容性或表達式>→<異或表達式>|<包容性或表達式>|<異或表達式>

<異或表達式>→<與表達式>|<異或表達式>^<與表達式>

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

<等值表達式>→<關系表達式>|<等值表達式>eq-op<關系表達式>|<等值表達式>ne-op<關系表達式>

<關系表達式>→<移動表達式>|<關系表達式><<移動表達式>|<關系表達式>><移動表達式>|<關系表達式>le-op<移動表達式>|<關系表達式>ge-op<移動表達式>

<移動表達式>→<運算表達式>|<移動表達式>lert-op<運算表達式>|<移動表達式>right-op<運算表達式>

<運算表達式>→<乘除表達式>|<運算表達式>+<乘除表達式>|<運算表達式>-<乘除表達式>

<乘除表達式>→<轉換表達式>|<乘除表達式>*<轉換表達式>|<乘除表達式>/<轉換表達式>

|<乘除表達式>%<轉換表達式>

<轉換表達式>→<一元表達式>|(<類型名稱>)<轉換表達式>

<一元表達式>→<后綴表達式>|inc-op <一元表達式>|dec-op <一元表達式>|<一元表達式><轉換表達式>|sizeof<一元表達式>|sizeof(<類型名稱>)

<后綴表達式>→<主要表達式>|<后綴表達式>[<表達式>]|<后綴表達式>( )|<后綴表達式>(<參數表達式表> )|<后綴表達式>.<標識符>|<后綴表達式>ptr-op<標識符>|<后綴表達式>inc-op|<后綴表達式>dec-op

<主要表達式>→<標識符>|<常量>|<字符串>|(<表達式>)

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

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

<賦值表達式>→=| MUL_ASSIGN| DIV_ASSIGN| MOD_ASSIGN| ADD_ASSIGN| SUB_ASSIGN| LEFT_ASSIGN| RIGHT_ASSIGN| AND_ASSIGN| XOR_ASSIGN| OR_ASSIGN

<存儲類說明>→<聲明類型>|<外部變量聲明>|<靜態存儲>|<自動存儲>|<寄存器變量>

<結構或聯合說明>→<結構或聯合><標識符>{<結構聲明表>}|<結構或聯合>{<結構聲明表>}|<結構或聯合><標識符>

<結構或聯合>→<結構>|<聯合>

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

<結構聲明>→<結構聲明表>

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

<結構聲明表>→<結構聲明>|<結構聲明表>,<結構聲明>

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

<枚舉說明>→<枚舉>{<枚舉表>}|<枚舉><標識符>{<枚舉表>}|<枚舉><標識符>

<枚舉表>→<枚舉>|<枚舉表>,<枚舉>

<枚舉>→<標識符>|<標識符>=<常量表達式>

<類型限定>→<常量>|<變量>

<類型限定表>→<類型限定>|<類型限定表><類型限定>

<參數類型表>→<參數表>|<參數表>,<省略號>

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

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

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

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

<標記語句>→<標識符>:<語句> |case<常量表達式>:<語句>|default:<語句>


免責聲明!

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



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