--- factorcss/CSS.hs 2004/12/19 22:10:41 61 +++ factorcss/CSS.hs 2004/12/27 19:11:07 62 @@ -62,6 +62,19 @@ deriving Show +is_ruleset :: Statement -> Bool +is_ruleset (Ruleset sels decls) = True +is_ruleset _ = False + +is_media :: Statement -> Bool +is_media (Media media stmts) = True +is_media _ = False + +is_page :: Statement -> Bool +is_page (Page page decls) = True +is_page _ = False + + show_stylesheet :: Stylesheet -> [String] show_stylesheet (Stylesheet c is ss) = show_charset c ++ map show_import (reverse is) ++ @@ -77,12 +90,20 @@ show_statement :: Statement -> String show_statement (Ruleset ss ds) = - (concat . intersperse ", " . map show_selector) ss ++ + show_selectors ss ++ " { " ++ (concat . intersperse "; " . map show_declaration) ds ++ " }" +show_statement (Media media stmts) = + "@media " ++ (concat . intersperse ", ") media ++ + " {\n" ++ + (unlines . map ('\t':) . map show_statement) stmts ++ + "}" show_statement z = "(statement)" +show_selectors :: [Selector] -> String +show_selectors = concat . intersperse ", " . map show_selector + show_selector :: Selector -> String show_selector [] = "" show_selector ((ss, c):zs) = show_simple_selector ss ++