[Document recent changes. Malcolm.Wallace@cs.york.ac.uk**20090304132407] { hunk ./docs/changelog.html 15 + +

Changes in polyparse-1.2

+

+

hunk ./docs/index.html 34 -
  • Text.ParserCombinators.HuttonMeijer The most venerable of all - monadic parser combinator libraries, this version dates from 1996. - Originally distributed with Gofer, then Hugs, as ParseLib. It uses - the idea of "failure as a list of successes" to give multiple - possible parses through backtracking. (But in practice, almost - nobody wants any parse except the first complete one.) -
  • Text.ParserCombinators.HuttonMeijerWallace The - Hutton/Meijer combinators, extended to take an arbitrary token type - as input (not just characters), plus a running state (e.g. to - collect a symbol table, or macros), plus some facilities for - simple error-reporting. +
  • Text.Parse The Text.Read class from Haskell'98 is widely + recognised to have many problems. It is inefficient. If a read + fails, there is no indication of why. Worst of all, a read failure + crashes your whole program! Text.Parse is a proposed replacement + for the Read class. It defines a new class, Parse, with methods + that return an explicit notification of errors, through the Either + type. It also defines a number of useful helper functions to + enable the construction of parsers for textual representations of + Haskell data structures, e.g. named fields. Unsurprisingly, + Text.Parse is really just a specialisation of the Poly combinators + for String input, and the entire Poly API is also re-exported. + The DrIFT + tool can derive instances of the Parse class for you + automatically. (Use the syntax {-! derive : Parse !-}) hunk ./docs/index.html 49 + Currently re-exports Text.ParserCombinators.Poly.Plain. hunk ./docs/index.html 52 - lexical analysis within the parser itself. This is a fresh + lexical analysis within the parser itself. +
  • Text.ParserCombinators.Poly.Plain This is a fresh hunk ./docs/index.html 64 -
  • Text.ParserCombinators.PolyState is just like Poly, except it +
  • Text.ParserCombinators.Poly.State is just like Poly, except it hunk ./docs/index.html 66 -
  • Text.ParserCombinators.PolyLazy is just like Poly, except it +
  • Text.ParserCombinators.Poly.Lazy is just like Poly, except it hunk ./docs/index.html 77 -
  • Text.ParserCombinators.PolyStateLazy combines PolyState and - PolyLazy. +
  • Text.ParserCombinators.Poly.StateLazy combines Poly.State and + Poly.Lazy. hunk ./docs/index.html 80 - Following on from the basic Poly combinators, it became clear that - all of the variations share a lot in common, and that many of the + All of the Poly variations (Plain, Lazy, State, etc) + share a lot in common: many of the hunk ./docs/index.html 83 - duplication in the library, we now provide a class-based interface + duplication in the library, we provide a class-based interface hunk ./docs/index.html 86 - hierarchy (e.g. T.P.Poly.Lazy etc). -
  • Text.ParserCombinators.Poly.Plain - The class instance for ordinary, strict, parsers, with arbitrary - token type. -
  • Text.ParserCombinators.Poly.Lazy - The class instance for lazy parsers, with arbitrary token type. -
  • Text.ParserCombinators.Poly.State - The class instance for strict parsers, with arbitrary token type - and running state. -
  • Text.ParserCombinators.Poly.StateLazy - The class instance for lazy parsers, with arbitrary token type - and running state. -
  • Text.ParserCombinators.Poly.Stream - The class instance for strict parsers, where input tokens arrive - in a Stream datatype rather than a list. -
  • Text.ParserCombinators.Poly.NoLeak.Plain - An experimental implementation of strict parsers, attempting to - avoid a particular space leak associated with the choice - combinator. -
  • Text.ParserCombinators.Poly.NoLeak.Lazy -
  • Text.ParserCombinators.Poly.NoLeak.State -
  • Text.ParserCombinators.Poly.NoLeak.StateLazy -
  • Text.Parse The Text.Read class from Haskell'98 is widely - recognised to have many problems. It is inefficient. If a read - fails, there is no indication of why. Worst of all, a read failure - crashes your whole program! Text.Parse is a proposed replacement - for the Read class. It defines a new class, Parse, with methods - that return an explicit notification of errors, through the Either - type. It also defines a number of useful helper functions to - enable the construction of parsers for textual representations of - Haskell data structures, e.g. named fields. Unsurprisingly, - Text.Parse is really just a specialisation of the Poly combinators - for String input, and the entire Poly API is also re-exported. - The DrIFT - tool can derive instances of the Parse class for you - automatically. (Use the syntax {-! derive : Parse !-}) + hierarchy (e.g. T.P.Poly.Lazy etc). Every individual variation + re-exports these base combinators, so there should be no need to + import this module directly. +
  • Text.ParserCombinators.HuttonMeijer The most venerable of all + monadic parser combinator libraries, this version dates from 1996. + Originally distributed with Gofer, then Hugs, as ParseLib. It uses + the idea of "failure as a list of successes" to give multiple + possible parses through backtracking. (But in practice, almost + nobody wants any parse except the first complete one.) +
  • Text.ParserCombinators.HuttonMeijerWallace The + Hutton/Meijer combinators, extended to take an arbitrary token type + as input (not just characters), plus a running state (e.g. to + collect a symbol table, or macros), plus some facilities for + simple error-reporting. hunk ./docs/index.html 164 -polyparse-1.1, release date 2007.10.23
    +polyparse-1.2, release date 2009.03.04
    hunk ./docs/index.html 166 -.tar.gz, -.zip. +.tar.gz, +.zip. hunk ./docs/index.html 175 +polyparse-1.1, release date 2007.10.23
    +By HTTP: +.tar.gz, +.zip. +
    hunk ./docs/index.html 185 -By FTP: +All older versions by FTP: hunk ./docs/index.html 218 +

    +Version 1.2 improves the Text.Parse implementation significantly. Where +previously all the parsers for builtin basic datatype (Int,Float,Char) +were just thin wrappers over the H'98 Read instances, now they are all +proper parsers, therefore they should (a) be faster; (b) give better +error messages. + }