module WASHData -- derived from HSPData
( File (..)
, Mode (..)
, Element (..)
, Text (..)
, Content (..)
, CodeFrag (..)
, Attribute (..)
, AttrValue (..)
)
where {
-- Data type.
data File = File {
fcode :: [CodeFrag],
topElem :: Element
} deriving Show;
data Mode = V | S | F
deriving (Eq,Show);
data Element = Element
{ elemMode :: Mode
, elemName :: String
, elemAttrs :: [Attribute]
, elemContent :: [Content]
, elemEmptyTag :: Bool }
deriving Show;
data Text = Text
{ textMode :: Mode
, textString :: String
}
deriving Show;
data Content
= CElement { celem :: Element }
| CText { ctext :: Text }
| CReference { creference :: Text }
| CPI { cpi :: String }
| CComment { ccomment :: String }
| CCode { ccode :: [CodeFrag] }
deriving Show;
data CodeFrag
= HFrag String
| EFrag Element
| HSFrag String
| CFrag [Content]
| AFrag [Attribute]
| VFrag String
deriving Show;
data Attribute
= Attribute
{ attrMode :: Mode
, attrName :: String
, attrValue :: AttrValue }
| AttrPattern
{ attrPattern :: String }
deriving Show;
data AttrValue
= AText String
| ACode String
deriving Show;
data Reference = Reference String deriving Show;
}
|