diff --git a/docs/advanced-features.md b/docs/advanced-features.md index 02d5c519..fa2d3da5 100644 --- a/docs/advanced-features.md +++ b/docs/advanced-features.md @@ -1,3 +1,9 @@ +--- +category: Advanced +categoryindex: 2 +index: 1 +description: Advanced features of Farkle, applicable to less common scenarios. +--- # Advanced features Farkle has a couple of features that were not covered in other guides because they are less likely to be useful. In this guide, we will take a look at some of these features that truly push Farkle's capabilities to the fullest. So, are you ready? Let's do this! diff --git a/docs/choosing-a-parser.md b/docs/choosing-a-parser.md index baa0c299..1bd3caac 100644 --- a/docs/choosing-a-parser.md +++ b/docs/choosing-a-parser.md @@ -1,3 +1,9 @@ +--- +category: Documentation +categoryindex: 1 +index: 3 +description: A guide comparing Farkle with other parsing libraries for F#. +--- # Choosing a parser for your .NET project Besides Farkle, there are many other general-purpose parsing projects for the .NET ecosystem. Farkle's main competitors are FsLexYacc and FParsec to a lesser degree. In this guide we will examine the strengths and weaknesses of each parser library and help you decide which one to use for your next project. So, are you ready? Let's do this! diff --git a/docs/csharp.md b/docs/csharp.md index f991f9b7..569efd93 100644 --- a/docs/csharp.md +++ b/docs/csharp.md @@ -1,3 +1,9 @@ +--- +category: Documentation +categoryindex: 1 +index: 2 +description: A guide on how to use Farkle from C#. +--- # Using Farkle from C\# Farkle is a library written in F#, but supporting the much more used C# is a valuable feature. Because these two languages are quite different, there is a more idiomatic API for C# users. In this tutorial, we will assume that you have read [the F# quickstart guide][fsharp]. diff --git a/docs/diagnostics/FARKLE0001.md b/docs/diagnostics/FARKLE0001.md index 8b578cdb..1cac1597 100644 --- a/docs/diagnostics/FARKLE0001.md +++ b/docs/diagnostics/FARKLE0001.md @@ -1,3 +1,8 @@ +--- +category: Diagnostic codes +categoryindex: 3 +description: FARKLE0001: DFA exceeds maximum number of states +--- ## FARKLE0001: DFA exceeds maximum number of states Certain regular expressions can result in a DFA that has a disproportionately large number of states. For example the regex `[ab]*a[ab]{32}` will result in a DFA with billions of states. In previous versions of Farkle, such regexes would cause the builder to consume large amounts of memory. Starting with Farkle 7 there is a limit on the number of states that a DFA can have. This error is emitted when that limit is reached, in which case no DFA gets built. diff --git a/docs/diagnostics/FARKLE0002.md b/docs/diagnostics/FARKLE0002.md index d8736e62..349e5010 100644 --- a/docs/diagnostics/FARKLE0002.md +++ b/docs/diagnostics/FARKLE0002.md @@ -1,4 +1,9 @@ -## FARKLE0002: Cannot distinguish between symbols +--- +category: Diagnostic codes +categoryindex: 3 +description: FARKLE0002: Cannot distinguish between symbols +--- +## FARKLKE0002: Cannot distinguish between symbols This error is emitted when the builder detects that two or more symbols cannot always be distinguished from each other because there is a string that matches all of them. For example, the regexes `ab*` and `a+` cannot be distinguished from each other because the string `a` matches both of them. diff --git a/docs/diagnostics/FARKLE0003.md b/docs/diagnostics/FARKLE0003.md index 80c82e06..f01f9386 100644 --- a/docs/diagnostics/FARKLE0003.md +++ b/docs/diagnostics/FARKLE0003.md @@ -1,3 +1,8 @@ +--- +category: Diagnostic codes +categoryindex: 3 +description: FARKLE0003: Regex cannot be matched by any character +--- ## FARKLE0003: Regex cannot be matched by any character This warning is emitted when the builder detects that a regex or a part of it cannot be matched by any character. diff --git a/docs/quickstart.fsx b/docs/quickstart.fsx index c1fe9891..9be57ff4 100644 --- a/docs/quickstart.fsx +++ b/docs/quickstart.fsx @@ -1,3 +1,11 @@ +(** +--- +category: Documentation +categoryindex: 1 +index: 1 +description: A quick start guide to Farkle. +--- +*) (*** hide ***) #r "nuget: Farkle, 6.5.1" diff --git a/docs/string-regexes.md b/docs/string-regexes.md index f0485645..2eb2e9af 100644 --- a/docs/string-regexes.md +++ b/docs/string-regexes.md @@ -1,3 +1,9 @@ +--- +category: Documentation +categoryindex: 1 +index: 4 +description: A reference on Farkle's string regex language. +--- # Farkle's string regexes In Farkle, terminals are defined by regular expressions or _regexes_. Defining a non-trivial regex used to take several lines of code like this example of a number with an optional sign at the beginning: diff --git a/docs/templates.md b/docs/templates.md index 99686dfd..52cbcff5 100644 --- a/docs/templates.md +++ b/docs/templates.md @@ -1,3 +1,9 @@ +--- +category: Advanced +categoryindex: 2 +index: 2 +description: A guide on how to create and use templates with Farkle. +--- # Templating Reference Farkle comes with a templating system which further helps developers work with the grammars they create. This system is a more powerful edition of both GOLD Parser's ["Create Webpage"][gold-webpage] and ["Create Skeleton Program"][gold-skeleton] tools. In this guide, we will first see how to create an HTML page describing our grammar, and next we will see how to create our own templates. So, are you ready? Let's do this! diff --git a/docs/the-precompiler.fsx b/docs/the-precompiler.fsx index c3cba53e..f62f375f 100644 --- a/docs/the-precompiler.fsx +++ b/docs/the-precompiler.fsx @@ -1,3 +1,11 @@ +(** +--- +category: Documentation +categoryindex: 1 +index: 5 +description: A guide on how to use Farkle's precompiler. +--- +*) (*** hide ***) #r "nuget: Farkle, 6.5.1"