返回文档首页
(一)简介
代码下载: git clone git://git.code.sf.net/p/redy/code redy-code
这一章的内容有:
- 浮点数的识别
(二)浮点数的识别
(1)简介
在Redy中符点数有下这么几种写法,例如:0.126,.2445,6854.557,155E78,455e47,0.254e78,0.147e-45,0.24E-36,255.E56
在有一些语言中,整数后面跟一个点号,例如 535. 是合法的浮点数,但是在Redy中,这种格式不合法。
(2)BNF文法
floatnumber ::= pointfloat | exponentfloat pointfloat ::= [intpart] "." digit+ exponentfloat ::= (intpart | pointfloat) exponent intpart ::= digit+ exponent ::= ("e" | "E") ["+" | "-"] digit+
(3)状态机
(4)状态矩阵
对于浮点数来说,可以把字符分为这么几类:
- 点号. (point)
- 数字0到9 (digit)
- 字母E和e (S_e)
- 符号+和- (sign)
- 除以上字符的所有字符 (other)
状态矩阵为:
状态\输入
Other
Digit
Point
Sign
Redy词法分析:浮点数识别原理与实现

本文介绍了Redy中浮点数的识别规则,包括合法的浮点数形式、BNF文法、状态机和状态矩阵等。通过状态矩阵和状态链两种方法解释了浮点数的识别过程,详细描述了状态转换和程序实现。

最低0.47元/天 解锁文章
1434

被折叠的 条评论
为什么被折叠?



