zoukankan      html  css  js  c++  java
  • 1028 文法

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

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

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

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

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


                                   
                                    

  • 相关阅读:
    JSON 数字排序 多字段排序
    hdu-4747-Mex
    Android SDK更新缓慢或无法更新的解决方法
    UVA 11806
    SDL显示内存中的图像
    Cocos2d-x 2.1.5 简单动画
    codeforce343A
    android 控件的移动
    Erlang千万级用户游戏框架(Openpoker)源码文件分析清单
    八大排序c++可运行精简版,一目了然
  • 原文地址:https://www.cnblogs.com/cjh123/p/4918045.html
Copyright © 2011-2022 走看看