我需要像下面这样解析简单的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>;
}解析这类语言最合适的工具是什么?
发布于 2011-07-21 20:15:30
Lex/Yacc通常更适合具有复杂语法的完整语言。当您有简短的半简单任务时,使用Parsec的速度会更快。我认为对于您的情况,Lex/Yacc会更合适。
发布于 2011-07-22 02:47:53
您可能会发现带有解析器生成器工具(例如fslex和fsyacc)的FParsec的this bullet-point comparison和“手工编写的”递归下降解析器对于在可用的备选方案中进行选择很有用。
发布于 2013-10-05 10:55:04
解析这类语言最合适的工具是什么?
我会使用活动模式。
https://stackoverflow.com/questions/6775753
复制相似问题