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

Ale*_*gas 8 f# yacc lex fsyacc fslex

我正在学习F#,因为我想写一个词法分析器和解析器.我对这种处理有一点经验,但确实需要正确地学习它和F#.

在学习F#的lexing/parsing功能时,学习lex和yacc是否足够?

或者是否存在一些差异,这意味着lex/yacc的代码将无法与fslex和fsyacc一起使用?

Jul*_*iet 9

我个人发现这些OcamlLexOcamlYacc教程是入门的优秀资源 - 易于理解,你几乎可以逐字翻译FsLex/FsYacc教程中的大部分内容.

  • 请注意,`as`在`fslex`中不起作用,这是一个令人愤怒的限制. (3认同)

Bri*_*ian 5

好吧,使用lex和yacc,你把C/C++代码放在'actions'中,而用fslex和fsyacc你把F#代码放在那里,但我猜你知道吗?

我认为它们基于相同的(已建立的/古老的)标记化和解析技术,因此语法的一般结构/行为应该是相似的,如果这就是你所追求的......