packages feed

css-parser-0.0.1: src/CssParser.hs

module CssParser
  ( parseCss
  , parseCssP
  , alex
  , getToken
  , module X
  , NonEmpty ((:|))
  ) where

import CssParser.At.MediaQuery as X
import CssParser.At.Supports as X hiding (FeatureQuery)
import CssParser.Rule.Value as X
import CssParser.File as X
import CssParser.Ident as X
import CssParser.Lexer (TokenLoc, alexScanTokens, getToken)
import CssParser.Norm as X (Norm (..))
import CssParser.Parser.Monad as X
import CssParser.Parser as X (cssParser)
import CssParser.Prelude
import CssParser.Rule as X hiding (Namespace)
import CssParser.Rule.TypedNum as X
import CssParser.Show as X

alex :: String -> Either String [TokenLoc]
alex = alexScanTokens

parseCssP :: String -> P CssFile
parseCssP st = al (alex st')
  where
    st' = filter ('\r' /=) st
    al (Left er) = error er
    al (Right val) = cssParser val

parseCss :: String -> CssFile
parseCss s =
  case parseCssP s of
    Ok v -> v
    Failed e -> error e