Commit 9e4bf486 authored by sof's avatar sof
Browse files

[project @ 2001-05-29 01:07:00 by sof]

Deal with nested comments (HDirect sources showed up this bug)
parent 15a7e6ba
----------------------------------------------------------------------------- -----------------------------------------------------------------------------
-- $Id: GetImports.hs,v 1.6 2001/05/01 16:01:06 simonmar Exp $ -- $Id: GetImports.hs,v 1.7 2001/05/29 01:07:00 sof Exp $
-- --
-- GHC Driver program -- GHC Driver program
-- --
...@@ -82,7 +82,7 @@ clean s ...@@ -82,7 +82,7 @@ clean s
keep acc ('\'':cs) = cons acc (squote cs) keep acc ('\'':cs) = cons acc (squote cs)
keep acc ('-':'-':cs) = cons acc (linecomment cs) keep acc ('-':'-':cs) = cons acc (linecomment cs)
keep acc ('{':'-':'#':' ':cs) = cons acc (cons "#-{" (keep "" cs)) keep acc ('{':'-':'#':' ':cs) = cons acc (cons "#-{" (keep "" cs))
keep acc ('{':'-':cs) = cons acc (runcomment cs) -- -} keep acc ('{':'-':cs) = cons acc (runcomment (0::Int) cs) -- -}
keep acc (c:cs) = keep (c:acc) cs keep acc (c:cs) = keep (c:acc) cs
cons [] xs = xs cons [] xs = xs
...@@ -108,6 +108,9 @@ clean s ...@@ -108,6 +108,9 @@ clean s
linecomment (c:cs) = linecomment cs linecomment (c:cs) = linecomment cs
-- in a running comment -- in a running comment
runcomment [] = [] runcomment _ [] = []
runcomment ('-':'}':cs) = keep "" cs runcomment n ('{':'-':cs) = runcomment (n+1) cs -- catches both nested comments and pragmas.
runcomment (c:cs) = runcomment cs runcomment n ('-':'}':cs)
| n == 0 = keep "" cs
| otherwise = runcomment (n-1) cs
runcomment n (c:cs) = runcomment n cs
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment