简化C语言文法
程序 → 外部声明|程序 外部声明
外部声明 → 定义函数|定义
函数定义 → 类型标识符 声明部分语句
类型标识符 → 空类型|字符型|整型|浮点型
声明部分语句 → 指针 直接声明|直接声明
指针 → * |* 指针
直接声明 → 标识符 | 直接声明[ ] | 直接声明[常数表达式] | 标识符(参数列表) | 标识符() | 直接声明 ,标识符列表
标识符列表 → 标识符 | 标识符列表,标识符
标识符 → 下划线 标识符|字母 标识符|数字|字母|下划线
常数表达式 → 条件表达式
参数列表 → 参数声明 | 参数列表 ,参数声明
参数声明 → 说明符声明 标识符
语句列表 → 语句 | 语句列表 语句
语句 → 复合语句 | 表达式语句 | 选择语句 | 循环语句
复合语句 → { } | { 语句列表 } | { 声明列表 语句列表 }
声明列表 → 声明 | 声明列表 声明
声明 → 初始化声明 | 初始化声明列表 ,初始化声明
初始化声明 → 声明 | 声明=初始化程序
初始化程序 → 表达式 | {初始化程序列表} | {初始化程序列表 , }
初始化程序列表 → 初始化程序 | 初始化程序列表 , 初始化程序
表达式语句 → 表达式;
表达式 → 赋值表达式 | 表达式, 赋值表达式
赋值表达式 → 条件表达式| 一元表达式 赋值操作符 赋值表达式
条件表达式 → 逻辑‘或’表达式 | 逻辑‘或’表达式 ? 表达式: 条件表达式
逻辑‘或’表达式 → 逻辑‘与’表达式 | 逻辑‘或’表达式 ‘或’运算 逻辑‘与’表达式
逻辑‘与’表达式 → 逻辑‘或’表达式 | 逻辑‘与’表达式 ‘与’运算 逻辑‘或’表达式
一元表达式 → 加一运算 一元表达式 | 减一运算 一元表达式|一元运算符 强制转换表达式
一元运算符 → & | * | + | - | !
强制转换表达式 → 一元表达式 | (类型名称)强制转换表达式
赋值运算符 → = | 乘法赋值 | 除法赋值 | 求余赋值 | 加法赋值 | 减法赋值
基本表达式 → 标识符 | 常量 | 字符串 | (表达式)
选择语句 → IF(表达式)语句 | IF(表达式)语句 ELSE 语句
循环语句 → WHILE(表达式)语句 | FOR(表达式语句;表达式语句)语句 | FOR(表达式语句;表达式语句;表达式)语句
加法表达式 → 乘法表达式 | 加法表达式 + 乘法表达式 | 加法表达式 - 乘法表达式
乘法表达式 → 强制转换表达式 | 乘法表达式 * 强制转换表达式 | 乘法表达式 / 强制转换表达式 | 乘法表达式 % 强制转换表达式
简化C语言文法的更多相关文章
- C语言文法
C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明 → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...
- 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)
阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...
- 1029 C语言文法定义与C程序的推导过程
1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,写出用上述文法产生这段C程序的推导过程. program → exte ...
- 我的mini_c语言文法设计
//这个文件主要是用来描述当前源语言的词法结构和语法结构 //当前语言是c语言的一个子集,因此里面所有的描述大家都很熟悉 //注意,当前语言并不支持预处理,因为c预处理比较复杂,而且楼主能力低下,因此 ...
- 消除左递归c语言文法
<程序> -〉 <外部声明> | <函数定义><外部声明> -〉<头文件> | <变量> | <结构体> <头 ...
- 简单的C语言文法
<程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...
- 实验二 c语言文法
<程序>-><声明>|<程序><函数> <函数>-><修饰符><标识符><形式参数>< ...
- c语言文法简化版文法
<源程序>→<外部声明>|<外部声明><函数体> <外部申明>→<头文件><函数声明>|其他声明 <函数体&g ...
- 简化版c语言文法
<程序> → <外部声明> | <程序的外部声明> <标识符类型> → <无类型> | <字符> | <整型> | ...
随机推荐
- 超详细的Xcode代码格式化教程,可自定义样式
为什么要格式化代码 当团队内有多人开发的时候,每个人写的代码格式都有自己的喜好,也可能会忙着写代码而忽略了格式的问题. 在之前,我们可能会写完代码后,再一点一点去调格式,很浪费时间. 有了ClangF ...
- BZOJ1453: [Wc]Dface双面棋盘
Description Input Output Sample Input Sample Output HINT 线段树套并查集应该是比较好写的做法,时间复杂度为O(N^3+M*NlogN). #in ...
- CF Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined)
1. Intel Code Challenge Final Round (Div. 1 + Div. 2, Combined) B. Batch Sort 暴力枚举,水 1.题意:n*m的数组, ...
- word2013删除下载的模板
word2013删除下载的模板 删除步骤: 1)关闭相关的word文档. 2)按照以下的路径找到相应的位置:"%系统根目录%\Users\Administrator\AppData\Roam ...
- [转]as3中的SharedObject的保存路径
SharedObject的保存路径 Windows XP 网络访问: C:\Documents and Settings\[你的用户名]\Application Data\Macromedia\Fla ...
- 扫描内网活跃的ip
网段内活跃的ip:nmap -sP 10.10.30.0/24|grep for|awk '{print $5}'
- Java 中多条件排序
Collections.sort(ghEntityList, new Comparator<GongHuiEntity>() { @Override public int compare( ...
- union
union是C++中一个类,平时自己用的比较少,了解了一些特性后觉得在内存要求比较高的地方还是大有可为,总结一下. C++中的struct和union内部都可以定义 数据 和 函数, 两个跟 clas ...
- 使用XStream解析MXL文件用到的jar包---xpp3_min-1.1.3.4.O.jar和xstream-1.3.1.jar
使用XStream解析MXL文件用到的jar包---xpp3_min-1.1.3.4.O.jar和xstream-1.3.1.jar
- 引用dll动态库,动态库中弹出对话框输入,将输入参数,作为变量继续调用。
在做支付项目时,引用动态库,动态库弹出支付宝或者微信的支付码,继而接收.最终将结果返回给调用动态库方法. 首先,动态库接收的是一个string 类型的xml,如 public string Pay(s ...