Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mwotton/ctkl


https://github.com/mwotton/ctkl

Last synced: 12 days ago
JSON representation

Awesome Lists containing this project

README

        

Compiler Toolkit - Light -*-text-*-
========================

Contents:

README.CTKlight -- This file
LICENSE.LIB -- GNU Library General Public License (LGPL)
BaseVersion.hs -- Version, copyright, and disclaimer
Config.hs -- Configuration module
Common.hs -- Basic definitions, such as representation of positions
DLists.hs -- Difference lists - provide O(1) append
Errors.hs -- Types and functions for error handling
FNameOps.hs -- Common operations on file names
FiniteMaps.hs -- Finite maps based on 2-3 trees
GetOpt.hs -- Sven Panne's Haskell version of the GNU getopt library
Lexers.hs -- Self-optimising lexer combinators
Parsers.hs -- Self-optimising parser combinators
Pretty.hs -- Pretty printing combinators (the interface is essentially
a superset of SimonPJ's pretty printing library)
Sets.hs -- Sets as an instance of the above mentioned finite maps
Utils.hs -- Utility routines

The Compiler Toolkit Light (CTKlight) is a subset of the Compiler Toolkit
(CTK) - an infrastructure for writing compilers in Haskell. CTKlight
essentially provides support for implementing syntactical analysis without the
more heavy-weight state management (like compiler switches, global error pool,
and exceptions), identifier and attribute management, and various other
utilities included in the full CTK. Both packages can be obtained from

http://www.cse.unsw.edu.au/~chak/ctk/

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- BUILDING -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

In contrast to full CTK, CTKlight is simply a set of Haskell modules without
any complicated makefile structure. The code is Haskell 98 compliant with the
exception that `Parser.hs' makes use of existentially quantified type
variables - unfortunately, I do not believe that the same method of
self-optimisation would work without existential types.

The modules are tested with

* GHC 4.02 and upwards (use `-fglasgow-exts' to compile `Parsers.hs') and
* Hugs98 (use `-98' when using `Parsers.hs').

If you want autoconf, a ready-made makefile structure, and much more
additional library functionality, then use full CTK.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- COPYLEFT -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

This library is free software; you can redistribute it and/or modify it under
the terms of the GNU Library General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option) any
later version.

This library is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
details.

You should have received a copy of the GNU Library General Public License
along with this system; if not, write to the Free Software Foundation, Inc.,
675 Mass Ave, Cambridge, MA 02139, USA.

Note: In essence this means that you can use this library in any program
whether it is free or proprietary. However, if you modify or extend the
library itself, you are bound to distribute these modifications or
extensions according to the terms and conditions of the LGPL. For
details consult the license itself, which is located in the file
`LICENSE.LIB'.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- CREDITS -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Author & Maintainer: Manuel M. T. Chakravarty

Thanks to Simon L. Peyton Jones and Roman Lechtchinsky
for their helpful suggestions that improved the
design and implementation of the `Lexers' module.