zoukankan      html  css  js  c++  java
  • 文法分析

    <翻译单元> :: = {<声明变量>} *

    <声明变量> :: = <函数定义>
    | <申报>

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

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

    <存储类说明符> :: =“自动”
    | “注册”
    | “静”
    | “外部”
    | “类型定义”

    <类型说明符> :: =“无效”
    | “字符”
    | “短”
    | “INT”
    | “长”
    | “浮动”
    | “双节”
    | “签约”
    | “符号”
    | <结构-或工会说明符>
    | <枚举符>
    | <类型定义名称>

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

    <结构-或工会> :: =“结构”
    | “联盟”

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

    <说明限定符> :: = <类型说明符>
    | <类型限定符>

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

    <结构说明符> :: = <说明符>
    | <声明符>“:”<常量表达式>
    | “:”<常量表达式>

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

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

    <类型限定符> :: =“常量”
    | “挥发性”

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

    <常量表达式> :: = <条件表达式>

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

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

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

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

    <异或表达式> :: = <和表达>
    | <异或表达>“^”<和表达>

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

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

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

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

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

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

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

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

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

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

    <常数> :: = <整型常数>
    | <字符常量>
    | <浮常数>
    | <枚举常数>

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

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

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

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

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

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

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

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

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

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

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

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

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

    <类型定义名称> :: = <标识符>

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

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

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

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

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

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

    <标记语句> :: = <标识符>“:”<语句>
    | “案例”<常量表达式>“:”<语句>
    | “默认”“:”<语句>

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

    <选择语句> :: =“如果”“(”<表达式>“),”<语句>
    | “如果”“(”<表达式>“),”<语句>“其他”<声明>
    | “开关”“(”<表达式>“),”<语句>

    <循环语句> :: =“,而”“(”<表达式>“),”<语句>
    | “做”<语句>“,而”“(”<表达式>“)”“;”
    | “为”“(”{<表达式>}?“;”{<表达式>}?“;”{<表达式>}“),”<语句>

    <跳转语句> :: =“转到”<标识>“;”
    | “继续”“;”
    | “破”“;”
    | “回归”{<表达式>}? “;”

  • 相关阅读:
    strongswan--HA
    RFC8221 -- 密码算法实现要求和使用指南
    strongswan--ikev2软件架构
    strongswan--ike sa状态机
    strongswan--ipsec.conf配置文件分析
    strongswan--linux内核ipsec policy类型
    strongswan--配置Charon-systemd问题解决
    strongswan——IKE建立过程
    GCC入门
    MPLS-TP OAM各个层次
  • 原文地址:https://www.cnblogs.com/6daomeipengyou/p/4920759.html
Copyright © 2011-2022 走看看