首页 > 其他 > 详细

1028 文法

时间:2015-10-29 23:20:13      阅读:288      评论:0      收藏:0      [点我收藏+]

<翻译单元>  ->  <外部声明>

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

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

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

<存储类说明符> -> “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”{<表达式>}? “;”


                               
                                

1028 文法

原文:http://www.cnblogs.com/cjh123/p/4918045.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!