The central type in TagSoup
- data Tag
- = TagOpen String [Attribute]
- | TagClose String
- | TagText String
- | TagComment String
- | TagWarning String
- | TagPosition !Row !Column
- type Attribute = (String, String)
- type Row = Int
- type Column = Int
- isTagOpen :: Tag -> Bool
- isTagClose :: Tag -> Bool
- isTagText :: Tag -> Bool
- isTagWarning :: Tag -> Bool
- isTagOpenName :: String -> Tag -> Bool
- isTagCloseName :: String -> Tag -> Bool
- fromTagText :: Tag -> String
- fromAttrib :: String -> Tag -> String
- maybeTagText :: Tag -> Maybe String
- maybeTagWarning :: Tag -> Maybe String
- innerText :: [Tag] -> String
Data structures and parsing
TagOpen String [Attribute] | An open tag with |
TagClose String | A closing tag |
TagText String | A text node, guaranteed not to be the empty string |
TagComment String | A comment |
TagWarning String | Meta: Mark a syntax error in the input file |
TagPosition !Row !Column | Meta: The position of a parsed element |
Tag identification
isTagWarning :: Tag -> BoolSource
Test if a Tag
is a TagWarning
isTagOpenName :: String -> Tag -> BoolSource
isTagCloseName :: String -> Tag -> BoolSource
Extraction
fromAttrib :: String -> Tag -> StringSource
Extract an attribute, crashes if not a TagOpen
.
Returns ""
if no attribute present.
maybeTagWarning :: Tag -> Maybe StringSource
Extract the string from within TagWarning
, otherwise Nothing