我已将此程序的大部分内容删除,但我正在尝试弄清楚如何为此程序完成语法。该程序使用词法分析器和解析器将单词转换为数字(IE。"百万" - > 100000) 我的一切工作都达到了数千人。
这是解析器的语法
#lang scheme
(S [(zero) $1]
[(L) $1])
(zero [(ZERO) 0])
**(L [(T) $1]
[(T D) (expt (thousands-number $1) 10)]
[(T D L) $1])**
(T [(H) $1]
[(A HUNDRED H) (+ (* $1 100) $3)]
[(A HUNDRED) (* $1 100)])
(H [(B) $1]
[(C) $1]
[(C B) (+ $1 $2)])
(A [(UNDERTEN) (undertwenty-number $1)])
(B [(UNDERTWENTY) (undertwenty-number $1)]
[(A) $1])
(C [(TENS) (tens-number $1)])
(D [(THOUSANDS) (thousands-number $1)])
)
)
)
我试图使用指数10来获得数字。 其他一切工作都低于1000."八千"只返回8.
答案 0 :(得分:0)
以下是更新后的代码和已修复
setImmediate(true)
现在可以使用高达10亿的数字。