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: < 语句>
C语言文法翻译的更多相关文章
- 1029 C语言文法翻译(2)
program à external_declaration | program external_declaration 翻译:<源程序>→ <外部声明> | <源程序 ...
- C语言文法
C语言文法 源程序 → 外部声明 | 子程序(外部声明) 外部声明 → 函数定义| 函数声明 函数定义 → 类型标识符(复合句) 标识符类型 → 无类型 | 字符型 | 整型 | 浮点型 整型→ ...
- 1014 C语言文法定义与C程序的推导过程 程序:冒泡算法C程序(语法树)
阅读并理解提供给大家的C语言文法文件. 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 给出一段C程序,画出用上述文法产生这段C程序的完整语法树. 程序:冒泡算法C程序 点此文字查看原图 ...
- 1029 C语言文法定义与C程序的推导过程
1 阅读并理解提供给大家的C语言文法文件. 2 参考该文件写出一个自己好理解版的现实版的完整版的C语言文法. 3 给出一段C程序,写出用上述文法产生这段C程序的推导过程. program → exte ...
- 李洪强漫谈iOS开发[C语言-044]-翻译数字
李洪强漫谈iOS开发[C语言-044]-翻译数字
- SAP 多语言文本翻译
SAP自己的东西都是有语言包的,针对很多语言有是有对应文本的翻译,巴特,比较不是专业的翻译,多以很多时候还是有这样那样的文本描述需要调整. 语言包怎么打就不说了,也不知道,知道也没打过... 标准界面 ...
- 我的mini_c语言文法设计
//这个文件主要是用来描述当前源语言的词法结构和语法结构 //当前语言是c语言的一个子集,因此里面所有的描述大家都很熟悉 //注意,当前语言并不支持预处理,因为c预处理比较复杂,而且楼主能力低下,因此 ...
- Element + Vue I18n动态import加载国际化语言包翻译文件
需求 项目为多页应用,包含产品a.b.c.d.e,每个产品都有自己的翻译文件.一次加载所有翻译文件是极度不合理的.于是考虑动态加载. 实现 参考官方文档:延迟加载翻译 项目结构 │ ├── dist ...
- jquery/vue/react前端多语言国际化翻译方案指南
❝ 本文章共3470字,预计阅读时间5-10分钟. ❞ 国际化-前言 每个开发者能希望编写的程序可以让全世界的用户使用,它要求从产品中抽离所有地域语言,国家/地区和文化相关的元素.换种说法,「应用程序 ...
随机推荐
- 嵌入式C语言自我修养 07:地址对齐那些事儿
7.1 属性声明:aligned GNU C 通过 __atttribute__ 来声明 aligned 和 packed 属性,指定一个变量或类型的对齐方式.这两个属性用来告诉编译器:在给变量分配存 ...
- C语言中的if与else if
今天发现一个比较不理解的代码,是关于else if这个判断语句的代码.代码如下 #include<stdio.h> ; int main(void) { ) { printf(" ...
- java 8 更优雅的判断是否为空
public static int getLength(String text) { // Java 8 return Optional.ofNullable(text).map(String::le ...
- 20155207 《Java程序设计》实验报告二:Java面向对象程序设计
实验要求 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验内容 一.单元测试 1.三种代码 ...
- 20155212 实验三 敏捷开发与XP实践
20155212 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器&g ...
- 20155304田宜楠-第三次作业:虚拟机的安装与Linux学习
安装VirtualBox虚拟机 安装VirtualBox虚拟机 这一步很简单,参考老师给的教程一步步安装,很快就完成了. 2.安装Ubuntu 这一步可是让我吃尽了苦头,我按照老师给的下载地址成功下载 ...
- 20145226 《Java程序设计》第4周学习总结
教材学习内容总结 学习目标 理解封装.继承.多态的关系 理解抽象类与接口的区别 掌握S.O.L.I.D原则 了解模式和设计模式 能正确覆盖方法 了解垃圾回收机制 掌握Object类 掌握enum 教材 ...
- uber司机 如何提高评分、接单率、成单率?
接单率/成单率的解释 接单率计算方法为:成功接单的订单数 除以 系统派单的订单数. 成单率计算方法为:成功完成的订单数 除以 系统派单的订单数. 滴滴快车单单2.5倍,注册地址:http://www. ...
- Ceph学习之路(二)之Ceph的工作原理及流程
一.RADOS的对象寻址 Ceph 存储集群从 Ceph 客户端接收数据——不管是来自 Ceph 块设备. Ceph 对象存储. Ceph 文件系统.还是基于 librados 的自定义实现——并存储 ...
- Python:静态方法、类方法、实例方法
1. 静态方法@staticmethod (1)无需自身对象的self参数和自身类的cls参数,可直接通过 类名.方法名 进行调用 (2)Python中并不是真正意义上的静态方法,因为类定义本身就是个 ...