stehau
This commit is contained in:
17
W2/calculator/AbSyn.fs
Normal file
17
W2/calculator/AbSyn.fs
Normal file
@ -0,0 +1,17 @@
|
||||
module AbSyn
|
||||
|
||||
(* These are the same types as in last week's assignment. *)
|
||||
|
||||
type VALUE = INT of int
|
||||
|
||||
type BINOP = BPLUS | BMINUS | BTIMES
|
||||
|
||||
type RANGEOP = RSUM | RPROD | RMAX | RARGMAX
|
||||
|
||||
type EXP =
|
||||
| CONSTANT of VALUE
|
||||
| VARIABLE of string
|
||||
| OPERATE of BINOP * EXP * EXP
|
||||
| LET_IN of string * EXP * EXP
|
||||
| OVER of RANGEOP * string * EXP * EXP * EXP
|
||||
|
25
W2/calculator/Calculator.fsproj
Normal file
25
W2/calculator/Calculator.fsproj
Normal file
@ -0,0 +1,25 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="FsLexYacc" Version="10.2.0" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<FsYacc Include="Parser.fsp">
|
||||
<OtherFlags>-v --module Parser</OtherFlags>
|
||||
</FsYacc>
|
||||
<FsLex Include="Lexer.fsl">
|
||||
<OtherFlags></OtherFlags>
|
||||
</FsLex>
|
||||
<Compile Include="AbSyn.fs" />
|
||||
<Compile Include="Parser.fs" />
|
||||
<Compile Include="Lexer.fs" />
|
||||
<Compile Include="Calculator.fsx" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
27
W2/calculator/Calculator.fsx
Normal file
27
W2/calculator/Calculator.fsx
Normal file
@ -0,0 +1,27 @@
|
||||
open System.Text
|
||||
open FSharp.Text.Lexing
|
||||
open FSharp.Text.Parsing
|
||||
|
||||
(* Both lex and parse a program. *)
|
||||
let parse (s : string) =
|
||||
Parser.Prog Lexer.Token
|
||||
<| LexBuffer<_>.FromBytes (Encoding.UTF8.GetBytes s)
|
||||
|
||||
(* Continually evaluate user expressions. *)
|
||||
let loop () =
|
||||
let mutable running = true
|
||||
while running do
|
||||
printf "Input an expression: "
|
||||
try
|
||||
let program = System.Console.ReadLine()
|
||||
if program = "exit"
|
||||
then
|
||||
running <- false
|
||||
else
|
||||
printfn "Parse result: %A" (parse program)
|
||||
with
|
||||
| Failure msg -> printfn "%s" msg
|
||||
| :? System.ArgumentNullException ->
|
||||
running <- false
|
||||
|
||||
loop ()
|
122
W2/calculator/Lexer.fs
Normal file
122
W2/calculator/Lexer.fs
Normal file
@ -0,0 +1,122 @@
|
||||
# 1 "Lexer.fsl"
|
||||
|
||||
module Lexer
|
||||
|
||||
open System
|
||||
open FSharp.Text.Lexing
|
||||
open System.Text
|
||||
|
||||
let keyword (s : string) =
|
||||
match s with
|
||||
| "let" -> Parser.LET
|
||||
| "in" -> Parser.IN
|
||||
| "sum" -> Parser.SUM
|
||||
| "prod" -> Parser.PROD
|
||||
| "max" -> Parser.MAX
|
||||
| "argmax" -> Parser.ARGMAX
|
||||
| "to" -> Parser.TO
|
||||
| "of" -> Parser.OF
|
||||
| _ -> Parser.VAR s
|
||||
|
||||
# 21 "Lexer.fs"
|
||||
let trans : uint16[] array =
|
||||
[|
|
||||
(* State 0 *)
|
||||
[|12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 1us; 1us; 12us; 12us; 1us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 1us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 4us; 5us; 9us; 7us; 12us; 8us; 12us; 12us; 2us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 3us; 12us; 12us; 12us; 6us; 12us; 12us; 12us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 12us; 12us; 12us; 12us; 12us; 12us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 10us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 12us; 11us; |];
|
||||
(* State 1 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16us; 16us; 65535us; 65535us; 16us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 2 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 3 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 4 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 5 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 6 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 7 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 8 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 9 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 10 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 65535us; 65535us; 65535us; 65535us; 14us; 65535us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 11 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 12 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 13 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 65535us; 65535us; 65535us; 65535us; 14us; 65535us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 14 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 13us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 15 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 15us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 16 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16us; 16us; 65535us; 65535us; 16us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 16us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
|]
|
||||
let actions : uint16[] = [|65535us; 0us; 1us; 1us; 2us; 3us; 4us; 5us; 6us; 7us; 8us; 9us; 10us; 8us; 65535us; 1us; 0us; |]
|
||||
let _fslex_tables = FSharp.Text.Lexing.AsciiTables.Create(trans,actions)
|
||||
let rec _fslex_dummy () = _fslex_dummy()
|
||||
// Rule Token
|
||||
and Token lexbuf =
|
||||
match _fslex_tables.Interpret(0,lexbuf) with
|
||||
| 0 -> (
|
||||
# 24 "Lexer.fsl"
|
||||
Token lexbuf
|
||||
# 68 "Lexer.fs"
|
||||
)
|
||||
| 1 -> (
|
||||
# 28 "Lexer.fsl"
|
||||
Parser.INT (int (Encoding.UTF8.GetString lexbuf.Lexeme))
|
||||
# 73 "Lexer.fs"
|
||||
)
|
||||
| 2 -> (
|
||||
# 31 "Lexer.fsl"
|
||||
Parser.LPAR
|
||||
# 78 "Lexer.fs"
|
||||
)
|
||||
| 3 -> (
|
||||
# 32 "Lexer.fsl"
|
||||
Parser.RPAR
|
||||
# 83 "Lexer.fs"
|
||||
)
|
||||
| 4 -> (
|
||||
# 33 "Lexer.fsl"
|
||||
Parser.EQ
|
||||
# 88 "Lexer.fs"
|
||||
)
|
||||
| 5 -> (
|
||||
# 34 "Lexer.fsl"
|
||||
Parser.PLUS
|
||||
# 93 "Lexer.fs"
|
||||
)
|
||||
| 6 -> (
|
||||
# 35 "Lexer.fsl"
|
||||
Parser.MINUS
|
||||
# 98 "Lexer.fs"
|
||||
)
|
||||
| 7 -> (
|
||||
# 36 "Lexer.fsl"
|
||||
Parser.TIMES
|
||||
# 103 "Lexer.fs"
|
||||
)
|
||||
| 8 -> (
|
||||
# 39 "Lexer.fsl"
|
||||
keyword (Encoding.UTF8.GetString lexbuf.Lexeme)
|
||||
# 108 "Lexer.fs"
|
||||
)
|
||||
| 9 -> (
|
||||
# 54 "Lexer.fsl"
|
||||
Parser.EOF
|
||||
# 113 "Lexer.fs"
|
||||
)
|
||||
| 10 -> (
|
||||
# 57 "Lexer.fsl"
|
||||
failwith "lexer error"
|
||||
# 118 "Lexer.fs"
|
||||
)
|
||||
| _ -> failwith "Token"
|
||||
|
||||
# 3000000 "Lexer.fs"
|
57
W2/calculator/Lexer.fsl
Normal file
57
W2/calculator/Lexer.fsl
Normal file
@ -0,0 +1,57 @@
|
||||
{
|
||||
module Lexer
|
||||
|
||||
open System
|
||||
open FSharp.Text.Lexing
|
||||
open System.Text
|
||||
|
||||
let keyword (s : string) =
|
||||
match s with
|
||||
| "let" -> Parser.LET
|
||||
| "in" -> Parser.IN
|
||||
| "sum" -> Parser.SUM
|
||||
| "prod" -> Parser.PROD
|
||||
| "max" -> Parser.MAX
|
||||
| "argmax" -> Parser.ARGMAX
|
||||
| "to" -> Parser.TO
|
||||
| "of" -> Parser.OF
|
||||
| _ -> Parser.VAR s
|
||||
}
|
||||
|
||||
rule Token = parse
|
||||
(* Skip whitespace. *)
|
||||
[' ' '\t' '\r' '\n' ]+
|
||||
{ Token lexbuf }
|
||||
|
||||
(* Integers. *)
|
||||
| '0' | ['1'-'9']['0'-'9']*
|
||||
{ Parser.INT (int (Encoding.UTF8.GetString lexbuf.Lexeme)) }
|
||||
|
||||
(* Symbols *)
|
||||
| '(' { Parser.LPAR }
|
||||
| ')' { Parser.RPAR }
|
||||
| '=' { Parser.EQ }
|
||||
| '+' { Parser.PLUS }
|
||||
| '-' { Parser.MINUS }
|
||||
| '*' { Parser.TIMES }
|
||||
|
||||
| ['a'-'z' 'A'-'Z'] (['a'-'z' 'A'-'Z' '_']|'_'['0'-'9'])*
|
||||
{ keyword (Encoding.UTF8.GetString lexbuf.Lexeme) }
|
||||
|
||||
(* FIXME: You should implement lexing for:
|
||||
(1) Variable names: may contain letters, digits and underscores,
|
||||
but it must start with one (or several) letters,
|
||||
and a digit must be preceeded by an underscore.
|
||||
(2) Keywords: 'let', 'in', 'sum', ...
|
||||
(3) Symbols: '=', '+', ...
|
||||
For (1) and (2), please change the regular expression above
|
||||
to be consistent with the rule defining variable names,
|
||||
and implement the keywords function.
|
||||
For (3), add the relevant regular expressions under 'Symbols'
|
||||
*)
|
||||
|
||||
(* Special end of file symbol. *)
|
||||
| eof { Parser.EOF }
|
||||
|
||||
(* We don't understand anything else. *)
|
||||
| _ { failwith "lexer error" }
|
7
W2/calculator/Makefile
Normal file
7
W2/calculator/Makefile
Normal file
@ -0,0 +1,7 @@
|
||||
.PHONY: all clean
|
||||
|
||||
all:
|
||||
dotnet build
|
||||
|
||||
clean:
|
||||
rm -rf bin obj Lexer.fs Parser.fs Parser.fsyacc.output Parser.fsi
|
357
W2/calculator/Parser.fs
Normal file
357
W2/calculator/Parser.fs
Normal file
@ -0,0 +1,357 @@
|
||||
// Implementation file for parser generated by fsyacc
|
||||
module Parser
|
||||
#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type
|
||||
open FSharp.Text.Lexing
|
||||
open FSharp.Text.Parsing.ParseHelpers
|
||||
# 1 "Parser.fsp"
|
||||
|
||||
open FSharp.Text.Parsing
|
||||
|
||||
# 10 "Parser.fs"
|
||||
// This type is the type of tokens accepted by the parser
|
||||
type token =
|
||||
| SUM
|
||||
| PROD
|
||||
| MAX
|
||||
| ARGMAX
|
||||
| PLUS
|
||||
| MINUS
|
||||
| TIMES
|
||||
| LET
|
||||
| IN
|
||||
| TO
|
||||
| OF
|
||||
| EOF
|
||||
| LPAR
|
||||
| RPAR
|
||||
| EQ
|
||||
| VAR of (string)
|
||||
| INT of (int)
|
||||
// This type is used to give symbolic names to token indexes, useful for error messages
|
||||
type tokenId =
|
||||
| TOKEN_SUM
|
||||
| TOKEN_PROD
|
||||
| TOKEN_MAX
|
||||
| TOKEN_ARGMAX
|
||||
| TOKEN_PLUS
|
||||
| TOKEN_MINUS
|
||||
| TOKEN_TIMES
|
||||
| TOKEN_LET
|
||||
| TOKEN_IN
|
||||
| TOKEN_TO
|
||||
| TOKEN_OF
|
||||
| TOKEN_EOF
|
||||
| TOKEN_LPAR
|
||||
| TOKEN_RPAR
|
||||
| TOKEN_EQ
|
||||
| TOKEN_VAR
|
||||
| TOKEN_INT
|
||||
| TOKEN_end_of_input
|
||||
| TOKEN_error
|
||||
// This type is used to give symbolic names to token indexes, useful for error messages
|
||||
type nonTerminalId =
|
||||
| NONTERM__startProg
|
||||
| NONTERM_Prog
|
||||
| NONTERM_Exp
|
||||
|
||||
// This function maps tokens to integer indexes
|
||||
let tagOfToken (t:token) =
|
||||
match t with
|
||||
| SUM -> 0
|
||||
| PROD -> 1
|
||||
| MAX -> 2
|
||||
| ARGMAX -> 3
|
||||
| PLUS -> 4
|
||||
| MINUS -> 5
|
||||
| TIMES -> 6
|
||||
| LET -> 7
|
||||
| IN -> 8
|
||||
| TO -> 9
|
||||
| OF -> 10
|
||||
| EOF -> 11
|
||||
| LPAR -> 12
|
||||
| RPAR -> 13
|
||||
| EQ -> 14
|
||||
| VAR _ -> 15
|
||||
| INT _ -> 16
|
||||
|
||||
// This function maps integer indexes to symbolic token ids
|
||||
let tokenTagToTokenId (tokenIdx:int) =
|
||||
match tokenIdx with
|
||||
| 0 -> TOKEN_SUM
|
||||
| 1 -> TOKEN_PROD
|
||||
| 2 -> TOKEN_MAX
|
||||
| 3 -> TOKEN_ARGMAX
|
||||
| 4 -> TOKEN_PLUS
|
||||
| 5 -> TOKEN_MINUS
|
||||
| 6 -> TOKEN_TIMES
|
||||
| 7 -> TOKEN_LET
|
||||
| 8 -> TOKEN_IN
|
||||
| 9 -> TOKEN_TO
|
||||
| 10 -> TOKEN_OF
|
||||
| 11 -> TOKEN_EOF
|
||||
| 12 -> TOKEN_LPAR
|
||||
| 13 -> TOKEN_RPAR
|
||||
| 14 -> TOKEN_EQ
|
||||
| 15 -> TOKEN_VAR
|
||||
| 16 -> TOKEN_INT
|
||||
| 19 -> TOKEN_end_of_input
|
||||
| 17 -> TOKEN_error
|
||||
| _ -> failwith "tokenTagToTokenId: bad token"
|
||||
|
||||
/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
|
||||
let prodIdxToNonTerminal (prodIdx:int) =
|
||||
match prodIdx with
|
||||
| 0 -> NONTERM__startProg
|
||||
| 1 -> NONTERM_Prog
|
||||
| 2 -> NONTERM_Exp
|
||||
| 3 -> NONTERM_Exp
|
||||
| 4 -> NONTERM_Exp
|
||||
| 5 -> NONTERM_Exp
|
||||
| 6 -> NONTERM_Exp
|
||||
| 7 -> NONTERM_Exp
|
||||
| 8 -> NONTERM_Exp
|
||||
| 9 -> NONTERM_Exp
|
||||
| 10 -> NONTERM_Exp
|
||||
| 11 -> NONTERM_Exp
|
||||
| 12 -> NONTERM_Exp
|
||||
| _ -> failwith "prodIdxToNonTerminal: bad production index"
|
||||
|
||||
let _fsyacc_endOfInputTag = 19
|
||||
let _fsyacc_tagOfErrorTerminal = 17
|
||||
|
||||
// This function gets the name of a token as a string
|
||||
let token_to_string (t:token) =
|
||||
match t with
|
||||
| SUM -> "SUM"
|
||||
| PROD -> "PROD"
|
||||
| MAX -> "MAX"
|
||||
| ARGMAX -> "ARGMAX"
|
||||
| PLUS -> "PLUS"
|
||||
| MINUS -> "MINUS"
|
||||
| TIMES -> "TIMES"
|
||||
| LET -> "LET"
|
||||
| IN -> "IN"
|
||||
| TO -> "TO"
|
||||
| OF -> "OF"
|
||||
| EOF -> "EOF"
|
||||
| LPAR -> "LPAR"
|
||||
| RPAR -> "RPAR"
|
||||
| EQ -> "EQ"
|
||||
| VAR _ -> "VAR"
|
||||
| INT _ -> "INT"
|
||||
|
||||
// This function gets the data carried by a token as an object
|
||||
let _fsyacc_dataOfToken (t:token) =
|
||||
match t with
|
||||
| SUM -> (null : System.Object)
|
||||
| PROD -> (null : System.Object)
|
||||
| MAX -> (null : System.Object)
|
||||
| ARGMAX -> (null : System.Object)
|
||||
| PLUS -> (null : System.Object)
|
||||
| MINUS -> (null : System.Object)
|
||||
| TIMES -> (null : System.Object)
|
||||
| LET -> (null : System.Object)
|
||||
| IN -> (null : System.Object)
|
||||
| TO -> (null : System.Object)
|
||||
| OF -> (null : System.Object)
|
||||
| EOF -> (null : System.Object)
|
||||
| LPAR -> (null : System.Object)
|
||||
| RPAR -> (null : System.Object)
|
||||
| EQ -> (null : System.Object)
|
||||
| VAR _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
| INT _fsyacc_x -> Microsoft.FSharp.Core.Operators.box _fsyacc_x
|
||||
let _fsyacc_gotos = [| 0us; 65535us; 1us; 65535us; 0us; 1us; 19us; 65535us; 0us; 2us; 6us; 7us; 26us; 9us; 27us; 10us; 28us; 11us; 31us; 12us; 32us; 13us; 35us; 14us; 36us; 15us; 37us; 16us; 40us; 17us; 41us; 18us; 42us; 19us; 45us; 20us; 46us; 21us; 47us; 22us; 50us; 23us; 51us; 24us; 52us; 25us; |]
|
||||
let _fsyacc_sparseGotoTableRowOffsets = [|0us; 1us; 3us; |]
|
||||
let _fsyacc_stateToProdIdxsTableElements = [| 1us; 0us; 1us; 0us; 4us; 1us; 5us; 6us; 7us; 1us; 1us; 1us; 2us; 1us; 3us; 1us; 4us; 4us; 4us; 5us; 6us; 7us; 1us; 4us; 4us; 5us; 5us; 6us; 7us; 4us; 5us; 6us; 6us; 7us; 4us; 5us; 6us; 7us; 7us; 4us; 5us; 6us; 7us; 8us; 4us; 5us; 6us; 7us; 8us; 4us; 5us; 6us; 7us; 9us; 4us; 5us; 6us; 7us; 9us; 4us; 5us; 6us; 7us; 9us; 4us; 5us; 6us; 7us; 10us; 4us; 5us; 6us; 7us; 10us; 4us; 5us; 6us; 7us; 10us; 4us; 5us; 6us; 7us; 11us; 4us; 5us; 6us; 7us; 11us; 4us; 5us; 6us; 7us; 11us; 4us; 5us; 6us; 7us; 12us; 4us; 5us; 6us; 7us; 12us; 4us; 5us; 6us; 7us; 12us; 1us; 5us; 1us; 6us; 1us; 7us; 1us; 8us; 1us; 8us; 1us; 8us; 1us; 8us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 9us; 1us; 10us; 1us; 10us; 1us; 10us; 1us; 10us; 1us; 10us; 1us; 11us; 1us; 11us; 1us; 11us; 1us; 11us; 1us; 11us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 12us; 1us; 12us; |]
|
||||
let _fsyacc_stateToProdIdxsTableRowOffsets = [|0us; 2us; 4us; 9us; 11us; 13us; 15us; 17us; 22us; 24us; 29us; 34us; 39us; 44us; 49us; 54us; 59us; 64us; 69us; 74us; 79us; 84us; 89us; 94us; 99us; 104us; 109us; 111us; 113us; 115us; 117us; 119us; 121us; 123us; 125us; 127us; 129us; 131us; 133us; 135us; 137us; 139us; 141us; 143us; 145us; 147us; 149us; 151us; 153us; 155us; 157us; 159us; 161us; |]
|
||||
let _fsyacc_action_rows = 53
|
||||
let _fsyacc_actionTableElements = [|8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 0us; 49152us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 11us; 3us; 0us; 16385us; 0us; 16386us; 0us; 16387us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 13us; 8us; 0us; 16388us; 0us; 16389us; 0us; 16390us; 2us; 16391us; 4us; 26us; 5us; 27us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 8us; 32us; 3us; 16392us; 4us; 26us; 5us; 27us; 6us; 28us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 9us; 36us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 10us; 37us; 3us; 16393us; 4us; 26us; 5us; 27us; 6us; 28us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 9us; 41us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 10us; 42us; 3us; 16394us; 4us; 26us; 5us; 27us; 6us; 28us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 9us; 46us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 10us; 47us; 3us; 16395us; 4us; 26us; 5us; 27us; 6us; 28us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 9us; 51us; 4us; 32768us; 4us; 26us; 5us; 27us; 6us; 28us; 10us; 52us; 3us; 16396us; 4us; 26us; 5us; 27us; 6us; 28us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 1us; 32768us; 15us; 30us; 1us; 32768us; 14us; 31us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 1us; 32768us; 15us; 34us; 1us; 32768us; 14us; 35us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 1us; 32768us; 15us; 39us; 1us; 32768us; 14us; 40us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 1us; 32768us; 15us; 44us; 1us; 32768us; 14us; 45us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 1us; 32768us; 15us; 49us; 1us; 32768us; 14us; 50us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; 8us; 32768us; 0us; 33us; 1us; 38us; 2us; 43us; 3us; 48us; 7us; 29us; 12us; 6us; 15us; 5us; 16us; 4us; |]
|
||||
let _fsyacc_actionTableRowOffsets = [|0us; 9us; 10us; 15us; 16us; 17us; 18us; 27us; 32us; 33us; 34us; 35us; 38us; 43us; 47us; 52us; 57us; 61us; 66us; 71us; 75us; 80us; 85us; 89us; 94us; 99us; 103us; 112us; 121us; 130us; 132us; 134us; 143us; 152us; 154us; 156us; 165us; 174us; 183us; 185us; 187us; 196us; 205us; 214us; 216us; 218us; 227us; 236us; 245us; 247us; 249us; 258us; 267us; |]
|
||||
let _fsyacc_reductionSymbolCounts = [|1us; 2us; 1us; 1us; 3us; 3us; 3us; 3us; 6us; 8us; 8us; 8us; 8us; |]
|
||||
let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; 2us; |]
|
||||
let _fsyacc_immediateActions = [|65535us; 49152us; 65535us; 16385us; 16386us; 16387us; 65535us; 65535us; 16388us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |]
|
||||
let _fsyacc_reductions () = [|
|
||||
# 175 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
raise (FSharp.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1))
|
||||
)
|
||||
: 'gentype__startProg));
|
||||
# 184 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 30 "Parser.fsp"
|
||||
_1
|
||||
)
|
||||
# 30 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 195 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> int in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 33 "Parser.fsp"
|
||||
AbSyn.CONSTANT (AbSyn.INT _1)
|
||||
)
|
||||
# 33 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 206 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> string in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 34 "Parser.fsp"
|
||||
AbSyn.VARIABLE _1
|
||||
)
|
||||
# 34 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 217 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _2 = parseState.GetInput(2) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 35 "Parser.fsp"
|
||||
_2
|
||||
)
|
||||
# 35 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 228 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.EXP in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 36 "Parser.fsp"
|
||||
AbSyn.OPERATE (AbSyn.BPLUS, _1, _3)
|
||||
)
|
||||
# 36 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 240 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.EXP in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 37 "Parser.fsp"
|
||||
AbSyn.OPERATE (AbSyn.BMINUS, _1, _3)
|
||||
)
|
||||
# 37 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 252 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _1 = parseState.GetInput(1) :?> AbSyn.EXP in
|
||||
let _3 = parseState.GetInput(3) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 38 "Parser.fsp"
|
||||
AbSyn.OPERATE (AbSyn.BTIMES, _1, _3)
|
||||
)
|
||||
# 38 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 264 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _2 = parseState.GetInput(2) :?> string in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.EXP in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 39 "Parser.fsp"
|
||||
AbSyn.LET_IN (_2, _4, _6)
|
||||
)
|
||||
# 39 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 277 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _2 = parseState.GetInput(2) :?> string in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.EXP in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.EXP in
|
||||
let _8 = parseState.GetInput(8) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 40 "Parser.fsp"
|
||||
AbSyn.OVER (AbSyn.RSUM, _2, _4, _6, _8)
|
||||
)
|
||||
# 40 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 291 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _2 = parseState.GetInput(2) :?> string in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.EXP in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.EXP in
|
||||
let _8 = parseState.GetInput(8) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 41 "Parser.fsp"
|
||||
AbSyn.OVER (AbSyn.RPROD, _2, _4, _6, _8)
|
||||
)
|
||||
# 41 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 305 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _2 = parseState.GetInput(2) :?> string in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.EXP in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.EXP in
|
||||
let _8 = parseState.GetInput(8) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 42 "Parser.fsp"
|
||||
AbSyn.OVER (AbSyn.RMAX, _2, _4, _6, _8)
|
||||
)
|
||||
# 42 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
# 319 "Parser.fs"
|
||||
(fun (parseState : FSharp.Text.Parsing.IParseState) ->
|
||||
let _2 = parseState.GetInput(2) :?> string in
|
||||
let _4 = parseState.GetInput(4) :?> AbSyn.EXP in
|
||||
let _6 = parseState.GetInput(6) :?> AbSyn.EXP in
|
||||
let _8 = parseState.GetInput(8) :?> AbSyn.EXP in
|
||||
Microsoft.FSharp.Core.Operators.box
|
||||
(
|
||||
(
|
||||
# 43 "Parser.fsp"
|
||||
AbSyn.OVER (AbSyn.RARGMAX, _2, _4, _6, _8)
|
||||
)
|
||||
# 43 "Parser.fsp"
|
||||
: AbSyn.EXP));
|
||||
|]
|
||||
# 334 "Parser.fs"
|
||||
let tables : FSharp.Text.Parsing.Tables<_> =
|
||||
{ reductions= _fsyacc_reductions ();
|
||||
endOfInputTag = _fsyacc_endOfInputTag;
|
||||
tagOfToken = tagOfToken;
|
||||
dataOfToken = _fsyacc_dataOfToken;
|
||||
actionTableElements = _fsyacc_actionTableElements;
|
||||
actionTableRowOffsets = _fsyacc_actionTableRowOffsets;
|
||||
stateToProdIdxsTableElements = _fsyacc_stateToProdIdxsTableElements;
|
||||
stateToProdIdxsTableRowOffsets = _fsyacc_stateToProdIdxsTableRowOffsets;
|
||||
reductionSymbolCounts = _fsyacc_reductionSymbolCounts;
|
||||
immediateActions = _fsyacc_immediateActions;
|
||||
gotos = _fsyacc_gotos;
|
||||
sparseGotoTableRowOffsets = _fsyacc_sparseGotoTableRowOffsets;
|
||||
tagOfErrorTerminal = _fsyacc_tagOfErrorTerminal;
|
||||
parseError = (fun (ctxt:FSharp.Text.Parsing.ParseErrorContext<_>) ->
|
||||
match parse_error_rich with
|
||||
| Some f -> f ctxt
|
||||
| None -> parse_error ctxt.Message);
|
||||
numTerminals = 20;
|
||||
productionToNonTerminalTable = _fsyacc_productionToNonTerminalTable }
|
||||
let engine lexer lexbuf startState = tables.Interpret(lexer, lexbuf, startState)
|
||||
let Prog lexer lexbuf : AbSyn.EXP =
|
||||
engine lexer lexbuf 0 :?> _
|
56
W2/calculator/Parser.fsi
Normal file
56
W2/calculator/Parser.fsi
Normal file
@ -0,0 +1,56 @@
|
||||
// Signature file for parser generated by fsyacc
|
||||
module Parser
|
||||
type token =
|
||||
| SUM
|
||||
| PROD
|
||||
| MAX
|
||||
| ARGMAX
|
||||
| PLUS
|
||||
| MINUS
|
||||
| TIMES
|
||||
| LET
|
||||
| IN
|
||||
| TO
|
||||
| OF
|
||||
| EOF
|
||||
| LPAR
|
||||
| RPAR
|
||||
| EQ
|
||||
| VAR of (string)
|
||||
| INT of (int)
|
||||
type tokenId =
|
||||
| TOKEN_SUM
|
||||
| TOKEN_PROD
|
||||
| TOKEN_MAX
|
||||
| TOKEN_ARGMAX
|
||||
| TOKEN_PLUS
|
||||
| TOKEN_MINUS
|
||||
| TOKEN_TIMES
|
||||
| TOKEN_LET
|
||||
| TOKEN_IN
|
||||
| TOKEN_TO
|
||||
| TOKEN_OF
|
||||
| TOKEN_EOF
|
||||
| TOKEN_LPAR
|
||||
| TOKEN_RPAR
|
||||
| TOKEN_EQ
|
||||
| TOKEN_VAR
|
||||
| TOKEN_INT
|
||||
| TOKEN_end_of_input
|
||||
| TOKEN_error
|
||||
type nonTerminalId =
|
||||
| NONTERM__startProg
|
||||
| NONTERM_Prog
|
||||
| NONTERM_Exp
|
||||
/// This function maps tokens to integer indexes
|
||||
val tagOfToken: token -> int
|
||||
|
||||
/// This function maps integer indexes to symbolic token ids
|
||||
val tokenTagToTokenId: int -> tokenId
|
||||
|
||||
/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
|
||||
val prodIdxToNonTerminal: int -> nonTerminalId
|
||||
|
||||
/// This function gets the name of a token as a string
|
||||
val token_to_string: token -> string
|
||||
val Prog : (FSharp.Text.Lexing.LexBuffer<'cty> -> token) -> FSharp.Text.Lexing.LexBuffer<'cty> -> (AbSyn.EXP)
|
50
W2/calculator/Parser.fsp
Normal file
50
W2/calculator/Parser.fsp
Normal file
@ -0,0 +1,50 @@
|
||||
%{
|
||||
open FSharp.Text.Parsing
|
||||
%}
|
||||
|
||||
%token <int> INT
|
||||
%token <string> VAR
|
||||
%token LPAR RPAR EQ
|
||||
// FIXME: You should declare tokens for:
|
||||
// + Operators
|
||||
// + Keywords
|
||||
// The token for identifier (variable name) is
|
||||
// already provided ('VAR')
|
||||
%token LET IN TO OF EOF
|
||||
%token TIMES
|
||||
%token PLUS MINUS
|
||||
%token SUM PROD MAX ARGMAX
|
||||
|
||||
// FIXME: Add precedence rules here.
|
||||
|
||||
%nonassoc letprec overprec
|
||||
%left TIMES
|
||||
%left PLUS MINUS
|
||||
|
||||
%start Prog
|
||||
%type <AbSyn.EXP> Prog
|
||||
%type <AbSyn.EXP> Exp
|
||||
|
||||
%%
|
||||
|
||||
Prog : Exp EOF { $1 }
|
||||
;
|
||||
|
||||
Exp : INT { AbSyn.CONSTANT (AbSyn.INT $1) }
|
||||
| VAR { AbSyn.VARIABLE $1 }
|
||||
| LPAR Exp RPAR { $2 }
|
||||
| Exp PLUS Exp { AbSyn.OPERATE (AbSyn.BPLUS, $1, $3) }
|
||||
| Exp MINUS Exp { AbSyn.OPERATE (AbSyn.BMINUS, $1, $3) }
|
||||
| Exp TIMES Exp { AbSyn.OPERATE (AbSyn.BTIMES, $1, $3) }
|
||||
| LET VAR EQ Exp IN Exp %prec letprec { AbSyn.LET_IN ($2, $4, $6) }
|
||||
| SUM VAR EQ Exp TO Exp OF Exp %prec overprec { AbSyn.OVER (AbSyn.RSUM, $2, $4, $6, $8) }
|
||||
| PROD VAR EQ Exp TO Exp OF Exp %prec overprec { AbSyn.OVER (AbSyn.RPROD, $2, $4, $6, $8) }
|
||||
| MAX VAR EQ Exp TO Exp OF Exp %prec overprec { AbSyn.OVER (AbSyn.RMAX, $2, $4, $6, $8) }
|
||||
| ARGMAX VAR EQ Exp TO Exp OF Exp %prec overprec { AbSyn.OVER (AbSyn.RARGMAX, $2, $4, $6, $8) }
|
||||
// FIXME: You should implement parsing for:
|
||||
// + infix opeators
|
||||
// + let ... = ... in ...
|
||||
// + sum ... = ... to ... of ... [and likewise for prod, ...]
|
||||
;
|
||||
|
||||
%%
|
1196
W2/calculator/Parser.fsyacc.output
Normal file
1196
W2/calculator/Parser.fsyacc.output
Normal file
File diff suppressed because it is too large
Load Diff
BIN
W2/calculator/bin/Debug/net6.0/Calculator
Executable file
BIN
W2/calculator/bin/Debug/net6.0/Calculator
Executable file
Binary file not shown.
114
W2/calculator/bin/Debug/net6.0/Calculator.deps.json
Normal file
114
W2/calculator/bin/Debug/net6.0/Calculator.deps.json
Normal file
@ -0,0 +1,114 @@
|
||||
{
|
||||
"runtimeTarget": {
|
||||
"name": ".NETCoreApp,Version=v6.0",
|
||||
"signature": ""
|
||||
},
|
||||
"compilationOptions": {},
|
||||
"targets": {
|
||||
".NETCoreApp,Version=v6.0": {
|
||||
"Calculator/1.0.0": {
|
||||
"dependencies": {
|
||||
"FSharp.Core": "6.0.1",
|
||||
"FsLexYacc": "10.2.0"
|
||||
},
|
||||
"runtime": {
|
||||
"Calculator.dll": {}
|
||||
}
|
||||
},
|
||||
"FSharp.Core/6.0.1": {
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/FSharp.Core.dll": {
|
||||
"assemblyVersion": "6.0.0.0",
|
||||
"fileVersion": "6.0.121.52202"
|
||||
}
|
||||
},
|
||||
"resources": {
|
||||
"lib/netstandard2.1/cs/FSharp.Core.resources.dll": {
|
||||
"locale": "cs"
|
||||
},
|
||||
"lib/netstandard2.1/de/FSharp.Core.resources.dll": {
|
||||
"locale": "de"
|
||||
},
|
||||
"lib/netstandard2.1/es/FSharp.Core.resources.dll": {
|
||||
"locale": "es"
|
||||
},
|
||||
"lib/netstandard2.1/fr/FSharp.Core.resources.dll": {
|
||||
"locale": "fr"
|
||||
},
|
||||
"lib/netstandard2.1/it/FSharp.Core.resources.dll": {
|
||||
"locale": "it"
|
||||
},
|
||||
"lib/netstandard2.1/ja/FSharp.Core.resources.dll": {
|
||||
"locale": "ja"
|
||||
},
|
||||
"lib/netstandard2.1/ko/FSharp.Core.resources.dll": {
|
||||
"locale": "ko"
|
||||
},
|
||||
"lib/netstandard2.1/pl/FSharp.Core.resources.dll": {
|
||||
"locale": "pl"
|
||||
},
|
||||
"lib/netstandard2.1/pt-BR/FSharp.Core.resources.dll": {
|
||||
"locale": "pt-BR"
|
||||
},
|
||||
"lib/netstandard2.1/ru/FSharp.Core.resources.dll": {
|
||||
"locale": "ru"
|
||||
},
|
||||
"lib/netstandard2.1/tr/FSharp.Core.resources.dll": {
|
||||
"locale": "tr"
|
||||
},
|
||||
"lib/netstandard2.1/zh-Hans/FSharp.Core.resources.dll": {
|
||||
"locale": "zh-Hans"
|
||||
},
|
||||
"lib/netstandard2.1/zh-Hant/FSharp.Core.resources.dll": {
|
||||
"locale": "zh-Hant"
|
||||
}
|
||||
}
|
||||
},
|
||||
"FsLexYacc/10.2.0": {
|
||||
"dependencies": {
|
||||
"FSharp.Core": "6.0.1",
|
||||
"FsLexYacc.Runtime": "10.2.0"
|
||||
}
|
||||
},
|
||||
"FsLexYacc.Runtime/10.2.0": {
|
||||
"dependencies": {
|
||||
"FSharp.Core": "6.0.1"
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/FsLexYacc.Runtime.dll": {
|
||||
"assemblyVersion": "1.0.0.0",
|
||||
"fileVersion": "10.2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"Calculator/1.0.0": {
|
||||
"type": "project",
|
||||
"serviceable": false,
|
||||
"sha512": ""
|
||||
},
|
||||
"FSharp.Core/6.0.1": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-VrFAiW8dEEekk+0aqlbvMNZzDvYXmgWZwAt68AUBqaWK8RnoEVUNglj66bZzhs4/U63q0EfXlhcEKnH1sTYLjw==",
|
||||
"path": "fsharp.core/6.0.1",
|
||||
"hashPath": "fsharp.core.6.0.1.nupkg.sha512"
|
||||
},
|
||||
"FsLexYacc/10.2.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-q7mhuEMm8rvFAJ9jaH1atYCRN96tMbjHarYIDooeMKFCbUuqvep+vA2ijGhA06GZ5BG+jg4TjG6dt/4gR2qHHA==",
|
||||
"path": "fslexyacc/10.2.0",
|
||||
"hashPath": "fslexyacc.10.2.0.nupkg.sha512"
|
||||
},
|
||||
"FsLexYacc.Runtime/10.2.0": {
|
||||
"type": "package",
|
||||
"serviceable": true,
|
||||
"sha512": "sha512-d2+gguRIvsn1e7AycVc0r7L1QWptrnUOvQvJLbgkANcS5SjfM/FRgfUGwfqV2cJo3KOFQB5Mqmda/4YTQkkvdA==",
|
||||
"path": "fslexyacc.runtime/10.2.0",
|
||||
"hashPath": "fslexyacc.runtime.10.2.0.nupkg.sha512"
|
||||
}
|
||||
}
|
||||
}
|
BIN
W2/calculator/bin/Debug/net6.0/Calculator.dll
Normal file
BIN
W2/calculator/bin/Debug/net6.0/Calculator.dll
Normal file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/Calculator.pdb
Normal file
BIN
W2/calculator/bin/Debug/net6.0/Calculator.pdb
Normal file
Binary file not shown.
@ -0,0 +1,9 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net6.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "6.0.0"
|
||||
}
|
||||
}
|
||||
}
|
BIN
W2/calculator/bin/Debug/net6.0/FSharp.Core.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/FSharp.Core.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/FsLexYacc.Runtime.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/FsLexYacc.Runtime.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/cs/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/cs/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/de/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/de/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/es/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/es/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/fr/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/fr/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/it/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/it/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/ja/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/ja/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/ko/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/ko/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/pl/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/pl/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/pt-BR/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/pt-BR/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/ru/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/ru/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/tr/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/tr/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/zh-Hans/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/zh-Hans/FSharp.Core.resources.dll
Executable file
Binary file not shown.
BIN
W2/calculator/bin/Debug/net6.0/zh-Hant/FSharp.Core.resources.dll
Executable file
BIN
W2/calculator/bin/Debug/net6.0/zh-Hant/FSharp.Core.resources.dll
Executable file
Binary file not shown.
18
W2/calculator/calculator.sh
Executable file
18
W2/calculator/calculator.sh
Executable file
@ -0,0 +1,18 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -e # Die on first error.
|
||||
|
||||
base_dir="$(dirname "$0")"
|
||||
|
||||
# Determine location of executable. Does this work on all platforms?
|
||||
if ! [ "$CALC" ]; then
|
||||
CALC="$base_dir/bin/Debug/net6.0/Calculator.dll"
|
||||
if [[ $(uname -o 2> /dev/null) = "Cygwin" ]]; then
|
||||
CALC="$(cygpath -w "CALC")"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Verify that .NET is installed.
|
||||
dotnet --version &> /dev/null || (echo "Could not find dotnet" && exit 1)
|
||||
|
||||
dotnet $CALC "$@"
|
74
W2/calculator/obj/Calculator.fsproj.nuget.dgspec.json
Normal file
74
W2/calculator/obj/Calculator.fsproj.nuget.dgspec.json
Normal file
@ -0,0 +1,74 @@
|
||||
{
|
||||
"format": 1,
|
||||
"restore": {
|
||||
"/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj": {}
|
||||
},
|
||||
"projects": {
|
||||
"/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj",
|
||||
"projectName": "Calculator",
|
||||
"projectPath": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj",
|
||||
"packagesPath": "/home/nikolaj/.nuget/packages/",
|
||||
"outputPath": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/home/nikolaj/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net6.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"dependencies": {
|
||||
"FSharp.Core": {
|
||||
"include": "Runtime, Compile, Build, Native, Analyzers, BuildTransitive",
|
||||
"target": "Package",
|
||||
"version": "[6.0.1, )",
|
||||
"generatePathProperty": true
|
||||
},
|
||||
"FsLexYacc": {
|
||||
"target": "Package",
|
||||
"version": "[10.2.0, )",
|
||||
"generatePathProperty": true
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"downloadDependencies": [
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App.Ref",
|
||||
"version": "[6.0.2, 6.0.2]"
|
||||
}
|
||||
],
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/6.0.102/RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
19
W2/calculator/obj/Calculator.fsproj.nuget.g.props
Normal file
19
W2/calculator/obj/Calculator.fsproj.nuget.g.props
Normal file
@ -0,0 +1,19 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">/home/nikolaj/.nuget/packages/</NuGetPackageRoot>
|
||||
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">/home/nikolaj/.nuget/packages/</NuGetPackageFolders>
|
||||
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.0</NuGetToolVersion>
|
||||
</PropertyGroup>
|
||||
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<SourceRoot Include="/home/nikolaj/.nuget/packages/" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<PkgFSharp_Core Condition=" '$(PkgFSharp_Core)' == '' ">/home/nikolaj/.nuget/packages/fsharp.core/6.0.1</PkgFSharp_Core>
|
||||
<PkgFsLexYacc Condition=" '$(PkgFsLexYacc)' == '' ">/home/nikolaj/.nuget/packages/fslexyacc/10.2.0</PkgFsLexYacc>
|
||||
</PropertyGroup>
|
||||
</Project>
|
6
W2/calculator/obj/Calculator.fsproj.nuget.g.targets
Normal file
6
W2/calculator/obj/Calculator.fsproj.nuget.g.targets
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ImportGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||
<Import Project="$(NuGetPackageRoot)fslexyacc/10.2.0/build/FsLexYacc.targets" Condition="Exists('$(NuGetPackageRoot)fslexyacc/10.2.0/build/FsLexYacc.targets')" />
|
||||
</ImportGroup>
|
||||
</Project>
|
@ -0,0 +1,3 @@
|
||||
namespace Microsoft.BuildSettings
|
||||
[<System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName="")>]
|
||||
do ()
|
17
W2/calculator/obj/Debug/net6.0/Calculator.AssemblyInfo.fs
Normal file
17
W2/calculator/obj/Debug/net6.0/Calculator.AssemblyInfo.fs
Normal file
@ -0,0 +1,17 @@
|
||||
// <auto-generated>
|
||||
// Generated by the FSharp WriteCodeFragment class.
|
||||
// </auto-generated>
|
||||
namespace FSharp
|
||||
|
||||
open System
|
||||
open System.Reflection
|
||||
|
||||
|
||||
[<assembly: System.Reflection.AssemblyCompanyAttribute("Calculator")>]
|
||||
[<assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")>]
|
||||
[<assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")>]
|
||||
[<assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")>]
|
||||
[<assembly: System.Reflection.AssemblyProductAttribute("Calculator")>]
|
||||
[<assembly: System.Reflection.AssemblyTitleAttribute("Calculator")>]
|
||||
[<assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")>]
|
||||
do()
|
@ -0,0 +1 @@
|
||||
8c72ea1d86216c3b72e48b1ba03640b785639f4b
|
BIN
W2/calculator/obj/Debug/net6.0/Calculator.assets.cache
Normal file
BIN
W2/calculator/obj/Debug/net6.0/Calculator.assets.cache
Normal file
Binary file not shown.
BIN
W2/calculator/obj/Debug/net6.0/Calculator.dll
Normal file
BIN
W2/calculator/obj/Debug/net6.0/Calculator.dll
Normal file
Binary file not shown.
Binary file not shown.
@ -0,0 +1 @@
|
||||
55f40b194561dd93f59870bc14d2a29b46f7c02e
|
@ -0,0 +1,27 @@
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/Calculator
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/Calculator.deps.json
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/Calculator.runtimeconfig.json
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/Calculator.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/Calculator.pdb
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/FSharp.Core.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/FsLexYacc.Runtime.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/cs/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/de/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/es/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/fr/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/it/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/ja/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/ko/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/pl/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/pt-BR/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/ru/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/tr/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/zh-Hans/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/bin/Debug/net6.0/zh-Hant/FSharp.Core.resources.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.fsproj.AssemblyReference.cache
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.AssemblyInfoInputs.cache
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.AssemblyInfo.fs
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.fsproj.CopyComplete
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.dll
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.pdb
|
||||
/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/Debug/net6.0/Calculator.genruntimeconfig.cache
|
@ -0,0 +1 @@
|
||||
2747ec3745a2aafc082acd8723763a8889db8be7
|
BIN
W2/calculator/obj/Debug/net6.0/Calculator.pdb
Normal file
BIN
W2/calculator/obj/Debug/net6.0/Calculator.pdb
Normal file
Binary file not shown.
BIN
W2/calculator/obj/Debug/net6.0/apphost
Executable file
BIN
W2/calculator/obj/Debug/net6.0/apphost
Executable file
Binary file not shown.
2
W2/calculator/obj/fsac.cache
Normal file
2
W2/calculator/obj/fsac.cache
Normal file
File diff suppressed because one or more lines are too long
296
W2/calculator/obj/project.assets.json
Normal file
296
W2/calculator/obj/project.assets.json
Normal file
@ -0,0 +1,296 @@
|
||||
{
|
||||
"version": 3,
|
||||
"targets": {
|
||||
"net6.0": {
|
||||
"FSharp.Core/6.0.1": {
|
||||
"type": "package",
|
||||
"compile": {
|
||||
"lib/netstandard2.1/FSharp.Core.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.1/FSharp.Core.dll": {}
|
||||
},
|
||||
"resource": {
|
||||
"lib/netstandard2.1/cs/FSharp.Core.resources.dll": {
|
||||
"locale": "cs"
|
||||
},
|
||||
"lib/netstandard2.1/de/FSharp.Core.resources.dll": {
|
||||
"locale": "de"
|
||||
},
|
||||
"lib/netstandard2.1/es/FSharp.Core.resources.dll": {
|
||||
"locale": "es"
|
||||
},
|
||||
"lib/netstandard2.1/fr/FSharp.Core.resources.dll": {
|
||||
"locale": "fr"
|
||||
},
|
||||
"lib/netstandard2.1/it/FSharp.Core.resources.dll": {
|
||||
"locale": "it"
|
||||
},
|
||||
"lib/netstandard2.1/ja/FSharp.Core.resources.dll": {
|
||||
"locale": "ja"
|
||||
},
|
||||
"lib/netstandard2.1/ko/FSharp.Core.resources.dll": {
|
||||
"locale": "ko"
|
||||
},
|
||||
"lib/netstandard2.1/pl/FSharp.Core.resources.dll": {
|
||||
"locale": "pl"
|
||||
},
|
||||
"lib/netstandard2.1/pt-BR/FSharp.Core.resources.dll": {
|
||||
"locale": "pt-BR"
|
||||
},
|
||||
"lib/netstandard2.1/ru/FSharp.Core.resources.dll": {
|
||||
"locale": "ru"
|
||||
},
|
||||
"lib/netstandard2.1/tr/FSharp.Core.resources.dll": {
|
||||
"locale": "tr"
|
||||
},
|
||||
"lib/netstandard2.1/zh-Hans/FSharp.Core.resources.dll": {
|
||||
"locale": "zh-Hans"
|
||||
},
|
||||
"lib/netstandard2.1/zh-Hant/FSharp.Core.resources.dll": {
|
||||
"locale": "zh-Hant"
|
||||
}
|
||||
},
|
||||
"contentFiles": {
|
||||
"contentFiles/any/any/_._": {
|
||||
"buildAction": "None",
|
||||
"codeLanguage": "any",
|
||||
"copyToOutput": false
|
||||
}
|
||||
}
|
||||
},
|
||||
"FsLexYacc/10.2.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"FSharp.Core": "4.5.2",
|
||||
"FsLexYacc.Runtime": "[10.2.0, 10.3.0)"
|
||||
},
|
||||
"build": {
|
||||
"build/FsLexYacc.targets": {}
|
||||
}
|
||||
},
|
||||
"FsLexYacc.Runtime/10.2.0": {
|
||||
"type": "package",
|
||||
"dependencies": {
|
||||
"FSharp.Core": "4.5.2"
|
||||
},
|
||||
"compile": {
|
||||
"lib/netstandard2.0/FsLexYacc.Runtime.dll": {}
|
||||
},
|
||||
"runtime": {
|
||||
"lib/netstandard2.0/FsLexYacc.Runtime.dll": {}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"libraries": {
|
||||
"FSharp.Core/6.0.1": {
|
||||
"sha512": "VrFAiW8dEEekk+0aqlbvMNZzDvYXmgWZwAt68AUBqaWK8RnoEVUNglj66bZzhs4/U63q0EfXlhcEKnH1sTYLjw==",
|
||||
"type": "package",
|
||||
"path": "fsharp.core/6.0.1",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"Icon.png",
|
||||
"contentFiles/any/netstandard2.0/FSharp.Core.xml",
|
||||
"contentFiles/any/netstandard2.1/FSharp.Core.xml",
|
||||
"fsharp.core.6.0.1.nupkg.sha512",
|
||||
"fsharp.core.nuspec",
|
||||
"lib/netstandard2.0/FSharp.Core.dll",
|
||||
"lib/netstandard2.0/FSharp.Core.xml",
|
||||
"lib/netstandard2.0/cs/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/de/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/es/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/fr/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/it/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/ja/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/ko/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/pl/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/pt-BR/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/ru/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/tr/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/zh-Hans/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.0/zh-Hant/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/FSharp.Core.dll",
|
||||
"lib/netstandard2.1/FSharp.Core.xml",
|
||||
"lib/netstandard2.1/cs/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/de/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/es/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/fr/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/it/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/ja/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/ko/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/pl/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/pt-BR/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/ru/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/tr/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/zh-Hans/FSharp.Core.resources.dll",
|
||||
"lib/netstandard2.1/zh-Hant/FSharp.Core.resources.dll"
|
||||
]
|
||||
},
|
||||
"FsLexYacc/10.2.0": {
|
||||
"sha512": "q7mhuEMm8rvFAJ9jaH1atYCRN96tMbjHarYIDooeMKFCbUuqvep+vA2ijGhA06GZ5BG+jg4TjG6dt/4gR2qHHA==",
|
||||
"type": "package",
|
||||
"path": "fslexyacc/10.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"build/FsLexYacc.targets",
|
||||
"build/fslex/netcoreapp3.1/FSharp.Core.dll",
|
||||
"build/fslex/netcoreapp3.1/FsLexYacc.Runtime.dll",
|
||||
"build/fslex/netcoreapp3.1/cs/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/de/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/en/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/es/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/fr/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/fslex.deps.json",
|
||||
"build/fslex/netcoreapp3.1/fslex.dll",
|
||||
"build/fslex/netcoreapp3.1/fslex.pdb",
|
||||
"build/fslex/netcoreapp3.1/fslex.runtimeconfig.json",
|
||||
"build/fslex/netcoreapp3.1/it/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/ja/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/ko/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/pl/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/pt-BR/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/ru/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/tr/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/zh-Hans/FSharp.Core.resources.dll",
|
||||
"build/fslex/netcoreapp3.1/zh-Hant/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/FSharp.Core.dll",
|
||||
"build/fsyacc/netcoreapp3.1/FsLexYacc.Runtime.dll",
|
||||
"build/fsyacc/netcoreapp3.1/FsLexYacc.targets",
|
||||
"build/fsyacc/netcoreapp3.1/cs/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/de/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/en/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/es/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/fr/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/fsyacc.deps.json",
|
||||
"build/fsyacc/netcoreapp3.1/fsyacc.dll",
|
||||
"build/fsyacc/netcoreapp3.1/fsyacc.pdb",
|
||||
"build/fsyacc/netcoreapp3.1/fsyacc.runtimeconfig.json",
|
||||
"build/fsyacc/netcoreapp3.1/it/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/ja/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/ko/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/pl/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/pt-BR/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/ru/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/tr/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/zh-Hans/FSharp.Core.resources.dll",
|
||||
"build/fsyacc/netcoreapp3.1/zh-Hant/FSharp.Core.resources.dll",
|
||||
"fslexyacc.10.2.0.nupkg.sha512",
|
||||
"fslexyacc.nuspec",
|
||||
"src/FsLexYacc.targets",
|
||||
"src/fslex/Arg.fs",
|
||||
"src/fslex/Arg.fsi",
|
||||
"src/fslex/Lexing.fs",
|
||||
"src/fslex/Lexing.fsi",
|
||||
"src/fslex/Parsing.fs",
|
||||
"src/fslex/Parsing.fsi",
|
||||
"src/fslex/fslex.fs",
|
||||
"src/fslex/fslex.fsx",
|
||||
"src/fslex/fslexast.fs",
|
||||
"src/fslex/fslexlex.fs",
|
||||
"src/fslex/fslexpars.fs",
|
||||
"src/fsyacc/Arg.fs",
|
||||
"src/fsyacc/Arg.fsi",
|
||||
"src/fsyacc/Lexing.fs",
|
||||
"src/fsyacc/Lexing.fsi",
|
||||
"src/fsyacc/Parsing.fs",
|
||||
"src/fsyacc/Parsing.fsi",
|
||||
"src/fsyacc/fsyacc.fs",
|
||||
"src/fsyacc/fsyacc.fsx",
|
||||
"src/fsyacc/fsyaccast.fs",
|
||||
"src/fsyacc/fsyacclex.fs",
|
||||
"src/fsyacc/fsyaccpars.fs"
|
||||
]
|
||||
},
|
||||
"FsLexYacc.Runtime/10.2.0": {
|
||||
"sha512": "d2+gguRIvsn1e7AycVc0r7L1QWptrnUOvQvJLbgkANcS5SjfM/FRgfUGwfqV2cJo3KOFQB5Mqmda/4YTQkkvdA==",
|
||||
"type": "package",
|
||||
"path": "fslexyacc.runtime/10.2.0",
|
||||
"files": [
|
||||
".nupkg.metadata",
|
||||
".signature.p7s",
|
||||
"fslexyacc.runtime.10.2.0.nupkg.sha512",
|
||||
"fslexyacc.runtime.nuspec",
|
||||
"lib/netstandard2.0/FsLexYacc.Runtime.dll",
|
||||
"lib/netstandard2.0/FsLexYacc.Runtime.xml"
|
||||
]
|
||||
}
|
||||
},
|
||||
"projectFileDependencyGroups": {
|
||||
"net6.0": [
|
||||
"FSharp.Core >= 6.0.1",
|
||||
"FsLexYacc >= 10.2.0"
|
||||
]
|
||||
},
|
||||
"packageFolders": {
|
||||
"/home/nikolaj/.nuget/packages/": {}
|
||||
},
|
||||
"project": {
|
||||
"version": "1.0.0",
|
||||
"restore": {
|
||||
"projectUniqueName": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj",
|
||||
"projectName": "Calculator",
|
||||
"projectPath": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj",
|
||||
"packagesPath": "/home/nikolaj/.nuget/packages/",
|
||||
"outputPath": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/obj/",
|
||||
"projectStyle": "PackageReference",
|
||||
"configFilePaths": [
|
||||
"/home/nikolaj/.nuget/NuGet/NuGet.Config"
|
||||
],
|
||||
"originalTargetFrameworks": [
|
||||
"net6.0"
|
||||
],
|
||||
"sources": {
|
||||
"https://api.nuget.org/v3/index.json": {}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"projectReferences": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"frameworks": {
|
||||
"net6.0": {
|
||||
"targetAlias": "net6.0",
|
||||
"dependencies": {
|
||||
"FSharp.Core": {
|
||||
"include": "Runtime, Compile, Build, Native, Analyzers, BuildTransitive",
|
||||
"target": "Package",
|
||||
"version": "[6.0.1, )",
|
||||
"generatePathProperty": true
|
||||
},
|
||||
"FsLexYacc": {
|
||||
"target": "Package",
|
||||
"version": "[10.2.0, )",
|
||||
"generatePathProperty": true
|
||||
}
|
||||
},
|
||||
"imports": [
|
||||
"net461",
|
||||
"net462",
|
||||
"net47",
|
||||
"net471",
|
||||
"net472",
|
||||
"net48"
|
||||
],
|
||||
"assetTargetFallback": true,
|
||||
"warn": true,
|
||||
"downloadDependencies": [
|
||||
{
|
||||
"name": "Microsoft.AspNetCore.App.Ref",
|
||||
"version": "[6.0.2, 6.0.2]"
|
||||
}
|
||||
],
|
||||
"frameworkReferences": {
|
||||
"Microsoft.NETCore.App": {
|
||||
"privateAssets": "all"
|
||||
}
|
||||
},
|
||||
"runtimeIdentifierGraphPath": "/usr/share/dotnet/sdk/6.0.102/RuntimeIdentifierGraph.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
13
W2/calculator/obj/project.nuget.cache
Normal file
13
W2/calculator/obj/project.nuget.cache
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"version": 2,
|
||||
"dgSpecHash": "usdcVY2iHEdMW6BxiK1Rq1eg4qqUJfGNxXWjlu4cMznbCq/3PMJjMZIrqhvsTJvpS0Kqqev79I3lhTRhUo8UnQ==",
|
||||
"success": true,
|
||||
"projectFilePath": "/home/nikolaj/Code/Datalogi/2022B4-IPS/IPS_W-assignments/W2/calculator/Calculator.fsproj",
|
||||
"expectedPackageFiles": [
|
||||
"/home/nikolaj/.nuget/packages/fsharp.core/6.0.1/fsharp.core.6.0.1.nupkg.sha512",
|
||||
"/home/nikolaj/.nuget/packages/fslexyacc/10.2.0/fslexyacc.10.2.0.nupkg.sha512",
|
||||
"/home/nikolaj/.nuget/packages/fslexyacc.runtime/10.2.0/fslexyacc.runtime.10.2.0.nupkg.sha512",
|
||||
"/home/nikolaj/.nuget/packages/microsoft.aspnetcore.app.ref/6.0.2/microsoft.aspnetcore.app.ref.6.0.2.nupkg.sha512"
|
||||
],
|
||||
"logs": []
|
||||
}
|
Reference in New Issue
Block a user