我的prebuild event命令引用一个库(来自Nuget)不编译该程序

时间:2018-04-13 18:37:23

标签: f# fsyacc fslex

我一直在学习F#,我想尝试创建一个小的SQL解析器。我发现a tutorial解释了如何通过FsLex和FsYacc这样做,但是,该网站没有提供任何下载链接。在Visual Studio下,通过nuget,我遇到this,然后我下载。它看起来与网站提供的解释非常相似,所以我认为这与问题无关。

我距离它还不远,这是我的两个小文件:

Sql.fs:

while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $name[]=$row['name'];
}

SqlParser.fsp:

module Sql

type value = 
    | Int of int
    | Float of float
    | String of string

type dir = Asc | Desc
type op = Eq | Gt | Ge | Lt | Le

type order = string * dir

type where = 
    | Cond of (value * op * value)
    | And of where * where
    | Or of where * where

type joinType = Inner | Left | Right

type join = string * joinType * where option

type sqlStatement = 
    {
        Table : string;
        Columns : string list;
        Joins : join list;
        Where : where option;
        OrderBy : order list
    }

以下是我项目的文件/参考文献列表:

module SqlParser

%{
open Sql
%}

%token <string> ID
%token <int> INT
%token <float> FLOAT

%token AND OR
%token COMMA
%token EQ LT LE GT GE
%token JOIN INNER LEFT RIGHT ON
%token SELECT FROM WHERE ORDER BY
%token ASC DESC
%token EOF

// start
%start start
%type <string> start

%%

start:
    |       { "Nothing to see here" }

%%

这是prebuild命令,它应该与“SqlParser.fsp”文件交互:

 References:
    - FSharp.Core
    - FsLexYacc.Runtime
    - mscorlib
    - System
    - System.Core
    - System.Numerics
    - System.ValueTuple
 AssemblyInfo.fs
 Sql.fs
 SqlParser.fsp
 App.config
 packages.config

当我编译时,使用此命令,Visual Studio告诉我“生成失败”,但没有错误,这些列表是空的。当我删除此命令时,项目“正常”编译,实际上文件“SqlParser.fsp”应该生成其他文件(因此预建命令)。

  • 我错过了什么吗?
  • FsLexYacc库是否过时了?
  • 教程不正确吗?
  • ...

提前谢谢。

0 个答案:

没有答案