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 |