Haskell Utilities

This little package contains two simple programs based on the Haskell lexer developed as part of the Programatica project: For more info, see the README file. The source code can be browsed below, or downloaded from hsutils-1.2.tar.gz.
Icon  Name                    Last modified      Size  
[PARENTDIR] Parent Directory - [TXT] L.hs 2003-10-07 02:03 1.7K [   ] LICENSE 2003-10-08 00:14 1.6K [DIR] Lexer/ 2003-10-09 01:27 - [   ] Makefile 2003-10-09 01:26 824 [   ] README 2003-12-16 17:36 2.2K [TXT] README.txt 2003-12-16 17:36 2.2K [TXT] StripComments.hs 2003-10-07 21:56 516 [TXT] Unlit.hs 2002-03-19 07:50 3.8K [   ] hsutils-1.2.tar.gz 2003-10-09 01:27 15K [TXT] layout.hs 2003-10-07 21:55 781 [TXT] stripcomments.hs 2002-03-19 07:50 456 [TXT] stripcomments0.hs 2002-03-19 07:50 267


stripcomments - strip blank lines and comments from Haskell files. layout - simple conversion of layout to explicit braces and semicolons


	stripcomments file_1 ... file_n
	layout file_1 ... file_n


stripcomments reads Haskell files named on the command line and strips away comments and blank lines. Layout and syntactic correctness is preserved. The result is sent to the standard output.

layout reads Haskell files named on the command line and outputs them on stdout with the braces and semicolons implied by layout made explicit. Comments and white space is preserved. (See also limitations below.) Files whose names end with '.lhs' are assumed to contain literate style Haskell, other files are assumed to contain plain Haskell.


	cp stripcomments /usr/local/bin     # or some other suitable directory
	cp layout /usr/local/bin	    # or some other suitable directory


The Makefile assumes that a version of GHC that supports --make is installed. GHC 5.02 or later is recommended. Be prepared that Lexer/HsLex.hs takes a long time to compile.

The programs are implemented in pure Haskell 98, and can also be loaded in Hugs 98.


The program layout does not support full Haskell 98 layout: it does not implement the part that requires interaction with the parser. For example, the program will not correctly translate
	let x=1 in x+x
but will correctly translate
	let x=1
	in x+x
Also, the program layout handles literate style Haskell files by converting literate comments to ordinary nested comments. This can result in incorrect code when literate comments contain "{-" or "-}".




Thomas Hallgren   http://ogi.altocumulus.org/~hallgren/

OGI School of Science & Engineering
Oregon Health & Science University