6.7 FParsec.Error
6.7.1 Interface
// FParsec.dll [<AutoOpen>] // module is automatically opened when FParsec namespace is opened module FParsec.Error // The following type abbreviations and active patterns allow you to // treat the ErrorMessage type almost as if it was defined as: // // [<CustomEquality; NoComparison>] // type ErrorMessage = // | Expected of string // | ExpectedString of string // | ExpectedStringCI of string // | Unexpected of string // | UnexpectedString of string // | UnexpectedStringCI of string // | Message of string // | NestedError of Position * obj * ErrorMessageList // | CompoundError of string * Position * obj * ErrorMessageList // | OtherErrorMessage of obj type Expected = ErrorMessage.Expected type ExpectedString = ErrorMessage.ExpectedString type ExpectedStringCI = ErrorMessage.ExpectedCaseInsensitiveString type Unexpected = ErrorMessage.Unexpected type UnexpectedString = ErrorMessage.UnexpectedString type UnexpectedStringCI = ErrorMessage.UnexpectedCaseInsensitiveString type Message = ErrorMessage.Message type NestedError = ErrorMessage.NestedError type CompoundError = ErrorMessage.CompoundError type OtherErrorMessage = ErrorMessage.Other // Unfortunately, F# currently doesn't support active patterns with more // than 7 cases, so we have to use partial patterns. val (|Expected|_|): ErrorMessage -> string option val (|ExpectedString|_|): ErrorMessage -> string option val (|ExpectedStringCI|_|): ErrorMessage -> string option val (|Unexpected|_|): ErrorMessage -> string option val (|UnexpectedString|_|): ErrorMessage -> string option val (|UnexpectedStringCI|_|): ErrorMessage -> string option val (|Message|_|): ErrorMessage -> string option val (|NestedError|_|): ErrorMessage -> (Position * obj * ErrorMessageList) option val (|CompoundError|_|): ErrorMessage -> (string * Position * obj * ErrorMessageList) option val (|OtherErrorMessage|_|): ErrorMessage -> obj option // The following literal definition and active pattern allow you to // treat the ErrorMessageList type as if it was defined as: // // [<CompilationRepresentation(CompilationRepresentationFlags.UseNullAsTrueValue); // CustomEquality; NoComparison>] // type ErrorMessageList = // | AddErrorMessage of ErrorMessage * ErrorMessageList // | NoErrorMessages // with // static member Merge: ErrorMessageList * ErrorMessageList -> ErrorMessageList // static member ToHashSet: ErrorMessageList -> HashSet<ErrorMessage> // static member ToSortedArray: ErrorMessageList -> ErrorMessage[] [<Literal>] val NoErrorMessages: ErrorMessageList = null val (|ErrorMessageList|NoErrorMessages|): ErrorMessageList -> Choice<ErrorMessage*ErrorMessageList,unit> // Helper functions for creating an ErrorMessageList with a single ErrorMessage val expected: string -> ErrorMessageList val expectedStringError: string -> ErrorMessageList val expectedStringCIError: string -> ErrorMessageList val unexpected: string -> ErrorMessageList val unexpectedStringError: string -> ErrorMessageList val unexpectedStringCIError: string -> ErrorMessageList val messageError: string -> ErrorMessageList val otherError: obj -> ErrorMessageList val nestedError: CharStream<_> -> ErrorMessageList -> ErrorMessageList val compoundError: string -> CharStream<_> -> ErrorMessageList -> ErrorMessageList // Two convenient helper functions val mergeErrors: ErrorMessageList -> ErrorMessageList -> ErrorMessageList val isSingleErrorMessageOfType: ErrorMessageType -> ErrorMessageList // A simple container type for holding an ErrorMessageList // together with its associated input stream position and user state [<Sealed>] type ParserError = new: position: Position * userState: obj * messages: ErrorMessageList -> ParserError member Position: Position member UserState: obj member Messages: ErrorMessageList override ToString: unit -> string member ToString: streamWhereErrorOccurred: CharStream -> string member WriteTo: textWriter: System.IO.TextWriter * streamWhereErrorOccurred: CharStream * ?tabSize: int * ?columnWidth: int * ?initialIndentation: string * ?indentationIncrement: string -> unit member WriteTo: textWriter: System.IO.TextWriter * getStream: (position -> CharStream) * ?tabSize: int * ?columnWidth: int * ?initialIndentation: string * ?indentationIncrement: string -> unit member WriteTo: textWriter: System.IO.TextWriter * ?positionPrinter: (System.IO.TextWriter -> Position -> string -> int -> unit) * ?columnWidth: int * ?initialIndentation: string * ?indentationIncrement: string -> unit override Equals: obj -> bool override GetHashCode: unit -> int
6.7.2 Members
val expected: string -> ErrorMessageList
expected label creates an ErrorMessageList with a single Expected label message.
val expectedStringError: string -> ErrorMessageList
expectedStringError str creates an ErrorMessageList with a single ExpectedString str message.
val expectedStringCIError: string -> ErrorMessageList
expectedStringCIError str creates an ErrorMessageList with a single ExpectedStringCI str message.
val unexpected: string -> ErrorMessageList
unexpected label creates an ErrorMessageList with a single Unexpected label message.
val unexpectedStringError: string -> ErrorMessageList
unexpectedStringError str creates an ErrorMessageList with a single UnexpectedString str message.
val unexpectedStringCIError: string -> ErrorMessageList
unexpectedStringCIError str creates an ErrorMessageList with a single UnexpectedStringCI str message.
val messageError: string -> ErrorMessageList
messageError msg creates an ErrorMessageList with a single Message msg message.
val otherError: obj -> ErrorMessageList
otherError o creates an ErrorMessageList with a single OtherError o message.
val nestedError: CharStream<_> -> ErrorMessageList -> ErrorMessageList
nestedError stream msgs creates an ErrorMessageList with a single NestedError(stream.Position, stream.UserState, msgs) message, except if msgs is
already an ErrorMessageList with a single NestedError message, in which case msgs is returned instead.
val compoundError: string -> CharStream<_> -> ErrorMessageList -> ErrorMessageList
compoundError label stream msgs creates an ErrorMessageList with a single CompoundError(label, stream.Position, stream.UserState, msgs) message, except if
msgs is an ErrorMessageList with a single NestedError(pos2, ustate2, msgs2) message, in which case an
ErrorMessageList with a single CompoundError(label, pos2, ustate2, msgs2) message is returned instead.
val mergeErrors: ErrorMessageList -> ErrorMessageList -> ErrorMessageList
mergeErrors error1 error2 is an
abbreviation for ErrorMessageList.Merge(error1, error2).
val isSingleErrorMessageOfType: ErrorMessageType -> ErrorMessageList
isSingleErrorMessageOfType ty msgs
returns true if and only ifmsgs is
an ErrorMessageList with a single ErrorMessage with the ErrorMessageType ty.
[<Sealed>] type ParserError
ParserError is a simple container type for holding an ErrorMessageList together with its associated input stream position and user
state.
The ParserError class has the following members:
new: position: Position * userState: obj * messages: ErrorMessageList -> ParserError
Constructs a ParserError from an ErrorMessageList and its associated position.
member UserState: obj
The user state associated with the parser error.
member Messages: ErrorMessageList
The error messages of the parser error.
override ToString: unit -> string
Is equivalent to
use sw = new System.IO.StringWriter() WriteTo(sw) sw.ToString()
member ToString: streamWhereErrorOccurred: CharStream -> string
Is equivalent to
use sw = new System.IO.StringWriter() WriteTo(sw, streamWhereErrorOccurred) sw.ToString()
member WriteTo: textWriter: System.IO.TextWriter * streamWhereErrorOccurred: CharStream * ?tabSize: int * ?columnWidth: int * ?initialIndentation: string * ?indentationIncrement: string -> unit
member WriteTo: textWriter: System.IO.TextWriter * getStream: (position -> CharStream) * ?tabSize: int * ?columnWidth: int * ?initialIndentation: string * ?indentationIncrement: string -> unit
Writes a string representation of the ParserError to the given TextWriter value.
For each error getStream is called with the error position. The returned CharStream must be null or contain the content of the CharStream for which the error was generated (at the original indices).
If getStream returns a non‐null CharStream, the printed error position information is augmented
with the line of text surrounding the error position, together with a ‘^’‐marker pointing to the exact location of the
error in the input stream.
The tabSize parameter (default value: 8) specifies the tab stop distance that this
method assumes when counting text columns. This parameter only has an effect for error positions where getStream returns a non‐null CharStream.
The columnWidth parameter (default value: 79) specifies the number of char columns
that this method should try to fit its output to.
member WriteTo: textWriter: System.IO.TextWriter * ?positionPrinter: (System.IO.TextWriter -> Position -> string -> int -> unit) * ?columnWidth: int * ?initialIndentation: string * ?indentationIncrement: string -> unit
Writes a string representation of the ParserError to the given TextWriter value.
The format of the position information can be customized by specifying the positionPrinter argument. The given function is expected to print a representation of the passed Position value to the passed TextWriter value. If
possible, it should indent text lines with the passed string and take into account the maximum column count (including indentation)
passed as the last argument.