Text.ParserCombinators.Incremental.Symmetric

incremental-parser-0.2.4.1: Generic parser library capable of providing partial results from partial input.

Safe Haskell | Safe
Language | Haskell2010

Text.ParserCombinators.Incremental.Symmetric

Description

This module defines parsing combinators for incremental parsers with symmetric choice.

The exported `Parser` type can provide partial parsing results from partial input, as long as the output is a `Monoid`. Construct a parser using the primitives and combinators, supply it with input using functions `feed` and `feedEof`, and extract the parsed output using `results`.

Implementation is based on Brzozowski derivatives.

Synopsis

- module Text.ParserCombinators.Incremental
- type Parser s r = Parser Symmetric s r
- data Symmetric
- allOf :: Parser s r -> Parser a s r

# Documentation

module Text.ParserCombinators.Incremental

type Parser s r = Parser Symmetric s r #

data Symmetric #

An empty type to specialize `Parser` for the symmetric `Alternative` instance.

Instances

Monoid s => Alternative (Parser Symmetric s) # | The symmetric version of the `<|>` choice combinator.
Methods empty :: Parser Symmetric s a # (<|>) :: Parser Symmetric s a -> Parser Symmetric s a -> Parser Symmetric s a # some :: Parser Symmetric s a -> Parser Symmetric s [a] # many :: Parser Symmetric s a -> Parser Symmetric s [a] #
Monoid s => MonadPlus (Parser Symmetric s) # | The `MonadPlus` instances are the same as the `Alternative` instances.
Methods mzero :: Parser Symmetric s a # mplus :: Parser Symmetric s a -> Parser Symmetric s a -> Parser Symmetric s a #

allOf :: Parser s r -> Parser a s r #