Desafortunadamente, no hay una plantilla de elementos incorporada para los archivos .fsl, porque FsLex es parte de PowerPack (por lo que Visual Studio no puede esperar que se instale). ¡Definitivamente sería útil tener alguna plantilla que pudiera instalarse con PowerPack!
De todos modos, si está buscando un proyecto de ejemplo que use FsLex (y tenga archivos .fsl como parte del proyecto), entonces puede echar un vistazo al código fuente F # (distribuido con Visual Studio 2008 MSI/Paquete ZIP). El proyecto que contiene .fsl es FSharp.Compiler.fsproj
y en mi instalación, se puede encontrar en C:\Programs Files\FSharp-1.9.9.9\source\fsharp\FSharp.Compiler
. Sorprendentemente, incluye un lector para el lenguaje F # mismo :-).
Para añadir FsLex
elemento para el proyecto MSBUILD (que es también proyecto de Visual Studio), se utiliza la siguiente:
<FsLex Include="..\lex.fsl">
<OtherFlags>--lexlib Internal.Utilities.Text.Lexing</OtherFlags>
<Link>lex.fsl</Link>
</FsLex>
<Compile Include="lex.fs" />
En caso de que también necesitaba FsYacc
, aquí es un ejemplo (también de FSharp.Compiler.fsproj
):
<FsYacc Include="..\pars.fsy">
<Module>Microsoft.FSharp.Compiler.Parser</Module>
<Open>Microsoft.FSharp.Compiler</Open>
<OtherFlags>--internal --lexlib Internal.Utilities.Text.Lexing
--parslib Internal.Utilities.Text.Parsing</OtherFlags>
<Link>pars.fsy</Link>
</FsYacc>
<Compile Include="pars.fs" />
en cuenta que necesita el comando FsYacc
/FsLex
para invocar la herramienta personalizada, sino también el comando Compile
que le dice al compilador que incluya el archivo fs
producido al construir el proyecto.
Hm, ya veo. Tenía la esperanza de que haya una plantilla de elemento para un archivo .fsl con un paso de compilación asociado y tal. Gracias de todos modos, primero obtendré la versión VS2010 y luego veré hasta dónde puedo llegar. – Volker