diff --git a/.gitignore b/.gitignore
index b1cfe3f..8dc6428 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,4 +11,5 @@ obj/
*.swp
*.pdb
packages/
-version.props
\ No newline at end of file
+version.props
+/.vs/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..362ea1d
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,32 @@
+language: csharp
+
+mono: 5.18.0
+dotnet: 2.1.500
+
+install:
+ # workaround for missing .net 4.5 targing pack
+ - export FrameworkPathOverride=$(dirname $(which mono))/../lib/mono/4.5/
+
+script:
+ - dotnet build FParsec.sln -c $CONFIGURATION -v n
+ - |
+ if [ "$RUN_TESTS" == "1" ]; then
+ dotnet run --no-build -p Test -c $CONFIGURATION -f $TFM
+ fi
+
+env:
+ - CONFIGURATION=Release
+ TFM=net45
+ - CONFIGURATION=Release-LowTrust
+ TFM=net45
+ - CONFIGURATION=Release-LowTrust
+ TFM=netcoreapp2.1
+ RUN_TESTS=1
+
+matrix:
+ include:
+ - os: linux
+ dist: trusty
+ sudo: required
+ - os: osx
+ osx_image: xcode9
diff --git a/.vscode/tasks.json b/.vscode/tasks.json
index 90e4ebb..835f006 100644
--- a/.vscode/tasks.json
+++ b/.vscode/tasks.json
@@ -1,53 +1,67 @@
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
- "version": "0.1.0",
- "command": "dotnet",
- "isShellCommand": true,
- "args": [],
+ "version": "2.0.0",
"tasks": [
{
- "taskName": "Restore (Config: Debug-LowTrust)",
- "suppressTaskName": true,
- "args": ["restore", "/p:Configuration=Debug-LowTrust"],
- "showOutput": "always",
+ "label": "Restore (Config: Debug-LowTrust)",
+ "command": "dotnet restore /p:Configuration=Debug-LowTrust",
+ "type": "shell",
+ "group": "build",
+ "presentation": {
+ "reveal": "always"
+ },
"problemMatcher": "$msCompile"
},
{
- "taskName": "Build .NET Core Test (Config: Debug-LowTrust)",
- "suppressTaskName": true,
- "args": ["build", "Test", "-c", "Debug-LowTrust", "-f", "netcoreapp2.0"],
- "isBuildCommand": true,
- "showOutput": "silent",
+ "label": "Build .NET Core Test (Config: Debug-LowTrust)",
+ "command": "dotnet build Test -c Debug-LowTrust -f netcoreapp2.1",
+ "type": "shell",
+ "group": "build",
+ "presentation": {
+ "reveal": "silent"
+ },
"problemMatcher": "$msCompile"
},
{
- "taskName": "Build .NET 4.5 Test (Config: Debug-LowTrust)",
- "suppressTaskName": true,
- "args": ["build", "Test", "-c", "Debug-LowTrust", "-f", "net45"],
- "showOutput": "silent",
+ "label": "Build .NET 4.5 Test (Config: Debug-LowTrust)",
+ "command": "dotnet build Test -c Debug-LowTrust -f net45",
+ "type": "shell",
+ "group": "build",
+ "presentation": {
+ "reveal": "silent"
+ },
"problemMatcher": "$msCompile"
},
{
- "taskName": "Build All (Config: Debug-LowTrust)",
- "suppressTaskName": true,
- "args": ["build", "-c", "Debug-LowTrust"],
- "showOutput": "silent",
+ "label": "Build All (Config: Debug-LowTrust)",
+ "command": "dotnet build -c Debug-LowTrust",
+ "type": "shell",
+ "group": "build",
+ "presentation": {
+ "reveal": "silent"
+ },
"problemMatcher": "$msCompile"
},
{
- "taskName": "Test .NET Core (Config: Debug-LowTrust)",
- "suppressTaskName": true,
- "args": [ "Test/bin/Debug-LowTrust/netcoreapp2.0/Test.dll" ],
- "isTestCommand": true,
- "showOutput": "always"
+ "label": "Test .NET Core (Config: Debug-LowTrust)",
+ "command": "dotnet Test/bin/Debug-LowTrust/netcoreapp2.1/Test.dll",
+ "type": "shell",
+ "group": "test",
+ "presentation": {
+ "reveal": "always"
+ },
+ "problemMatcher": "$msCompile"
},
-
{
- "taskName": "Test .NET 4.5 (Config: Debug-LowTrust)",
- "suppressTaskName": true,
+ "label": "Test .NET 4.5 (Config: Debug-LowTrust)",
"command": "Test/bin/Debug-LowTrust/net45/Test.exe",
- "showOutput": "always"
+ "type": "shell",
+ "group": "test",
+ "presentation": {
+ "reveal": "always"
+ },
+ "problemMatcher": "$msCompile"
}
]
}
\ No newline at end of file
diff --git a/Build/FParsec.Common.targets b/Build/FParsec.Common.targets
index 63734fc..2f47574 100644
--- a/Build/FParsec.Common.targets
+++ b/Build/FParsec.Common.targets
@@ -1,127 +1,22 @@
-
- false
- true
-
-
- true
- $(DefineConstants);LOW_TRUST
- false
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.Portable.FSharp.Targets
-
-
-
-
- false
- true
-
-
-
-
-
-
-
- net40-client;net45
-
-
- netstandard1.6
- $(TargetFrameworks);net40-client
- $(TargetFrameworks);portable-net45+win8+wp8+wpa81
- netcoreapp2.0
- $(TargetFrameworks);net45
-
-
-
- .NETFramework
- v4.0
- Client
-
-
-
- .NETPortable
- v4.5
- Profile259
- .NETPortable,Version=v0.0,Profile=Profile259
- netcore
- 3.259.4.0
-
- false
-
-
-
- .NETFramework
- .NETStandard
- .NETStandard
- .NETCoreApp
- .NETCoreApp
-
-
-
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets
- $(FSharpPortableLanguageTargets)
-
-
-
-
-
-
-
-
-
- FSharp.Core
- FSharp.Core.dll
- C:\Program Files (x86)\Reference Assemblies\Microsoft\FSharp\.NETCore\$(TargetFSharpCoreVersion)\FSharp.Core.dll
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
- $(DefineConstants);DEBUG
-
-
-
-
- $(DefineConstants);RELEASE
-
-
-
-
$(DefineConstants);SMALL_STATETAG
-
+
$(DefineConstants);AGGRESSIVE_INLINING
-
+
$(DefineConstants);UNALIGNED_READS
-
- $(DefineConstants);PCL
-
-
- $(DefineConstants);USE_STATIC_MAPPING_FOR_IS_ANY_OF
-
- true
+ true
+
+
+
+ 1.0.0.0
+ $(FileVersion)
@@ -130,33 +25,4 @@
$(DefineConstants);STRONG_NAME
-
-
-
-
-
- $(IntermediateOutputPath)$(AssemblyName).ExtraAssemblyInfo.fs
-]
-[]
-[]
-[]
-[]
-[]
-[]
-[]
-do ()
-]]>
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/NuGet.props b/Build/NuGet.props
deleted file mode 100644
index f4fc57f..0000000
--- a/Build/NuGet.props
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- FParsec-Big-Data-Edition
-
-
- 1.0.4
- 1.0.4.0
- 1.0.0.0
- $(FileVersion)
- $(Version)-$(VersionSuffix)
-
- false
- false
-
- Stephan Tolksdorf
- Copyright © Stephan Tolksdorf
- FParsec
- FParsec is a parser combinator library for F#.
- $(PackageTags);parser;combinator;f#;fsharp;c#;csharp;parsec;fparsec
- http://www.quanttec.com/fparsec/license.html
- http://www.quanttec.com/fparsec/
- git
- https://github.com/stephan-tolksdorf/fparsec
- $(Summary)
-
-You can find comprehensive documentation for FParsec at http://www.quanttec.com/fparsec. The documentation includes a feature list, a tutorial, a user’s guide and an API reference.
- $(Description)
-
-This package uses the basic “low-trust” configuration of FParsec, which does not use any unverifiable code and is optimized for maximum portability. If you need to parse very large files or if you employ FParsec for performance-critical jobs, consider using the alternate “Big Data Edition” NuGet package (see https://nuget.org/packages/fparsec-big-data-edition).
-
- $(Description)
-
-This package uses a configuration of FParsec that supports very large input streams and is optimized for maximum performance in longer running processes. See http://www.quanttec.com/fparsec/download-and-installation.html for more information.
-
-This version of FParsec is currently not compatible with .NET Core. If you want to use .NET Core, please choose the other FParsec NuGet package instead (see https://nuget.org/packages/fparsec).
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/Calculator.fsproj b/Build/VS11/Calculator.fsproj
deleted file mode 100644
index 940e793..0000000
--- a/Build/VS11/Calculator.fsproj
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {ec65683f-e2a1-4523-bf89-b081b20b0cc5}
- Exe
- Calculator
- calculator
- Calculator
- v4.5
- 4.3.0.0
- true
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 3
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 3
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- calculator.fs
-
-
-
-
- True
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
- FParsec
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- False
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/FParsec.fsproj b/Build/VS11/FParsec.fsproj
deleted file mode 100644
index 3340360..0000000
--- a/Build/VS11/FParsec.fsproj
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- Library
- FParsec
- FParsec
- FParsec
- v4.5
- 4.3.0.0
-
-
- true
- full
- false
- bin\Debug\
- $(OutputPath)\$(AssemblyName).XML
- TRACE;DEBUG;NOINLINE;DEBUG_STATIC_MAPPING;AGGRESSIVE_INLINING;USE_STATIC_MAPPING_FOR_IS_ANY_OF;UNALIGNED_READS
- prompt
- 3
- /nooptimizationdata
-
-
- pdbonly
- true
- bin\Release\
- $(OutputPath)\$(AssemblyName).XML
- TRACE;AGGRESSIVE_INLINING;USE_STATIC_MAPPING_FOR_IS_ANY_OF;UNALIGNED_READS
- prompt
- 3
- false
- /nooptimizationdata
-
-
- $(OutputPath)\$(AssemblyName).XML
-
-
-
- False
-
-
-
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
-
-
- AssemblyInfo.fs
-
-
- Internals.fs
-
-
- Range.fs
-
-
- Emit.fs
-
-
- StaticMapping.fsi
-
-
- StaticMapping.fs
-
-
- Error.fsi
-
-
- Error.fs
-
-
- Primitives.fsi
-
-
- Primitives.fs
-
-
- CharParsers.fsi
-
-
- CharParsers.fs
-
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/FParsec.sln b/Build/VS11/FParsec.sln
deleted file mode 100644
index 39b826e..0000000
--- a/Build/VS11/FParsec.sln
+++ /dev/null
@@ -1,85 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 11
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{E2678E0B-F79F-4461-AA53-7E74D12CF6ED}"
-EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FSharpParsingSample", "FSharpParsingSample", "{8493F4B6-CCE9-4A7B-9798-B567DA6A1367}"
- ProjectSection(SolutionItems) = preProject
- ..\..\Samples\FSharpParsingSample\readme.txt = ..\..\Samples\FSharpParsingSample\readme.txt
- EndProjectSection
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FParsecCS", "FParsecCS.csproj", "{501423C3-8EA5-4E54-8D9C-EF60272B57FA}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FParsec", "FParsec.fsproj", "{8EA340D3-E9E0-477E-9AC3-FBFDF3BAD41E}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Test", "Test.fsproj", "{A5957BE0-A31B-4245-BE7F-2218CAF83541}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Calculator", "Calculator.fsproj", "{EC65683F-E2A1-4523-BF89-B081B20B0CC5}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PEG", "PEG.fsproj", "{368D4810-4CB8-43E7-901F-3050091F114E}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "JSON", "JSON.fsproj", "{5FBFE1A7-82C2-49CE-92B0-B0EC04021419}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "InterpFParsec", "InterpFParsec.fsproj", "{ECC92E10-C53B-40FC-9033-F3BB63A6F7A8}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "InterpLexYacc", "InterpLexYacc.fsproj", "{1CDA7320-DBCF-465C-B88A-11A2EC0625DA}"
-EndProject
-Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "Tutorial", "Tutorial.fsproj", "{B0FED0AB-EF96-4E20-B7BB-EE478FACB5BE}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1CDA7320-DBCF-465C-B88A-11A2EC0625DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {1CDA7320-DBCF-465C-B88A-11A2EC0625DA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {1CDA7320-DBCF-465C-B88A-11A2EC0625DA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {1CDA7320-DBCF-465C-B88A-11A2EC0625DA}.Release|Any CPU.Build.0 = Release|Any CPU
- {368D4810-4CB8-43E7-901F-3050091F114E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {368D4810-4CB8-43E7-901F-3050091F114E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {368D4810-4CB8-43E7-901F-3050091F114E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {368D4810-4CB8-43E7-901F-3050091F114E}.Release|Any CPU.Build.0 = Release|Any CPU
- {501423C3-8EA5-4E54-8D9C-EF60272B57FA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {501423C3-8EA5-4E54-8D9C-EF60272B57FA}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {501423C3-8EA5-4E54-8D9C-EF60272B57FA}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {501423C3-8EA5-4E54-8D9C-EF60272B57FA}.Release|Any CPU.Build.0 = Release|Any CPU
- {5FBFE1A7-82C2-49CE-92B0-B0EC04021419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {5FBFE1A7-82C2-49CE-92B0-B0EC04021419}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5FBFE1A7-82C2-49CE-92B0-B0EC04021419}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {5FBFE1A7-82C2-49CE-92B0-B0EC04021419}.Release|Any CPU.Build.0 = Release|Any CPU
- {8EA340D3-E9E0-477E-9AC3-FBFDF3BAD41E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {8EA340D3-E9E0-477E-9AC3-FBFDF3BAD41E}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {8EA340D3-E9E0-477E-9AC3-FBFDF3BAD41E}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {8EA340D3-E9E0-477E-9AC3-FBFDF3BAD41E}.Release|Any CPU.Build.0 = Release|Any CPU
- {A5957BE0-A31B-4245-BE7F-2218CAF83541}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A5957BE0-A31B-4245-BE7F-2218CAF83541}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A5957BE0-A31B-4245-BE7F-2218CAF83541}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A5957BE0-A31B-4245-BE7F-2218CAF83541}.Release|Any CPU.Build.0 = Release|Any CPU
- {B0FED0AB-EF96-4E20-B7BB-EE478FACB5BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {B0FED0AB-EF96-4E20-B7BB-EE478FACB5BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {B0FED0AB-EF96-4E20-B7BB-EE478FACB5BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {B0FED0AB-EF96-4E20-B7BB-EE478FACB5BE}.Release|Any CPU.Build.0 = Release|Any CPU
- {EC65683F-E2A1-4523-BF89-B081B20B0CC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {EC65683F-E2A1-4523-BF89-B081B20B0CC5}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {EC65683F-E2A1-4523-BF89-B081B20B0CC5}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {EC65683F-E2A1-4523-BF89-B081B20B0CC5}.Release|Any CPU.Build.0 = Release|Any CPU
- {ECC92E10-C53B-40FC-9033-F3BB63A6F7A8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {ECC92E10-C53B-40FC-9033-F3BB63A6F7A8}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {ECC92E10-C53B-40FC-9033-F3BB63A6F7A8}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {ECC92E10-C53B-40FC-9033-F3BB63A6F7A8}.Release|Any CPU.Build.0 = Release|Any CPU
-
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(NestedProjects) = preSolution
- {1CDA7320-DBCF-465C-B88A-11A2EC0625DA} = {8493F4B6-CCE9-4A7B-9798-B567DA6A1367}
- {368D4810-4CB8-43E7-901F-3050091F114E} = {E2678E0B-F79F-4461-AA53-7E74D12CF6ED}
- {5FBFE1A7-82C2-49CE-92B0-B0EC04021419} = {E2678E0B-F79F-4461-AA53-7E74D12CF6ED}
- {8493F4B6-CCE9-4A7B-9798-B567DA6A1367} = {E2678E0B-F79F-4461-AA53-7E74D12CF6ED}
- {B0FED0AB-EF96-4E20-B7BB-EE478FACB5BE} = {E2678E0B-F79F-4461-AA53-7E74D12CF6ED}
- {EC65683F-E2A1-4523-BF89-B081B20B0CC5} = {E2678E0B-F79F-4461-AA53-7E74D12CF6ED}
- {ECC92E10-C53B-40FC-9033-F3BB63A6F7A8} = {8493F4B6-CCE9-4A7B-9798-B567DA6A1367}
- EndGlobalSection
-EndGlobal
diff --git a/Build/VS11/FParsecCS.csproj b/Build/VS11/FParsecCS.csproj
deleted file mode 100644
index 9aa8932..0000000
--- a/Build/VS11/FParsecCS.csproj
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- {501423C3-8EA5-4E54-8D9C-EF60272B57FA}
- Library
- Properties
- FParsec
- FParsecCS
- v4.5
- 4.3.0.0
- 512
-
-
- true
- pdbonly
- false
- bin\Debug\
- TRACE;DEBUG;AGGRESSIVE_INLINING;UNALIGNED_READS
- prompt
- 4
- true
- $(OutputPath)\$(AssemblyName).XML
- 1591
-
-
- pdbonly
- true
- bin\Release\
- TRACE;AGGRESSIVE_INLINING;UNALIGNED_READS
- prompt
- 4
- true
- true
- $(OutputPath)\$(AssemblyName).XML
- 1591
-
-
- $(OutputPath)\$(AssemblyName).XML
- 1591
-
-
-
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/InterpFParsec.fsproj b/Build/VS11/InterpFParsec.fsproj
deleted file mode 100644
index 8d2c911..0000000
--- a/Build/VS11/InterpFParsec.fsproj
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {ecc92e10-c53b-40fc-9033-f3bb63a6f7a8}
- Exe
- FParsecVersion
- interp_fparsec
- FParsecVersion
- v4.5
- 4.3.0.0
- true
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 3
- ..\..\..\..\Samples\FSharpParsingSample\LexYaccVersion\test.lang
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 3
- ..\..\..\..\Samples\FSharpParsingSample\LexYaccVersion\test.lang
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- ast.fs
-
-
- interp.fs
-
-
- parser.fs
-
-
- main.fs
-
-
-
-
- True
-
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
- FParsec
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- False
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/InterpLexYacc.fsproj b/Build/VS11/InterpLexYacc.fsproj
deleted file mode 100644
index 94e8408..0000000
--- a/Build/VS11/InterpLexYacc.fsproj
+++ /dev/null
@@ -1,109 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {1cda7320-dbcf-465c-b88a-11a2ec0625da}
- Exe
- LexYaccVersion
- interp_lexyacc
- LexYaccVersion
- v4.5
- 4.3.0.0
- true
-
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 3
- --mlcompatibility
- ..\..\..\..\Samples\FSharpParsingSample\LexYaccVersion\test.lang
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 3
- --mlcompatibility
- ..\..\..\..\Samples\FSharpParsingSample\LexYaccVersion\test.lang
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- ast.fs
-
-
- interp.fs
-
-
- lex.fsl
- --unicode -o ..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs
-
-
- pars.fsy
- --module Parser -o ..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs
-
-
- pars.fsi
-
-
- pars.fs
-
-
- lex.fs
-
-
- main.fs
-
-
-
-
-
- True
-
-
- packages\FsLexYacc.Runtime.6.1.0\lib\net40\FsLexYacc.Runtime.dll
- True
-
-
-
-
-
-
-
- This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/JSON.fsproj b/Build/VS11/JSON.fsproj
deleted file mode 100644
index d1fd5c3..0000000
--- a/Build/VS11/JSON.fsproj
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {5fbfe1a7-82c2-49ce-92b0-b0ec04021419}
- Exe
- JSON
- json
- JSON
- v4.5
- 4.3.0.0
- true
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 3
- ..\..\..\..\Samples\JSON\test_json.txt
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 3
- ..\..\..\..\Samples\JSON\test_json.txt
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- ast.fs
-
-
- parser.fs
-
-
- main.fs
-
-
-
-
- True
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
- FParsec
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- False
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/PEG.fsproj b/Build/VS11/PEG.fsproj
deleted file mode 100644
index e526246..0000000
--- a/Build/VS11/PEG.fsproj
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {368d4810-4cb8-43e7-901f-3050091f114e}
- Exe
- PEG
- peg
- PEG
- v4.5
- 4.3.0.0
- true
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 3
- ..\..\..\..\Samples\PEG\test_peg.txt
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 3
- ..\..\..\..\Samples\PEG\test_peg.txt
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- ast.fs
-
-
- parser.fs
-
-
- main.fs
-
-
-
-
- True
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
- FParsec
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- False
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/Test.fsproj b/Build/VS11/Test.fsproj
deleted file mode 100644
index c1f9296..0000000
--- a/Build/VS11/Test.fsproj
+++ /dev/null
@@ -1,122 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {a5957be0-a31b-4245-be7f-2218caf83541}
- Exe
- Test
- Test
- Test
- v4.5
- 4.3.0.0
- true
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 3
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 3
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- Test.fs
-
-
- BufferTests.fs
-
-
- CharSetTests.fs
-
-
- HexFloatTests.fs
-
-
- TextTests.fs
-
-
- CloningTests.fs
-
-
- StringBufferTests.fs
-
-
- CharStreamTests.fs
-
-
- PrimitivesTests.fs
-
-
- CharParsersTests.fs
-
-
- IdentifierValidatorTests.fs
-
-
- OperatorPrecedenceParserTests.fs
-
-
- RangeTests.fs
-
-
- StaticMappingTests.fs
-
-
- AllTests.fs
-
-
-
-
- True
-
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
- FParsec
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- False
-
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/Tutorial.fsproj b/Build/VS11/Tutorial.fsproj
deleted file mode 100644
index 8bc461a..0000000
--- a/Build/VS11/Tutorial.fsproj
+++ /dev/null
@@ -1,78 +0,0 @@
-
-
-
-
- 11
- Debug
- AnyCPU
- 2.0
- {b0fed0ab-ef96-4e20-b7bb-ee478facb5be}
- Exe
- Tutorial
- tutorial
- Tutorial
- v4.5
- 4.3.0.0
- true
-
-
- true
- full
- false
- false
- bin\Debug\
- DEBUG;TRACE
- 3
-
-
- pdbonly
- true
- true
- bin\Release\
- TRACE
- 3
-
-
-
-
-
- $(MSBuildExtensionsPath32)\..\Microsoft SDKs\F#\3.0\Framework\v4.0\Microsoft.FSharp.Targets
-
-
-
-
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\FSharp\Microsoft.FSharp.Targets
-
-
-
-
-
-
- tutorial.fs
-
-
-
-
- True
-
-
-
-
- FParsecCS
- {501423c3-8ea5-4e54-8d9c-ef60272b57fa}
- False
-
-
- FParsec
- {8ea340d3-e9e0-477e-9ac3-fbfdf3bad41e}
- False
-
-
-
-
\ No newline at end of file
diff --git a/Build/VS11/packages.config b/Build/VS11/packages.config
deleted file mode 100644
index 274064a..0000000
--- a/Build/VS11/packages.config
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/Directory.Build.props b/Directory.Build.props
new file mode 100644
index 0000000..10c32a7
--- /dev/null
+++ b/Directory.Build.props
@@ -0,0 +1,45 @@
+
+
+
+ Debug;Release;Debug-LowTrust;Release-LowTrust
+
+
+
+ false
+ true
+
+
+ true
+ $(DefineConstants);LOW_TRUST
+ false
+
+
+
+ true
+
+
+ false
+ $(DefineConstants);DEBUG
+
+
+ true
+ $(DefineConstants);RELEASE
+
+
+
+ $(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb
+
+
+
+ 1.0.4
+ 1.0.4.0
+
+ Stephan Tolksdorf
+ Copyright © Stephan Tolksdorf
+ FParsec
+ http://www.quanttec.com/fparsec/license.html
+ http://www.quanttec.com/fparsec/
+ https://github.com/stephan-tolksdorf/fparsec
+
+
+
diff --git a/FParsec.sln b/FParsec.sln
index a08db20..900ddb8 100644
--- a/FParsec.sln
+++ b/FParsec.sln
@@ -1,26 +1,39 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 15
-VisualStudioVersion = 15.0.26430.6
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28621.142
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FParsecCS", "FParsecCS\FParsecCS.csproj", "{8521556A-F853-4456-8D20-96C42F97E15A}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FParsecCS", "FParsecCS\FParsecCS.csproj", "{8521556A-F853-4456-8D20-96C42F97E15A}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FParsec", "FParsec\FParsec.fsproj", "{019F9A66-F105-43C7-841D-E4D312659B61}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FParsec", "FParsec\FParsec.fsproj", "{019F9A66-F105-43C7-841D-E4D312659B61}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{01D1CDB5-2645-4929-865F-79B755DBC5B8}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Calculator", "Samples\Calculator\Calculator.fsproj", "{A9B15BCE-C37B-4BA6-BC72-6E8A438F205D}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Calculator", "Samples\Calculator\Calculator.fsproj", "{A9B15BCE-C37B-4BA6-BC72-6E8A438F205D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "FSharpParsingSample", "FSharpParsingSample", "{20AE5602-B9B6-434D-A41D-CB988AC49E79}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InterpFParsec", "Samples\FSharpParsingSample\FParsecVersion\InterpFParsec.fsproj", "{B56A16AD-5BFE-4D99-932C-9073CAFF3D80}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InterpFParsec", "Samples\FSharpParsingSample\FParsecVersion\InterpFParsec.fsproj", "{B56A16AD-5BFE-4D99-932C-9073CAFF3D80}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JsonParser", "Samples\JSON\JsonParser.fsproj", "{3889AFB4-60BC-46CB-9747-4BD2F413B351}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonParser", "Samples\JSON\JsonParser.fsproj", "{3889AFB4-60BC-46CB-9747-4BD2F413B351}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PegParser", "Samples\PEG\PegParser.fsproj", "{2E8F33E4-77F0-4954-9486-239D7124EB86}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PegParser", "Samples\PEG\PegParser.fsproj", "{2E8F33E4-77F0-4954-9486-239D7124EB86}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tutorial", "Samples\Tutorial\Tutorial.fsproj", "{CEDA985E-30D3-400E-9869-4A22D5F9ADA5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tutorial", "Samples\Tutorial\Tutorial.fsproj", "{CEDA985E-30D3-400E-9869-4A22D5F9ADA5}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.fsproj", "{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Test", "Test\Test.fsproj", "{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{1C2DDDBD-BF95-4F55-8651-6EAD5D984BD9}"
+ ProjectSection(SolutionItems) = preProject
+ .travis.yml = .travis.yml
+ appveyor.yml = appveyor.yml
+ Directory.Build.props = Directory.Build.props
+ Build\FParsec.Common.targets = Build\FParsec.Common.targets
+ global.json = global.json
+ pack.ps1 = pack.ps1
+ readme.md = readme.md
+ EndProjectSection
+EndProject
+Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "InterpLexYacc", "Samples\FSharpParsingSample\LexYaccVersion\InterpLexYacc.fsproj", "{C0616007-EAC1-4648-9124-727B4539EEB4}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -64,28 +77,28 @@ Global
{8521556A-F853-4456-8D20-96C42F97E15A}.Release-LowTrust|x86.Build.0 = Release-LowTrust|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x64.ActiveCfg = Debug|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x64.Build.0 = Debug|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x86.ActiveCfg = Debug|x86
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x86.Build.0 = Debug|x86
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x64.Build.0 = Debug|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug|x86.Build.0 = Debug|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|Any CPU.ActiveCfg = Debug-LowTrust|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|Any CPU.Build.0 = Debug-LowTrust|Any CPU
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x64.ActiveCfg = Debug-LowTrust|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x64.Build.0 = Debug-LowTrust|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x86.ActiveCfg = Debug-LowTrust|x86
- {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x86.Build.0 = Debug-LowTrust|x86
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x64.ActiveCfg = Debug-LowTrust|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x64.Build.0 = Debug-LowTrust|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x86.ActiveCfg = Debug-LowTrust|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Debug-LowTrust|x86.Build.0 = Debug-LowTrust|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Release|Any CPU.ActiveCfg = Release|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Release|Any CPU.Build.0 = Release|Any CPU
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x64.ActiveCfg = Release|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x64.Build.0 = Release|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x86.ActiveCfg = Release|x86
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x86.Build.0 = Release|x86
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x64.ActiveCfg = Release|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x64.Build.0 = Release|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x86.ActiveCfg = Release|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release|x86.Build.0 = Release|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|Any CPU.ActiveCfg = Release-LowTrust|Any CPU
{019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|Any CPU.Build.0 = Release-LowTrust|Any CPU
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x64.ActiveCfg = Release-LowTrust|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x64.Build.0 = Release-LowTrust|x64
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x86.ActiveCfg = Release-LowTrust|x86
- {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x86.Build.0 = Release-LowTrust|x86
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x64.ActiveCfg = Release-LowTrust|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x64.Build.0 = Release-LowTrust|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x86.ActiveCfg = Release-LowTrust|Any CPU
+ {019F9A66-F105-43C7-841D-E4D312659B61}.Release-LowTrust|x86.Build.0 = Release-LowTrust|Any CPU
{A9B15BCE-C37B-4BA6-BC72-6E8A438F205D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A9B15BCE-C37B-4BA6-BC72-6E8A438F205D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A9B15BCE-C37B-4BA6-BC72-6E8A438F205D}.Debug|x64.ActiveCfg = Debug|Any CPU
@@ -208,28 +221,52 @@ Global
{CEDA985E-30D3-400E-9869-4A22D5F9ADA5}.Release-LowTrust|x86.Build.0 = Release-LowTrust|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x64.ActiveCfg = Debug|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x64.Build.0 = Debug|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x86.ActiveCfg = Debug|x86
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x86.Build.0 = Debug|x86
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x64.Build.0 = Debug|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug|x86.Build.0 = Debug|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|Any CPU.ActiveCfg = Debug-LowTrust|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|Any CPU.Build.0 = Debug-LowTrust|Any CPU
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x64.ActiveCfg = Debug-LowTrust|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x64.Build.0 = Debug-LowTrust|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x86.ActiveCfg = Debug-LowTrust|x86
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x86.Build.0 = Debug-LowTrust|x86
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x64.ActiveCfg = Debug-LowTrust|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x64.Build.0 = Debug-LowTrust|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x86.ActiveCfg = Debug-LowTrust|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Debug-LowTrust|x86.Build.0 = Debug-LowTrust|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|Any CPU.Build.0 = Release|Any CPU
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x64.ActiveCfg = Release|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x64.Build.0 = Release|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x86.ActiveCfg = Release|x86
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x86.Build.0 = Release|x86
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x64.ActiveCfg = Release|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x64.Build.0 = Release|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x86.ActiveCfg = Release|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release|x86.Build.0 = Release|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|Any CPU.ActiveCfg = Release-LowTrust|Any CPU
{5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|Any CPU.Build.0 = Release-LowTrust|Any CPU
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x64.ActiveCfg = Release-LowTrust|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x64.Build.0 = Release-LowTrust|x64
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x86.ActiveCfg = Release-LowTrust|x86
- {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x86.Build.0 = Release-LowTrust|x86
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x64.ActiveCfg = Release-LowTrust|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x64.Build.0 = Release-LowTrust|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x86.ActiveCfg = Release-LowTrust|Any CPU
+ {5AE7C1E6-A511-41A9-9A9F-E8A0944319A2}.Release-LowTrust|x86.Build.0 = Release-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug|x64.Build.0 = Debug|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug|x86.Build.0 = Debug|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug-LowTrust|Any CPU.ActiveCfg = Debug-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug-LowTrust|Any CPU.Build.0 = Debug-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug-LowTrust|x64.ActiveCfg = Debug-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug-LowTrust|x64.Build.0 = Debug-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug-LowTrust|x86.ActiveCfg = Debug-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Debug-LowTrust|x86.Build.0 = Debug-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release|x64.ActiveCfg = Release|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release|x64.Build.0 = Release|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release|x86.ActiveCfg = Release|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release|x86.Build.0 = Release|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release-LowTrust|Any CPU.ActiveCfg = Release-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release-LowTrust|Any CPU.Build.0 = Release-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release-LowTrust|x64.ActiveCfg = Release-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release-LowTrust|x64.Build.0 = Release-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release-LowTrust|x86.ActiveCfg = Release-LowTrust|Any CPU
+ {C0616007-EAC1-4648-9124-727B4539EEB4}.Release-LowTrust|x86.Build.0 = Release-LowTrust|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -241,5 +278,9 @@ Global
{3889AFB4-60BC-46CB-9747-4BD2F413B351} = {01D1CDB5-2645-4929-865F-79B755DBC5B8}
{2E8F33E4-77F0-4954-9486-239D7124EB86} = {01D1CDB5-2645-4929-865F-79B755DBC5B8}
{CEDA985E-30D3-400E-9869-4A22D5F9ADA5} = {01D1CDB5-2645-4929-865F-79B755DBC5B8}
+ {C0616007-EAC1-4648-9124-727B4539EEB4} = {20AE5602-B9B6-434D-A41D-CB988AC49E79}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {EA9DAE45-7810-49BB-BDDA-C57E105B79BC}
EndGlobalSection
EndGlobal
diff --git a/FParsec/FParsec.fsproj b/FParsec/FParsec.fsproj
index 37e029a..1c382c5 100644
--- a/FParsec/FParsec.fsproj
+++ b/FParsec/FParsec.fsproj
@@ -1,12 +1,34 @@
-
+
- net40-client;net45;netstandard1.6;portable-net45+win8+wp8+wpa81
+ net45;netstandard2.0
+ net45
true
false
/nooptimizationdata
+
+ FParsec is a parser combinator library for F#.
+ $(PackageTags);parser;combinator;f#;fsharp;c#;csharp;parsec;fparsec
+ $(Summary)
+
+You can find comprehensive documentation for FParsec at http://www.quanttec.com/fparsec. The documentation includes a feature list, a tutorial, a user’s guide and an API reference.
+ $(Description)
+
+This package uses the basic “low-trust” configuration of FParsec, which does not use any unverifiable code and is optimized for maximum portability. If you need to parse very large files or if you employ FParsec for performance-critical jobs, consider using the alternate “Big Data Edition” NuGet package (see https://nuget.org/packages/fparsec-big-data-edition).
+ $(Description)
+
+This package uses a configuration of FParsec that supports very large input streams and is optimized for maximum performance in longer running processes. See http://www.quanttec.com/fparsec/download-and-installation.html for more information.
+
+This version of FParsec is currently not compatible with .NET Core. If you want to use .NET Core, please choose the other FParsec NuGet package instead (see https://nuget.org/packages/fparsec).
+
+
+
+ FParsec-Big-Data-Edition
+ $(DefineConstants);USE_STATIC_MAPPING_FOR_IS_ANY_OF
+
+
@@ -24,19 +46,24 @@
-
-
+
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+ $(TargetsForTfmSpecificBuildOutput);IncludeFParsecCSOutput
+
+
+
+
+
+
diff --git a/FParsecCS/FParsecCS.csproj b/FParsecCS/FParsecCS.csproj
index 8451715..7c99477 100644
--- a/FParsecCS/FParsecCS.csproj
+++ b/FParsecCS/FParsecCS.csproj
@@ -1,22 +1,21 @@
- net40-client;net45;netstandard1.6;portable-net45+win8+wp8+wpa81
- false
+ net45;netstandard2.0
+ net45
true
1591
- false
+ false
-
-
-
+
+
-
-
+
+
diff --git a/Samples/Calculator/Calculator.fsproj b/Samples/Calculator/Calculator.fsproj
index 0b75c50..14897f6 100644
--- a/Samples/Calculator/Calculator.fsproj
+++ b/Samples/Calculator/Calculator.fsproj
@@ -1,6 +1,22 @@
-
-
+
+
+ netcoreapp2.1;net45
+ net45
+ Exe
+ false
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/FParsec.Samples.Common.targets b/Samples/FParsec.Samples.Common.targets
deleted file mode 100644
index 2decb09..0000000
--- a/Samples/FParsec.Samples.Common.targets
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
- Exe
- false
-
-
-
- false
-
-
- true
- $(DefineConstants);LOW_TRUST
-
-
-
- false
- true
-
-
-
- net45
-
-
- netcoreapp2.0
- $(TargetFrameworks);net45
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- $(DefineConstants);PCL_FPARSEC
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/Samples/FSharpParsingSample/FParsecVersion/InterpFParsec.fsproj b/Samples/FSharpParsingSample/FParsecVersion/InterpFParsec.fsproj
index d88357f..0f82aea 100644
--- a/Samples/FSharpParsingSample/FParsecVersion/InterpFParsec.fsproj
+++ b/Samples/FSharpParsingSample/FParsecVersion/InterpFParsec.fsproj
@@ -1,9 +1,27 @@
-
-
+
+
+ netcoreapp2.1;net45
+ net45
+ Exe
+ false
+ $(MSBuildProjectDirectory)/../LexYaccVersion/test.lang
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/FSharpParsingSample/FParsecVersion/main.fs b/Samples/FSharpParsingSample/FParsecVersion/main.fs
index bfb514e..5e438f4 100644
--- a/Samples/FSharpParsingSample/FParsecVersion/main.fs
+++ b/Samples/FSharpParsingSample/FParsecVersion/main.fs
@@ -19,11 +19,7 @@ let main(argv: string[]) =
// is assumed to be the encoding.
let fileName = argv.[0]
let result =
- #if PCL_FPARSEC
- runParserOnString Parser.prog () fileName (System.IO.File.ReadAllText(fileName, System.Text.Encoding.UTF8))
- #else
runParserOnFile Parser.prog () fileName System.Text.Encoding.UTF8
- #endif
let myProg =
match result with
diff --git a/Samples/FSharpParsingSample/LexYaccVersion/InterpLexYacc.fsproj b/Samples/FSharpParsingSample/LexYaccVersion/InterpLexYacc.fsproj
new file mode 100644
index 0000000..414e436
--- /dev/null
+++ b/Samples/FSharpParsingSample/LexYaccVersion/InterpLexYacc.fsproj
@@ -0,0 +1,30 @@
+
+
+ net45
+ Exe
+ false
+ $(MSBuildProjectDirectory)/test.lang
+
+
+
+
+
+
+ --unicode
+
+
+ --module Parser
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/FSharpParsingSample/LexYaccVersion/lex.fs b/Samples/FSharpParsingSample/LexYaccVersion/lex.fs
index 2622b5b..018a952 100644
--- a/Samples/FSharpParsingSample/LexYaccVersion/lex.fs
+++ b/Samples/FSharpParsingSample/LexYaccVersion/lex.fs
@@ -1,4 +1,4 @@
-# 13 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 13 "lex.fsl"
module Lex
@@ -17,7 +17,7 @@ let lexeme = LexBuffer.LexemeString
let newline (lexbuf: LexBuffer<_>) =
lexbuf.StartPos <- lexbuf.StartPos.NextLine
-# 20 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 20 "lex.fs"
let trans : uint16[] array =
[|
(* State 0 *)
@@ -136,100 +136,100 @@ and token (lexbuf : Microsoft.FSharp.Text.Lexing.LexBuffer<_>) = _fslex_token
and _fslex_token _fslex_state lexbuf =
match _fslex_tables.Interpret(_fslex_state,lexbuf) with
| 0 -> (
-# 54 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 54 "lex.fsl"
token lexbuf
-# 141 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 141 "lex.fs"
)
| 1 -> (
-# 55 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 55 "lex.fsl"
newline lexbuf; token lexbuf
-# 146 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 146 "lex.fs"
)
| 2 -> (
-# 56 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 56 "lex.fsl"
WHILE
-# 151 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 151 "lex.fs"
)
| 3 -> (
-# 57 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 57 "lex.fsl"
BEGIN
-# 156 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 156 "lex.fs"
)
| 4 -> (
-# 58 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 58 "lex.fsl"
END
-# 161 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 161 "lex.fs"
)
| 5 -> (
-# 59 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 59 "lex.fsl"
DO
-# 166 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 166 "lex.fs"
)
| 6 -> (
-# 60 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 60 "lex.fsl"
IF
-# 171 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 171 "lex.fs"
)
| 7 -> (
-# 61 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 61 "lex.fsl"
THEN
-# 176 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 176 "lex.fs"
)
| 8 -> (
-# 62 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 62 "lex.fsl"
ELSE
-# 181 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 181 "lex.fs"
)
| 9 -> (
-# 63 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 63 "lex.fsl"
PRINT
-# 186 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 186 "lex.fs"
)
| 10 -> (
-# 64 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 64 "lex.fsl"
DECR
-# 191 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 191 "lex.fs"
)
| 11 -> (
-# 65 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 65 "lex.fsl"
LPAREN
-# 196 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 196 "lex.fs"
)
| 12 -> (
-# 66 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 66 "lex.fsl"
RPAREN
-# 201 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 201 "lex.fs"
)
| 13 -> (
-# 67 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 67 "lex.fsl"
SEMI
-# 206 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 206 "lex.fs"
)
| 14 -> (
-# 68 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 68 "lex.fsl"
ASSIGN
-# 211 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 211 "lex.fs"
)
| 15 -> (
-# 70 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 70 "lex.fsl"
ID(lexeme lexbuf)
-# 216 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 216 "lex.fs"
)
| 16 -> (
-# 72 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 72 "lex.fsl"
INT (int32 (lexeme lexbuf))
-# 221 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 221 "lex.fs"
)
| 17 -> (
-# 74 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 74 "lex.fsl"
FLOAT (float (lexeme lexbuf))
-# 226 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 226 "lex.fs"
)
| 18 -> (
-# 75 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fsl"
+# 75 "lex.fsl"
EOF
-# 231 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 231 "lex.fs"
)
| _ -> failwith "token"
-# 3000000 "..\..\Samples\FSharpParsingSample\LexYaccVersion\lex.fs"
+# 3000000 "lex.fs"
diff --git a/Samples/FSharpParsingSample/LexYaccVersion/pars.fs b/Samples/FSharpParsingSample/LexYaccVersion/pars.fs
index 5d79b64..be85f4d 100644
--- a/Samples/FSharpParsingSample/LexYaccVersion/pars.fs
+++ b/Samples/FSharpParsingSample/LexYaccVersion/pars.fs
@@ -3,7 +3,7 @@ module Parser
#nowarn "64";; // turn off warnings that type variables used in production annotations are instantiated to concrete type
open Microsoft.FSharp.Text.Lexing
open Microsoft.FSharp.Text.Parsing.ParseHelpers
-# 10 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 10 "pars.fsy"
// This prelude is F# code that is available throughout this file. In this
@@ -11,7 +11,7 @@ open Microsoft.FSharp.Text.Parsing.ParseHelpers
open Ast
-# 14 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 14 "pars.fs"
// This type is the type of tokens accepted by the parser
type token =
| DECR
@@ -181,7 +181,7 @@ let _fsyacc_reductionSymbolCounts = [|1us; 1us; 1us; 1us; 1us; 1us; 4us; 3us; 4u
let _fsyacc_productionToNonTerminalTable = [|0us; 1us; 2us; 3us; 3us; 3us; 3us; 4us; 4us; 4us; 4us; 4us; 4us; 5us; 5us; |]
let _fsyacc_immediateActions = [|65535us; 49152us; 16385us; 65535us; 16387us; 16388us; 16389us; 65535us; 65535us; 65535us; 16390us; 65535us; 65535us; 16391us; 65535us; 65535us; 65535us; 16392us; 65535us; 65535us; 16393us; 65535us; 65535us; 65535us; 65535us; 65535us; 16395us; 65535us; 16396us; 16397us; 65535us; 16398us; |]
let _fsyacc_reductions () = [|
-# 184 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 184 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : Ast.Prog )) in
Microsoft.FSharp.Core.Operators.box
@@ -190,120 +190,120 @@ let _fsyacc_reductions () = [|
raise (Microsoft.FSharp.Text.Parsing.Accept(Microsoft.FSharp.Core.Operators.box _1))
)
: '_startstart));
-# 193 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 193 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'Prog)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 37 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 37 "pars.fsy"
_1
)
-# 37 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 37 "pars.fsy"
: Ast.Prog ));
-# 204 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 204 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'StmtList)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 40 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 40 "pars.fsy"
Prog(List.rev(_1))
)
-# 40 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 40 "pars.fsy"
: 'Prog));
-# 215 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 215 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 42 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 42 "pars.fsy"
Val(_1);
)
-# 42 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 42 "pars.fsy"
: 'Expr));
-# 226 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 226 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Int32)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 43 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 43 "pars.fsy"
Int(_1)
)
-# 43 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 43 "pars.fsy"
: 'Expr));
-# 237 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 237 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : System.Double)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 44 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 44 "pars.fsy"
Float(_1)
)
-# 44 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 44 "pars.fsy"
: 'Expr));
-# 248 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 248 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'Expr)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 45 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 45 "pars.fsy"
Decr(_3)
)
-# 45 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 45 "pars.fsy"
: 'Expr));
-# 259 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 259 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : string)) in
let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'Expr)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 47 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 47 "pars.fsy"
Assign(_1,_3)
)
-# 47 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 47 "pars.fsy"
: 'Stmt));
-# 271 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 271 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'Expr)) in
let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'Stmt)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 48 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 48 "pars.fsy"
While(_2,_4)
)
-# 48 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 48 "pars.fsy"
: 'Stmt));
-# 283 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 283 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'StmtList)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 49 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 49 "pars.fsy"
Seq(List.rev(_2))
)
-# 49 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 49 "pars.fsy"
: 'Stmt));
-# 294 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 294 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'Expr)) in
let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'Stmt)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 50 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 50 "pars.fsy"
IfThen(_2,_4)
)
-# 50 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 50 "pars.fsy"
: 'Stmt));
-# 306 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 306 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'Expr)) in
let _4 = (let data = parseState.GetInput(4) in (Microsoft.FSharp.Core.Operators.unbox data : 'Stmt)) in
@@ -311,47 +311,47 @@ let _fsyacc_reductions () = [|
Microsoft.FSharp.Core.Operators.box
(
(
-# 51 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 51 "pars.fsy"
IfThenElse(_2,_4,_6)
)
-# 51 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 51 "pars.fsy"
: 'Stmt));
-# 319 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 319 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _2 = (let data = parseState.GetInput(2) in (Microsoft.FSharp.Core.Operators.unbox data : 'Expr)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 52 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 52 "pars.fsy"
Print(_2)
)
-# 52 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 52 "pars.fsy"
: 'Stmt));
-# 330 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 330 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'Stmt)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 55 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 55 "pars.fsy"
[_1]
)
-# 55 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 55 "pars.fsy"
: 'StmtList));
-# 341 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 341 "pars.fs"
(fun (parseState : Microsoft.FSharp.Text.Parsing.IParseState) ->
let _1 = (let data = parseState.GetInput(1) in (Microsoft.FSharp.Core.Operators.unbox data : 'StmtList)) in
let _3 = (let data = parseState.GetInput(3) in (Microsoft.FSharp.Core.Operators.unbox data : 'Stmt)) in
Microsoft.FSharp.Core.Operators.box
(
(
-# 56 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 56 "pars.fsy"
_3 :: _1
)
-# 56 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fsy"
+# 56 "pars.fsy"
: 'StmtList));
|]
-# 354 "..\..\Samples\FSharpParsingSample\LexYaccVersion\pars.fs"
+# 354 "pars.fs"
let tables () : Microsoft.FSharp.Text.Parsing.Tables<_> =
{ reductions= _fsyacc_reductions ();
endOfInputTag = _fsyacc_endOfInputTag;
diff --git a/Samples/JSON/JsonParser.fsproj b/Samples/JSON/JsonParser.fsproj
index 3f20aa4..57f70a0 100644
--- a/Samples/JSON/JsonParser.fsproj
+++ b/Samples/JSON/JsonParser.fsproj
@@ -1,8 +1,26 @@
-
-
+
+
+ netcoreapp2.1;net45
+ net45
+ Exe
+ false
+ $(MSBuildProjectDirectory)/test_json.txt
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/JSON/parser.fs b/Samples/JSON/parser.fs
index 4de343a..e072f7d 100644
--- a/Samples/JSON/parser.fs
+++ b/Samples/JSON/parser.fs
@@ -85,11 +85,7 @@ let parseJsonString str = run json str
// UTF8 is the default, but it will detect UTF16 or UTF32 byte-order marks automatically
let parseJsonFile fileName encoding =
-#if PCL_FPARSEC
- runParserOnString json () fileName (System.IO.File.ReadAllText(fileName, encoding))
-#else
runParserOnFile json () fileName encoding
-#endif
let parseJsonStream stream encoding =
runParserOnStream json () "" stream System.Text.Encoding.UTF8
\ No newline at end of file
diff --git a/Samples/PEG/PegParser.fsproj b/Samples/PEG/PegParser.fsproj
index 3f20aa4..737452d 100644
--- a/Samples/PEG/PegParser.fsproj
+++ b/Samples/PEG/PegParser.fsproj
@@ -1,8 +1,26 @@
-
-
+
+
+ netcoreapp2.1;net45
+ net45
+ Exe
+ false
+ $(MSBuildProjectDirectory)/test_peg.txt
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Samples/PEG/main.fs b/Samples/PEG/main.fs
index 28ab817..f02c42e 100644
--- a/Samples/PEG/main.fs
+++ b/Samples/PEG/main.fs
@@ -19,11 +19,7 @@ let main(args: string[]) =
// is assumed to be the encoding.
// The parser result will be the abstract syntax tree of the input file.
let fileName = args.[0]
-#if PCL_FPARSEC
- let result = runParserOnString Parser.pGrammar () fileName (System.IO.File.ReadAllText(fileName, System.Text.Encoding.UTF8))
-#else
let result = runParserOnFile Parser.pGrammar () fileName System.Text.Encoding.UTF8
-#endif
// for the moment we just print out the AST
match result with
| Success (v, _, _) -> printf "The ast for the input file is:\n%A\n" v
diff --git a/Samples/Tutorial/Tutorial.fsproj b/Samples/Tutorial/Tutorial.fsproj
index f9a7f68..0d22382 100644
--- a/Samples/Tutorial/Tutorial.fsproj
+++ b/Samples/Tutorial/Tutorial.fsproj
@@ -1,6 +1,22 @@
-
-
+
+
+ netcoreapp2.1;net45
+ net45
+ Exe
+ false
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Test/AllTests.fs b/Test/AllTests.fs
index c87e7c9..aaad262 100644
--- a/Test/AllTests.fs
+++ b/Test/AllTests.fs
@@ -39,4 +39,17 @@ let run() =
#endif
printfn "No error was found."
-run()
\ No newline at end of file
+[]
+let main _argv =
+
+#if NETCOREAPP
+ System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
+#endif
+
+ try
+ run()
+ 0
+ with
+ | ex ->
+ printfn "error: %A" ex
+ 1
diff --git a/Test/Test.fsproj b/Test/Test.fsproj
index 34c28b9..03048dc 100644
--- a/Test/Test.fsproj
+++ b/Test/Test.fsproj
@@ -1,13 +1,18 @@
-
+
+ net45;netcoreapp2.1
+ net45
Exe
false
- net40-client;net45;netcoreapp2.0
-
+
+ $(DefineConstants);USE_STATIC_MAPPING_FOR_IS_ANY_OF
+
+
+
$(DefineConstants);NETCORE
@@ -29,24 +34,17 @@
-
+
-
-
- $(DefineConstants);PCL
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..d5b30c9
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,19 @@
+image:
+ - Visual Studio 2017
+
+before_build:
+ - ps: >-
+ $buildId = $env:APPVEYOR_BUILD_NUMBER.PadLeft(5, '0');
+ $versionSuffixPR = "PR$($env:APPVEYOR_PULL_REQUEST_NUMBER)-$buildId";
+ $branchName = "$env:APPVEYOR_REPO_BRANCH".Replace("_","");
+ $versionSuffixBRANCH = "$branchName-$buildId";
+ $env:VersionSuffix = if ("$env:APPVEYOR_REPO_TAG" -eq "true") { "" } else { if ("$env:APPVEYOR_PULL_REQUEST_NUMBER") { $versionSuffixPR } else { $versionSuffixBRANCH } };
+
+build_script:
+ - cmd: echo vs %VersionSuffix%"
+ - ps: ./pack.ps1 -versionSuffix $env:VersionSuffix
+
+artifacts:
+ - path: nupkgs\*.nupkg
+ name: nupkgs
+ type: NuGetPackage
diff --git a/global.json b/global.json
new file mode 100644
index 0000000..b62f6cc
--- /dev/null
+++ b/global.json
@@ -0,0 +1,5 @@
+{
+ "sdk": {
+ "version": "2.1.500"
+ }
+}
diff --git a/pack.ps1 b/pack.ps1
index 4687d04..123d5a7 100644
--- a/pack.ps1
+++ b/pack.ps1
@@ -1,23 +1,18 @@
# This PowerShell script builds the FParsec NuGet packages.
-# Currently, it uses msbuild and needs to be run in the VS2017 Command Prompt,
-# so that it can build PCL assemblies.
-# It also requires the nuget.exe, see $nuget below.
#
# Run this script from the VS2017 Command Prompt, e.g. with
-# powershell -File pack.ps1 -versionSuffix "" > pack.out.txt
+# powershell -ExecutionPolicy ByPass -File pack.ps1 -versionSuffix "" > pack.out.txt
Param(
- [string]$versionSuffix = "dev",
- [string]$nuget = ".\nuget.exe"
+ [string]$versionSuffix = "dev"
)
$ErrorActionPreference = 'Stop'
$configs = $('Release-LowTrust', 'Release')
-$testTargetFrameworks = @{'Release' = $('net45', 'net40-client')
- 'Release-LowTrust' = $('netcoreapp2.0', 'net45')}
-$testPCL = $true
+$testTargetFrameworks = @{'Release' = $('net45')
+ 'Release-LowTrust' = $('netcoreapp2.1', 'net45')}
function invoke([string] $cmd) {
echo ''
@@ -28,39 +23,18 @@ function invoke([string] $cmd) {
}
}
-foreach ($folder in $("FParsecCS\obj", "FParsecCS\bin", "FParsec\obj", "FParsec\bin")) {
+foreach ($folder in $("nupkgs", "FParsecCS\obj", "FParsecCS\bin", "FParsec\obj", "FParsec\bin")) {
try {
Remove-Item $folder -recurse
} catch {}
}
foreach ($config in $configs) {
- $props = "/p:Configuration=$config /p:VersionSuffix=$versionSuffix /p:FParsecNuGet=true"
- invoke "msbuild /t:Restore $props"
- invoke "msbuild /t:Clean $props"
- invoke "msbuild FParsec /t:Build $props"
- invoke "msbuild Test /t:Build $props"
+ $props = "-c $config -p:VersionSuffix=$versionSuffix -p:FParsecNuGet=true"
+ invoke "dotnet build FParsec $props -v n"
+ invoke "dotnet pack FParsec $props -o ""$pwd\nupkgs"""
+ invoke "dotnet build Test $props -v n"
foreach ($tf in $testTargetFrameworks[$config]) {
- if ($tf.StartsWith('netcoreapp')) {
- invoke "dotnet .\Test\bin\$config\$tf\Test.dll"
- } else {
- invoke ".\Test\bin\$config\$tf\Test.exe"
- }
+ invoke "dotnet run --no-build -p Test -c $config -f $tf"
}
- invoke "msbuild /t:Restore $props /p:MergedFParsecPackage=true"
- invoke "msbuild /t:Pack /p:NoBuild=true /p:IncludeSource=true /p:IncludeSymbols=true $props /p:MergedFParsecPackage=true"
- if (($config -eq 'Release-LowTrust') -and $testPCL) {
- $pclProps = "/p:TargetFramework=net45 /p:OutputPath=bin\$config\net45-pcl\ /p:TestPCLFParsec=true $props"
- invoke "msbuild Test/Test.fsproj /t:Clean $pclProps"
- invoke "msbuild Test/Test.fsproj /t:Build $pclProps"
- invoke ".\Test\bin\$config\net45-pcl\Test.exe"
- }
-}
-
-# The non-symbol packages built by the msbuild Pack target include some files only belonging
-# into the symbol packages, so we have to recreate the packages from the generated nuspecs.
-foreach ($nuspec in Get-ChildItem -Path ".\FParsec\obj\" -Recurse -Include "FParsec*.symbols.nuspec") {
- $localNuspecPath = ".\$($nuspec.Name.Replace('.symbols', [string]::Empty))"
- Copy-Item $nuspec $localNuspecPath -verbose
- invoke ".\nuget pack $localNuspecPath -Symbols"
}
diff --git a/readme.md b/readme.md
index ac899a6..c877d29 100644
--- a/readme.md
+++ b/readme.md
@@ -21,7 +21,6 @@ FParsec’s features include:
- [FParsec vs alternatives](http://www.quanttec.com/fparsec/about/fparsec-vs-alternatives.html)
- [NuGet packages and building FParsec from source](http://www.quanttec.com/fparsec/download-and-installation.html)
-
The new solution and project files in the source folders don't yet properly work within the Visual Studio 2017 IDE, but the old solution file in `Build/VS11` still works fine.
- [Tutorial](http://www.quanttec.com/fparsec/tutorial.html)
- [User's guide](http://www.quanttec.com/fparsec/users-guide/)
- [Parser quick reference](http://www.quanttec.com/fparsec/reference/parser-overview.html)