Redy词法识别--整数与浮点数的合并

返回文档首页


(一)简介

代码下载: git clone git://git.code.sf.net/p/redy/code redy-code


这一章内容有:

  1. 整数,长整数,浮点数状态机的合并

(二)整数,浮点数的合并

(1)整数与浮点数的状态机

  在整个Redy词言里面,主要的词文有:变量(包括关键字)、字符串、运算符、浮点数,整数,在这么几个里面,整数与浮点数的合并最难,其它的词文合并在一起识别都非常的简单,所以这里单独的把整数与浮点数合并提取出来,把他们合并成一个大的状态机后,再用这个大的状态机与其它词文的状态机进行合并。

  在合并之前,我们先看一看整数与浮点数的状态机:

整数状态机:

浮点数的状态机:



  要合并两台状态机并不是一件容易的事情,整数的有10个状态,11种输入类型,浮点数有7个状态,5种输入类型,合并起来还是很吃力,不管怎么困难,我们都要合并。下面我们按照的们前面的讲的步骤方法一步一步来。

(2)输入类型分析:

a)对于整数状态机来说,输入11种,前面我们整数识别这一章讲到过,分为:

    1. 数字0   (D0)
    2. 数字1   (D1)
    3. 数字2到7 (D2_7)
    4. 数字8到9  (D8_9)
    5. 字母a和A  (S_a)
    6. 字母B和b (S_b)
    7. 字母c到f和C到F (S_c_f)
    8. 长整数标志符l与L  (S_l)
    9. 八进制前缀o和O (S_o)
    10. 十六进制前缀x和X (S_x)
    11. 除以上字符以外的类型 (other)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值