ANN: cpphs-0.1 (was: #ifdef considered harmful)

Graham Klyne GK at ninebynine.org
Wed Apr 7 21:59:54 EDT 2004


At 18:11 07/04/04 +0100, Malcolm Wallace wrote:
>I wrote:
> > >                         Half of the cpp parsing/selection code is
> > > already available within hmake.  I would take on the project myself,
> > > if I had time.
>
>OK, that was a fatal statement on my part I fear....  I have hacked
>on the hmake code a bit today, and can now announce the first release of:

I just checked it out with Hugs under Windows, and it seems (mostly) OK.

The only oddity I noticed was an extra '/' in a #line directive for an 
included file:
[[
#line 1 "tests//inclusion"
hello world, this is an inclusion
#line 21 "tests/testfile"
]]
-- http://www.ninebynine.org/Software/HaskellUtils/cpphs/tests/expectfile3

...

I've hacked the main program module to include an HUnit test based on your 
test files, which can be run interactively from Hugs, thus:
[[
Main> run allTests
Cases: 3  Tried: 3  Errors: 0  Failures: 0

Main>
]]

The main program function itself is not affected (though I've split it into 
two parts).

The modifications are available here:
   http://www.ninebynine.org/Software/HaskellUtils/cpphs/cpphs.hs

(The unit tests could easily enough be split into a separate file)

The tests directory also contains 3 additional files with the expected 
results of the three test cases created:

http://www.ninebynine.org/Software/HaskellUtils/cpphs/tests/

(resultfile is a temporary file created by the test case logic.)

#g


------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact



More information about the Libraries mailing list