• C语言文法翻译


     

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

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

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

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

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

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

    <直接声明>→<标识符>|<直接声明>[]|<直接声明>[常量表达式]|<标识符>(参数表)|< 标识符>()|<直接声明>,< 标识符列表>

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

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

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

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

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

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

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

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

     <初始化>→<赋值表达式>|{< initializer list

    初始化列表>}|{< initializer list

    初始化列表>,}

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

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

    <语句>→<复合语句>|<表达式语句>|< selection statement

    选择语句>|<迭代语句>|<跳转语句>

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

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

    <迭代语句>→while(<表达式>)<语句>|for(<表达式语句><表达式语句>)<语句>|for(<表达式语句><表达式语句><表达式>)<语句>

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

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

    <赋值表达式>→<条件表达式>|<一元表达式><赋值操作符><赋值表达式>

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

    <逻辑或表达式>→<逻辑与表达式>|<逻辑或表达式> OR OP<逻辑与表达式>

    <逻辑与表达式>→<包含或表达式>|<逻辑与表达式>and op<包含或表达式>

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

    <与表达式>→<等式表达式>|<与表达式>&<等式表达式>

    <等式表达式>→<关系表达式>|<等式表达式> EQ_OP<关系表达式>|<等式表达式> NE_OP<关系表达式>

    <关系表达式>→<转换表达式> |<关系表达式><<转换表达式>|<关系表达式>><转换表达式>|<关系表达式>le op<转换表达式>|<关系表达式>ge op<表转换达式>

    <转换表达式>→<加法表达式>|<转换表达式>left op<加法表达式>|<转换表达式>right op<加法表达式>

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

    <乘法表达式>→<铸造表达式>|<乘法表达式>*<铸造表达式>|<乘法表达式>/<铸造表达式>|<乘法表达式>%<铸造表达式>

    <铸造表达式>→<一元表达式>|(<类型名称>)<<铸造表达式>>

    <一元表达式>→<后缀表达式>| INC OP<一元表达式>| DEC_OP<一元表达式>|<一元运算符><铸造表达式>| SIZEOF<一元表达式>| SIZEOF(<类型名称>)

    <后缀表达式>→<原始表达式>|<后缀表达式>[<表达式>]| <后缀表达式>()|<后缀表达式>(<表达式的参数列表>)|<后缀表达式>. IDENTIFIER|<后缀表达式> PTR OP IDENTIFIER|<后缀表达式> PTR OP IDENTIFIER|<后缀表达式> INC OP|<后缀表达式> DEC OP

    <原始表达式>→IDENTIFIER| CONSTANT| STRING LITERAL|(<表达式>)

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

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

    <赋值操作符>→=| MUL_ASSIGN| DIV_ASSIGN| MOD_ASSIGN| ADD_ASSIGN|SUB_ASSIGN|LEFT_ASSIGN|RIGHT_ASSIGN|AND_ASSIGN| XOR_ASSIGN| OR_ASSIGN

    <存储类说明符>→ TYPEDEF| EXTERN| STATIC| AUTO| REGISTER

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

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

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

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

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

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

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

    <枚举说明符>→ ENUM{<枚举数列表>}| ENUM IDENTIFIER{<枚举数列表>}| ENUM IDENTIFIER

    <枚举数列表>→<枚举法>|<枚举数列表>,<枚举法>

    <枚举法>→IDENTIFIER| IDENTIFIER=<常量表达式>

    <类型限定符>→ CONST| VOLATILE

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

    <参数类型列表>→<参数表>|<参数表>, ELLIPSIS

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

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

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

    <直接声明符>→(<抽象说明>)|[]|[<常量表达式>]|<直接声明符>[]|<直接声明符>[<常量表达式>]|()|(<参数类型列表>)|<直接声明符>()|<直接声明符>(<参数类型列表>)

    <标号语句>→ IDENTIFIER:< 语句>| CASE<常量表达式>:< 语句>| DEFAULT: < 语句>

  • 相关阅读:
    Mysql有什么办法解决主备延迟的引起的过期读问题?
    jdk 8 交集 差集
    【立flag】_(:з」∠)_
    Linux基础01 虚拟机安装操作系统,网络类型(网口),网段, 分区,分配网络, KDUMP,网络配置, 快照, 克隆, Xshell优化, Linux历史
    oracle(enquences & latches )lock (oracle 锁大全)
    oracle 密码详解以及破解
    oracle 大表在线删除列操作(alter table table_name set unused )
    MacOs 使用 github 个人令牌(Personal access token)
    web网站在线安全扫描
    vue 实现快捷键录入功能
  • 原文地址:https://www.cnblogs.com/qiuhuimin/p/4925266.html
Copyright © 2020-2023  润新知