uu-tc-error: Haskell 98 parser combintors for INFOB3TC at Utrecht University

[ bsd3, library, parsing, text ] [ Propose Tags ] [ Report a vulnerability ]

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 ErrorsPretty constraints to your own functions and ensure your own data types are deriving (Ord, Show). See parse's documentation in the ParseLib.Abstract.Core module too.

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.

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

Here is an example of an error messages generated by this library when I made a mistake writing a parser.

input:10:
  KeyClass
  UpperId "Hello"
  COpen
  KeyVoid
  LowerId "main"
  POpen
  PClose
  COpen
  LowerId "print"
  POpen
> ConstInt 97
  PClose
  Semicolon
  CClose
  CClose
unexpected '(ConstInt 97)'
expecting '(PClose)'

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.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.3.0.0, 0.4.0.0, 0.4.0.1
Dependencies base (>=4.12.0.0 && <4.13 || >=4.13.0.0 && <4.14 || >=4.14.0.0 && <4.15 || >=4.15.0.0 && <4.16 || >=4.16.0.0 && <4.17 || >=4.17.0.0 && <4.18 || >=4.18.0.0 && <4.19 || >=4.19.0.0 && <4.20 || >=4.20.0.0 && <4.21), uu-tc-error-error (>=0.3.0.0 && <0.4) [details]
License BSD-3-Clause
Author Andres Loeh <andres@cs.uu.nl>, Johan Jeuring <johanj@cs.uu.nl>, Doaitse Swierstra <doaitse@cs.uu.nl>, Adolfo Ochagavía <aochagavia92@gmail.com>
Maintainer p.rednaz@googlemail.com
Category Text, Parsing
Home page https://gitlab.com/rdnz/uu-tc-error/-/tree/main/uu-tc-error
Bug tracker https://gitlab.com/rdnz/uu-tc-error/-/issues
Source repo head: git clone https://gitlab.com/rdnz/uu-tc-error.git
Uploaded by rednaZ at 2024-11-18T18:47:43Z
Distributions
Downloads 150 total (40 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2024-11-18 [all 1 reports]