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

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

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

类型标识符 → 空类型|字符型|整型|浮点型

声明部分语句 → 指针 直接声明|直接声明

指针 → * |* 指针

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

标识符列表 → 标识符 | 标识符列表,标识符

标识符 → 下划线 标识符|字母 标识符|数字|字母|下划线

常数表达式 → 条件表达式

参数列表 → 参数声明 | 参数列表 ,参数声明

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

语句列表 → 语句 | 语句列表 语句

语句 → 复合语句 | 表达式语句 | 选择语句 | 循环语句

复合语句 → { } | { 语句列表 } | { 声明列表 语句列表 }

声明列表 → 声明 | 声明列表 声明

声明 → 初始化声明 | 初始化声明列表 ,初始化声明

初始化声明 → 声明 | 声明=初始化程序

初始化程序 → 表达式 | {初始化程序列表} | {初始化程序列表 , }

初始化程序列表 → 初始化程序 | 初始化程序列表 , 初始化程序

表达式语句  → 表达式;

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

赋值表达式 → 条件表达式| 一元表达式 赋值操作符 赋值表达式

条件表达式 → 逻辑‘或’表达式 | 逻辑‘或’表达式 ? 表达式: 条件表达式

逻辑‘或’表达式 → 逻辑‘与’表达式 | 逻辑‘或’表达式 ‘或’运算 逻辑‘与’表达式

逻辑‘与’表达式 → 逻辑‘或’表达式 | 逻辑‘与’表达式 ‘与’运算 逻辑‘或’表达式

一元表达式 → 加一运算 一元表达式 | 减一运算 一元表达式|一元运算符 强制转换表达式

一元运算符 → & | * | + | - | !

强制转换表达式 → 一元表达式 | (类型名称)强制转换表达式

赋值运算符 → = | 乘法赋值 | 除法赋值 | 求余赋值 | 加法赋值 | 减法赋值

基本表达式 → 标识符 | 常量 | 字符串 | (表达式)

选择语句  → IF(表达式)语句 |  IF(表达式)语句   ELSE 语句

循环语句  → WHILE(表达式)语句 |  FOR(表达式语句;表达式语句)语句 |  FOR(表达式语句;表达式语句;表达式)语句

加法表达式 → 乘法表达式 | 加法表达式 + 乘法表达式 | 加法表达式 - 乘法表达式

乘法表达式 → 强制转换表达式 | 乘法表达式 * 强制转换表达式 | 乘法表达式 / 强制转换表达式 | 乘法表达式 % 强制转换表达式

简化C语言文法的更多相关文章

  1. C语言文法

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

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

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

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

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

  4. 我的mini_c语言文法设计

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

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

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

  6. 简单的C语言文法

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

  7. 实验二 c语言文法

    <程序>-><声明>|<程序><函数> <函数>-><修饰符><标识符><形式参数>< ...

  8. c语言文法简化版文法

    <源程序>→<外部声明>|<外部声明><函数体> <外部申明>→<头文件><函数声明>|其他声明 <函数体&g ...

  9. 简化版c语言文法

    <程序> → <外部声明> | <程序的外部声明> <标识符类型> → <无类型> | <字符> | <整型> | ...

随机推荐

  1. canvas画布属性globalAlpha 和 createRadialGradient函数出现的设置问题

    今天用canvas做了一个页面特效,呼呼,在做的过程中发现createRadialGradient 和 globalAlpha这2个属性一起使用导入不能实现透明度问题,首先把createRadialG ...

  2. python中列表,元组,字符串互相转换

    列表,元组和字符串python中有三个内建函数:,他们之间的互相转换使用三个函数,str(),tuple()和list(),具体示例如下所示 >>> s = "xxxxx& ...

  3. 【BZOJ2157】旅游 LCT

    模板T,SB的DMoon..其实样例也是中国好样例...一开始不会复制,yangyang:找到“sample input”按住shift,按page down.... #include <ios ...

  4. java单例模式的几种写法比较

    概念: Java中单例模式是一种常见的设计模式,单例模式的写法有好几种,这里主要介绍三种:懒汉式单例.饿汉式单例.登记式单例. 单例模式有以下特点: 1.单例类只能有一个实例. 2.单例类必须自己创建 ...

  5. About_PHP_函数

    关于验证码的完善: //生成干扰线 $posLineX1 = rand(12,50); $posLineX2 = rand(50,110); $posX = rand(10,50); for($i=0 ...

  6. 免费馅饼——G

    G. 免费馅饼 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅饼如果 ...

  7. Daikon Forge GUI Library(dfgui)之Event Binding

    点击按钮并弹出对话框,就用下面的大问题按钮吧 1,选中按钮,Component/Daikon Forge/Data Binding/Event Binding 2,UI上创建DfPanel,并将其Be ...

  8. java 启动 shell脚本

    run.sh p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #000000 ...

  9. Windows 10 Build 14997中Edge浏览器已默认阻止Flash运行

    在上周末偷跑的 Windows 10 Build 14997 向我们传递了很多信息,新增了蓝光过滤器等功能,并有望装备在即将到来的 Creators Update 中.经过深入发掘,外媒发现新版系统中 ...

  10. Canvas小游戏里,删除过期或者死亡元素技巧

    在许多canvas游戏,canvas效果中,经常会有过期的元素需要删除 例如现在需要制作一个笨鸟先飞(flappy bird)小游戏,游戏中障碍物(且称为柱子),此时会有一个全局变量保存所有柱子的实例 ...