C版程序语法 (消除左递归)

C程序语法(无左递归)
<程序> —〉 <外部声明> | <函数定义>
<外部声明> —〉<头文件> | <变量> | <结构体> 
<头文件> —〉 #include<文件名>
<文件名> —〉 stdio.h丨stdlib.h丨string.h
<结构体> —〉 <结构体声明〉|<变量>
<结构体声明> —〉 struct<标识符>
<函数定义> —〉 <类型说明><标识符><参数列表><复合语句>
<参数列表〉 —〉<类型说明><变量名>
<复合语句> —〉<变量>|<语句>|<复合语句>|&
<语句> —〉<表达式语句〉|<选择语句>|<循环语句>|<跳跃语句>|<语句>|&
<表达式语句> —〉 <赋值表达式>|<关系表达式>|<逻辑表达式>|<表达式语句>|&
<赋值表达式> —〉 =A/A=
A —> &|+|-
<关系表达式> —> 〉| < | 〉=| <= 
<逻辑表达式> —〉 + | - | * | / 
<选择语句> —〉 if else语句|switch语句|<选择语句>|& 
<循环语句> —〉 for语句|while语句|do while语句|<循环语句>|& 
<跳跃语句> —> return语句|break语句|continue语句
<变量> —> <类型>丨<标识符>丨<变量值>
<类型说明> —> int丨char丨double丨float丨long 
<变量值> —> <字母>丨〈数字〉
<标识符> 〈==〉 S
S —> AS1
S1 —> S1S2
S2 —> A|B|&
A —> a|b|c|……y|z
B —> 0|1|2|3|4|5|6|7|8|9
<字母> —> a|b|c|……y|z
<数字> 〈==〉 S
S —> AS1
S1 —> S1AS2
S2 —> &|0
A —> 1|2|3|4|5|6|7|8|9

 

转载于:https://www.cnblogs.com/YY0302/p/6144284.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值