module HJS.Parser.Utils where processComments str = processComments' str 0 processComments' str flg = case str of ('/':'/':rs) -> let flg' = if flg == 0 then 1 else flg in (' ':' ':processComments' rs flg') ('/':'*':rs) -> (' ':' ':processComments' rs 2) ('*':'/':rs) -> (' ':' ':processComments' rs 0) ('\n':rs) -> let flg' = if flg == 1 then 0 else flg in ('\n':processComments' rs flg') (c:cs) -> if flg /= 0 then (' ':processComments' cs flg) else (c:processComments' cs flg) [] -> [] doit = do s <- readFile "c:/Mark/MyDevelopments/haskell/HJS/hjs-0.2/testsuite/parsingonly/5_comments.js" putStrLn $ processComments s