• 文法分析


    <程序>→<外部声明>|<程序><外部声明>

    <外部声明>→<函数定义>|<声明>

    <函数定义>→<类型说明><说明符><复合语句>

    <类型说明>→<无返回类型>|<字符型><整型>|<浮点型>

    <声明符>→<指针><直接声明符>|<直接声明符>

    <指针>→*|*<指针>

    <直接声明符>→<标识符>|<直接声明符>[ ]| <直接声明符>[<常数表达式>]

    |<标识符>(<参数表>)|<标识符>()|<直接声明符>,<标识符表>

    <标识符表>→<标识符>|<标识符表>,<标识符>

    <常数表达式>→<条件表达式>

    <参数表>→<参数声明>|<参数表>,<参数声明>

    <参数声明>→<声明说明符><标识符>

    <复合语句>→{ }|{<语句表>}|{<声明表><语句表>

    <声明表>→<声明>|<声明表><声明>

    <声明>→<初始化声明>|<初始化声明表>,<初始化声明>

    <初始化声明>→<声明符>|<声明符>=<初始化>

    <初始化>→<赋值表达式>|{初始化列表}|{初始化列表,}

    <初始化列表>→<初始化>|<初始化列表>|,<初始化>

    <语句列表>→<语句>|<语句列表><语句>

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

    <表达式语句>→;|<表达式>;

    <选择语句>→if(<表达式>)<语句>|if(<表达式>)<语句>else<语句>

    <循环语句>→while(<表达式>)<语句>|for(<表达式语句><表达式语句>)<语句>| for(<表达式语句><表达式语句><表达式>)<语句>

    <跳转语句>→|continue;|break;|return;|return<表达式>;

    <表达式>→<赋值表达式>|<表达式>,<赋值表达式>

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

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

    <逻辑或表达式>→<逻辑与表达式>|<逻辑或表达式><按位或运算符><逻辑与表达式>

    <逻辑与表达式>→<按位或表达式>|<逻辑与表达式><按位或运算符><按位或表达式>

    <按位或表达式>→<按位异或表达式>|<按位或表达式>|<按位异或表达式>

    <按位异或表达式>→<按位与表达式>|<按位异或表达式>^<按位与表达式>

    <按位与表达式>→<等值表达式>|<按位与表达式>&<等值表达式>

    <等值表达式>→<关系表达式>|<等值表达式>=<关系表达式>

    |<关系表达式>|<等值表达式>!=<关系表达式>

    <关系表达式>→<移位表达式>|<关系表达式><<移位表达式>

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

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

    <移位表达式>→<加法表达式>|<移位表达式><左移运算符><加法表达式>|<移位表达式><右移运算符><加法表达式>

    <加法表达式>→<乘法表达式>|<加法表达式>+<乘法表达式>

    |<加法表达式>-<乘法表达式>

    <乘法表达式>→<强制类型转换表达式>|<乘法表达式>*<强制类型转换表达式>|<乘法表达式>/<强制类型转换表达式>|<乘法表达式>%<强制类型转换表达式>

    <强制类型转换表达式>→<一元表达式>|(<类型名称>)<强制类型转换表达式>

    <一元表达式>→<后缀表达式>|<自增运算符><一元表达式>

    |<自减运算符><一元表达式>|<一元运算符><强制类型转换表达式>

    |sizeof<一元表达式>| sizeof(<类型名称>)

    <后缀表达式>→<初等表达式>|<后缀表达式>[<表达式>]

    |<后缀表达式>()|<后缀表达式>(<参数表达式列表>)

    |<后缀表达式>.<标识符>|<后缀表达式><指针运算符><标识符>

    |<后缀表达式><自增运算符>|<后缀表达式><自减运算符>

    <初等表达式>→<标识符>|<常量>|<字符串>|(<表达式>)

    <参数表达式列表>→<参数表达式>|<参数表达式列表>,<参数表达式>

    <一元运算符>→&|*|+|-|~|!

    <赋值运算符>→=|*=|/=|%=|&=|SUB赋值|<=|>=|&&=|^=||=

    <存储类说明>→<类型>|<外部变量>|<静态存储变量>|<自动存储变量>|<寄存器变量>

    <结构体或共用体说明符>→{<结构体声明列表>}|<结构体或共用体>{<结构体声明列表>}|<结构体或共用体><标识符>

    <结构体或共用体>→<结构体>|<共用体>

    <结构体声明列表>→<结构体声明>|<结构体声明列表><结构体声明>

    <结构体声明>→<说明符限定符列表><结构体声明列表>;

    <说明符限定符列表>→<类型说明><说明符限定符列表>

    |<类型说明>|<类型限定><说明符限定符列表>|<类型限定>

    <结构体声明符列表>→<结构体声明符>|<结构体声明符列表>,<结构体声明符>

    <结构体声明符>→:<声明符>|:<常量表达式>|<声明符>:<常量表达式>

    <枚举说明>→<枚举>{<枚举表>}|<枚举><标识符>{<枚举表>}

    |<枚举><标识符>

    <枚举表>→<枚举>|<枚举表>,<枚举>

    <枚举>→<标识符>|<标识符>=<常量表达式>

    <类型限定符>→<常量>|<变量>

    <类型限定符列表>→<类型限定符>|<类型限定符列表><类型限定符>

    <参数类型表>→<参数表>|<参数表>,<省略号>

    <参数表>→:<参数声明>|<参数表>,<参数声明>

    <类型名称>→<限定说明符列表>|<限定说明符列表><抽象声明符>

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

    <直接抽象声明符>→(<抽象声明符>)|[]|[<常量表达式>]

    |<直接抽象声明符>[]|<直接抽象声明符>[<常量表达式>]

    |()|(<参数类型表>)|<直接抽象声明符>()

    |<直接抽象声明符>(<参数类型表>)

    <标记语句>→<标识符>:<语句>|case<常量表达式>:<语句>

    |default: <语句>

  • 相关阅读:
    论信息系统项目的范围管理
    Windows服务/Linux守护创建及安装
    C#开源网络通信库PESocketde的使用
    Unity本地持久化类PlayerPrefs使用详解
    记录一个闪烁,跳动,光圈的动画
    一、Linux驱动学习-了解系统
    用c#自己实现一个简单的JSON解析器
    highcharts的yAxis标题过长 分行显示
    Mysql binlog恢复数据
    Xamarin.Forms实例旅行日志
  • 原文地址:https://www.cnblogs.com/950525kxj/p/4921545.html
Copyright © 2020-2023  润新知