@hackage uu-tc-error0.2.0.0

Haskell 98 parser combintors for INFOB3TC at Utrecht University

  • Installation

  • Dependencies (2)

    • base ^>=4.12.0.0 || ^>=4.13.0.0 || ^>=4.14.0.0 || ^>=4.15.0.0 || ^>=4.16.0.0 || ^>=4.17.0.0 || ^>=4.18.0.0 || ^>=4.19.0.0
    • uu-tc-error-error ^>=0.1.0.0
    • Show all…
  • Dependents (0)

This library tries to be a drop in replacement for uu-tc that provides error messages. However, we could not avoid additional type class constraints on parse. Notice that you might need to add Ord and Show constraints to your own functions and ensure your own data types are deriving (Ord, Show).

If you are only interested in full parses of some parser p, enforce full parses on the Parser level using the ParseLib.Abstract.Derived.eof combinator as in parse (p <* eof) input. This ensures error reporting.

We highly recommend using parseImproved instead of parse. Please look at parseImproved's documentation in the ParseLib.Abstract.Core module.

Report bugs to gitlab or p.rednaz@googlemail.com, please.

uu-tc generates no error messages at all. Here is an example of an error messages generated by this library when I made a mistake writing a lexer.

input:3:8:
  |
3 | PRODID:-//hacksw/handcal//NONSGML v1.0//EN
  |        ^^^^^^^^^^^
unexpected "-//hacksw/h"
expecting "2.0", "BEGIN", "DESCRIPTION", "DTEND", "DTSTAMP", "DTSTART", "END", "LOCATION", "PRODID", "SUMMARY", "UID", "VCALENDAR", "VERSION", "VEVENT", ':', crlf newline, or end of input

Description of uu-tc

Course software for INFOB3TC (Languages & Compilers)

This library currently contains two Haskell 98 parser combinator libraries.

  • The default library, available as ParseLib or more explicitly by importing ParseLib.Simple, is the one described in the lecture notes, using a type synonym as the type for parsers.

  • The second library can be chosen by importing ParseLib.Abstract. It defines the same functions as ParseLib.Simple, but keeps the parser type abstract.

In future versions of this package, more libraries with more advanced implementations of parser combinators may be added.