mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-18 01:09:32 -06:00
44 lines
1.1 KiB
Haskell
44 lines
1.1 KiB
Haskell
----------------------------------------------------------------------
|
|
-- |
|
|
-- Module : Comments
|
|
-- Maintainer : (Maintainer)
|
|
-- Stability : (stable)
|
|
-- Portability : (portable)
|
|
--
|
|
-- > CVS $Date: 2005/04/21 16:22:34 $
|
|
-- > CVS $Author: bringert $
|
|
-- > CVS $Revision: 1.5 $
|
|
--
|
|
-- comment removal
|
|
-----------------------------------------------------------------------------
|
|
|
|
module GF.Infra.Comments ( remComments
|
|
) where
|
|
|
|
-- | comment removal : line tails prefixed by -- as well as chunks in @{- ... -}@
|
|
remComments :: String -> String
|
|
remComments s =
|
|
case s of
|
|
'"':s2 -> '"':pass remComments s2 -- comment marks in quotes not removed!
|
|
'{':'-':cs -> readNested cs
|
|
'-':'-':cs -> readTail cs
|
|
c:cs -> c : remComments cs
|
|
[] -> []
|
|
where
|
|
readNested t =
|
|
case t of
|
|
'"':s2 -> '"':pass readNested s2
|
|
'-':'}':cs -> remComments cs
|
|
_:cs -> readNested cs
|
|
[] -> []
|
|
readTail t =
|
|
case t of
|
|
'\n':cs -> '\n':remComments cs
|
|
_:cs -> readTail cs
|
|
[] -> []
|
|
pass f t =
|
|
case t of
|
|
'"':s2 -> '"': f s2
|
|
c:s2 -> c:pass f s2
|
|
_ -> t
|