我已经苦苦挣扎了一段时间,只是让解析器在 F# Visual Studio 2013 中编译和工作。我已经阅读了很多其他看起来很有帮助的帖子,包括堆栈溢出和此页面:https://en.wikibooks .org/wiki/F_Sharp_Programming/Lexing_and_Parsing但没有任何效果。我知道如何编写解析器以及我无法正确编译的所有内容,并且在 Visual Studio 2013 中创建 .fsl 和 .fsp 文件似乎不是很直观。此链接:https ://github.com/fsprojects/FsLexYacc/tree/master/tests/LexAndYaccMiniProject很有帮助,但缺少 Lexer.fs、Parser.fs 和 Parser.fsi。对此的任何帮助将不胜感激。我一直在使用可以安装在包管理器上的 FsLexYacc 包。提前致谢。
编辑:试图通过添加更多信息来改进问题。
1)在 Visual Studio 中,我创建了一个新的控制台项目并导入了 FsLexYacc 包
2)我制作了一个 .fs 文件,其中包含类型定义等,就像上面发布的链接中的示例一样
3)这是我遇到麻烦的地方。我知道在 .fsp 和 .fsl 文件中放入什么,但我不知道如何在 Visual Studio 中创建它们并使用 FsLex 和 FsYacc 工具正确编译它们。上面的 github 链接详细介绍了有关编辑 .fsproj 文件的信息,但我尝试过的任何方法都没有奏效。我假设为了获得创建 .fsp 和 .fsl 文件的工具,这些工具会从普通的 .fs 文件中创建它们,但我不确定,也不知道具体该怎么做,所以澄清会很棒。
要重现我的问题,请按照 wiki 页面上的步骤或将文件从 github 链接复制到新项目,无论如何我都无法编译。
这个问题与我的类似,但我也无法按照以下答案工作:Using FsLex/Yacc in Vs2013