2

为了在 .NET 中为类似Slim的模板语言(用于 ASP)构建解析器,哪种语言更适合 C# 或 F#?(对我来说,F#似乎更科学,更适合此类任务..)

除了语言选择之外,这两种技术中的哪一种适用于解析语言,其中有 2 个空格递增缩进来描述嵌套/块(例如;Slim、Haml 或 SCSS):递归下降解析递归上升解析

OAN,.NET 中的 RDP 或 RAP 是否有任何 OOTB 支持?还是像 Java 的parboiled这样的通用、优雅的第三方解析库?

4

3 回答 3

6

F# 是编写解析器的绝佳工具。您有多种选择:

于 2013-10-04T15:32:18.287 回答
3

F# 本身是一种对缩进敏感的语言,F# 编译器fslex/fsyacc用于解析。如果您看一下F# 的 parser,缩进敏感性会为这个过程增加额外的复杂性。

如果您对 F# 没有太多经验,那么手动 F# 解析器可能不是一个好主意。我建议使用FParsec。它具有手动解析器的灵活性,并且比fslex/fsyacc.

您可以从本文中找到 FParsec 中基于缩进的语法的两种实现。

于 2013-10-04T16:38:43.977 回答
1

要在 C#.NET 中构建自制解析器,您可能需要查看Microsoft Reactive Extension (Rx) 的Rxx扩展。

此外,请查看此列表以进行创建。C# 中的解析器

于 2013-10-04T18:00:29.263 回答