【问题标题】:What to choose fsyacc/fslex or FParsec?选择 fsycc/fslex 或 FParsec 什么?
【发布时间】:2011-07-21 12:07:34
【问题描述】:

我需要解析简单的 DSL 语言,如下所示:

import "library.txt"

def <int, bool, byte> main(int param1, bool param2)
{
    var a = f4(param1); // or var d = f1(f2(f3(f4(param1))));
    var b = f3(a);
    var c = f2(b);
    var d = f1(c);

    return <d, param2, b0>;
}

解析这种语言最合适的工具是什么?

【问题讨论】:

标签: f# fsyacc fslex fparsec


【解决方案1】:

Lex/Yacc 通常更适合语法复杂的完整语言。当您有简短的半简单任务时,Parsec 可以更快地使用。我认为对于您的情况,Lex/Yacc 会更合适。

【讨论】:

    【解决方案2】:

    您可能会发现 FParsec 的 this bullet-point comparison 带有解析器生成器工具(例如 fslex 和 fsyacc)和“手写”递归下降解析器,可用于在可用替代方案之间进行选择。

    【讨论】:

      【解决方案3】:

      解析这种语言最合适的工具是什么?

      我会使用主动模式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-23
        • 2012-07-05
        • 1970-01-01
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        相关资源
        最近更新 更多