Module

StringParser.Parser

Package
purescript-string-parsers
Repository
purescript-contrib/purescript-string-parsers

This module defines the Parser type of string parsers, and its instances.

#Pos Source

type Pos = Int

A position in an input string.

#PosString Source

type PosString = { position :: Pos, substring :: String }

Strings are represented as a substring with an index from the start of the string.

{ substring: s, position: n } is interpreted as the substring s starting at index n of the original string.

The position is only kept for error messaging.

#ParseError Source

type ParseError = { error :: String, pos :: Pos }

The type of parsing errors.

#Parser Source

newtype Parser a

A parser is represented as a function that, when successful, returns a result and the position where the parse finished or, when it fails, a ParserError with more information on where and why it failed. See also printParserError.

Constructors

Instances

#unParser Source

unParser :: forall a. Parser a -> PosString -> Either ParseError { result :: a, suffix :: PosString }

Run a parser, allowing the caller to define where to start within the input String and what to do with the unchanged output of the Parser. See runparser for more typical usages.

#runParser Source

runParser :: forall a. Parser a -> String -> Either ParseError a

Run a parser for an input string. See also printParserError and unParser for more flexible usages.

#printParserError Source

printParserError :: ParseError -> String

Prints a ParseError's the error message and the position of the error.

#fail Source

fail :: forall a. String -> Parser a

Fail with the specified message.