zoukankan      html  css  js  c++  java
  • 1014--C语言文法定义

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

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

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

    <类型说明>->无返回型|字符型|整型|单精度型

    <声明>-><指针直接说明符>|<直接说明符>

    <指针>-><’*’>|<’*’指针>

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

    <标识符列表>-><标识符>|<标识符列表> ’,’ <标识符>

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

    <参数表>-><参数声明>|<参数表 >’,’ <参数声明>

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

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

    <声明列表>-><声明>|<声明列表><声明>

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

    <初始化声明符>-><声明符>|<声明符>’=’ <初始化>

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

    <初始化列表>-><初始化>|<初始化列表> ‘,’< 初始化>

    <语句列表>-><语句>|<语句列表>

    <语句>-><复合语句>|<表达式语句>|<条件语句>|<循环语句>|<跳转语句>

    <表达式语句>->’;‘|<表达式>’;‘

    <条件语句>->如果<’(‘><表达式><’)‘><语句>|如果’(‘<表达式>’)‘<语句>那么<语句>

    <循环语句>->当’(’<表达式>’)‘<语句>|为’(’<表达式语句><表达式语句>’)’|为’(’<表达式语句><表达式语句><表达式>’)’<语句>

    <跳转语句>->继续’;’|结束’;’|返回’;’|返回<表达式>’;’

    <表达式>-><赋值表达式>|<表达式>’,’<赋值表达式>

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

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

    <逻辑或表达式>-><逻辑与表达式>|<逻辑或表达式>或<逻辑与表达式>

    <逻辑与表达式>-><包容性或表达式>|<逻辑与表达式>和<包容性或表达式>

    <包容性或表达式>-><异或表达式>|<包容性或表达式>’|’<异或表达式>

    <异或表达式>-><与表达式>|<异或表达式>’^’<与表达式>

    <与表达式>-><平等表达式>|<与表达式>’&’<平等表达式>

    <平等表达式>-><关系表达式>|<平等表达式>EQ_OP<关系表达式>|<平等表达式>NE_OP<关系表达式>

    <关系表达式>-><移动表达式>|<关系表达式>’<’<移动表达式>|<关系表达式>’>’<移动表达式>|<关系表达式> LE_OP <移动表达式>|<关系表达式> GE_OP <移动表达式>

    <移动表达式>-><添加表达式>|<移动表达式> LEFT_OP <添加表达式>|<移动表达式> RIGHT_OP <添加表达式>

    <添加表达式>-><乘法表达式>|<添加表达式>’+’<乘法表达式>|<添加表达式>’-’<乘法表达式>

    <乘法表达式>-><转换表达式>|<乘法表达式>’*’<转换表达式>|<乘法表达式>’/’<转换表达式>|<乘法表达式>’%’<转换表达式>

    <转换表达式>-><一元表达式>|’(’<类型名称>’)’<转换表达式>

    <一元表达式>-><后缀表达式>| INC_OP <一元表达式>|DEC_OP <一元表达式>|<一元运算符>< 转换表达式>|字节<一元表达式>|字节’(’<类型名称>’)’

    <后缀表达式>-><主要表达式>|<后缀表达式>’[’<表达式>’]’|<后缀表达式>’(’’)’|<后缀表达式>’(’<参数表达式列表>’)’|<后缀表达式>’.’<标识符>|<后缀表达式> PTR_OP <标识符>|<后缀表达式> INC_OP |<后缀表达式> DEC_OP

    <后缀表达式>’(‘<参数表达式列表>’)’|<后缀表达式>’.’<标识符>|<后缀表达式><PTR OP标识符>|<后缀表达式 INC OP>|<后缀表达式 DEC OP>

    <主表达式>--><标识符>|<不变>|<字符串字面量>|’(‘<表达式>’)’

    <参数表达式列表>:<赋值表达式>|<参数表达式列表>’,’ <赋值表达式>

    <一元运算符>:’&’|’*’|’+’|’-‘|’~’|’!’

    <赋值运算符>-->’=’| MUL_ASSIGN| DIV_ASSIGN| MOD_ASSIGN| ADD_ASSIGN| SUB_ASSIGN| LEFT_ASSIGN| RIGHT_ASSIGN| AND_ASSIGN| XOR_ASSIGN| OR_ASSIGN

    <存储类说明>-->TYPEDEF |EXTERN|静态的|自动的|寄存器

    <结构或联合说明符>:<结构或联合标识符>’{‘<struct声明列表>’}’|<结构或联合>’{‘< struct声明列表’>’}’|<结构或联合标识符>

    <结构或联合>:<结构>|<联合>

    < struct声明列表>:<struct声明>|< struct声明列表>< struct声明>

    <struct声明>:<说明限定表>< struct声明列表>‘;‘

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

    <结构说明符列表>--><结构说明符>|<结构说明符列表>’.’ <结构说明符>

    <结构说明符>--><声明符>|’:’<常量表达式>|<声明符>’:’ <常量表达式>

    <枚举说明>--><枚举>’{‘<枚举列表>’}’|<枚举标识符>’{‘<枚举列表>’}’|

    <枚举标识符>

    <枚举列表>--><枚举>|<枚举列表>’;’ <枚举>

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

    <类型限定>--><常量>|<变量>

    <类型限定表>-->|<类型限定表><类型限定>

    <参数类型列表>--><参数列表>|<参数列表>’.’<省略号>

    <参数列表>--><参数声明>|<参数列表>’;’ <参数声明>

    <类型名>--><说明限定表>|<说明限定表><抽象声明符>

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

    <指针直接抽象声明符>-->’(‘<抽象声明>’)’|’[‘’]’|’[‘<常数表达式>’]’|<直接抽象声明符>’[‘’]’|<直接抽象声明符>’[‘<常数表达式>’]’|’(‘’)’|’(‘<参数类型列表>’)’|<直接抽象声明符>’(‘’)’|<直接抽象声明符>’(‘<参数类型列表>’)’

    <标签语句>--><标识符>’;’<语句>|<案例><常数表达式>’;’<语句>|<默认>’:’<语句>

  • 相关阅读:
    深入理解计算机系统 第六章 存储器层次结构 第二遍
    深入理解计算机系统 第六章 存储器层次结构
    深入理解计算机系统 第八章 异常控制流 Part2 第二遍
    深入理解计算机系统 第八章 异常控制流 part2
    深入理解计算机系统 第八章 异常控制流 Part1 第二遍
    深入理解计算机系统 第八章 异常控制流 part1
    深入理解计算机系统 第三章 程序的机器级表示 Part2 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part2
    深入理解计算机系统 第三章 程序的机器级表示 Part1 第二遍
    深入理解计算机系统 第三章 程序的机器级表示 part1
  • 原文地址:https://www.cnblogs.com/joker317/p/4921725.html
Copyright © 2011-2022 走看看