literate scripts.
Malcolm Wallace
Malcolm.Wallace@cs.york.ac.uk
Wed, 6 Aug 2003 12:23:55 +0100
Immanuel Litzroth <immanuell@enfocus.be> writes:
> 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}
Ghc should not accept this code, because, no matter how the unliterating
is achieved, it is illegal for a literal string to contain a literal newline
character. (You must use '\n' for the character, and/or string-gaps if your
intention is to make the layout more readable.)
> The report says
> Program code ends just before a subsequent line that begins
> \end{code} (ignoring string literals, of course).
Certainly if the unliteration spec in the Haskell 1.2 Report is still
valid (?) I believe the intention is that all unliteration is done
in a line-by-line manner before any interpretation of the "code" text.
Therefore, the unliteration engine does not need to lex the program
code at all.
Regards,
Malcolm