我试图复活一个老F#解析器项目我已经工作在VS 2008与2013年VS工作它使用FsLexYacc。使用FsLex/yacc和Vs2013
我把它建设好通过使用预生成步骤为这样的:
fslex --unicode "$(ProjectDir)XpathLexer.fsl"
fsyacc --module XpathParser "$(ProjectDir)XpathParser.fsy"
但这是不太理想的,因为它总是执行的输入是否已经改变。
然后我尝试了用旧的MSBuild操作:
<FsYacc Include="XpathParser.fsy">
<FsLex Include="XpathLexer.fsl">
但这些似乎在构建过程中被完全忽略。是对的吗?以某种方式删除这些构建任务?
我随后发现了一些东西记录下VS C++,我认为可能的工作:
<CustomBuild Include="XpathParser.fsy">
<Message>Calling FsYacc</Message>
<Command>fsyacc --module XpathParser "$(ProjectDir)XpathParser.fsy"</Command>
<Outputs>$(ProjectDir)XpathParser.fs</Outputs>
</CustomBuild>
和
<PropertyGroup>
<CustomBuildBeforeTargets>CoreCompile</CustomBuildBeforeTargets>
</PropertyGroup>
(我检查了Microsoft.Fsharp.Targets文件拿出“ CoreCompile”的目标。)
唉,还是没有雪茄。
是任何人都能够照耀它是否确实能够正确地集成fslex/YACC成VS 2013的解决方案一盏灯,如果是的话,怎么样?
谢谢你的麦克风。唉,我仍然无法工作。构建完全忽略了lex/yacc输入。我试着直接引用FSharp.Powerpack.Build.Tasks.dll,但仍然没有雪茄。 – stephensong
这似乎符合我的经验 – nicolas
@stephensong你没有任何错误? – nicolas