您的位置:首页 > 其它

1028 文法

2015-10-29 21:24 218 查看
<翻译单元> -> <外部声明>

<外部声明> -> <函数定义>

<函数定义> -> <声明说明符> <声明符> <复合语句>

<声明说明符> -> <存储类说明符> | <类型说明符>| <类型限定符>

<存储类说明符> -> “auto” | "register"| "static"| "extern"| "typedef"

<类型说明符> ->“void”| "char"| "short"| "int"| "long"| "float"| "double"| "signed"| "unsigned"| <struct-or-union-specifier>| <enum-specifier>| <typedef-name>

<结构声明> -> <说明限定符> <结构说明符列表>

<说明限定符> -> <类型说明符> | <类型限定符>

<指针> -> "*" <类型限定符>* {<指针>}?

<类型限定符> -> "常量"| "volatile"

<直接说明符> -> <标识符> | “(”<声明符>“)” | <直接说明符>“[”{<常量表达式>}? “]” | <直接说明符>“(”<参数类型列表>“)” | <直接说明符>“(”{<标识符>} *“)”

<常量表达式> -> <条件表达式>

<条件表达式> -> <逻辑或表达式> | <逻辑或表达式>“?” <表达式>“:”<条件表达式>

<逻辑或表达式> -> <逻辑和表达> | <逻辑或表达式“||” <逻辑和表达>

<逻辑和表达> -> <包容性,或表达> | <逻辑和表达“&&”<包容性,或表达>

<含-或表达式> -> <异或表达> | <包容性,或表达>“|” <异或表达>

<单独或表达式> -> <和表达> | <单独或表达>“^”<和表达>

<和表达式> -> <平等表达> | <和表达>“&”<平等表达>

<平等表达式> -> <关系表达式>| <平等表达>“==”<关系表达式>| <平等表达>“!=”<关系表达式>

<关系表达式> -> <移位表达式>| <关系表达式>“<”<移位表达式>| <关系表达式>“>”<移位表达式>| <关系表达式>“<=”<移位表达式>| <关系表达式>“> =”<移位表达式>

<移位表达式> -> <添加剂表达>| <移位表达式>“<<”<添加剂表达>| <移位表达式>“>>”<添加剂表达>

<添加剂表达式> -> <乘法表达式>| <添加剂表达>“+”<乘法表达式>| <添加剂表达式>“ - ”<乘法表达式>

<乘法表达式> -> <铸表达>| <乘法表达式>“*”<投表达式>| <乘表达>“/”<投表达式>| <乘法表达式>“%”<投表达式>

<投表达式> -> <一元表达式>| “(”<类型名>“),”<铸表达>

<一元表达式> -> <后缀表达式>| “++”<一元表达式>| “ - ”<一元表达式>| <一元算子> <铸表达>| “sizeof的”<一元表达式>| “sizeof的”<类型名称>

<后缀表达式> -> <主表达式>| <后缀表达式>“[”<表达式>“]”| <后缀表达式>“(”{<赋值表达式>} *“)”| <后缀表达式>“。” <标识符>| <后缀表达式>“ - >”<标识>| <后缀表达式>“++”| <后缀表达式>“ - ”

<基本表达式> -> <标识符>| <常数>| <字符串>| “(”<表达式>“)”

<常数> -> <整型常量>| <字符常量>| <float 常量>| <enumeration-constant>

<表达式> -> <赋值表达式>
| <表达式>“,”<赋值表达式>

<赋值表达式> -> <条件表达式>
| <一元表达式> <赋值运算符> <赋值表达式>

<赋值运算符> -> “=”| “* =”| “/ =”| “%=”| “+ =”| “ - =”| “<< =”| “>> =”| “&=”| “^ =”| “| =”

<一元操作符> -> “&”| “*”| “+”| “ - ”| “〜”| “!”

<类型名> -> {<说明限定符>} + {<抽象声明符>}

<参数类型列表> -> <参数列表>| <参数列表>“,”...

<参数列表> -> <参数声明>| <参数列表>“,”<参数声明>

<参数声明> -> {<声明说明符>} + <说明符>| {<声明说明符>} + <抽象说明符>| {<声明说明符>} +

<抽象声明符> - > <指针>| <指针> <直接抽象说明符>| <直接抽象说明符>

<直接抽象说明符> -> (<抽象说明符>)| {<直接抽象说明符>}? “[”{<常量表达式>}? “]”| {<直接抽象说明符>}? “(”{<参数类型列表>?|“)”

<枚举说明> -> “枚举”<标识>“{”<枚举列表>“}”| “枚举数”,“{”<枚举列表>“}”| “枚举数”<标识>

<枚举列表> -> <枚举数>| <枚举列表>“,”<枚举数>

<枚举数> -> <标识符>| <标识>“=”<常量表达式>

<类型定义名称> -> <标识符>

<声明> -> {<声明说明符>} + {<初始化声明符>} *

<初始化声明符> -> <说明符>| <声明符>“=”<初始化>

<初始化> -> <赋值表达式>| “{”<初始化列表>“}”| “{”<初始化列表>“,”“}”

<初始化列表> -> <初始化>| <初始化列表>“,”<初始化>

<复合语句> -> “{”{<申报>} * {<语句>} *“}”

<语句> -> <标记语句>| <表达式语句>| <复合语句>| <选择语句>| <循环语句>| <跳转语句>

<标记语句> -> <标识符>“:”<语句>| “case”<常量表达式>“:”<语句>| “default”“:”<语句>

<表达式语句> -> {<表达式>}? “;”

<选择语句> -> “if”“(”<表达式>“),”<语句>| “if”“(”<表达式>“),”<语句>“else”<声明>| “switch”“(”<表达式>“),”<语句>

<循环语句> -> “while”“(”<表达式>“)”<语句>| “do”<语句>“,while”“(”<表达式>“)”“;”| “for”“(”{<表达式>}?“;”{<表达式>}?“;”{<表达式>}“)”<语句>

<跳转语句> -> “goto”<标识>“;”| “continue”“;”| “break”“;”| “return”{<表达式>}? “;”

[align=t,c] [/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: