我試圖復活一個老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