• 语言文法


    <翻译单元> --> {<外部声明>} *

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

    | <申报>

    <函数定义> --> {<声明说明符>} * <声明符> {<申报>} * <复合语句>

    <声明说明符> --> <存储类说明符>

    | <类型说明符>

    | <类型限定符>

    <存储类说明符> -->“自动”

    | “注册”

    | “静”

    | “外部”

    | “类型定义”

    <类型说明符> -->“无效”

    | “字符”

    | “短”

    | “INT”

    | “长”

    | “浮动”

    | “双节”

    | “签约”

    | “符号”

    | <结构-或工会说明符>

    | <枚举符>

    | <类型定义名称>

    <结构-或工会说明符> --> <结构-或工会> <标识>“{”{<结构声明>} +“}”

    | <结构-或工会>“{”{<结构声明>} +“}”

    | <结构-或工会> <标识符>

    <结构-或工会> -->“结构”

    | “联盟”

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

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

    | <类型限定符>

    <结构说明符列表> --> <结构说明符>

    | <结构说明符列表>“,”<结构说明符>

    <结构说明符> --> <说明符>

    | <声明符>“:”<常量表达式>

    | “:”<常量表达式>

    <声明符> --> {<指针>}? <直接说明符>

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

    <类型限定符> -->“常量”

    | “挥发性”

    <直接说明符> --> <标识符>

    | “(”<声明符>“)”

    | <直接说明符>“[”{<常量表达式>}? “]”

    | <直接说明符>“(”<参数类型列表>“)”

    | <直接说明符>“(”{<标识符>} *“)”

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

    <条件表达式> --> <逻辑或表达式>

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

    <逻辑或表达式> --> <逻辑和表达>

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

    <逻辑和表达> --> <包容性,或表达>

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

    <含-或表达式> --> <异或表达>

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

    <异或表达式> --> <和表达>

    | <异或表达>“^”<和表达>

    <和表达式> --> <平等表达>

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

    <平等表达式> --> <关系表达式>

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

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

    <关系表达式> --> <移位表达式>

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

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

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

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

    <移位表达式> --> <添加剂表达>

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

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

    <添加剂表达式> --> <乘法表达式>

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

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

    <乘法表达式> --> <铸表达>

    | <乘法表达式>“*”<投表达式>

    | <乘表达>“/”<投表达式>

    | <乘法表达式>“%”<投表达式>

    <投表达式> --> <一元表达式>

    | “(”<类型名>“),”<铸表达>

    <一元表达式> --> <后缀表达式>

    | “++”<一元表达式>

    | “ - ”<一元表达式>

    | <一元算子> <铸表达>

    | “sizeof的”<一元表达式>

    | “sizeof的”<类型名称>

    <后缀表达式> --> <主表达式>

    | <后缀表达式>“[”<表达式>“]”

    | <后缀表达式>“(”{<赋值表达式>} *“)”

    | <后缀表达式>“。” <标识符>

    | <后缀表达式>“ - >”<标识>

    | <后缀表达式>“++”

    | <后缀表达式>“ - ”

    <基本表达式> --> <标识符>

    | <常数>

    | <字符串>

    | “(”<表达式>“)”

    <常数> --> <整型常数>

    | <字符常量>

    | <浮常数>

    | <枚举常数>

    <表达式> --> <赋值表达式>

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

    <赋值表达式> --> <条件表达式>

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

    <赋值运算符> -->“=”

    | “* =”

    | “/ =”

    | “%=”

    | “+ =”

    | “ - =”

    | “<< =”

    | “>> =”

    | “&=”

    | “^ =”

    | “| =”

    <一元操作符> -->“&”

    | “*”

    | “+”

    | “ - ”

    | “〜”

    | “!”

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

    <参数类型列表> --> <参数列表>

    | <参数列表>“,”...

    <参数列表> --> <参数声明>

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

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

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

    | {<声明说明符>} +

    <抽象声明符> --> <指针>

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

    | <直接抽象说明符>

    <直接抽象说明符> -->(<抽象说明符>)

    | {<直接抽象说明符>}? “[”{<常量表达式>}? “]”

    | {<直接抽象说明符>}? “(”{<参数类型列表>?|“)”

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

    | “枚举”,“{”<枚举列表>“}”

    | “枚举”<标识>

    <枚举列表> --> <枚举>

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

    <枚举> --> <标识符>

    | <标识>“=”<常量表达式>

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

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

    <初始化声明符> --> <说明符>

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

    <初始化> --> <赋值表达式>

    | “{”<初始化列表>“}”

    | “{”<初始化列表>“,”“}”

    <初始化列表> --> <初始化>

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

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

    <语句> --> <标记语句>

    | <表达式语句>

    | <复合语句>

    | <选择语句>

    | <循环语句>

    | <跳转语句>

    <标记语句> --> <标识符>“:”<语句>

    | “案例”<常量表达式>“:”<语句>

    | “默认”“:”<语句>

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

    <选择语句> -->“如果”“(”<表达式>“),”<语句>

    | “如果”“(”<表达式>“),”<语句>“其他”<声明>

    | “开关”“(”<表达式>“),”<语句>

    <循环语句> -->“,而”“(”<表达式>“),”<语句>

    | “做”<语句>“,而”“(”<表达式>“)”“;”

    | “为”“(”{<表达式>}?“;”{<表达式>}?“;”{<表达式>}“),”<语句>

    <跳转语句> -->“转到”<标识>“;”

    | “继续”“;”

    | “破”“;”

    | “回归”{<表达式>}? “;”

  • 相关阅读:
    数据结构与算法之二叉树的遍历
    数据结构与算法之二叉树
    数据结构与算法之单调栈
    数据结构与算法之栈
    C里面的变长参数
    C++模板问题之多出的static
    通过返回值'重载'函数
    flask小记
    ANSI C
    Python坑
  • 原文地址:https://www.cnblogs.com/gzh13692021053/p/4920810.html
Copyright © 2020-2023  润新知