c语言文法定义

12 篇文章 2 订阅

<程序>→<外部声明>|<程序><外部声明>
<外部声明>→<函数定义>|<声明>
<函数定义>→<类型说明><声明><复合语句>
<类型说明>→void|char|int|float
<声明>→<指针直接说明符>|<直接说明符>
<指针>→’‘|’‘指针
<直接说明符>→<标识符>|<直接说明符‘[’‘]’>|<直接说明符‘[’常数表达式‘]’>|<标识符‘(’参数列表‘)’>|<标识符><‘(’‘)’>>|<直接说明符><’,’><标识符列表>
<标识符列表>→<:标识符>|<标识符列表><’,’><标识符>
<常数表达式>→<条件表达式>
<参数列表>→<参数声明>|<参数列表><’,’><参数声明>
<参数声明>→<声明说明符><标识符>
<复合语句>→<‘{’><‘}’>|<’{’><语句列表><’}’>|<’{’><声明列表><语句列表><’}’>
<声明列表>→<声明>|<声明列表><声明>
<声明>→<初始化声明>|<初始化声明列表><‘,’><初始化声明>
<初始化声明>→<声明>|<声明><‘=’><初始化程序>
<初始化程序>→<赋值表达式>|<‘{’><初始化程序列表><‘}’>|<’{’><初始化程序列表><’,’><’}’>
<初始化程序列表>→<初始化程序>|<初始化程序列表><‘,’><初始化程序>
<语句列表>→<语句>|<语句列表><语句>
<语句>→<复合语句>|<表达式语句>|<选择语句>|<循环语句>|<跳跃语句>
<表达式语句>→<’;’>|<表达式><’;’>
<选择语句>→<:><’(’><表达式><’)’><语句>|<’(’><表达式><’)’><语句><语句>
<循环语句>→<’(’><表达式><’)’><语句>|<’(’><表达式语句><表达式语句><’)’><语句>|<’(’><表达式语句><表达式语句><表达式><’)’><语句>
<跳跃语句>→CONTINUE<’;’>|BREAK<’;’>|RETURN<’;’>|RETURN<表达式><’;’>
<表达式>→<:><赋值表达式>|<表达式><’,’><赋值表达式>
<赋值表达式>→<条件表达式>|<一元表达式><赋值操作符><赋值表达式>
<条件表达式>→<逻辑或表达>|<逻辑或表达><‘?‘><表达式><‘:‘><条件表达式>
<逻辑或表达>→<逻辑与表达>|<逻辑或表达或运算><逻辑表达式>
<逻辑与表达>:<或表达式>|<逻辑表达式>和<运算或表达式>
<或运算表达式>→<异或表达式>|<或运算表达式><‘>|<‘><异或表达式>
<异或表达式>:<与表达式>|<异或表达式><‘^‘><与表达式>
<与表达式>:<相等表达式>|<与表达式><‘&‘><相等表达式>
<相等表达式>:<关系表达式>|<相等表达式等于运算关系表达式>|<相等表达式不等于运算关系表达式>
<关系表达式>:<移位表达式>|<关系表达式><‘<‘><移位表达式>|<关系表达式><‘>‘><移位表达式>|<关系表达式小于等于运算移位表达式>|<关系表达式大于等于运算移位表达式>
<移位表达式>:<加法表达式>|<移位表达式左运算加法表达式>|<移位表达式右运算加法表达式>
<加法表达式:<乘法表达式>|<加法表达式><‘+‘><乘法表达式>|<加法表达式><‘-‘><乘法表达式>
<乘法表达式>:<强制转换表达式>|<乘法表达式><‘‘><强制转换表达式>|<乘法表达式><‘/‘><强制转换表达式>|<乘法表达式><‘%‘><强制转换表达式>
<强制转换表达式>:<一元表达式>|<‘(‘><类型名称><‘)‘><强制转换表达式>
<一元表达式>:<后缀表达式>|<INC运算一元表达式>|<DEC运算一元表达式>|<一元运算符将表达式>|<结构体变量的一元表达式>|<结构体变量的><‘(‘><类型名称><‘)‘>
<后缀表达式>:<基本表达式>|<后缀表达式><‘[‘><表达式><‘]‘>|<后缀表达式><‘(‘><‘)’>|<后缀表达式><‘(‘><参数表达式列表><‘)‘>|<后缀表达式><‘.‘><标识符>|<后缀表达式指针运算标识符>|<后缀表达式INC运算>|<后缀表达式DEC运算>
<基本表达式>→<标识符>|<常量>|<字符串常量>|<‘(‘><表达式><‘)‘>
<参数表达式列表>:<赋值表达式>|<参数表达式列表><‘,‘><赋值表达式>
<一元运算符>:<‘&‘>|<‘
‘>|<‘+‘>|<‘-‘>|<‘~‘>|<‘!‘>
<赋值运算符>→<‘=‘>|<乘法分配>|<DIV分配>|<MOD分配>|<加法分配>|<SUB分配>|<左分配>|<右分配与分配>|<异或分配>|<或分配>
<存储类说明符>→<定义类型>|<外部变量>|<静态>|<自动>|<寄存器>
<结构或联合说明符>:<结构或联合标识符><‘{‘><结构体声明列表><‘}‘>|<结构或联合><‘{’><结构体声明列表><‘}‘>|<结构或联合标识符>
<结构或联合>:<结构体>|<联合>
<结构体声明列表>:<结构体声明>|<结构体列表声明结构体声明>
<结构体声明>:<说明符限定符列表结构说明符><‘;‘>
<说明符说明符限定符列表>→<类型说明符说明符限定符列表>|<类型说明符>|<类型限定符说明符限定符列表>|<类型限定符>
<结构说明符列表>→<结构体声明>|<结构说明符列表><‘,‘><结构体声明>
<结构体声明>→<:><声明>|<‘:‘><常量表达式>|<声明><‘:‘><常量表达式>
<枚举声明>→<枚举><‘{‘><枚举器列表><‘}‘>|<枚举标识符><‘{‘><枚举器列表><‘}‘>|<枚举标识符>
<枚举器列表>→<枚举器>|<枚举器列表><‘,‘>
<枚举器枚举器>→<标识符>|<标识符><‘=‘><常量表达式>
<类型限定符>→<常量>|<易失的>
<类型限定符列表>→<类型限定符>|<类型限定符列表><类型限定符>
<参数类型列表>→<参数列表>|<参数列表><‘,‘><省略符号>
<参数列表>→<:><声明参数>|<参数列表><‘,‘><声明参数>
<抽象说明符>→<指针>|<直接抽象说明符>|<指针直接抽象说明符>
<直接抽象说明符>→<‘(‘><抽象说明符><‘)‘>|<‘[‘><‘]‘>|<‘[‘><常量表达式><‘]‘>|<直接抽象说明符><‘[‘><‘]‘>|<直接抽象说明符><‘[‘><常量表达式><‘]‘>|<‘(‘><‘)‘>|<‘(‘><参数类型列表><‘)‘>|<直接抽象说明符><‘(‘><‘)‘>|<直接抽象说明符><‘(‘><参数类型列表><‘)‘>
<有标号语句>→<标识符><‘:><‘语句>|<CASE常量表达式><‘:‘><语句>|<‘:‘><语句>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值