Class ParserExtensions
Extension methods for running parsers
Namespace: Pidgin
Assembly: Pidgin.dll
Syntax
public static class ParserExtensions : object
Methods
| Improve this Doc View SourceParse<T>(Parser<Byte, T>, Stream, Func<Byte, SourcePos, SourcePos>)
Applies parser to input.
Note that more characters may be consumed from input than were required for parsing.
You may need to manually rewind input
Declaration
public static Result<byte, T> Parse<T>(this Parser<byte, T> parser, Stream input, Func<byte, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<Byte, T> | parser | A parser |
| Stream | input | An input stream |
| Func<Byte, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<Byte, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| T |
Parse<T>(Parser<Char, T>, String, Func<Char, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<char, T> Parse<T>(this Parser<char, T> parser, string input, Func<char, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<Char, T> | parser | A parser |
| String | input | An input string |
| Func<Char, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<Char, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| T |
Parse<T>(Parser<Char, T>, TextReader, Func<Char, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<char, T> Parse<T>(this Parser<char, T> parser, TextReader input, Func<char, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<Char, T> | parser | A parser |
| TextReader | input | An input reader |
| Func<Char, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<Char, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| T |
Parse<TToken, T>(Parser<TToken, T>, TToken[], Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<TToken, T> Parse<TToken, T>(this Parser<TToken, T> parser, TToken[] input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| TToken[] | input | An input array |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<TToken, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Parse<TToken, T>(Parser<TToken, T>, IEnumerable<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<TToken, T> Parse<TToken, T>(this Parser<TToken, T> parser, IEnumerable<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IEnumerable<TToken> | input | An input enumerable |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<TToken, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Parse<TToken, T>(Parser<TToken, T>, IEnumerator<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<TToken, T> Parse<TToken, T>(this Parser<TToken, T> parser, IEnumerator<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IEnumerator<TToken> | input | An input enumerator |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<TToken, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Parse<TToken, T>(Parser<TToken, T>, IList<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<TToken, T> Parse<TToken, T>(this Parser<TToken, T> parser, IList<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IList<TToken> | input | An input list |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<TToken, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Parse<TToken, T>(Parser<TToken, T>, ReadOnlySpan<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<TToken, T> Parse<TToken, T>(this Parser<TToken, T> parser, ReadOnlySpan<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| ReadOnlySpan<TToken> | input | An input span |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<TToken, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
ParseOrThrow<T>(Parser<Byte, T>, Stream, Func<Byte, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<T>(this Parser<byte, T> parser, Stream input, Func<byte, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<Byte, T> | parser | A parser |
| Stream | input | An input stream |
| Func<Byte, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<T>(Parser<Char, T>, String, Func<Char, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<T>(this Parser<char, T> parser, string input, Func<char, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<Char, T> | parser | A parser |
| String | input | An input string |
| Func<Char, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<T>(Parser<Char, T>, TextReader, Func<Char, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<T>(this Parser<char, T> parser, TextReader input, Func<char, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<Char, T> | parser | A parser |
| TextReader | input | An input reader |
| Func<Char, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<TToken, T>(Parser<TToken, T>, TToken[], Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<TToken, T>(this Parser<TToken, T> parser, TToken[] input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| TToken[] | input | An input array |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<TToken, T>(Parser<TToken, T>, IEnumerable<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<TToken, T>(this Parser<TToken, T> parser, IEnumerable<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IEnumerable<TToken> | input | An input enumerable |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<TToken, T>(Parser<TToken, T>, IEnumerator<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<TToken, T>(this Parser<TToken, T> parser, IEnumerator<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IEnumerator<TToken> | input | An input enumerator |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<TToken, T>(Parser<TToken, T>, IList<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<TToken, T>(this Parser<TToken, T> parser, IList<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IList<TToken> | input | An input list |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseOrThrow<TToken, T>(Parser<TToken, T>, ReadOnlySpan<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseOrThrow<TToken, T>(this Parser<TToken, T> parser, ReadOnlySpan<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| ReadOnlySpan<TToken> | input | An input span |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |
ParseReadOnlyList<TToken, T>(Parser<TToken, T>, IReadOnlyList<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static Result<TToken, T> ParseReadOnlyList<TToken, T>(this Parser<TToken, T> parser, IReadOnlyList<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IReadOnlyList<TToken> | input | An input list |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| Result<TToken, T> | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
ParseReadOnlyListOrThrow<TToken, T>(Parser<TToken, T>, IReadOnlyList<TToken>, Func<TToken, SourcePos, SourcePos>)
Applies parser to input
Declaration
public static T ParseReadOnlyListOrThrow<TToken, T>(this Parser<TToken, T> parser, IReadOnlyList<TToken> input, Func<TToken, SourcePos, SourcePos> calculatePos = null)
Parameters
| Type | Name | Description |
|---|---|---|
| Parser<TToken, T> | parser | A parser |
| IReadOnlyList<TToken> | input | An input list |
| Func<TToken, SourcePos, SourcePos> | calculatePos | A function to calculate the new position after consuming a token, or null to use the default |
Returns
| Type | Description |
|---|---|
| T | The result of parsing |
Type Parameters
| Name | Description |
|---|---|
| TToken | |
| T |
Exceptions
| Type | Condition |
|---|---|
| ParseException | Thrown when an error occurs during parsing |