Vol*_*ker 5 f# visual-studio fslex
我已经使用C/lex很长时间了,现在想使用F#/ fslex.我在C#和学习F#的过程中相对富裕.唯一的事情是我看不到任何项目示例或模板,其中fslex正确包含在Visual Studio构建过程中.有谁知道我在哪里找到一个?
很多问候!沃尔克
Tom*_*cek 10
不幸的是,.fsl文件没有内置项模板,因为FsLex是PowerPack的一部分(因此Visual Studio不能指望它会被安装).有一些可以与PowerPack一起安装的模板绝对有用!
无论如何,如果您正在寻找使用FsLex的示例项目(并且将.fsl文件作为项目的一部分),那么您可以查看F#源代码(使用Visual Studio 2008 MSI/ZIP包进行分发) .包含.fsl的项目FSharp.Compiler.fsproj在我的安装中可以找到C:\Programs Files\FSharp-1.9.9.9\source\fsharp\FSharp.Compiler.令人惊讶的是,它包含了F#语言本身的词法分析器:-).
要将FsLex项添加到MSBUILD项目(也是Visual Studio项目),它使用以下内容:
<FsLex Include="..\lex.fsl">
<OtherFlags>--lexlib Internal.Utilities.Text.Lexing</OtherFlags>
<Link>lex.fsl</Link>
</FsLex>
<Compile Include="lex.fs" />
Run Code Online (Sandbox Code Playgroud)
如果你还需要FsYacc,这是一个例子(也来自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" />
Run Code Online (Sandbox Code Playgroud)
请注意,您需要FsYacc/ FsLexcommand来调用自定义工具,还需要Compile命令告诉编译器fs在构建项目时包含生成的文件.
做了一些研究,看起来它们需要分开。我在Chris Smith 的这篇博客文章 ( http://blogs.msdn.com/chrsmith/archive/2008/01/18/fslex-Sample.aspx )中找到了以下内容:
\n\n\n\n\n尽管您可以从 Visual Studio 加载项添加 F# Lex 规范文件,但要运行 fslex,您需要中断到命令行。Fslex.exe 位于 F# 发行版 \xe2\x80\x99s \xe2\x80\x98bin\xe2\x80\x99 目录中。
\n
希望有帮助。
\n| 归档时间: |
|
| 查看次数: |
1812 次 |
| 最近记录: |