gpt4 book ai didi

F# fslex fsyacc 成熟的生产代码?

转载 作者:行者123 更新时间:2023-12-04 02:48:55 25 4
gpt4 key购买 nike

在阅读了一个 2 年历史的网页后,与他们的 OCamel 同行相比,它确实撕裂了 fslex/fsyacc、错误、缓慢、愚蠢等,我想知道什么是词法解析需求的最佳选择?

我以前用 C# 绑定(bind)使用过 ANTLR,但目前正在学习 F#,当我看到它带有解析器生成器时很兴奋。由于 F# 现已正式发布,微软似乎真正致力于支持和开发。你会说 fslex 和 fsyacc 对于生产代码来说值得吗?

最佳答案

F# 编译器使用 Fslex 和 fsyacc,因此它们可以工作。几年前我用过它们,它足以满足我的需求。

然而,我的经验是 lex/yacc 在 F# 中的成熟度远低于在 OCaml 中的成熟度。 OCaml 社区中的许多人已经使用它们多年,包括许多学生(似乎用它们编写一个小型解释器/编译器是一种常见的练习)。我认为没有多少 F# 开发人员使用过它们,而且我认为 F# 团队最近没有在这些工具上做很多工作(例如,VS 集成不是优先事项)。如果你不是很紧急,Fslex 和 fsyacc 对你来说就足够了。

一个解决方案可能是调整 Menhir(具有几个不错功能的 camlyacc 替代品)以将其与 F# 一起使用。我不知道会做多少工作。

就个人而言,我现在使用 FParsec每次我需要编写一个解析器。使用起来完全不同,但它也更加灵活,并且可以生成良好的解析错误消息。我对它非常满意,当我有问题时,它的作者总是非常乐于助人。

关于F# fslex fsyacc 成熟的生产代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5393901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com