lex/yacc和fslex/fsyacc之间有什么区别?

8

我正在学习F#,因为我想编写一个词法分析器和解析器。我有一点点这种处理的经验,但是真正需要学好它以及F#。

当学习F#的词法/语法分析功能时,学习lex和yacc是否足够?

或者说fslex和fsyacc的代码与lex/yacc存在一些差异吗?

2个回答

9
我个人认为这些OcamlLexOcamlYacc教程是非常好的资源,可以帮助你入门——易于理解,而且你可以将这些教程中的大多数内容翻译成FsLex/FsYacc。

3
请注意,asfslex 中无法使用,这是一个令人发指的限制。 - J D

5

使用lex和yacc时,您将C / C ++代码放在“actions”中,而使用fslex和fsyacc时,您将F#代码放在那里,但我想您已经知道这一点了吧?

我认为它们基于相同的(成熟/古老的)标记化和解析技术,因此语法的一般结构/行为应该是类似的,如果这是您想要的话...


我仍在学习F#和lex/yacc。函数式编程的本质似乎使得调试更加困难,因此我不想因为使用错误的语法而遇到奇怪的行为! :-) - Alex Angas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接