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

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

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

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

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

<指针>→<星号>|<星号><指针>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<逻辑或表达式>→<逻辑与表达式>|<逻辑或表达式>or-op<逻辑与表达式>

<逻辑与表达式>→<包容性或表达式>|<逻辑与表达式>and-op<包容性或表达式>

<包容性或表达式>→<异或表达式>|<包容性或表达式>|<异或表达式>

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

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

<等值表达式>→<关系表达式>|<等值表达式>eq-op<关系表达式>|<等值表达式>ne-op<关系表达式>

<关系表达式>→<移动表达式>|<关系表达式><<移动表达式>|<关系表达式>><移动表达式>|<关系表达式>le-op<移动表达式>|<关系表达式>ge-op<移动表达式>

<移动表达式>→<运算表达式>|<移动表达式>lert-op<运算表达式>|<移动表达式>right-op<运算表达式>

<运算表达式>→<乘除表达式>|<运算表达式>+<乘除表达式>|<运算表达式>-<乘除表达式>

<乘除表达式>→<转换表达式>|<乘除表达式>*<转换表达式>|<乘除表达式>/<转换表达式>

|<乘除表达式>%<转换表达式>

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

<一元表达式>→<后缀表达式>|inc-op <一元表达式>|dec-op <一元表达式>|<一元表达式><转换表达式>|sizeof<一元表达式>|sizeof(<类型名称>)

<后缀表达式>→<主要表达式>|<后缀表达式>[<表达式>]|<后缀表达式>( )|<后缀表达式>(<参数表达式表> )|<后缀表达式>.<标识符>|<后缀表达式>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

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

<结构或联合说明>→<结构或联合><标识符>{<结构声明表>}|<结构或联合>{<结构声明表>}|<结构或联合><标识符>

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

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

<结构声明>→<结构声明表>

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

<结构声明表>→<结构声明>|<结构声明表>,<结构声明>

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

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

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

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

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

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

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

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

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

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

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

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

1029c语言文法的更多相关文章

  1. 1029-c语言文法的理解

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

  2. 1029c语言文法2理解

    program → external_declaration | program external_declaration <程序>→ <外部声明>|<程序>< ...

  3. 1029c语言文法定义与c程序的推导过程

    program → external_declaration | program external_declaration <源程序>→ <外部声明> | <源程序> ...

  4. 1029C语言文法的理解

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

  5. C语言文法

    C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明   → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...

  6. 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)

    阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...

  7. 1029 C语言文法定义与C程序的推导过程

    1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,写出用上述文法产生这段C程序的推导过程. program → exte ...

  8. 我的mini_c语言文法设计

    //这个文件主要是用来描述当前源语言的词法结构和语法结构 //当前语言是c语言的一个子集,因此里面所有的描述大家都很熟悉 //注意,当前语言并不支持预处理,因为c预处理比较复杂,而且楼主能力低下,因此 ...

  9. 消除左递归c语言文法

    <程序> -〉 <外部声明> | <函数定义><外部声明> -〉<头文件> | <变量> | <结构体> <头 ...

随机推荐

  1. BZOJ 1835 基站选址(线段树优化DP)

    题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1835 题意:有N个村庄坐落在一条直线上,第 i(i>1)个村庄距离第1个村庄的距离 ...

  2. Cheatsheet: 2015 03.01 ~ 03.31

    Web The Architecture of Algolia's Distributed Search Network No promises: asynchronous JavaScript wi ...

  3. DevOps到底是什么?

    本篇将讨论DevOps到底包含什么,今后的运维工程师应该朝什么方向努力.

  4. 个人简历制作(Dreamweaver)

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 系统分区MBR、GPT

    分区模式: ①MBR(主引导记录(Master Boot Record))分区:在驱动器最前端的一段引导扇区 缺点:主分区不超过4个,单个分区容量最大2TB 分区工具fdisk只能给硬盘做MBR分区, ...

  6. factory工厂模式之工厂方法FactoryMethod

    工厂方法(Factory Method) * 工厂方法把不同的产品放在实现了工厂接口的不同工厂类(FactoryAImpl,FactoryBImpl...)里面, * 这样就算其中一个工厂类出了问题, ...

  7. NoSQL数据库:数据的一致性

    NoSQL数据库:数据的一致性 读取一致性 强一致性 在任何时间访问集群中任一结点,得到的数据结果一致: 用户一致性 对同一用户,访问集群期间得到的数据一致: 解决用户一致性:使用粘性会话,将会话绑定 ...

  8. Html、Css-----当有文字和图片的时候,需要文字和图片居中,怎么实现?不想文字换行怎么设置

    1 当有文字和图片的时候,需要文字和图片居中,怎么实现? <a href=#" target="aa" style="white-space:nowrap ...

  9. shell script的连接符是逗号,不是英文的句号

    举个例子: gawk 'BEGIN{ var[ var[ var[ var[ asort(var,test) for(i in test) print ] }' 这时候敲回车就能输出 Index: - ...

  10. js 读写cookie。不同路径会储存各自的cookie。而 在v.net环境下读写是在 / 根目录。

    所以如果全站不分path 的 话.应该显示的写上 path .设置为根目录 function setCookie(name, value) { document.cookie = name + &qu ...