返回文档首页
(一)简介
代码下载: 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