Warpstone 3.0.0-preview03
dotnet add package Warpstone --version 3.0.0-preview03
NuGet\Install-Package Warpstone -Version 3.0.0-preview03
<PackageReference Include="Warpstone" Version="3.0.0-preview03" />
<PackageVersion Include="Warpstone" Version="3.0.0-preview03" />
<PackageReference Include="Warpstone" />
paket add Warpstone --version 3.0.0-preview03
#r "nuget: Warpstone, 3.0.0-preview03"
#addin nuget:?package=Warpstone&version=3.0.0-preview03&prerelease
#tool nuget:?package=Warpstone&version=3.0.0-preview03&prerelease
Package | Stable | Preview | Downloads |
---|---|---|---|
Warpstone | |||
Warpstone.Sources |
<img src="https://raw.githubusercontent.com/CptWesley/Warpstone/main/logo_1024x1024.png" width="178" height="178">
Warpstone
Parser combinator forged deep within Ikit's forges in the Under-City from a shard of Morrslieb itself.
What is it?
Warpstone is a parser combinator library written in C# targetting .NET Standard 2.0, meaning that it can be used by any application running either .NET Framework >= 4.6.1, .NET Core >= 2.0 or Mono >= 5.4. The main focus of the library is to provide a powerful lightweight parser combinator framework for developers to create their own parsers with.
Why did you make it?
After following a course on compiler construction I was intrigued and wanted a way of parsing languages within code without requiring external tools to generate a parser for me first. During my quest I stumbled upon the concept of parser combinators and started looking for existing libraries for .NET. I soon stumbled upon Pidgin. After toying around with the library for a bit I felt dissatisfied with some of its syntax and I still felt like I didn't fully understand the concepts it was using behind the scenes. This led me to create my own parser combinator library, with syntax inspired by Pidgin.
Why the name? (Or: What are all those strange words in the description?!?!?)
Coming up with names is difficult, I wanted to get the project started and at the time I was consumed by the Warhammer Fantasy universe.
Usage
It's useful to take a look at one of the available example projects for JSON parsing and expression parsing.
To start off, one first needs to add (one of) the following imports:
V3 (Unstable)
using Warpstone;
using static Warpstone.Parsers;
V2 (Unstable)
using Warpstone;
using static Warpstone.Parsers.BasicParsers;
V1 (Stable)
using Warpstone;
using static Warpstone.Parsers.BasicParsers;
using static Warpstone.Parsers.CommonParsers;
using static Warpstone.Parsers.ExpressionParsers;
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 is compatible. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 is compatible. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETCoreApp 3.0
- No dependencies.
-
.NETFramework 4.7
- System.Collections.Immutable (>= 1.5.0)
-
.NETStandard 2.0
- System.Collections.Immutable (>= 1.5.0)
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
3.0.0-preview03 | 255 | 6/11/2025 |
3.0.0-preview02 | 249 | 6/11/2025 |
3.0.0-preview01 | 270 | 6/10/2025 |
2.0.0-preview3 | 147 | 3/13/2025 |
2.0.0-preview2 | 712 | 1/9/2025 |
2.0.0-preview1 | 150 | 11/30/2023 |
1.1.0-preview5 | 200 | 8/2/2022 |
1.1.0-preview4 | 311 | 7/11/2021 |
1.1.0-preview3 | 308 | 7/11/2021 |
1.1.0-preview2 | 290 | 7/9/2021 |
1.1.0-preview1 | 294 | 7/9/2021 |
1.0.8.2-preview2 | 300 | 6/29/2021 |
1.0.8.2-alpha | 335 | 6/18/2021 |
1.0.8.1 | 435 | 5/25/2021 |
1.0.8 | 396 | 5/25/2021 |
1.0.7.1 | 519 | 11/26/2020 |
1.0.7 | 457 | 11/24/2020 |
1.0.6.1 | 510 | 10/17/2020 |
1.0.6 | 445 | 10/17/2020 |
1.0.5 | 456 | 10/16/2020 |
1.0.4 | 477 | 9/12/2020 |
1.0.3.3 | 475 | 9/12/2020 |
1.0.3.2 | 501 | 9/12/2020 |
1.0.3.1 | 507 | 9/12/2020 |
1.0.3 | 530 | 9/12/2020 |
1.0.2 | 578 | 5/2/2020 |
1.0.1 | 549 | 4/4/2020 |
1.0.0 | 557 | 4/4/2020 |
### v3.0.0
- Significantly improved performance.
- Reworked API interface.
### v2.0.0
- Reworked library from scratch.
- Changed to Packrat parsing.
- Added support for left-recursion.