• 文法解释修改


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

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

    <函数定义>→<函数定义>|<定义>

    <函数定义>→<类型标识符><声明部分语句>

    <类型标识符>→<无类型>|<字符型>|<整型>|<浮点型>

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

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

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

    <标识符列表>:<标识符>|<标识符列表><标识符>

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

    <参数列表>→<参数说明>|<参数列表><参数说明>

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

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

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

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

    <初始化声明>→<声明>|<声明>’=’初始化程序

    <初始化程序>→<赋值表达式>|<’{‘初始化列表’}’>|<’{‘初始化列表’}’>

    <初始化列表>→<初始化程序>|<初始化列表><初始化程序>

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

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

    <表达式>→<’;’>|<表达式’;’>

    <条件语句>:<if’(‘表达式’)语句>|<if’(‘表达式’)语句><条件语句>

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

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

    <表达式>:<赋值表达式>|<表达式><赋值表达式>

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

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

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

    <逻辑与表达式>:<表达式>|<逻辑表达式><运算表达式>|<表达式>

    <或运算表达式>→<异或表达式>|<或运算表达式>|<异或表达式>

    <异或表达式>:<与表达式>|><异或表达式><表达式>

    <与表达式>:<相等表达式>|<与表达式><相等表达式>

    <相等表达式>:<关系表达式>|<相等表达式邓宇运算关系表达式>|<相等表达式不等于关系表达式>

    <关系表达式>:<移位表达式>|<关系表达式'<'移位表达式>|<关系表达式'>'移位表达式>|<关系表达式小于等于运算移位表达式>|<关系表达式大于等于运算移位表达式>

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

    <加法表达式>:<乘法表达式>|<加法表达式'+'乘法表达式>|<加法表达式'-'乘法表达式>

    <乘法表达式>:<强制转换表达式>|<乘法表达式'*'强制转换表达式>|<乘法表达式'/'强制转换表达式>|<乘法表达式'%'强制转换表达式>

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

    <一元表达式>:<后缀表达式>|<INC运算一元表达式>|<DEC运算一元表达式>|<一元运算符表达式>|<结构体变量一元表达式>|<结构体变量的类型名称>

    <后缀表达式>:<基本表达式>|<后缀表达式><表达式>|<后缀表达式>|<后缀表达式><参数运算>|<后缀表达式DEC运算>

    <基本表达式>→<标识符>|<常量>|<字符串常量>|<表达式>

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

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

    <赋值运算符>→<'='>|<乘法分配>|<DIV分配>|<MOD分配>|<加法分配>|<SUB分配>|<左分配>|<右分配>|<与分配>|<异或分配>|<或分配>

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

    <结构或联合说明符>:<结构或联合说明符'{'结构体声明列表'}'|<结构或联合'{'结构体体声明列表'}'|<结构或联合标识符>

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

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

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

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

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

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

    <枚举声明>→<枚举'{'枚举器列表'}'|<枚举标识符>

    <枚举器列表>→<枚举器>|<枚举器列表>|<枚举标识符><枚举器列表>|<枚举标识符>

    <枚举器列表>→<枚举器>|<枚举器列表><枚举器>

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

    <类型限定符>→<常量>|<易式>

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

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

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

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

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

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

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

  • 相关阅读:
    阿里巴巴的26款超神Java开源项目
    10个爬虫工程师必备的工具
    微服务的发现与注册--Eureka
    国内最火5款Java微服务开源项目
    LeetCode 700. 二叉搜索树中的搜索
    LeetCode 104. 二叉树的最大深度
    LeetCode 908. 最小差值 I
    LeetCode 728. 自除数
    LeetCode 704. 二分查找
    LeetCode 852. 山脉数组的峰顶索引 (二分)
  • 原文地址:https://www.cnblogs.com/caicaihong/p/4936359.html
Copyright © 2020-2023  润新知