Stability | provisional |
---|---|
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
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
(Negation
UniversalSelector
)
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 SimpleSelectorSeq Source
SimpleSelectorSeq [SimpleSelector] | tag#id.class:pseudo |
data SimpleSelector Source
UniversalSelector | * |
TypeSelector String | tag |
IdSelector String | #id |
ClassSelector String | .class |
AttrSelector String AttrTest | [..] |
Pseudo PseudoClass | :pseudo |
PseudoNth PseudoNthClass | :pseudo(2) |
Negation SimpleSelector | :not(..) |
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.
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 |
data PseudoNthClass Source
Pseudo classes that expect a argument of type Nth
.
PseudoNthChild Nth | :nth-child(..) |
PseudoNthLastChild Nth | :nth-last-child(..) |
PseudoNthOfType Nth | :nth-of-type(..) |
PseudoNthLastOfType Nth | :nth-last-of-type(..) |
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).