-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | This package implments a parser for the CSS syntax
--   
--   See <a>https://drafts.csswg.org/css-syntax/</a>
@package css-syntax
@version 0.0.5

module Data.CSS.Syntax.Tokens
data Token
Whitespace :: Token
CDO :: Token
CDC :: Token
Comma :: Token
Colon :: Token
Semicolon :: Token
LeftParen :: Token
RightParen :: Token
LeftSquareBracket :: Token
RightSquareBracket :: Token
LeftCurlyBracket :: Token
RightCurlyBracket :: Token
SuffixMatch :: Token
SubstringMatch :: Token
PrefixMatch :: Token
DashMatch :: Token
IncludeMatch :: Token
Column :: Token
String :: !Char -> !Text -> Token
BadString :: !Char -> !Text -> Token
Number :: !Text -> !NumericValue -> Token
Percentage :: !Text -> !NumericValue -> Token
Dimension :: !Text -> !NumericValue -> !Unit -> Token
Url :: !Text -> Token
BadUrl :: !Text -> Token
Ident :: !Text -> Token
AtKeyword :: !Text -> Token
Function :: !Text -> Token
Hash :: !HashFlag -> !Text -> Token
Delim :: !Char -> Token
data NumericValue
NVInteger :: !Scientific -> NumericValue
NVNumber :: !Scientific -> NumericValue
data HashFlag
HId :: HashFlag
HUnrestricted :: HashFlag
type Unit = Text

-- | Parse a <a>Text</a> into a list of <a>Token</a>s.
--   
--   <a>https://drafts.csswg.org/css-syntax/#tokenization</a>
tokenize :: Text -> Either String [Token]

-- | Serialize a list of <a>Token</a>s back into <a>Text</a>.
--   Round-tripping is not guaranteed to be identity. The tokenization step
--   drops some information from the source.
--   
--   <a>https://drafts.csswg.org/css-syntax/#serialization</a>
serialize :: [Token] -> Text
instance GHC.Classes.Eq Data.CSS.Syntax.Tokens.Token
instance GHC.Show.Show Data.CSS.Syntax.Tokens.Token
instance GHC.Classes.Eq Data.CSS.Syntax.Tokens.HashFlag
instance GHC.Show.Show Data.CSS.Syntax.Tokens.HashFlag
instance GHC.Classes.Eq Data.CSS.Syntax.Tokens.NumericValue
instance GHC.Show.Show Data.CSS.Syntax.Tokens.NumericValue
