HORIZON HASKELLDocslts/ghc-9.10.x248f8f02026-10-05Search names, modules, packages, or :: a typeCtrl K

GHC 9.10.3 · lts/ghc-9.10.x · 248f8f0 · 2026-10-05

Modulecassava-0.5.3.2Haskell2010

Data.Csv.Parser

A CSV parser. The parser defined here is RFC 4180 compliant, with the following extensions:

  • Empty lines are ignored.

  • Non-escaped fields may contain any characters except double-quotes, commas, carriage returns, and newlines.

  • Escaped fields may contain any characters (but double-quotes need to be escaped).

The functions in this module can be used to implement e.g. a resumable parser that is fed input incrementally.

  • 1 type
  • 7 values
  • Packagecassava-0.5.3.2
  • Exports8
  • LanguageHaskell2010
  • LicenceBSD-3-Clause
  • SourceParser.hs
datadata DecodeOptions
#

Options that controls how data is decoded. These options can be used to e.g. decode tab-separated data instead of comma-separated data.

To avoid having your program stop compiling when new fields are added to DecodeOptions, create option records by overriding values in defaultDecodeOptions. Example:

myOptions = defaultDecodeOptions {
      decDelimiter = fromIntegral (ord '\t')
    }

Constructors

Instances2Eq, Show
valuerecord
  1. :: Word8

    Field delimiter

  2. -> Parser Record
#

Parse a record, not including the terminating line separator. The terminating line separate is not included as the last record in a CSV file is allowed to not have a terminating line separator. You most likely want to use the endOfLine parser in combination with this parser.

valuefield :: Word8 -> Parser Field
#

Parse a field. The field may be in either the escaped or non-escaped format. The return value is unescaped.