Próbuję wskrzesić stary projekt parsera f #, w którym pracowałem vs 2008, aby pracować z vs 2013. Używa FsLexYacc.Używanie FsLex/Yacc w Vs2013
mam to budowę ok stosując krok prebuild jako sposób:
fslex --unicode "$(ProjectDir)XpathLexer.fsl"
fsyacc --module XpathParser "$(ProjectDir)XpathParser.fsy"
Ale to jest mniej niż idealna, jak to zawsze wykonuje czy wejścia uległy zmianie.
Następnie próbowałem tylko przy użyciu starych działania MSBuild:
<FsYacc Include="XpathParser.fsy">
<FsLex Include="XpathLexer.fsl">
ale to wydaje się być całkowicie ignorowane podczas procesu kompilacji. Czy to prawda? Czy te zadania budowania zostały jakoś usunięte?
I potem znaleźć jakiś materiał udokumentowana zgodnie vs C++, że pomyślałem, że może pracować:
<CustomBuild Include="XpathParser.fsy">
<Message>Calling FsYacc</Message>
<Command>fsyacc --module XpathParser "$(ProjectDir)XpathParser.fsy"</Command>
<Outputs>$(ProjectDir)XpathParser.fs</Outputs>
</CustomBuild>
i
<PropertyGroup>
<CustomBuildBeforeTargets>CoreCompile</CustomBuildBeforeTargets>
</PropertyGroup>
(I sprawdzony plik Microsoft.Fsharp.Targets aby wymyślić " CoreCompile "target.)
Niestety, wciąż nie ma cygara.
Czy ktoś jest w stanie rzucić światło na to, czy rzeczywiście można właściwie włączyć fslex/yacc do rozwiązania vs 2013, a jeśli tak, to w jaki sposób?
Dzięki za ten mikrofon. Niestety, nadal nie mogłem go uruchomić. Kompilacja całkowicie ignoruje dane wejściowe lex/yacc. Próbowałem odnieść się bezpośrednio do FSharp.Powerpack.Build.Tasks.dll, ale nadal nie ma cygara. – stephensong
który wydaje się zgodny z moim doświadczeniem – nicolas
@stephensong nie masz żadnych błędów? – nicolas