- | Parse a comment.
--
-- > \/\* [^*]*\*+ ([^/*][^*]*\*+)* \/
--
-- A comment starts with \/* and ends with *\/ and may contain
-- anything except for the sequence \"*\/\" (which would end the
-- comment early and leave a stranded comment tail). No nested
-- comments. Parsing will fail if there are nested comments.
--
-- Comments may appear anywhere outside of other tokens. This means
-- that a \/* ... *\/ sequence may appear within a token and must not
-- be interpreted as a comment. Because of this, removeing comments
-- with a preprocessor is difficult.
comment :: Parser String
comment = (do a <- (string "/*")
              b <- manyTill anyChar (try (string "*/"))
              return $ (a ++ b ++ "*/")) <?> "comment"

comment :: Parser String
comment = (do a <- (string "/*")
              b <- manyTill anyChar (try (string "*/"))
              return $ (a ++ b ++ "*/")) <?> "comment"
comment = (do a <- (string "/*")
              b <- manyTill anyChar (try (string "*/"))
              return $ (a ++ b ++ "*/")) <?> "comment"