<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
    <FsLexToolExe>fslex.dll</FsLexToolExe>
    <FsYaccToolExe>fsyacc.dll</FsYaccToolExe>
  </PropertyGroup>

  <ItemGroup>
    <FsYacc Include="Grammar\Parser.fsy">
      <OtherFlags>--module Parser</OtherFlags>
    </FsYacc>
    <FsLex Include="Grammar\Lexer.fsl">
      <OtherFlags>--module Lexer --unicode</OtherFlags>
    </FsLex>
    <None Include="input.wl">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </None>
    <Compile Include="Ast.fs" />
    <Compile Include="Grammar\Parser.fsi" />
    <Compile Include="Grammar\Parser.fs" />
    <Compile Include="Grammar\Lexer.fs" />
    <Compile Include="Evaluate.fs" />
    <Compile Include="Domains\Domain.fs" />
    <Compile Include="Domains\IntervalDomain.fs" />
    <Compile Include="AbstractState.fs" />
    <Compile Include="Program.fs" />
  </ItemGroup>

  <PropertyGroup>
    <FsYaccOutputFolder>Grammar\</FsYaccOutputFolder>
    <FsLexOutputFolder>Grammar\</FsLexOutputFolder>
  </PropertyGroup>
  
  <ItemGroup>
    <PackageReference Include="FsLexYacc" Version="11.2.0" />
  </ItemGroup>

</Project>
