literate scripts.

Immanuel Litzroth immanuell@enfocus.be
06 Aug 2003 13:04:15 +0200


>>>>> "Malcolm" == Malcolm Wallace <Malcolm.Wallace@cs.york.ac.uk> writes:

    Malcolm> Immanuel Litzroth <immanuell@enfocus.be> writes:
    >> I have a small question relating to literate haskell programs
    >> that use the \begin{code} \end{code} style. Am I correct to
    >> assume that \end{code} inside a string should be recognized as
    >> being inside a string. The report seems to say this, but the
    >> unlit that is distributed with ghc doesn't grok this. Has
    >> anyone written an Unlit module in Haskell?

    Malcolm> I have attached the Unlit.hs module from the nhc98
    Malcolm> compiler, based on the original specification in the the
    Malcolm> Haskell 1.2 Report.  Use the exported function unlit ::
    Malcolm> String -> String -> String whose first argument is the
    Malcolm> filename (for error messages), the second argument is the
    Malcolm> file content, and whose result is the un-literated file.

thanks for your code. Perhaps I was not completely clear in my
question: I specifically want to know if unliterating should include
lexing so that it recognizes strings (comments) or if it can be a
separate phase. The following compiles without problems in ghc.

\begin{code}
main :: IO ()
main =  putStr "
\end{code}
" 
\begin{code}
"
\end{code}

The report says
 Program code ends just before a subsequent line that begins
 \end{code} (ignoring string literals, of course). 

I was writing an unlit module to toy around with the
Language.Haskell.* stuff when I started wondering about this. 
Immanuel


-- 
***************************************************************************
It makes me uncomfortable to see
An English spinster of the middle class
Describe the amorous effects of `brass',
Reveal so frankly and with such sobriety
The economic basis of society.
W.H. Auden

--
Immanuel Litzroth
Software Development Engineer
Enfocus Software
Kleindokkaai 3-5
B-9000 Gent
Belgium
Voice: +32 9 269 23 90
Fax : +32 9 269 16 91
Email: Immanuell@enfocus.be
web : www.enfocus.be
***************************************************************************