天天看點

文法分析

<程式>--><外部聲明>|<程式 外部聲明>

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

<函數定義>--><類型 複合語句>

<類型>-->無傳回類型|字元型|整型|浮點型

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

<指針>-->’ * ’ | ’ * ’ <指針>

<直接聲明符>v<辨別符>|<直接聲明符>’ [’ ’]’ |<直接聲明符>’[’ <普通表達式>’]’ |<辨別符>’ (’ <參數表>’ )’ |<辨別符>’ (’   ’ )’ |<直接聲明符 >‘ , ’ < 辨別符表>

<辨別符清單>:<辨別符>|<辨別符清單 >‘ , ‘  <辨別符>

<一般表達式>--><條件表達式>

<參數表>--><參數聲明>|<參數表 >‘ , ‘< 參數聲明>

<複合語句>-->’ {’  ‘} ’|’ {’ <語句清單 >‘}’ |’ { ‘< 聲明清單 語句表> ‘}’

<聲明表>--><聲明>|<聲明清單 聲明>

<聲明>--><内聲明符>|<内聲明符表 >‘ , ’ <内聲明符>

<内聲明符>--><聲明符>|<聲明符 >‘ = ‘ < 初始化>

<初始化>--><指派表達式>|’{’<初始清單>’}’|’{’<初始化清單>’,’’}’

<初始化清單>--><初始化>|<初始化清單>’,’<初始化>

<語句清單>--><語句>|<語句清單><語句>

<語句>-->|<複合語句>|<表達式語句>|<選擇語句>|<循環語句>|<跳轉語句>

<表達式語句>-->’;’|<表達式>’;’

<選擇語句>:IF’(’<表達式>’)’<語句>|IF’(‘<表達式>’)’<語句>ELSE<語句>

<條件語句>-->while’(‘<表達式>’)’<語句>|FOR’(‘<表達式語句><表達式語句>’)’<語句>| FOR’(‘<表達式語句><表達式語句><表達式>’)’ <語句>

<跳轉語句>|CONTINUE’;’|BREAK’;’|RETURN’;’|RETURN <表達式>’;’

<表達式>:<指派語句>|<表達式>’;’<指派語句>

<指派表達式>--><條件表達式>|<一進制表達式><指派運算符><指派表達式>

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

<邏輯或表達式>--><邏輯與表達式>|<邏輯或表達式> < 或OP邏輯與表達式>

<邏輯與表達式>:<包含或表達式>|<邏輯和表達式><和OP包含或表達式>

<包含或表達式>--><異或表達式>|<包容性表達式>’|’<異或表達式>

<異或表達式>:<與表達式>|<異或表達式>’^’<與表達式>

<與表達式>:<平等表達式>|<與表達式>’&’<平等表達式>

<平等表達式>:<關系式>|<平等表達式><EQ OP關系式>|<平等表達式><NE OP 關系式>

<關系式>:<移動式>|<關系式>’<’<移動式>|<關系式>’>’<移動表達式>|<關系式><LE OP移動式>|<關系式><GE OP移動式>

<移動式>:<附加式>|<移動表達式><左OP附加式>|<移動表達式><右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

<存儲類說明>-->TYPEDEF |EXTERN|靜态的|自動的|寄存器

<結構或聯合說明符>:<結構或聯合辨別符>’{‘<struct聲明清單>’}’|<結構或聯合>’{‘< struct聲明清單’>’}’|<結構或聯合辨別符>

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

< struct聲明清單>:<struct聲明>|< struct聲明清單>< struct聲明>

<struct聲明>:<說明限定表>< struct聲明清單>‘;‘

<說明限定表>--><類型說明符><說明限定表>|<類型說明符>|<類型限定><說明限定表>|<類型限定>

<結構說明符清單>--><結構說明符>|<結構說明符清單>’.’ <結構說明符>

<結構說明符>--><聲明符>|’:’<常量表達式>|<聲明符>’:’ <常量表達式>

<枚舉說明>--><枚舉>’{‘<枚舉清單>’}’|<枚舉辨別符>’{‘<枚舉清單>’}’|

<枚舉辨別符>

<枚舉清單>--><枚舉>|<枚舉清單>’;’ <枚舉>

<枚舉>--><辨別符>|<辨別符>’=’<常量表達式>

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

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

<參數類型清單>--><參數清單>|<參數清單>’.’<省略号>

<參數清單>--><參數聲明>|<參數清單>’;’ <參數聲明>

<類型名>--><說明限定表>|<說明限定表><抽象聲明符>

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

<指針直接抽象聲明符>-->’(‘<抽象聲明>’)’|’[‘’]’|’[‘<常數表達式>’]’|<直接抽象聲明符>’[‘’]’|<直接抽象聲明符>’[‘<常數表達式>’]’|’(‘’)’|’(‘<參數類型清單>’)’|<直接抽象聲明符>’(‘’)’|<直接抽象聲明符>’(‘<參數類型清單>’)’

<标簽語句>--><辨別符>’;’<語句>|<案例><常數表達式>’;’<語句>|<預設>’:’<語句>

下一篇: text