程序-> <外部声明><程序><外部声明>

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

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

函数类型-> void|char|int|float

说明符-> <指针 ><直接说明符>|<直接说明符>

指针-> <*>|<*><指针>

直接说明符-> <标识符>|<直接说明符[]>|<直接说明符[常量表达式]>|<标识符(参数序列)>|<标识符()>|<直接说明符,标识符序列>

标识符序列-> <标识符>|<标识符序列><,><标识符>

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

参数序列-> <参数声明>|<参数声明><,><参数声明>

参数声明-> <声明说明符><声明符>

复合语句-> <{}>|<{<陈述序列>}>|<{<声明序列><陈述序列>}>

声明序列-> <声明符>|<声明序列><声明符>

声明符-> <初始化说明符>|<初始化说明符><,><初始化说明符>

初始化说明符-> <说明符>|<说明符><=><初始化程序>

初始化程序-> <赋值表达式>|<{<初始化序列>}>|<{<初始化序列><,>}>

初始化序列-> <初始化程序>|<初始化序列><,><初始化>

陈述序列-> <陈述语句>|<陈述序列><陈述语句>

陈述语句-> <复合语句>|<表达式语句>|<选择语句>|<循环语句>|<转移语句>

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

选择语句-> IF(<表达式>)<陈述语句>|IF(<表达式>)<陈述语句>ELSE<陈述语句>

循环语句->WHILE(<表达式>)<陈述语句>|FOR(<表达式语句><表达式语句>)<陈述语句>|FOR(<表达式语句><表达式语句><陈述语句>)<陈述语句>

转移语句->CONTINUE;| BREAK; | RETURN; | RETURN <表达式>;

表达式-><任务表达式>|<表达式>;<任务表达式>

任务表达式-><条件表达式>|<一元运算符><赋值运算符><任务表达式>

条件表达式-><OR表达式>|<OR表达式>?<表达式>:<条件表达式>

OR表达式-><AND表达式>|<OR表达式>OR_OP<AND表达式>

AND表达式-><包含OR表达式>|<AND表达式>AND_OP<包含OR表达式>

包含OR表达式-><单独OR表达式>|<包含OR表达式>'|'<单独OR表达式>

单独OR表达式-><AND表达式>|<单独OR表达式>'^'<AND 表达式>

AND 表达式-><赋值表达式>|<AND表达式>'&'<赋值表达式>

赋值表达式-><关系式>|<赋值表达式>EQ_OP<关系式>|<赋值表达式>NE_OP<关系式>

关系式-><位移表达式>|<关系式>'<'<位移表达式>|<关系式>'>'<位移表达式>|

    <关系式>LE_OP<位移表达式>|<关系式>GE_OP<位移表达式>

位移表达式-><相加表达式>|<位移表达式>LEFT_OP<相加表达式>|

      <位移表达式>RIGHT_OP<相加表达式>

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

乘法表达式-><计算表达式>|<乘法表达式>'*'<计算表达式>|

      <乘法表达式>'/'<计算表达式>|<乘法表达式>'%'<计算表达式>

计算表达式-><一元表达式>|(<类型名>)<计算表达式>

一元表达式-><后缀表达式>

1014_C语言的文法的更多相关文章

  1. C语言简单文法

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

  2. c语言简易文法

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

  3. C语言简易文法(无左递归)

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

  4. C语言新文法

    程序->外部声明 | 程序 外部声明 程序->外部声明A' A'->外部声明A'|ε 外部声明->修饰符 变量名 形参 修饰符->void | int | char | ...

  5. C语言的文法分析

    <程序>  ->   <声明> | <程序> <函数> <声明>  ->   #include<stdio.h>|# ...

  6. 关于c语言的文法分析问题

    <程序>  ->   <声明> | <程序> <函数> <声明>  ->   #include<stdio.h>|# ...

  7. 北航 编译实践 PL/0文法

    编译实践-PL\0编译系统实现 姓名:   专业: 计算机科学与技术 学院: 软件学院 提交时间: 2013年12月25日 北京航空航天大学·软件学院 编译实践-PL\0编译系统实现 实验要求 以个人 ...

  8. C++写一个简单的解析器(分析C语言)

    该方案实现了一个分析C语言的词法分析+解析. 注意: 1.简单语法,部分秕.它可以在本文法的基础上进行扩展,此过程使用自上而下LL(1)语法. 2.自己主动能达到求First 集和 Follow 集. ...

  9. Kotlin 语言下设计模式的不同实现

    偶然在 Github 上看到 dbacinski 写的 Kotlin 语言下设计模式的不同实现(这里的不同是相对于 Java 语言的),有些实现非常好,但是有些实现的例子不是很赞同.所以自己写了 Ko ...

随机推荐

  1. 常见HTTP状态码(200、301、302、500等) 释义

    对网站管理工作者来说有个词不陌生,HTTP状态码,它是用以表示网页服务器HTTP响应状态的3位数字代码.状态码的第一个数字代表了响应的五种状态之一. 1XX系列:指定客户端应相应的某些动作,代表请求已 ...

  2. test20181019 B君的第二题

    题意 分析 快速子集和变换以及快速超集和变换的裸题. 用\(f(s)\)表示集合s的方案数,初始化为输入中s出现的次数. 做一遍快速子集和变换,此时f(s)表示s及其子集在输入中出现的次数. 对所有f ...

  3. [CLPR]BP神经网络的C++实现

    文章翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi ...

  4. bzoj3191卡牌游戏

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3191 原本想模拟过程,从t个人推到1个人: 但是怎么转移呢?想状压,可是50位压不到角标里. ...

  5. 【linux】centos6.5上bugzilla的搭建

    1.安装依赖包 CentOS 6.5默认安装了apche,perl ,需要安装httpd mod_ssl mysql-server mysql php-mysql gcc perl* mod_perl ...

  6. PDB文件:每个开发人员都必须知道的 PDB Files

    PDB文件:每个开发人员都必须知道的   PDB Files: What Every Developer Must Knowhttp://www.wintellect.com/CS/blogs/jro ...

  7. bzoj1067 降雨量

    Description 我们常常会说这样的话:“X年是自Y年以来降雨量最多的”.它的含义是X年的降雨量不超过Y年,且对于任意 Y<Z<X,Z年的降雨量严格小于X年.例如2002,2003, ...

  8. 访问https请求出现警告,去掉警告的方法

    在顶部引多一个包即可 from requests.packages.urllib3.exceptions import InsecureRequestWarning,InsecurePlatformW ...

  9. Java 理解泛型的基本含义

    Java 泛型 Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型. 泛型的本质是参数化类型,也就是说所 ...

  10. Linux操作系统-基本命令(二)

    Linux操作系统基本命令 文件操作类命令 – ln命令 另外一种链接方式称为符号链接(软链接),是指一个文件指向另外一个文件的文件名.软链接类似于Windows系统中的快捷方式.软链接由ln -s命 ...