# The Encode package

[ Tags: codec, gpl, library, program, text ] [ Propose Tags ]

The Encode library provides a unified interface for converting strings from different encodings into a common representation, and vice versa. This representation is isomorphic to the Unicode character set, and the encodings can be both standard and user-defined. For this purpose, the Encode module defines the Encode.UPoint data type and the Encode.Encoding type class with the encode and decode methods.

The Encode library is being proposed as a Haskell analogy to the Encode extension in Perl, http://search.cpan.org/dist/Encode/.

The Exec.Encode.Main and Exec.Decode.Main programs mimick the fuction calls to encode and decode, respectively, with the following usage of the executables:

   decode ArabTeX < decode.d | encode Buckwalter > encode.d

decode MacArabic < data.MacArabic > data.UTF8

encode WinArabic < data.UTF8 > data.WinArabic

The installation instructions are given in INSTALL. For the list of supported encoding schemes, please refer to Encode and the source files of the programs. With the executables, the naming of encodings is case-insensitive and some further options are allowed:

 encode|decode [--OPTIONS] [ENCODING]
-h       --help         show usage information
-l       --lines        use line-oriented mode
-p text  --prefix=text  prefix input with text
-s text  --suffix=text  suffix input with text
-v       --version      show program's version

The PureFP library is an edited excerpt from the Functional Parsing library developed by Peter Ljunglöf in his licenciate thesis /Pure Functional Parsing – an advanced tutorial/, Göteborg University and Chalmers University of Technology, April 2002, http://www.ling.gu.se/~peb/software.html.

The Parsek library is included for experimental purposes and subsumes PureFP.Parsers.Stream. Parsek was developed by Koen Claessen in his functional pearl article /Parallel Parsing Processes/, Journal of Functional Programming, 14(6), 741–757, Cambridge University Press, 2004, http://www.cs.chalmers.se/~koen/pubs/entry-jfp04-parser.html

The Version library is just a simple support for working with the CVS/SVN revision keyword.