博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
语文文法
阅读量:6280 次
发布时间:2019-06-22

本文共 3044 字,大约阅读时间需要 10 分钟。

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

 

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

 

<函数定义>→<类型 复合语句>

 

<类型>→<无字符>|<字符型>|<整形>|<浮点型>

 

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

 

<指针>→<’*’>|<’*’指针>

 

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

 

<标识符列表>:<标识符>|<标识符列表’,’标识符>

 

<一般表达式>→<条件表达式>

 

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

 

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

 

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

 

<声明列表 >→<声明>|<’{’声明列表 声明’}’>

 

<声明 >→<初始化 声明符>|<初始化 声明符列表’,’ 初始化 声明符’>

 

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

 

<初始化>→<分配表达>|<’{’初始化列表’}’>|<’{’初始化列表’,’’}’>

 

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

 

<声明列表>→<声明>|<声明列表 声明>

 

<声明>→<复合声明>|<表达声明>|<选择声明>|<循环声明>|<跳转声明>

 

<表达声明>→<’;’>|<表达’;’>

 

<选择声明>→<:if’(’表达’)’声明>|<:if’(’表达’)’声明 else 声明>

 

<循环声明>→<while’(’表达’)’声明>|<for’(’表达声明 表达声明’)’声明>|<for’(’表达声明 表达声明 表达’)’声明>

 

<跳转声明>→<continue’,’>|<break’,’>|<return’,’>|<return 表达’,’>

 

<表达>→<:分配表达>|<表达’,’分配表达>

 

<分配表达>→<条件表达>|<一元表达 分配运算符 分配表达>

 

<条件表达>→<逻辑 or 表达>|<逻辑 or 表达’?’>

 

<逻辑 or 表达>→<逻辑 and 表达>|<逻辑 or 表达 OR_OP逻辑 and 表达>

 

<逻辑and 表达>→<:包容 or 表达>|<逻辑 and 表达 AND_OP包容 and 表达>

 

<包容 or 表达>→<独有 or 表达>|<包容 and 表达 ‘|’独有 or 表达>

 

<独有 or 表达>→<: and 表达>|<独有 or 表达 ‘^’ and 表达>

 

<and表达>→<: 平等表达>|< and 表达 ‘&’ 平等表达>

 

<平等表达>→<: 关系表达>|<平等表达 EQ_OP 关系表达>|<平等表达 NE_OP 关系表达>

 

<关系表达>→<: 替换表达>|<关系表达 ‘<’ 替换表达>|<关系表达 ‘>’ 替换表达>|<关系表达 LE_OP 替换表达>|<关系表达 GE_OP 替换表达>

 

<替换表达>→<: 添加表达>|<替换表达 LEFT_OP 添加表达>|<替换表达 RIGHT_OP 添加表达>

 

<添加表达>→<: 乘法表达>|<添加表达 ‘+’ 乘法表达>|<添加表达 ‘-’ 乘法表达>

 

<乘法表达>→<: 计算表达>|<乘法表达 ’*’ 计算表达>|<乘法表达 ’/’ 计算表达>|<乘法表达 ’%’ 计算表达>

 

<计算表达>→<: 一元表达>|<’(’类型名字’)’一元表达>

 

<一元表达>→<:后缀表达>|<INC_OP一元表达 >|<DEC_OP一元表达 >|<一元操作 计算表达 >|<SIZEOF 一元表达>|<SIZEOF’(’类型名字’)’ >

 

<后缀表达>→<:主要表达>|<:主要表达’[’表达’]’>|<:主要表达’(’’)’>|<:主要表达’(’论点表达列表’)’>|<:主要表达’.’IDENTIFIER>|<:主要表达 PTR_OP IDENTIFER>|<:主要表达 INC_OP >|<:主要表达 DEC_OP >

 

<主要表达>→< IDENTIFER >|< CONSTANT >|< STRING_LITERAL >|<’(’表达’)’>

 

<论点表达>→< :赋值表达>|< 赋值表达列表’,’赋值表达 >

 

<一元操作符>→< : ' & ' >|< ' * ' >|< ' + ' >|< ' - ' >|< ' ~ ' >|< ' ! ' >

 

<assignment_operator>→< ' = ' >|< 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’{’ 枚举器列表’}’ >|<’ ENUM IDENTIFIER’{’ 枚举器列表’}’>|<’ ENUM IDENTIFIER>

 

<枚举器列表>→<枚举器>|<’ ENUM IDENTIFIER’{’ 枚举器列表’}’>|<’ 枚举器列表’,’ 枚举器>

 

<枚举器>→<IDENTIFIER>|< IDENTIFIER’=’ 常数表达式>

 

<类型限定符>→<CONST>|< VOLATILE >

 

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

 

<参数类型列表>→<参数列表>|<参数列表 ‘,’ ELLIPSIS >

 

<参数列表>→<:参数宣言>|<参数列表 ‘,’ 参数宣言>

 

<类型名字>→<说明符限定符列表>|<说明符限定符列表  摘要说明符>

 

<摘要说明符>→<指针>|<直接摘要说明符>|<指针 直接摘要说明符>

 

<直接摘要说明符>→<’(’ 摘要说明符’)’>|<'[' ']' >|<'['常数表达式']' >|<直接摘要说明符'[' ']' >|<直接摘要说明符'['常数表达式']' >|<'(' ')' >|<'(' 参数类型列表 ')' >|<直接摘要说明符'(' ')' >|<直接摘要说明符'('参数表达式')' >

 

<标记语句>→< IDENTIFIER ':' 声明>|< CASE 常熟表达式':' 声明 >|<DEFAULT ':' 声明 >

 

转载于:https://www.cnblogs.com/ken520/p/4919995.html

你可能感兴趣的文章
切片键(Shard Keys)
查看>>
淘宝API-类目
查看>>
virtualbox 笔记
查看>>
Git 常用命令
查看>>
驰骋工作流引擎三种项目集成开发模式
查看>>
SUSE11修改主机名方法
查看>>
jdk6.0 + Tomcat6.0的简单jsp,Servlet,javabean的调试
查看>>
Android:apk签名
查看>>
2(2).选择排序_冒泡(双向循环链表)
查看>>
MySQL 索引 BST树、B树、B+树、B*树
查看>>
微信支付
查看>>
CodeBlocks中的OpenGL
查看>>
短址(short URL)
查看>>
第十三章 RememberMe——《跟我学Shiro》
查看>>
mysql 时间函数 时间戳转为日期
查看>>
索引失效 ORA-01502
查看>>
Oracle取月份,不带前面的0
查看>>
Linux Network Device Name issue
查看>>
IP地址的划分实例解答
查看>>
如何查看Linux命令源码
查看>>