首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在哪里处理浮点数的解析-扫描器还是解析器?

在哪里处理浮点数的解析-扫描器还是解析器?
EN

Stack Overflow用户
提问于 2012-01-11 15:23:04
回答 1查看 891关注 0票数 3

我正在设计一种特定于领域的小型语言。作为扫描器/解析器生成器,我使用Flex/Bisonc++。现在,生成的DSL编译器前端能够解析八进制、十进制和十六进制数字。唯一剩下的就是对C/C++中表示的浮点数(FPN)的支持。

http://rosettacode.org/wiki/Literals/Floating_point#C上有一个浮点数语法的RegExp

a)我知道解析可以在扫描器或/和解析器中完成,但我不知道在性能和效率方面哪一个是最好的。

b)另一个约束是,我希望避免多次接触输入的每个字符,即我希望通过在解析过程中实现即时转换来避免使用STL或其他字符串到浮点数的转换函数。这有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-11 15:59:39

让扫描器(flex代码)识别和转换浮点数是完全可行的,而且通常也是合理的,就像它应该识别和转换整数一样。如果您在语法(bison代码)而不是扫描器中编写了整数识别代码,那么您可能也在那里编写了浮点识别,但这不是通常的方式。您可能需要为令牌类型使用更复杂的(读作“复杂”)数据类型;请阅读%union

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8815587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档