| Stability | provisional |
|---|---|
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Text.XML.HXT.CSS.TypeDefs
Description
Data types for the abstract syntax tree of CSS selectors. We (mostly) follow the naming conventions of the CSS Level 3 specification document (http://www.w3.org/TR/css3-selectors/). The type hierarchy tries to strike a balance between correctness and complexity. As a result, it is possible to construct values that correspond to invalid selectors. For example,
Negation(NegationUniversalSelector)
is not valid according to the spec, as double negation is not allowed.
Note that parseCSS never produces invalid
selectors.
- newtype SelectorsGroup = SelectorsGroup [Selector]
- data Selector
- newtype SimpleSelectorSeq = SimpleSelectorSeq [SimpleSelector]
- data SimpleSelector
- data AttrTest
- data PseudoClass
- data PseudoNthClass
- data Nth
- findPseudoClass :: String -> Maybe PseudoClass
- findPseudoNthClass :: String -> Maybe (Nth -> PseudoNthClass)
- testNth :: Nth -> Int -> Bool
Documentation
newtype SelectorsGroup Source
The top-level selector type.
Constructors
| SelectorsGroup [Selector] | E, F |
Instances
Constructors
| Selector SimpleSelectorSeq | E |
| Descendant SimpleSelectorSeq Selector | E F |
| Child SimpleSelectorSeq Selector | E > F |
| AdjSibling SimpleSelectorSeq Selector | E + F |
| FolSibling SimpleSelectorSeq Selector | E ~ F |
newtype SimpleSelectorSeq Source
Constructors
| SimpleSelectorSeq [SimpleSelector] | tag#id.class:pseudo |
data SimpleSelector Source
Constructors
| UniversalSelector | * |
| TypeSelector String | tag |
| IdSelector String | #id |
| ClassSelector String | .class |
| AttrSelector String AttrTest | [..] |
| Pseudo PseudoClass | :pseudo |
| PseudoNth PseudoNthClass | :pseudo(2) |
| Negation SimpleSelector | :not(..) |
Instances
Constructors
| AttrExists | [attr] |
| AttrEq String | [attr=var] |
| AttrContainsSp String | [attr~=var] |
| AttrBeginHy String | [attr|=var] |
| AttrPrefix String | [attr^=var] |
| AttrSuffix String | [attr$=var] |
| AttrSubstr String | [attr*=var] |
data PseudoClass Source
Pseudo classes.
Constructors
| PseudoFirstChild | :first-child |
| PseudoLastChild | :last-child |
| PseudoOnlyChild | :only-child |
| PseudoFirstOfType | :first-of-type |
| PseudoLastOfType | :last-of-type |
| PseudoOnlyOfType | :only-of-type |
| PseudoEmpty | :empty |
| PseudoRoot | :root |
Instances
data PseudoNthClass Source
Pseudo classes that expect a argument of type Nth.
Constructors
| PseudoNthChild Nth | :nth-child(..) |
| PseudoNthLastChild Nth | :nth-last-child(..) |
| PseudoNthOfType Nth | :nth-of-type(..) |
| PseudoNthLastOfType Nth | :nth-last-of-type(..) |
Instances
Type of the argument of the :nth-child (PseudoNthClass)
family of pseudo classes. matches with all integers that can
be written in the form Nth a ban+b for some nonnegative integer n.
findPseudoClass :: String -> Maybe PseudoClass Source
Find a PseudoClass given its name (without the colon).
findPseudoNthClass :: String -> Maybe (Nth -> PseudoNthClass) Source
Find a PseudoNthClass given its name (without the colon).