{-# LANGUAGE OverloadedStrings #-}
module Skylighting.Syntax.Css (syntax) where

import Skylighting.Types
import Data.Map
import Skylighting.Regex
import qualified Data.Set

syntax :: Syntax
syntax = Syntax
  { sName = "CSS"
  , sFilename = "css.xml"
  , sShortname = "Css"
  , sContexts =
      fromList
        [ ( "Base"
          , Context
              { cName = "Base"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = LineContinue
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindRuleSets" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "Comment"
          , Context
              { cName = "Comment"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = CommentTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = Detect2Chars '*' '/'
                      , rAttribute = CommentTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "Alerts" , "" )
                      , rAttribute = CommentTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = DetectIdentifier
                      , rAttribute = CommentTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = CommentTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "FindComments"
          , Context
              { cName = "FindComments"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "/\\*BEGIN.*\\*/"
                              , reCompiled = Just (compileRegex True "/\\*BEGIN.*\\*/")
                              , reCaseSensitive = True
                              }
                      , rAttribute = RegionMarkerTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "/\\*END.*\\*/"
                              , reCompiled = Just (compileRegex True "/\\*END.*\\*/")
                              , reCaseSensitive = True
                              }
                      , rAttribute = RegionMarkerTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = Detect2Chars '/' '*'
                      , rAttribute = CommentTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Comment" ) ]
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "FindRuleSets"
          , Context
              { cName = "FindRuleSets"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "@media\\b"
                              , reCompiled = Just (compileRegex True "@media\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Media" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "@import\\b"
                              , reCompiled = Just (compileRegex True "@import\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Import" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "@(font-face|charset)\\b"
                              , reCompiled = Just (compileRegex True "@(font-face|charset)\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = DetectChar '{'
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "RuleSet" ) ]
                      }
                  , Rule
                      { rMatcher = DetectChar '['
                      , rAttribute = AttributeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "SelAttr" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString =
                                  "#(-)?([_a-zA-Z]|(\\\\[0-9a-fA-F]{1,6})|(\\\\[^\\n\\r\\f0-9a-fA-F]))([_a-zA-Z0-9-]|(\\\\[0-9a-fA-F]{1,6})|(\\\\[^\\n\\r\\f0-9a-fA-F]))*"
                              , reCompiled =
                                  Just
                                    (compileRegex
                                       True
                                       "#(-)?([_a-zA-Z]|(\\\\[0-9a-fA-F]{1,6})|(\\\\[^\\n\\r\\f0-9a-fA-F]))([_a-zA-Z0-9-]|(\\\\[0-9a-fA-F]{1,6})|(\\\\[^\\n\\r\\f0-9a-fA-F]))*")
                              , reCaseSensitive = True
                              }
                      , rAttribute = FloatTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString =
                                  "\\.([a-zA-Z0-9\\-_]|[\\x80-\\xFF]|\\\\[0-9A-Fa-f]{1,6})*"
                              , reCompiled =
                                  Just
                                    (compileRegex
                                       True
                                       "\\.([a-zA-Z0-9\\-_]|[\\x80-\\xFF]|\\\\[0-9A-Fa-f]{1,6})*")
                              , reCaseSensitive = True
                              }
                      , rAttribute = FloatTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = ":lang\\([\\w_-]+\\)"
                              , reCompiled = Just (compileRegex True ":lang\\([\\w_-]+\\)")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = DetectChar ':'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "SelPseudo" ) ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindStrings" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "FindStrings"
          , Context
              { cName = "FindStrings"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '"'
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "StringDQ" ) ]
                      }
                  , Rule
                      { rMatcher = DetectChar '\''
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "StringSQ" ) ]
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "FindValues"
          , Context
              { cName = "FindValues"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString =
                                  "[-+]?[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\\b"
                              , reCompiled =
                                  Just
                                    (compileRegex
                                       True
                                       "[-+]?[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "[-+]?[0-9.]+[%]?"
                              , reCompiled = Just (compileRegex True "[-+]?[0-9.]+[%]?")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "[\\w\\-]+"
                              , reCompiled = Just (compileRegex True "[\\w\\-]+")
                              , reCaseSensitive = True
                              }
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "Import"
          , Context
              { cName = "Import"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar ';'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "all"
                               , "aural"
                               , "braille"
                               , "embossed"
                               , "handheld"
                               , "print"
                               , "projection"
                               , "screen"
                               , "speech"
                               , "tty"
                               , "tv"
                               ])
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindValues" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindStrings" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "InsideString"
          , Context
              { cName = "InsideString"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\\\[\"']"
                              , reCompiled = Just (compileRegex True "\\\\[\"']")
                              , reCaseSensitive = True
                              }
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = DetectIdentifier
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = StringTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "MQEE"
          , Context
              { cName = "MQEE"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = DetectChar ':'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MQEV" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\)\\s+and\\s+\\("
                              , reCompiled = Just (compileRegex True "\\)\\s+and\\s+\\(")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = DetectChar ')'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop , Pop ]
                      }
                  ]
              , cAttribute = DecValTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = True
              , cFallthroughContext = [ Pop ]
              , cDynamic = False
              }
          )
        , ( "MQEV"
          , Context
              { cName = "MQEV"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "[1-9][0-9.]*\\s*/\\s*[1-9][0-9.]*"
                              , reCompiled =
                                  Just (compileRegex True "[1-9][0-9.]*\\s*/\\s*[1-9][0-9.]*")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString =
                                  "[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz|dpi|dpcm)\\b"
                              , reCompiled =
                                  Just
                                    (compileRegex
                                       True
                                       "[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz|dpi|dpcm)\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "[0-9.]+[%]?"
                              , reCompiled = Just (compileRegex True "[0-9.]+[%]?")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "(portrait|landscape)"
                              , reCompiled = Just (compileRegex True "(portrait|landscape)")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = ".*"
                              , reCompiled = Just (compileRegex True ".*")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = DecValTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "Media"
          , Context
              { cName = "Media"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '{'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Media2" ) ]
                      }
                  , Rule
                      { rMatcher = DetectChar '('
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MediaQueryExpression" ) ]
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "all"
                               , "aural"
                               , "braille"
                               , "embossed"
                               , "handheld"
                               , "print"
                               , "projection"
                               , "screen"
                               , "speech"
                               , "tty"
                               , "tv"
                               ])
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MediaQueries" ) ]
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet False [ "not" , "only" ])
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MediaTypes" ) ]
                      }
                  , Rule
                      { rMatcher = DetectChar ','
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S+"
                              , reCompiled = Just (compileRegex True "\\S+")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "Media2"
          , Context
              { cName = "Media2"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '}'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop , Pop ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindRuleSets" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "MediaQueries"
          , Context
              { cName = "MediaQueries"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\s+and\\s+\\("
                              , reCompiled = Just (compileRegex True "\\s+and\\s+\\(")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MediaQueryExpression" ) ]
                      }
                  , Rule
                      { rMatcher = DetectChar '{'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = True
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = DetectChar ','
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = True
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S+"
                              , reCompiled = Just (compileRegex True "\\S+")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = DecValTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "MediaQueryExpression"
          , Context
              { cName = "MediaQueryExpression"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "aspect-ratio"
                               , "color"
                               , "color-index"
                               , "device-aspect-ratio"
                               , "device-height"
                               , "device-width"
                               , "grid"
                               , "height"
                               , "max-aspect-ratio"
                               , "max-color"
                               , "max-color-index"
                               , "max-device-aspect-ratio"
                               , "max-device-height"
                               , "max-device-width"
                               , "max-height"
                               , "max-monochrome"
                               , "max-resolution"
                               , "max-width"
                               , "min-aspect-ratio"
                               , "min-color"
                               , "min-color-index"
                               , "min-device-aspect-ratio"
                               , "min-device-height"
                               , "min-device-width"
                               , "min-height"
                               , "min-monochrome"
                               , "min-resolution"
                               , "min-width"
                               , "monochrome"
                               , "orientation"
                               , "resolution"
                               , "scan"
                               , "width"
                               ])
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MQEE" ) ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S+"
                              , reCompiled = Just (compileRegex True "\\S+")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = DecValTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "MediaTypes"
          , Context
              { cName = "MediaTypes"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "all"
                               , "aural"
                               , "braille"
                               , "embossed"
                               , "handheld"
                               , "print"
                               , "projection"
                               , "screen"
                               , "speech"
                               , "tty"
                               , "tv"
                               ])
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "MediaQueries" ) ]
                      }
                  , Rule
                      { rMatcher = DetectChar '{'
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = True
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = DetectChar ','
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = True
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = DetectSpaces
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S+"
                              , reCompiled = Just (compileRegex True "\\S+")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = DecValTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "PropParen"
          , Context
              { cName = "PropParen"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '('
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "PropParen2" ) ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S"
                              , reCompiled = Just (compileRegex True "\\S")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "PropParen2"
          , Context
              { cName = "PropParen2"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar ')'
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop , Pop ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindValues" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindStrings" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "Rule"
          , Context
              { cName = "Rule"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar ':'
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Rule2" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S"
                              , reCompiled = Just (compileRegex True "\\S")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "Rule2"
          , Context
              { cName = "Rule2"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar ';'
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop , Pop ]
                      }
                  , Rule
                      { rMatcher = DetectChar '}'
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop , Pop , Pop ]
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "-epub-hyphens"
                               , "100"
                               , "200"
                               , "300"
                               , "400"
                               , "500"
                               , "600"
                               , "700"
                               , "800"
                               , "900"
                               , "above"
                               , "absolute"
                               , "always"
                               , "armenian"
                               , "auto"
                               , "avoid"
                               , "baseline"
                               , "below"
                               , "bidi-override"
                               , "blink"
                               , "block"
                               , "bold"
                               , "bolder"
                               , "border-box"
                               , "both"
                               , "bottom"
                               , "box"
                               , "break"
                               , "capitalize"
                               , "caption"
                               , "center"
                               , "circle"
                               , "cjk-ideographic"
                               , "clip"
                               , "close-quote"
                               , "collapse"
                               , "compact"
                               , "condensed"
                               , "content-box"
                               , "crop"
                               , "cross"
                               , "crosshair"
                               , "cursive"
                               , "dashed"
                               , "decimal"
                               , "decimal-leading-zero"
                               , "default"
                               , "disc"
                               , "dotted"
                               , "double"
                               , "e-resize"
                               , "ellipsis"
                               , "ellipsis-word"
                               , "embed"
                               , "expanded"
                               , "extra-condensed"
                               , "extra-expanded"
                               , "fantasy"
                               , "fixed"
                               , "georgian"
                               , "groove"
                               , "hand"
                               , "hebrew"
                               , "help"
                               , "hidden"
                               , "hide"
                               , "higher"
                               , "hiragana"
                               , "hiragana-iroha"
                               , "icon"
                               , "inherit"
                               , "inline"
                               , "inline-block"
                               , "inline-table"
                               , "inset"
                               , "inside"
                               , "invert"
                               , "italic"
                               , "justify"
                               , "katakana"
                               , "katakana-iroha"
                               , "konq-center"
                               , "landscape"
                               , "large"
                               , "larger"
                               , "left"
                               , "level"
                               , "light"
                               , "lighter"
                               , "line-through"
                               , "list-item"
                               , "loud"
                               , "lower"
                               , "lower-alpha"
                               , "lower-greek"
                               , "lower-latin"
                               , "lower-roman"
                               , "lowercase"
                               , "ltr"
                               , "marker"
                               , "medium"
                               , "menu"
                               , "message-box"
                               , "middle"
                               , "mix"
                               , "monospace"
                               , "move"
                               , "n-resize"
                               , "narrower"
                               , "ne-resize"
                               , "no-close-quote"
                               , "no-open-quote"
                               , "no-repeat"
                               , "none"
                               , "normal"
                               , "nowrap"
                               , "nw-resize"
                               , "oblique"
                               , "open-quote"
                               , "outset"
                               , "outside"
                               , "overline"
                               , "pointer"
                               , "portrait"
                               , "pre"
                               , "pre-line"
                               , "pre-wrap"
                               , "relative"
                               , "repeat"
                               , "repeat-x"
                               , "repeat-y"
                               , "ridge"
                               , "right"
                               , "rtl"
                               , "run-in"
                               , "s-resize"
                               , "sans-serif"
                               , "scroll"
                               , "se-resize"
                               , "semi-condensed"
                               , "semi-expanded"
                               , "separate"
                               , "serif"
                               , "show"
                               , "small"
                               , "small-caps"
                               , "small-caption"
                               , "smaller"
                               , "solid"
                               , "square"
                               , "static"
                               , "static-position"
                               , "status-bar"
                               , "sub"
                               , "super"
                               , "sw-resize"
                               , "table"
                               , "table-caption"
                               , "table-cell"
                               , "table-column"
                               , "table-column-group"
                               , "table-footer-group"
                               , "table-header-group"
                               , "table-row"
                               , "table-row-group"
                               , "text"
                               , "text-bottom"
                               , "text-top"
                               , "thick"
                               , "thin"
                               , "top"
                               , "transparent"
                               , "ultra-condensed"
                               , "ultra-expanded"
                               , "underline"
                               , "upper-alpha"
                               , "upper-latin"
                               , "upper-roman"
                               , "uppercase"
                               , "visible"
                               , "w-resize"
                               , "wait"
                               , "wider"
                               , "x-large"
                               , "x-small"
                               , "xx-large"
                               , "xx-small"
                               ])
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "ActiveBorder"
                               , "ActiveCaption"
                               , "AppWorkspace"
                               , "aqua"
                               , "Background"
                               , "black"
                               , "blue"
                               , "ButtonFace"
                               , "ButtonHighlight"
                               , "ButtonShadow"
                               , "ButtonText"
                               , "CaptionText"
                               , "cyan"
                               , "fuchsia"
                               , "gray"
                               , "GrayText"
                               , "green"
                               , "Highlight"
                               , "HighlightText"
                               , "InactiveBorder"
                               , "InactiveCaption"
                               , "InactiveCaptionText"
                               , "InfoBackground"
                               , "InfoText"
                               , "lime"
                               , "maroon"
                               , "Menu"
                               , "MenuText"
                               , "navy"
                               , "olive"
                               , "purple"
                               , "red"
                               , "Scrollbar"
                               , "silver"
                               , "teal"
                               , "ThreeDDarkShadow"
                               , "ThreeDFace"
                               , "ThreeDHighlight"
                               , "ThreeDLightShadow"
                               , "ThreeDShadow"
                               , "white"
                               , "Window"
                               , "WindowFrame"
                               , "WindowText"
                               , "yellow"
                               ])
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "#([0-9A-Fa-f]{3}){1,4}\\b"
                              , reCompiled = Just (compileRegex True "#([0-9A-Fa-f]{3}){1,4}\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "attr"
                               , "counter"
                               , "counters"
                               , "expression"
                               , "format"
                               , "hsl"
                               , "hsla"
                               , "local"
                               , "rect"
                               , "rgb"
                               , "rgba"
                               , "url"
                               ])
                      , rAttribute = DataTypeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "PropParen" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "!important\\b"
                              , reCompiled = Just (compileRegex True "!important\\b")
                              , reCaseSensitive = True
                              }
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindValues" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindStrings" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "RuleSet"
          , Context
              { cName = "RuleSet"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '}'
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "-khtml-background-size"
                               , "-khtml-border-bottom-left-radius"
                               , "-khtml-border-bottom-right-radius"
                               , "-khtml-border-radius"
                               , "-khtml-border-top-left-radius"
                               , "-khtml-border-top-right-radius"
                               , "-khtml-box-shadow"
                               , "-khtml-opacity"
                               , "-moz-animation-delay"
                               , "-moz-animation-direction"
                               , "-moz-animation-duration"
                               , "-moz-animation-fill-mode"
                               , "-moz-animation-iteration"
                               , "-moz-animation-name"
                               , "-moz-animation-play-state"
                               , "-moz-background-size"
                               , "-moz-border-bottom-colors"
                               , "-moz-border-image"
                               , "-moz-border-left-colors"
                               , "-moz-border-radius"
                               , "-moz-border-radius-bottomleft"
                               , "-moz-border-radius-bottomright"
                               , "-moz-border-radius-topleft"
                               , "-moz-border-radius-topright"
                               , "-moz-border-right-colors"
                               , "-moz-border-top-colors"
                               , "-moz-box"
                               , "-moz-box-flex"
                               , "-moz-box-shadow"
                               , "-moz-box-sizing"
                               , "-moz-column-count"
                               , "-moz-column-gap"
                               , "-moz-hyphens"
                               , "-moz-linear-gradient"
                               , "-moz-opacity"
                               , "-moz-outline-style"
                               , "-moz-perspective"
                               , "-moz-radial-gradient"
                               , "-moz-resize"
                               , "-moz-transform"
                               , "-moz-transform-origin"
                               , "-moz-transform-style"
                               , "-moz-transition"
                               , "-moz-transition-duration"
                               , "-moz-transition-property"
                               , "-ms-animation-delay"
                               , "-ms-animation-direction"
                               , "-ms-animation-duration"
                               , "-ms-animation-fill-mode"
                               , "-ms-animation-iteration"
                               , "-ms-animation-name"
                               , "-ms-animation-play-state"
                               , "-ms-box-sizing"
                               , "-ms-filter"
                               , "-ms-interpolation-mode"
                               , "-ms-linear-gradient"
                               , "-ms-text-size-adjust"
                               , "-ms-transform"
                               , "-ms-transition"
                               , "-o-background-size"
                               , "-o-linear-gradient"
                               , "-o-text-overflow"
                               , "-o-transform-origin"
                               , "-o-transition"
                               , "-webkit-animation-delay"
                               , "-webkit-animation-direction"
                               , "-webkit-animation-duration"
                               , "-webkit-animation-fill-mode"
                               , "-webkit-animation-iteration"
                               , "-webkit-animation-name"
                               , "-webkit-animation-play-state"
                               , "-webkit-appearance"
                               , "-webkit-background-size"
                               , "-webkit-border-bottom-colors"
                               , "-webkit-border-bottom-left-radius"
                               , "-webkit-border-bottom-right-radius"
                               , "-webkit-border-image"
                               , "-webkit-border-left-colors"
                               , "-webkit-border-radius"
                               , "-webkit-border-radius-bottomleft"
                               , "-webkit-border-radius-bottomright"
                               , "-webkit-border-right-colors"
                               , "-webkit-border-top-colors"
                               , "-webkit-border-top-left-radius"
                               , "-webkit-border-top-right-radius"
                               , "-webkit-box-flex"
                               , "-webkit-box-reflect"
                               , "-webkit-box-shadow"
                               , "-webkit-box-sizing"
                               , "-webkit-column-count"
                               , "-webkit-column-gap"
                               , "-webkit-gradient"
                               , "-webkit-hyphens"
                               , "-webkit-linear-gradient"
                               , "-webkit-perspective"
                               , "-webkit-text-fill-color"
                               , "-webkit-text-size-adjust"
                               , "-webkit-text-stroke-color"
                               , "-webkit-text-stroke-width"
                               , "-webkit-transform"
                               , "-webkit-transform-origin"
                               , "-webkit-transform-style"
                               , "-webkit-transition"
                               , "-webkit-transition-duration"
                               , "-webkit-transition-property"
                               , "align-content"
                               , "align-items"
                               , "align-self"
                               , "alignment-baseline"
                               , "all"
                               , "animation-delay"
                               , "animation-direction"
                               , "animation-duration"
                               , "animation-fill-mode"
                               , "animation-iteration-count"
                               , "animation-name"
                               , "animation-play-state"
                               , "animation-timing-function"
                               , "ascent"
                               , "azimuth"
                               , "backface-visibility"
                               , "background"
                               , "background-attachment"
                               , "background-blend-mode"
                               , "background-break"
                               , "background-clip"
                               , "background-color"
                               , "background-image"
                               , "background-origin"
                               , "background-position"
                               , "background-repeat"
                               , "background-size"
                               , "baseline"
                               , "baseline-shift"
                               , "bbox"
                               , "bookmark-label"
                               , "bookmark-level"
                               , "border"
                               , "border-bottom"
                               , "border-bottom-color"
                               , "border-bottom-image"
                               , "border-bottom-left-image"
                               , "border-bottom-left-radius"
                               , "border-bottom-right-image"
                               , "border-bottom-right-radius"
                               , "border-bottom-style"
                               , "border-bottom-width"
                               , "border-boundary"
                               , "border-collapse"
                               , "border-color"
                               , "border-corner-image"
                               , "border-image"
                               , "border-image-outset"
                               , "border-image-repeat"
                               , "border-image-slice"
                               , "border-image-source"
                               , "border-image-width"
                               , "border-left"
                               , "border-left-color"
                               , "border-left-image"
                               , "border-left-style"
                               , "border-left-width"
                               , "border-radius"
                               , "border-right"
                               , "border-right-color"
                               , "border-right-image"
                               , "border-right-style"
                               , "border-right-width"
                               , "border-spacing"
                               , "border-style"
                               , "border-top"
                               , "border-top-color"
                               , "border-top-image"
                               , "border-top-left-image"
                               , "border-top-left-radius"
                               , "border-top-right-image"
                               , "border-top-right-radius"
                               , "border-top-style"
                               , "border-top-width"
                               , "border-width"
                               , "bottom"
                               , "box-align"
                               , "box-decoration-break"
                               , "box-direction"
                               , "box-flex"
                               , "box-shadow"
                               , "box-sizing"
                               , "box-snap"
                               , "box-suppress"
                               , "break-after"
                               , "break-before"
                               , "break-inside"
                               , "cap-height"
                               , "caption-side"
                               , "caret-color"
                               , "centerline"
                               , "chains"
                               , "clear"
                               , "clip"
                               , "clip-path"
                               , "clip-rule"
                               , "color"
                               , "color-interpolation-filters"
                               , "column-count"
                               , "column-fill"
                               , "column-gap"
                               , "column-rule"
                               , "column-rule-color"
                               , "column-rule-style"
                               , "column-rule-width"
                               , "column-span"
                               , "column-width"
                               , "columns"
                               , "content"
                               , "counter-increment"
                               , "counter-reset"
                               , "counter-set"
                               , "cue"
                               , "cue-after"
                               , "cue-before"
                               , "cursor"
                               , "definition-src"
                               , "descent"
                               , "direction"
                               , "display"
                               , "dominant-baseline"
                               , "elevation"
                               , "empty-cells"
                               , "filter"
                               , "flex"
                               , "flex-basis"
                               , "flex-direction"
                               , "flex-flow"
                               , "flex-grow"
                               , "flex-shrink"
                               , "flex-wrap"
                               , "float"
                               , "flood-color"
                               , "flood-opacity"
                               , "flow"
                               , "flow-from"
                               , "flow-into"
                               , "font"
                               , "font-family"
                               , "font-feature-settings"
                               , "font-kerning"
                               , "font-language-override"
                               , "font-size"
                               , "font-size-adjust"
                               , "font-stretch"
                               , "font-style"
                               , "font-synthesis"
                               , "font-variant"
                               , "font-variant-alternates"
                               , "font-variant-caps"
                               , "font-variant-east-asian"
                               , "font-variant-ligatures"
                               , "font-variant-numeric"
                               , "font-variant-position"
                               , "font-weight"
                               , "footnote-display"
                               , "footnote-policy"
                               , "glyph-orientation-vertical"
                               , "grid"
                               , "grid-area"
                               , "grid-auto-columns"
                               , "grid-auto-flow"
                               , "grid-auto-rows"
                               , "grid-column"
                               , "grid-column-end"
                               , "grid-column-gap"
                               , "grid-column-start"
                               , "grid-gap"
                               , "grid-row"
                               , "grid-row-end"
                               , "grid-row-gap"
                               , "grid-row-start"
                               , "grid-template"
                               , "grid-template-areas"
                               , "grid-template-columns"
                               , "grid-template-rows"
                               , "hanging-punctuation"
                               , "height"
                               , "hyphens"
                               , "image-orientation"
                               , "image-rendering"
                               , "image-resolution"
                               , "initial-letter"
                               , "initial-letter-align"
                               , "initial-letter-wrap"
                               , "isolation"
                               , "justify-content"
                               , "justify-items"
                               , "justify-self"
                               , "konq_bgpos_x"
                               , "konq_bgpos_y"
                               , "left"
                               , "letter-spacing"
                               , "lighting-color"
                               , "line-grid"
                               , "line-height"
                               , "line-snap"
                               , "linear-gradient"
                               , "list-style"
                               , "list-style-image"
                               , "list-style-keyword"
                               , "list-style-position"
                               , "list-style-type"
                               , "margin"
                               , "margin-bottom"
                               , "margin-left"
                               , "margin-right"
                               , "margin-top"
                               , "marker-offset"
                               , "marker-side"
                               , "marquee-direction"
                               , "marquee-loop"
                               , "marquee-speed"
                               , "marquee-style"
                               , "mask"
                               , "mask-border"
                               , "mask-border-mode"
                               , "mask-border-outset"
                               , "mask-border-repeat"
                               , "mask-border-slice"
                               , "mask-border-source"
                               , "mask-border-width"
                               , "mask-clip"
                               , "mask-composite"
                               , "mask-image"
                               , "mask-mode"
                               , "mask-origin"
                               , "mask-position"
                               , "mask-repeat"
                               , "mask-size"
                               , "mask-type"
                               , "mathline"
                               , "max-height"
                               , "max-lines"
                               , "max-width"
                               , "min-height"
                               , "min-width"
                               , "mix-blend-mode"
                               , "nav-down"
                               , "nav-left"
                               , "nav-right"
                               , "nav-up"
                               , "object-fit"
                               , "object-position"
                               , "offset-after"
                               , "offset-before"
                               , "offset-end"
                               , "offset-start"
                               , "opacity"
                               , "order"
                               , "orphans"
                               , "outline"
                               , "outline-color"
                               , "outline-offset"
                               , "outline-style"
                               , "outline-width"
                               , "overflow"
                               , "overflow-style"
                               , "overflow-wrap"
                               , "overflow-x"
                               , "overflow-y"
                               , "padding"
                               , "padding-bottom"
                               , "padding-left"
                               , "padding-right"
                               , "padding-top"
                               , "page"
                               , "page-break-after"
                               , "page-break-before"
                               , "page-break-inside"
                               , "panose-1"
                               , "pause"
                               , "pause-after"
                               , "pause-before"
                               , "perspective"
                               , "perspective-origin"
                               , "pitch"
                               , "pitch-range"
                               , "play-during"
                               , "pointer-events"
                               , "polar-anchor"
                               , "polar-angle"
                               , "polar-distance"
                               , "polar-origin"
                               , "position"
                               , "presentation-level"
                               , "quotes"
                               , "resize"
                               , "rest"
                               , "rest-after"
                               , "rest-before"
                               , "richness"
                               , "right"
                               , "rotation"
                               , "rotation-point"
                               , "ruby-align"
                               , "ruby-merge"
                               , "ruby-position"
                               , "running"
                               , "scroll-behavior"
                               , "scroll-snap-align"
                               , "scroll-snap-margin"
                               , "scroll-snap-margin-block"
                               , "scroll-snap-margin-block-end"
                               , "scroll-snap-margin-block-start"
                               , "scroll-snap-margin-bottom"
                               , "scroll-snap-margin-inline"
                               , "scroll-snap-margin-inline-end"
                               , "scroll-snap-margin-inline-start"
                               , "scroll-snap-margin-left"
                               , "scroll-snap-margin-right"
                               , "scroll-snap-margin-top"
                               , "scroll-snap-padding"
                               , "scroll-snap-padding-block"
                               , "scroll-snap-padding-block-end"
                               , "scroll-snap-padding-block-start"
                               , "scroll-snap-padding-bottom"
                               , "scroll-snap-padding-inline"
                               , "scroll-snap-padding-inline-end"
                               , "scroll-snap-padding-inline-start"
                               , "scroll-snap-padding-left"
                               , "scroll-snap-padding-right"
                               , "scroll-snap-padding-top"
                               , "scroll-snap-stop"
                               , "scroll-snap-type"
                               , "shape-image-threshold"
                               , "shape-inside"
                               , "shape-margin"
                               , "shape-outside"
                               , "size"
                               , "slope"
                               , "speak"
                               , "speak-as"
                               , "speak-header"
                               , "speak-numeral"
                               , "speak-punctuation"
                               , "speech-rate"
                               , "src"
                               , "stemh"
                               , "stemv"
                               , "stress"
                               , "string-set"
                               , "tab-size"
                               , "table-layout"
                               , "text-align"
                               , "text-align-last"
                               , "text-combine-upright"
                               , "text-decoration"
                               , "text-decoration-color"
                               , "text-decoration-line"
                               , "text-decoration-skip"
                               , "text-decoration-style"
                               , "text-emphasis"
                               , "text-emphasis-color"
                               , "text-emphasis-position"
                               , "text-emphasis-style"
                               , "text-indent"
                               , "text-justify"
                               , "text-orientation"
                               , "text-overflow"
                               , "text-shadow"
                               , "text-transform"
                               , "text-underline-position"
                               , "text-wrap"
                               , "top"
                               , "topline"
                               , "transform"
                               , "transform-origin"
                               , "transform-style"
                               , "transition"
                               , "transition-delay"
                               , "transition-duration"
                               , "transition-property"
                               , "transition-timing-function"
                               , "unicode-bidi"
                               , "unicode-range"
                               , "units-per-em"
                               , "vertical-align"
                               , "visibility"
                               , "voice-balance"
                               , "voice-duration"
                               , "voice-family"
                               , "voice-pitch"
                               , "voice-range"
                               , "voice-rate"
                               , "voice-stress"
                               , "voice-volume"
                               , "volume"
                               , "white-space"
                               , "widows"
                               , "width"
                               , "widths"
                               , "will-change"
                               , "word-break"
                               , "word-spacing"
                               , "word-wrap"
                               , "wrap-flow"
                               , "wrap-through"
                               , "writing-mode"
                               , "x-height"
                               , "z-index"
                               , "zoom"
                               ])
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Rule" ) ]
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "-?[A-Za-z_-]+(?=\\s*:)"
                              , reCompiled = Just (compileRegex True "-?[A-Za-z_-]+(?=\\s*:)")
                              , reCaseSensitive = True
                              }
                      , rAttribute = KeywordTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Push ( "CSS" , "Rule" ) ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindComments" )
                      , rAttribute = NormalTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  , Rule
                      { rMatcher =
                          RegExpr
                            RE
                              { reString = "\\S"
                              , reCompiled = Just (compileRegex True "\\S")
                              , reCaseSensitive = True
                              }
                      , rAttribute = ErrorTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = NormalTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "SelAttr"
          , Context
              { cName = "SelAttr"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar ']'
                      , rAttribute = AttributeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "FindStrings" )
                      , rAttribute = AttributeTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = AttributeTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "SelPseudo"
          , Context
              { cName = "SelPseudo"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher =
                          Keyword
                            KeywordAttr
                              { keywordCaseSensitive = False
                              , keywordDelims = Data.Set.fromList "\t\n !&()*+,./:;<=>?[\\]^{|}~"
                              }
                            (makeWordSet
                               False
                               [ "active"
                               , "after"
                               , "before"
                               , "checked"
                               , "disabled"
                               , "empty"
                               , "enabled"
                               , "first-child"
                               , "first-letter"
                               , "first-line"
                               , "first-of-type"
                               , "focus"
                               , "hover"
                               , "indeterminate"
                               , "last-child"
                               , "last-of-type"
                               , "link"
                               , "not"
                               , "nth-child"
                               , "nth-last-child"
                               , "nth-last-of-type"
                               , "nth-of-type"
                               , "only-child"
                               , "only-of-type"
                               , "root"
                               , "selection"
                               , "target"
                               , "visited"
                               ])
                      , rAttribute = DecValTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  ]
              , cAttribute = DecValTok
              , cLineEmptyContext = []
              , cLineEndContext = [ Pop ]
              , cLineBeginContext = []
              , cFallthrough = True
              , cFallthroughContext = [ Pop ]
              , cDynamic = False
              }
          )
        , ( "StringDQ"
          , Context
              { cName = "StringDQ"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '"'
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "InsideString" )
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = StringTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        , ( "StringSQ"
          , Context
              { cName = "StringSQ"
              , cSyntax = "CSS"
              , cRules =
                  [ Rule
                      { rMatcher = DetectChar '\''
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = [ Pop ]
                      }
                  , Rule
                      { rMatcher = IncludeRules ( "CSS" , "InsideString" )
                      , rAttribute = StringTok
                      , rIncludeAttribute = False
                      , rDynamic = False
                      , rCaseSensitive = True
                      , rChildren = []
                      , rLookahead = False
                      , rFirstNonspace = False
                      , rColumn = Nothing
                      , rContextSwitch = []
                      }
                  ]
              , cAttribute = StringTok
              , cLineEmptyContext = []
              , cLineEndContext = []
              , cLineBeginContext = []
              , cFallthrough = False
              , cFallthroughContext = []
              , cDynamic = False
              }
          )
        ]
  , sAuthor = "Wilbert Berendsen (wilbert@kde.nl)"
  , sVersion = "3"
  , sLicense = "LGPL"
  , sExtensions = [ "*.css" ]
  , sStartingContext = "Base"
  }